1. ホーム
  2. ffmpeg

[解決済み] FFMPEG (libx264) "height not divisible by 2".

2022-02-08 03:15:43

質問

libx264コーデックを使用して、FFMPEGでフレームセットから.mp4ビデオをエンコードしようとしています。

これは、私が実行しているコマンドです。

/usr/local/bin/ffmpeg -r 24 -i frame_%05d.jpg -vcodec libx264 -y -an video.mp4

時々、以下のようなエラーが発生します。

[libx264 @ 0xa3b85a0] height not divisible by 2 (520x369)

少し調べてみると、この問題はスケーリングアルゴリズムと関係があるようで、-vf引数を追加することで修正できるようです。

しかし、私の場合、スケーリングはしたくありません。理想は、フレームと全く同じ寸法を維持することです。何かアドバイスはありますか?h264が強制するアスペクト比のようなものがあるのでしょうか?

解決方法は?

の答えは 元の質問 を行うものです。 ではなく は、ビデオを拡大縮小したいのです。

-vf "pad=ceil(iw/2)*2:ceil(ih/2)*2"

コマンドです。

ffmpeg -r 24 -i frame_%05d.jpg -vf "pad=ceil(iw/2)*2:ceil(ih/2)*2" -vcodec libx264 -y -an video.mp4 

基本的に.h264は偶数寸法が必要なので、このフィルターで対応します。

  1. 元の高さと幅を 2 で割る
  2. ピクセル単位に切り上げる
  3. もう一度2を掛けて、偶数にします。
  4. この数値まで黒のパディングピクセルを追加する

パディングの色を変更するには、フィルタパラメータ :color=white . 参照 のドキュメントを参照してください。 .