FFmpegでH.264/AVC FullHD動画を変換しようとすると、下記が何度か出力され、セグメンテーション違反に。
[h264 @ 0x470188]AVC: Consumed only 180915 bytes instead of 180924 [h264 @ 0x470188]PAFF interlacing is not implemented [h264 @ 0x470188]AVC: nal size 0 [h264 @ 0x470188]concealing 4080 DC, 4080 AC, 4080 MV errors
2行目、「PAFFインターレースは未実装」というのが原因。FFmpegが使用するlibavcodecのH.264デコーダがPAFFインターレースに対応していないらしい。現在使用しているFFmpegはバージョン0.4.9、libavcodecはバージョン51.40.4。
最悪、ローカルでソフトを起動して変換してWeb用にアップ、とすればいいんだけど、やはりサーバに放り込んだら自動的に変換するのがベスト。
FFmpegの現状を調べてみると、次期リリースにちゃんとPAFFデコードの実装予定が入ってる。
version <next>
(中略)
- H.264 PAFF decoding
ただ、0.4.9-pre1の時点でも実装予定だったものらしいので、次で出てくるかどうか...。
現時点で何とかするには、CoreAVCを使うといいらしい事がちらほら書いてあった。CoreAVCは元々Windows用で$15らしいけど、下記のLinux版は無償。ただ、どうもプレイヤーのパッチだけっぽい。
参考
追記:2009.4.9
バージョン0.5でPAFFデコードに対応。これで手元のHD動画も変換できる。自前のビデオライブラリー作ろうっと。

