FFMPEG と x264 を使用してビデオをエンコードするのに苦労しています。Quicktime で再生すると出力が途切れますが、VLC では、Quicktime が途切れるのと同じ場所に多くの圧縮アーティファクトが表示されます。そのため、破損/アーティファクトを抑制しようとしているため、Quicktime が吃音しているように見えます。
ビデオには、ピクセルの 75% がランダムな間隔で変化するフレームなど、多くのランダムな動きがあります (ビデオはソフトウェアで生成されるため、真に疑似ランダムです)。「シーンカット」を誤って検出する可能性が高いこれらの場所では、圧縮が窒息しているようです. また、キーフレームを実行していると思われる定期的な間隔でチョークしているようです。
FFMPEG に付属している x264-hq プリセットに基づいてエンコード プリセットを作成しました。シーン カット検出をオフにして、keyint
/g
およびkeyint_min
オプションをいじってみました。1 に設定g
すると機能しますが、ファイルサイズが大きくなります。ロスレス プリセットを試してみましたが、Quicktime でまったく再生されません。奇妙なことに、低解像度のテスト ビデオ (1440x810) を使用しても問題は発生しませんでした。
これは私が現在持っているプリセットです。これは機能しますが、(機能していない) hq プリセットよりも約 60% 大きいファイルが生成されます。これを改善する方法はありますか?ファイルサイズはそれほど重要ではありません。どこでも再生でき、非常に高品質なものが欲しいだけです。
コーダー=1 flags=+ループ cmp=+クロマ パーティション=+parti8x8+parti4x4+partp8x8+partp4x4+partb8x8 me_method=ええと subq=8 me_range=16 g=1 keyint_min=1 sc_threshold=0 i_qfactor=0.71 b_strategy=1crf=20 qcomp=0.6 qmin=20 qmax=51 qdiff=4 bf=16 参照=4 トレリス=1 flags2=+dct8x8+wpred+bpyramid+mixed_refs wpredp=2
コマンドは次のとおりです。
ffmpeg\ -r 60 -i "frame-%06d.tiff" \ -vcodec libx264 -vpre my_preset \ -スレッド 0 \ -r 60 -an -f out.mp4