Windows ffmpeg8: DVD mpeg2 映像を mpeg4 に変換

動画の変換に関するメモ。

映像としてファイルに保存しておきたいTV番組が時々あります。同じ動画か youtubeにアップされていればいいのですけど、著作権があるのでなんでもかんでもyoutubeにある訳じゃない。
HDDレコーダーに録画したままにしておけばいいのですが、他人に見せたいと思った時、HDDにしか存在しないため、わざわざ自宅まで来てもらわないといけません。
そして、HDDレコーダーのHDDって、故障が心配。

私がどうしているかというと、HDDに録画してある動画を、DVDレコーダーにダビング。このDVDレコーダーはアナログ放送時代のものだから、プロテクトなしのMPEG2映像としてDVD-RWなどに録画可能。
これを DVD decrypter を使って HDDに転送。ファイル拡張子を .VODから .mpg や mp2 に変換すれば、PCで再生できる。

このまま保管してもいいけど、今の時代 720×480 の MPEG2 映像は扱いづらいので、MPEG4 映像に変換したあとで保管したいところ。
以前だったら、携帯動画変換君を使って、変換するところですが、携帯動画変換君は Windows10では動作しない。しばらくは携帯動画変換君用に WindowsXPと Windows7 を維持していました。最近ではそれも使いづらくなってきて、ここ5年間くらい携帯動画変換君用 OSは眠らせてたままで立ち上げていない。それに携帯動画変換君の ffmpeg はCPUコア、スレッドが何個あっても1個しか使ってくれないから変換に時間が掛かる。

今回、そろそろ ffmpeg による動画変換をコマンドラインから直接使えるようになっておこうかと、いろいろ試したので、そのメモというわけ。

DVD decrypter で保存した動画ファイルは、「tv_progoram.mpg」とします。

ffmpeg はあらゆる動画と音声フォーマットに対応しているから何でも変換できるものの、オプションの数が山のようにあり、私に使いこなすのは無理。とりあえず、DVDの映像をMPEG4に変換できることだけ目指します。
ffmpegのオプション数には目をつむるとしても、ffmpegは、バージョンによってオプションの指定方法が変化しているので、昔使えたコマンドも、ffmpeg.exe をバージョンアップするとエラーを吐くようになってしまうというのが、これまた大変なところ。

DVD映像を動画ファイルにするときに困るのが、インターレースの処理と縦横比。DVD映像はインターレースなので、動きが速い物体をファイルにすると、ジャギーが目立ってしまう。そのため、変換時にノンインターレース映像に変換するオプションを使うのですけど、ffmpeg3 あたりにあった -deinterlace オプションが別の指定方法に変わったらしく、ffmpeg8でそのまま指定すると、エラーになってしまう。
また、DVDに記録された映像の縦横比が、4:3 映像なのか 16:9 映像になるのか、ファイルにしてみるまでよくわからないので、「気付いたらなんか映像の比率が変」 ということを防ぐために、ffmpegコマンド中に縦横比指定を明示的に行っておく方が安心。

ここら辺を加味して、昔試行錯誤した携帯動画変換君の transcoding.ini を参考に、ffmpeg で使える変換コマンドを見つけ出しましたのでメモしておきます。

参考にしたのが、以下のサイト。ありがとうございます。
https://qiita.com/shoheikuni/items/351588d3635d9b132bfb

FFMPEG8の場合

ffmpeg.exe -i tv_program.mpg -aspect 16:9 -vf bwdif=0:-1:0 -f mp4 tv_program.mp4

FFMPEG3 の場合

ffmpeg.exe -i tv_program.mpg -aspect 16:9 -deinterlace -f mp4 tv_program.mp4

これで、mpeg2ファイル 720×480 と同サイズの 16:9 ノンインターレース映像が出来上がります。画質は今のHDD品質と比べようもない荒いものですが、1時間番組で500MB以下となり、保管したり、スマートフォンに入れて誰かに見せるにはちょうどいいサイズ。内容に興味を持ってHD品質で見たいなら、番組を買うかレンタルして見ればいい。(そういうサイトに登録されている番組であればね。今回のものは存在しない。)

映像サイズを大きくしたいなら、「-s 1280×720」と変換オプション追加するとか、ビットレートを上げるとかすればできますが、元々含まれていない映像情報が生成できるわけもなく、画面を小さくすることに意味はあっても大きくすることに意味はありません。

コメントを残す