Ich habe eine .vob-Datei, die von einer DVD gerippt wurde. Wenn ich mir die .vob-Datei ansehe, ist die Videoqualität sehr gut und der englische 5.1-Ton ist zu hören. Wenn ich jedoch ffmpeg verwende, ist die Videoqualität schlecht und der französische Ton ist nur in Mono verfügbar.
Dazu wurde dieser Befehl verwendet:
ffmpeg -i /samba/ripping/vobs/12161840#2.vob -f avi /samba/ripping/avis/test.avi
Ich habe ein paar verschiedene Varianten ausprobiert, aber das Ergebnis war nie gut, sondern nur größere Dateien mit schlechter Videoqualität und falschem Ton.
Ich weiß, dass die Videos gut sind und die richtigen Audio-Streams vorhanden sind. Wie wähle ich also eine 5.1-Spur aus und erhalte ein gutes Video?
ffmpeg gibt die .vob-Details wie folgt aus:
Input #0, mpeg, from '/samba/ripping/vobs/12161840#2.vob':
Duration: 00:42:05.56, start: 0.287267, bitrate: 5738 kb/s
Stream #0.0[0x1e0]: Video: mpeg2video, yuv420p, 720x576 [PAR 64:45 DAR 16:9], 8436 kb/s, 25 fps, 25 tbr, 90k tbn, 50 tbc
Stream #0.1[0x80]: Audio: ac3, 48000 Hz, 5.1, s16, 384 kb/s
Stream #0.2[0x81]: Audio: ac3, 48000 Hz, 5.1, s16, 384 kb/s
Stream #0.3[0x82]: Audio: ac3, 48000 Hz, mono, s16, 192 kb/s
Output #0, avi, to '/samba/ripping/avis/test.avi':
Metadata:
ISFT : Lavf52.64.2
Stream #0.0: Video: mpeg4, yuv420p, 720x576 [PAR 64:45 DAR 16:9], q=2-31, 200 kb/s, 25 tbn, 25 tbc
Stream #0.1: Audio: mp2, 48000 Hz, mono, s16, 64 kb/s
Stream mapping:
Stream #0.0 -> #0.0
Stream #0.3 -> #0.1
Antwort1
Die Standardkodierungsoptionen sind niedrig, die Audiobitrate beträgt beispielsweise 64k. Sie können diese Werte mit zusätzlichen Befehlszeilenoptionen erhöhen:
ffmpeg -i sourcefile.vob -ab 128kb -qscale 4 newfile.avi
-ab 128kb
setzt die durchschnittliche Audio-Bitrate auf 128 KB und -qscale 3
legt die Videoquantisierungsskala fest, wobei q der Qualität 1 (beste) oder 31 (schlechteste) entspricht.
Zum Vergleich: für ein 5-minütiges Video mit einer Auflösung von 700 x 576 und 128 KB Audio:
- q 10 = ~40 MB
- q 4 = ~80 MB
Wenn Sie noch einen Schritt weiter gehen, können Sie mit diesem Bash-Befehl eine ganze Reihe von VOB-Dateien in einem Verzeichnis stapelweise konvertieren:
for f in *.vob; do ffmpeg -i "$f" -ab 128kb -qscale 4 "${f%%.vob}.avi"; done;
Wir setzen $f in Anführungszeichen, falls die Dateinamen Leerzeichen enthalten, und ${f%%.vob} entfernt die VOB-Erweiterung, bevor wir unsere eigene AVI-Erweiterung hinzufügen. (Dies ist eine Parametersubstitution in Bash, sehr nützlich!http://tldp.org/LDP/abs/html/parameter-substitution.html)
Es gibt noch viele weitere Optionen, die Sie hier nachlesen können:http://www.ffmpeg.org/ffmpeg-doc.html