ffmpegを使ってFLVをMP4にするときにつまづいた件
ニコ生のFLVファイルをMP4にする際に、
こちらのエントリを参考にして、ffmpegを使って変換してみた。
(ffmpegは お気に入りの動画を携帯で見よう から取ってきたやつ)
私のPCはコーデック入れまくりなので出来上がったファイルはなんの問題もなく再生出来たのだが、どうやらピュアなWindows環境では、動画は再生されるが音が鳴らないっぽい。
いろいろ調べたところニコ生から取ってくるFLVは音声部分がMP3で格納されてるようだった。
確かにダメだそりゃ。
cd /d %~dp0
ffmpeg.exe -i "%~1" -vcodec copy -acodec copy "%~n1.MP4"
このコマンドだとaudio コーデックをそのまま通してしまうので、映像がH.264で音声部分がMP3というちょっと困ったMP4になってしまうのであった(映像も音声も無劣化で持ってくる設定なのでそうなるわけだ)。
んでffmpegのWikipediaに書いてある引数を使って音声部分をMP3からAACにエンコしようと思ったんだけど、うまくバッチファイルが走らない。
そこでまたGoogle先生にお伺いを立ててみたところ、どうやらAACコーデックの指定を「libfaac」ではなく「libvo_aacenc」にせねばならんということがわかった。
cd /d %~dp0
ffmpeg.exe -i "%~1" -vcodec copy -acodec libvo_aacenc -ab 127k "%~n1.MP4"
これで.batファイルを作れば、音声部分をAACに変換してMP4ファイルにしてくれます。
ビットレート(127kってとこ)は元のMP3のビットレートに合わせてるんで、適宜弄ってください。
.batファイルの作り方は、テキストファイルを新規に作成して、上記コマンドをコピペ保存したあと、ファイル名を「flv2mp4.bat」に変更(変更するとき警告出るけど無視して変更)すればok。
これをffmpeg.exeと同じ場所に置いて、変換したいFLVファイルをflv2mp4.batの上にドラッグ&ドロップすれば、あとは勝手に変換してくれます。