動画ファイルを処理しています。ffmpeg を使用して各パケットを読み取ります。
オーディオ パケットの場合は、av_interleaved_write_frame を使用してパケットを出力ビデオ ファイルに書き込みます。
ビデオ パケットの場合は、パケットをデコードし、ビデオ フレームのデータを取得し、画像を処理して、圧縮してパケットに戻します。次に、av_interleaved_write_frame を使用して、処理済みのビデオ フレーム パケットを出力ビデオ ファイルに書き込みます。
デバッグを通じて、オーディオ パケットとビデオ パケットを正しく読み取ります。ただし、「av_write_trailer」に行くと終了します。ただし、出力ビデオ ファイルは存在します。
エラー情報は次のとおりです。
*** glibc detected *** /OpenCV_videoFlatten_20130507/Debug/OpenCV_videoFlatten_20130507: corrupted double-linked list: 0x000000000348dfa0 ***
Movie Player (Ubuntu) を使用すると、出力ビデオ ファイルはオーディオを正しく再生できますが、ビデオ信号はありません。VLC プレーヤーを使用すると、最初のビデオ フレームを表示し (同じビデオ画像を保持)、オーディオを正しく再生できます。
「av_write_trailer」にデバッグしてみましたが、ffmpeg ライブラリにあるため、何が悪いのか詳細な情報を取得できませんでした。
別の情報: プロジェクトの以前のバージョンは、オーディオ ストリームを追加せずに、ビデオ フレームを処理するだけです。そしてそれはうまくいきます。
ヒントや手がかりはありますか?