申し訳ありませんが、元のUHDシーケンスを.yuv形式でダウンロードし、.mp4コンテナ(h264 4:4:4,100%の品質、25fps)でffmpegでエンコードしました。私がffprobeを使ってエンコードされているフレームの数を調べると、600秒になるので、ビデオは24秒です。 を介してこれらのエンコードされたビデオシーケンスを実行すると、av_read_frame
がエラーコード-12
を返す前に処理されるフレームの40〜50%しか得られません。だから私は、ストリームの途中にあるav_read_frame
によって読み取られ、関数が-12
を返すように強制するいくつかのデータパッケージがあると推測しています。FFmpeg av_read_frameはフレームを正しく読み込みませんか?
どのように私はフレーム(600)の完全な数をエンコードすることができますこの問題に対処する必要がありますか? av_read_frame
が0
と異なる値を返す場合は、av_free_packet
とし、次のフレームを読み進めますか? av_read_frame
は、のエラーコードを返します。このエラーコードはEOF
に使用されていますので、ファイルコードの終わりは絶縁できますか?
残念ながら私はffmpegの古いビルドを使用しています。私は 'av_free_packet'を使用する必要があります。 –
とにかく、うん今それは動作します。あなたの答えをありがとう。私は関数を読みながらより慎重に考えました。 –