2018-05-27  悪魔の公開メール

一体,誰に何の話をしているのやらという感じですが(ふめい)。

FFMPEGのダウンロード

https://ffmpeg.org/

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にしておくと収まりが良い