2018-05-27 悪魔の公開メール
一体,誰に何の話をしているのやらという感じですが(ふめい)。
FFMPEGのダウンロード
FFMPEGを使う
FFMPEGの使い方を表示
ffmpeg -h
FLVファイル(たいていはH.263+MP3)をMPEG4ファイル(デフォルト設定,H.264+AAC)に変換
ffmpeg -i input.flv output.mp4
映像と音声のコーデックを明示的に指定(1)
映像:H.264,ビットレート可変,インターレス解除,60fps。音声:AAC,サンプリング周波数44.1KHz
ffmpeg -i input.flv -vcodec h264 -deinterlace -vf fps=60 -acodec libvo_aacenc -ar 44100 output.mp4
映像と音声のコーデックを明示的に指定(2)★光学メディアに焼かない場合はビットレートを固定する意味がない?ファイル容量が大きくなるだけ
映像:H.264,ビットレート固定(3Mbps),インターレス解除,60fps。音声:AAC,ビットレート固定(128Kbps),サンプリング周波数44.1KHz
ffmpeg -i input.flv -vcodec h264 -b:v 3M -deinterlace -vf fps=60 -acodec libvo_aacenc -b:a 128k -ar 44100 output.mp4
シェルスクリプト
forコマンドの使い方を表示(MS-DOS時代から進化していてかなり多機能)
for /?
カレントフォルダ内のすべてのファイルのファイル名(拡張子あり)を表示
for %I in (*) do echo %I
カレントフォルダ内のすべてのファイルのファイル名(拡張子なし)を表示
for %I in (*) do echo %~nI
カレントフォルダ内のすべてのFLVファイルをMPEG4ファイルに変換(1)
for %I in (*.flv) do ffmpeg -i %I %~nI.mp4
カレントフォルダ内のすべてのFLVファイルをMPEG4ファイルに変換(2)。映像と音声のパラメータを明示的に指定
for %I in (*.flv) do ffmpeg -i %I -vcodec h264 -deinterlace -vf fps=60 -acodec libvo_aacenc -ar 44100 %~nI.mp4
備考
- ffmpeg version N-54161-gc329713で動作確認
- FFMPEGはバージョンによってコマンド引数が微妙に違うので,微妙に実行結果が違ったり,エラーになったりする。とくにコーデック名は別名定義がごちゃごちゃとあり面倒な印象
- フレームレートとインターレースの設定は,元の映像のフレームレートに関わらず60p(プログレッシブ)で統一するのがおすすめ。バッチ処理の際にインターレースの映像が混ざっていると厄介
- DVDの映像は60i(インターレース)だがブラウン管テレビで再生するわけではないので,インターレスは不要。30pにすると「動き」に対する情報量が足りなくてカクカクした印象。場面によっては気に障ることあり。インターレスを取り除いて60pにしておくと収まりが良い