【ffmpeg】対応フォーマット(コーデック)一覧の表示と確認
ffmpegを使って動画を変換してますが、これがなかなか難しい。ffmpegのインストール方法については前の記事を参照。
PHPで変換する際はここのコード経由で実行してます(自前でコマンドを生成した方が分かりやすい)が、ffmpegのバージョンによってオプション(引数)の名前が違ってくる。
変換のコマンド実行後に
Unknown encoder 'aac'
など怒られるときは
$ ffmpeg -formats | less
もしくは
$ ffmpeg -formats > list.txt
$ vi list.txt
を実行してみてffmpegが対応しているか確認。↓
最初の「File Formats」は各ファイルを読み込み、書き出しできるかどうか。
「D」ついていれば読み込み可能、「E」がついていれば書き出し可能。
次の「Codecs」は各コーデックが使用可能かどうか。
ffmpegのコマンドでは「-vcodec」や「-acodec」のあとに記述。
「D」ついていればデコード(復号化)可能、「E」がついていればエンコード(暗号化・圧縮)可能。「V」はビデオ、「A」は音声のコーデック。
さらに横にあるSDTは謎。
これで確認してみると「aac」はおらず、「libfaac」という名前になっているみたい。
日本語ではFFMpeg:サポートされているファイルフォーマットおよびコーデックにあったので参考に。