古い動画ファイルが再生できなくて焦った
Ryzen5 2600XなPCにしてから、ちょいちょい作業してたのが、古い動画ファイルのコーデック変換作業です。
古い動画ファイルは画質もコーデックもバラバラだし、ffprobeで確認できないものもあったり。
気まぐれで再生してみたら、いつかのファイルが再生できません。
UbuntuやMacなら仕方ないかと思いつつ、Win10で試してみても再生できないとか意味わかりません。
このままだと、いつか再生できなくなる!と焦りが募ったので、手の空いた時間に、動画ファイルの変換作業を始める事にしました。
....
さて、肝心の変換作業ですが、ファイル形式によっては困った事になったので、いくつかまとめておきます。
◇ 環境
Ubuntu19.10での変換作業です。ffmpegで変換、VLCで再生を確認します。
$ sudo apt install ffmpeg
$ sudo apt install vlc
ほとんどのファイルは問題ないと思いますが、ffprobeで変換前のファイル(ここではsrc.flv)を確認します。
$ ffprobe src.flv
動画ファイルの情報が表示されるはずです。
エラーになるなら、事前に処理できる形式に変換しなきゃです。
そして、変換先ファイルはMacのQuickTime Playerで再生可能にしたいので、yuv420pでない動画ファイルには要注意です。
◇ シンブルな動画ファイル変換 ※ほぼこれでOK
手持ちの動画ファイルはほとんどがyuv420pだったので、とりあえず変換してみます。
$ ffmpeg -i src.flv dest.mp4
この例では flv形式のファイルを指定していますが、.mpgや.wmvでも同様です。
◇ 微調整が必要な動画ファイル変換
古い動画ファイルだとyuv420pでなかったり、アスペクト比が乱れたりしてるものがあるので、調整しながら変換します。
case.1 : yuv420pでない
VLCでの再生なら問題ないけど、MacのQuickTime Playerで再生させたいなら、yuv420pにする必要があります。
$ ffmpeg -i src.wmv -pix_fmt yuv420p dest.mp4
手持ちの動画ファイルでは、wmv形式のファイルが4つだけyuv420pでなかったです。
case.2 : アスペクト比の乱れ
実際に動画ファイルをVLCで再生してみて、アスペクト比が乱れてる場合は、変換時にパラメータを指定します。
# アスペクト比を 4:3 で変換
$ ffmpeg -i src.flv -c copy -aspect 4:3 dest.mp4
# アスペクト比を 16:9 で変換
$ ffmpeg -i src.flv -c copy -aspect 16:9 dest.mp4
当時は確認してから保存してたのに、なんか納得いかない。
case.3 : mp4に変換できない/変換しても再生できない
古いwmvファイルや解像度の小さいmpeg1ファイル(160x120)が何故かダメです。
仮想マシン上のWinXP Pro 64bit版では再生できるのに...
仕方ないので、その仮想マシンにWindows Media Encoder 9 Series x64 Editionをインストールして、WME9ベースなwmvファイルを作成する事にしました。
ダメ元で、元ファイルを仮想マシン側で変換→ffmpegでさらに変換、を試したら無事に成功!手持ちの再生できなかったファイル群は、この方法で全て変換できました。
case.4 : rmファイルは捨てる
詳細は省きますが知的好奇心により、なんとか変換してみました。
残念ながら最新のRealPlayerはWin7以降のOSにしか対応してません。
前述のWinXP64環境ではインストールすらできません。
とりあえず、新規にWin7 64bitの仮想マシンを作成し、アクティベートしないまま作業してみました。
Windows Updateは適当なところで止めて、必須ランタイムライブラリとWMP11をインストール、無駄かつ余計なアプリが強制インストールされる最新のRealPlayerをインストールして、rmファイルの再生を確認します。
よく覚えてませんが、RealPlayerの機能で、rmファイルからwmvか何らかには変換できるはずなので、最後にffmpegを経由すれば大丈夫なはずです。
Windows版RealPlayerとWindows版QuickTimePlayerは敵です。
....
時間を見つけては、aviファイルを筆頭にmpeg1とかwmvとかflv等をffmpegでmp4に変換してました。
コーデックは残念ながらのH.264/MPEG-4。ちょっと見通しが甘かったですね。
今から始めるなら、間違いなくH.265/HEVCにするところですが...
という訳で、今ならこれ一択です!
$ ffmpeg -i src.mp4 -c:v libx265 -tag:v hvc1 dest.mp4
画質はほとんど変わらないのに、ファイルサイズが本当に小さい!
時間があれば、全部これにしたいくらいです。
....
ちなみに古い動画のほとんどはWinXP時代のものです。
最も多いのはソースがVHS/Hi8なテープで、GV-VCP2/Remix2000経由のふぬああでキャプチャーして、XvidなAVIファイルやMPEG1ファイルを作成してました。
機材が壊れる前に処理しておいた自分を褒めたいところです。
中学生の頃に流行ったMTVや料理番組とか、普段は全く観ないけど、思い入れがあって捨てるに捨てられないファイルって、それなりにあるものですね。