Weblog.bastian.bittorf
Version vom 8. Mai 2008, 19:06 Uhr von Fries43 (Diskussion | Beiträge) (→kompatibles konvertieren von Videodaten: .mov in mpeg4 / h.264: -fehler)
.mov-2-mpeg4
kompatibles konvertieren von Videodaten: .mov in mpeg4 / h.264
Gerade Fotoapparate bieten neuerdings die Moeglichkeit auch ein Video aufzunehmen. Diese werden dann als .mov gespeichert, sind richtig grosse Dateien, die sich schlecht per Mail verteilen lassen. Selbst ein hochladen zu diversen Videoportalen - damit es die lieben Verwandten anschauen koennen - wird zur Geduldsprobe. Beispiel:
bastian@terastar:~$ ls -sh video.mov 866M video.mov bastian@terastar:~$ mplayer -frames 0 -identify -vo null video.mov 2>/dev/null | grep ID_ ID_VIDEO_ID=0 ID_AUDIO_ID=1 ID_FILENAME=video.mov ID_DEMUXER=mov ID_VIDEO_FORMAT=jpeg ID_VIDEO_BITRATE=0 ID_VIDEO_WIDTH=640 ID_VIDEO_HEIGHT=480 ID_VIDEO_FPS=30.000 ID_VIDEO_ASPECT=0.0000 ID_AUDIO_FORMAT=raw ID_AUDIO_BITRATE=0 ID_AUDIO_RATE=8000 ID_AUDIO_NCH=1 ID_LENGTH=633.00 ID_VIDEO_CODEC=ffmjpeg ID_AUDIO_BITRATE=64000 ID_AUDIO_RATE=8000 ID_AUDIO_NCH=1 ID_AUDIO_CODEC=pcm
Zusammenfassend:
- 850 Megabyte und
- gerade mal etwas ueber 10 Minuten lang
- Audiospur unkomprimiert
Da sollte also noch was gehen. Die Erfahrung sagt in etwa: 90 Minuten gute Spielfilmqualitaet sind ca. 700 Megabyte. Ergo sollten in unserem Fall deutlich weniger als 7,5 Megabyte / Minute moeglich sein. Folgendes Anleitung kann man einfach auf der Kommandozeile copy&pasten.
# dateiname festlegen und qualitaet festlegen FILE="/pfad/zum/movie.mov" QUALI="normal" # niedrig,normal,gut # ab jetzt nur noch copy&paste # Parameter fuer Qualitaet, etc. ermitteln if [ "$QUALI" = "niedrig" ]; then BITRATE=400 FPS=10 elif [ "$QUALI" = "normal" ]; then BITRATE=700 FPS=20 else BITRATE=1000 FPS=25 fi # variablen in die shell verfuegbar machen eval $( mplayer -frames 0 -identify -vo null "$FILE" 2>/dev/null | grep ID_ ) # optionen: hoehen/seitenverhaeltnis erzwingen O1="-aspect $( awk -v w=$ID_VIDEO_WIDTH -v h=$ID_VIDEO_HEIGHT 'BEGIN{ print w/h }' )" # optionen: aufloesung erzwingen O2="-vf scale=${ID_VIDEO_WIDTH}:${ID_VIDEO_HEIGHT},harddup" # h264-optionen - erster Durchlauf O3a="-ovc x264 -x264encopts bitrate=$BITRATE:threads=auto:pass=1:turbo=2:frameref=1:bframes=3:" O3b="nob_pyramid:direct_pred=auto:partitions=all:8x8dct:subq=1:mixed_refs:nodct_decimate" O3c=" -nosound -ofps $FPS -noskip -of rawvideo -o /dev/null mf://$FILE -mf fps=$FPS" O3="$O3a$O3b$O3c" # h264-optionen - zweiter Durchlauf O4a="-ovc x264 -x264encopts bitrate=$BITRATE:threads=auto:pass=2:frameref=5:bframes=3:" O4b="nob_pyramid:direct_pred=auto:partitions=all:8x8dct:subq=6:mixed_refs:nodct_decimate" O4c=" -nosound -ofps $FPS -noskip -of rawvideo -o /dev/null mf://$FILE -mf fps=$FPS" O4="$O4a$O4b$O4c"
Tags: convert, mplayer, mov, mpeg4, h264 18:07, 8. Mai 2008 (CEST)