私は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を取得するにはどうすればよいですか?
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を選択できます。
私は最近、いくつかのかけがえのない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ファイルを生成しました。