VOB-Konvertierungsqualität in FFmpeg

Ich versuche, eine VOB-Datei wie folgt in MPEG zu konvertieren:

./ffmpeg.exe -i VTS_01_2.VOB -r 24  out1.mpeg

Die Qualität ist jedoch sehr schlecht.

Ich habe versucht, ./ffmpeg.exe -i VTS_01_2.VOB -vcodec copy out1.mpeg

Aber die Dateigröße ist zu groß (90% des Originals-300 MB für 4 Minuten Video), und Windows Movie Maker hängt beim Versuch, es zu importieren.

Wie kann ich eine anständige Qualität MPEG von meinem VOB bekommen?

Author: slhck, 2011-01-14

3 answers

ffmpeg -i input.vob -c:v copy -c:a copy output.mpg  

Mit diesem Befehl wird die Größe nicht verringert oder die Qualität nicht verändert. Dies entmutigt lediglich den VOB und packt ihn als MPEG neu. Sie sollten genau die gleiche Qualität haben. Die Größe ändert sich minimal, da der Overhead des VOB-Containers verloren geht.

Wenn Sie die Qualität beibehalten und die Größe reduzieren möchten, müssen Sie sie mit einem anderen Encoder wie x264 oder XviD in einen MKV-oder MP4-Container konvertieren, zum Beispiel:

ffmpeg -i input.vob -c:v libx264 -c:a aac -strict experimental output.mp4

Dadurch erhalten Sie H. 264-Video und AAC-Audio. Set -crf 23 für die videoqualität, wo weniger bedeutet bessere Qualität (sane Werte sind von 18-28). Die Audioqualität kann mit -b:a 192k für feste Bitrate geändert werden, oder wenn Sie einen anderen Encoder wie -c:a libfaac verwenden möchten, können Sie VBR mit -q:a 100 (100% Standardqualität) wählen.

 35
Author: Stanley Williams,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2013-02-02 17:06:52

Ich habe kürzlich eine VOB-Codierung durchgeführt, nachdem ich ein paar unersetzliche DVDs gerippt habe. Verwenden des ffmpeg version 1.2.4 aus Homebrew unter OSX:

ffmpeg -probesize 2G -analyzeduration 2G \
    -i VTS_04.VOB \
    -map 0:0 -map 0:1 -map 0:2 -map 0:9 \
    -metadata:s:a:0 language=eng -metadata:s:a:0 title="English Stereo" \
    -metadata:s:a:1 language=jap -metadata:s:a:1 title="Japanese Stereo" \
    -metadata:s:s:0 language=eng -metadata:s:s:0 title="English"
    -c:v libx264 -filter:v yadif -crf 18 -level 3.1 -tune film \
    -c:a copy \
    -c:s copy \
    OutputMovie.mkv

Ich musste -probesize und -analyzeduration da in der VOB-Datei mit 5,4 GB Streams später in der Datei gestartet wurden, die ohne diese Optionen nicht gefunden werden.

Als nächstes kann ich mit dem Parameter -map auswählen, welche Streams an die Ausgabe übergeben werden sollen - der Videostream, die ersten beiden Audiostreams und der 9.Stream, bei denen es sich um Untertitel handelt. Verwende ffprobe (mit -probesize & -analyzeduration um die Liste der Streams zu sehen).

Fügen Sie den Audio-und Untertitelströmen in der Ausgabe einige -metadata hinzu.

Video-encoding-Optionen nach -c:v Lesen Sie woanders.

Kopieren Sie schließlich die Audio-und Untertitelströme in die Ausgabedatei as-is. Die Ausgabe muss MKV sein, um die Untertitel und alle Metadaten korrekt einzubetten.

Auf meinem Macbook Air 2011 dauerte diese Kodierung ungefähr 6 Stunden und spuckte eine perfekte 2.4 GB MKV-Datei aus.

 4
Author: mafrosis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2014-02-01 21:08:25

Die Syntax in der vorherigen Antwort funktioniert unter meinem Mac OS nicht. Dieser schien gut zu funktionieren, mit etwas anderen Optionen (-sameq passend zum Eingabemantifizierer, -ss für den Startzeitversatz und -t für die Dauer):

ffmpeg -i VTS_01_1.VOB -sameq -strict experimental -ss 1612 -t 28 test.mpg
 -1
Author: Jeff,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2013-02-16 08:11:22