web-dev-qa-db-ja.com

ffmpeg:インターレースh.264ビデオを作成する方法は?

高品質のノンインターレース入力ビデオを、品質は低くても配信可能なH.264/MP4形式に変換したいと思います。出力にはいくつかの制約が必要です-特に:インターレース

次のコマンドを試しました。ここで、mandelbrotは高品質の入力の同義語です。

ffmpeg -hide_banner \
    -t 10 -y \
    -f lavfi \
    -i anullsrc=r=48k:cl=stereo \
    -f lavfi \
    -i mandelbrot=r=50:size=1920x1080 \
    -vf 'interlace=scan=tff:lowpass=complex,format=yuv420p' \
    -codec:a aac \
    -b:a 128k \
    -aac_coder twoloop \
    -codec:v libx264 \
    -preset veryfast \
    -tune animation \
    -profile:v high \
    -crf 35 \
    -level 5.2 \
    -x264opts interlaced=1 \
    -shortest \
    mandelbrot.mp4

私のffmpegはffmpeg version 3.4.2-2です。

ただし、コマンドラインが正しいかどうかはわかりません。

  • libx264は、それ自体ではインターレース入力を検出しません。 -x264opts interlaced=1を挿入する必要があります。
  • 他のよくある質問は-flags +ilme+ildct ..について何かを教えてくれます.

パラメータを確認できますか?どうもありがとうございました。

1
Thomas R.

ついに私は素晴らしい結果を得ました

ffmpeg \
 -y \
 -hide_banner \
 -i "${INPUT_FILE}" \
 \
 [... audio ...]\
 \
 -vf tinterlace=interleave_top,fieldorder=tff \
 -crf 28 \
 -preset placebo \
 [... more video ...]\
 -codec:v libx264 \
 \
 -f mp4 \
 -flags +ildct+ilme \
 [... more muxing ...]\
 \
 "${OUTPUT_FILE}"
3
Thomas R.

ffmpeg経由のx264は、2つの方法でインターレースモードを設定できます。

1)プライベートパラメータ経由、つまり-x264opts(または-x264-paramsinterlaced=1

2)またはlibavcodec汎用フラグを介して-flags +ildct

2
Gyan