【ffmpeg】対応フォーマット(コーデック)一覧の表示と確認

ffmpegを使って動画を変換してますが、これがなかなか難しい。ffmpegのインストール方法については前の記事を参照。

PHPで変換する際ここのコード経由で実行してます(自前でコマンドを生成した方が分かりやすい)が、ffmpegのバージョンによってオプション(引数)の名前が違ってくる。

変換のコマンド実行後に
Unknown encoder 'aac'
など怒られるときは
$ ffmpeg -formats | less
もしくは
$ ffmpeg -formats > list.txt
$ vi list.txt
を実行してみてffmpegが対応しているか確認。↓

image

最初の「File Formats」は各ファイルを読み込み、書き出しできるかどうか。
「D」ついていれば読み込み可能、「E」がついていれば書き出し可能。

次の「Codecs」は各コーデックが使用可能かどうか。
ffmpegのコマンドでは「-vcodec」や「-acodec」のあとに記述。
「D」ついていればデコード(復号化)可能、「E」がついていればエンコード(暗号化・圧縮)可能。「V」はビデオ、「A」は音声のコーデック。
さらに横にあるSDTは謎。

これで確認してみると「aac」はおらず、「libfaac」という名前になっているみたい。

日本語ではFFMpeg:サポートされているファイルフォーマットおよびコーデックにあったので参考に。

動画配信といえばCoTV