web-dev-qa-db-ja.com

VOB FFmpegでの変換品質

私はVOBファイルをこのようにmpegに変換しようとしています:

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

しかし、品質は非常に悪いです。

私は試した ./ffmpeg.exe -i VTS_01_2.VOB -vcodec copy out1.mpeg

ただし、ファイルサイズが大きすぎ(元の90%-4分のビデオの場合は300 MB)、Windowsムービーメーカーはそれをインポートしようとするとハングします。

VOBからまともな品質のMPEGを取得するにはどうすればよいですか?

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

このコマンドは、サイズの縮小や品質の変更は行いません。これは、VOBを逆多重化し、MPEGとして再パッケージ化するだけです。完全に同じ品質のままにしておく必要があります。 VOBコンテナのオーバーヘッドが失われるため、サイズの変更は最小限です。

品質を維持してサイズを小さくしたい場合は、x264やXviDなどの別のエンコーダーでMKVまたはMP4コンテナーに変換する必要があります。次に例を示します。

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

これにより、H.264ビデオとAACオーディオが提供されます。ビデオ品質に-crf 23を設定します。ここで、少ないほど品質が良いことを意味します(正常な値は18〜28です)。オーディオ品質は、固定ビットレートの-b:a 192kで変更できます。また、-c:a libfaacなどの別のエンコーダーを使用する場合は、-q:a 100(デフォルト品質100%)のVBRを選択できます。

28

私は最近、いくつかのかけがえのないDVDをリッピングした後、いくつかのVOBエンコーディングを行っています。OSXでHomebrewからffmpeg version 1.2.4を使用する:

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

5.4GB VOBファイルには、これらのオプションなしでは見つからないファイルの後半で始まるストリームがあったため、-probesize-analyzedurationを設定する必要がありました。

次に、-mapパラメーターを使用して、出力に渡すストリームを選択できます。ビデオストリーム、最初の2つのオーディオストリーム、9番目のストリームで、字幕です。 ffprobeを使用します(-probesize-analyzedurationを使用して、ストリームのリストを表示します)。

出力のオーディオストリームと字幕ストリームに-metadataを追加します。

-c:vの後のビデオエンコーディングオプション elsewhere について読むことができます。

最後に、オーディオと字幕のストリームをそのまま出力ファイルにコピーします。字幕とすべてのメタデータを正しく埋め込むには、出力がMKVである必要があります。

私のMacbook Air 2011では、このエンコードに約6時間かかり、完璧な2.4GB MKVファイルを生成しました。

4
mafrosis