ffmpeg のノウハウのまとめ。

トラブル

最初次のような引数で変換していたが crome では再生できるが safari では再生できなかった。

$FFMPEG -i $1 -vcodec h264 -acodec aac -strict -2 -f mp4 -y $2

問題は、2つあった。

  • サーバ側が range リクエストに対応していなかった
    • サーバを range リクエスト対応に変更 (bottle の static_file を使う様に変更)
  • safari は yuv422 形式に対応していなかった
    • 次の引数で変換 – -fix_fmt yuv420p
    • $FFMPEG -i $1 -movflags faststart -vcodec h264 -pix_fmt yuv420p -profile:v high -acodec aac -strict -2 -f mp4 -y $2
    • -movflags faststart は、デフォルトではmp4のメタデータがファイルの最後に配置されるのを最初の方に変更するオプション
    • TODO: -strict -2 は、なにだろうか?

参考情報

ffmpegで動画から音声やサムネイルを取得

音声を抽出
for VIDEO in $(ls *.mp4 | sed 's/.mp4//')
do
    ffmpeg -i ${VIDEO}.mp4 -acodec copy ${VIDEO}.aac
done

6秒の位置で320x240のサムネイルを取得
ffmpeg -i ${VIDEO}.mp4 -ss 6 -vframes 1 -f image2 -s 320x240 ${VIDEO}.jpg

動画処理の定番ツール「FFmpeg」ことはじめ

ffmpeg -i [元動画] -movflags faststart -vcodec libx264 -acodec libfaac [新しい動画]