PMPの流儀

我が家の流儀

我が家で気になったことを夫婦で取り上げていきます

MENU

FFmpegでDVDをmp4に変換

DVDをブルーレイで採用しているAVC(H.264)で圧縮する方法について記載します。ここで説明する内容はプロテクトがかかっていないDVDを圧縮する方法ですのでご注意ください。

操作説明は Windows10 64bit を想定しています。

動画の規格

DVDは1995年に規格化され「PlayStation2」に搭載され当時話題になりました。動画コーデックにはMPEG2が採用されています。

mp4で使用しているAVC(H.264)は2003年に規格化されMPEG2の約半分のファイルサイズになるとの触れ込みです。ここ10年でもっとも普及した動画形式です。

 FFmpeg

FFmpegは動画と音声を変換することができるフリーウェアです。対応コーデックが多く多機能ですが、コマンドラインからのツールであるためとっつきにくいですが、使いこなせるようになればこの上なく便利になります。

公式サイトから入手します。

https://ffmpeg.org/download.html

 

Windows版の最新バイナリは上記公式サイトからのリンクでここにあります。

https://ffmpeg.zeranoe.com/builds/

 

Versionにリリース版の最新版

Architecture にWindows 64bit

Linking に static

Licence に GPL3.0

を選択してダウンロードします。

f:id:ruruucky:20200831231420p:plain

動画変換

 VOBファイルを連結

DVD内のVOBファイルが動画の実体です。まず1つに連結します。

VTS01_1.VOB ~ VTS01_6.VOBの6本のファイルを結合して、VTS.VOBに出力します。

DVDによりファイル数は変動しますので、カスタマイズして使用します。

copy /b VTS_01_1.VOB+VTS_01_2.VOB+VTS_01_3.VOB+VTS_01_4.VOB+VTS_01_5.VOB+VTS_01_6.VOB VTS.VOB

 

変換1.  標準的な変換

映像をAVC(H.264), 音声をAACで出力するベースとなる変換です。

 ffmpeg -i vts.vob -c:v libx264 -filter:v yadif -vprofile high -vlevel 3.1 -crf 22 -c:a aac output.mp4

 

-i vts.vob      インプットファイルの指定

-c:v libx264  動画エンコーダにH.264を指定

-filter:v yadif  インターレース解除の指定

-vprofile high -vlevel 3.1   H.264 プロファイルとレベルの指定。

-crf 22  品質の指定   0~51 初期23  小さいほど高画質になりファイルサイズが大きい。

-c:a aac   オーディオはMP4で標準的なAACを指定

output.mp4   アウトプットファイル名

 

変換2.  字幕を映像にオーバーレイ

字幕に映像をオーバーレイする場合です。

ffmpeg -probesize 120M -analyzeduration 120M  ^

-ifo_palette VTS_01_0.IFO -i vts.vob  ^

-filter_complex "[0:v]yadif[v1]; [v1][0:s]overlay[v2]" -map [v2] ^

-c:v libx264 -vprofile high -vlevel 3.1 -crf 22 ^

-map 0:a -c:a aac output.mp4

 

一気にややこしくなります。DVDには映像(v)とオーディオ(a)の他に字幕(s)のトラックがあります。

字幕のパレット情報を VT_01_0.IFOから読み取り、インターレース解除した映像に字幕をオーバーレイで重ねたものを H.264で変換をかけています。

 

オーバーレイをした場合、字幕は映像内に埋め込まれるので、字幕のOn/Offはできません。

変換3.  字幕のトラックを追加

字幕をトラックとして追加します。

ffmpeg -probesize 120M -analyzeduration 120M ^
-i vts.vob ^
-metadata:s:s:0 language=jpn -metadata:s:s:0 title="Japanese" ^
-c:v libx264 -filter:v yadif -vprofile high -vlevel 3.1 -crf 22 ^
-c:a acc ^
-c:s copy ^
output.mp4

 

字幕のトラックに名称を付けています。ここで作成した動画はvlcでは字幕を認識できたのですが、他のプレイヤーでは認識できずにいます。

まだ改良の余地ありです。