mpeg4 ビデオ ストリームのカスタム実装用のビデオ デコーダー (FFMPEG/AVCodec を使用) を作成しています。このビデオ ストリームの特異性は、同じ親に基づいて多くの P フレームを作成する多くの「息子」ストリームに分割できることです。デコードしようとしているビデオ ストリームは、実際には一種の「ビデオ ツリー」です。このようなもの:
I <--P <--P <---------------------P <-------------- P <------------ P
\ <--P <--P <--P \ <--P <--P \ <--P <--P
1 つのパスをたどることに決めたときに正常に動作する基本的なデコーダーを既に作成しました。問題は、ビデオ ツリー内の複数のパスをたどろうとした場合です。この時点で、デコーダーを「フォーク」して、2 つの異なるビデオ ストリームを追跡する必要があります。分割はキー フレームの後だけでなく、P フレームの後でも発生する可能性があるため、AVCodecContext を複製する必要があります (私は を使用しますavcodec_copy_context
) が、クリーン ステータスから新しいデコーダを作成するようです..以前のビデオ ステータスを無視しているようです、したがって、デコードされた P フレームは空のビデオ フレームに「適用」されます。おそらく使用してコンテキストをコピーするavcodec_copy_context
だけでは不十分です...何か提案はありますか? デコーダーのコンテキストと完全なステータスを複製するにはどうすればよいですか? または、参照を使用してストリームをデコードする他の方法はありますか? ありがとう!