私は、MPEG4(I、p、p、p、p ...)フレームのいくつかを格納する、いわゆる "ブロック"を持っています。 すべての「ブロック」について、フレームは「I」フレームで開始し、次の「I」フレームの前に終了します。 (VOL - 「I」フレームの前に「visual_object_sequence_start_code」が必ず含まれています)FFmpegを使用したMPEG逆方向フレームの復号
「ブロック」フレームを「後方」モードで再生できる必要があります。 厚いがあることである:それは「P」フレームだと、それを正しくする「インターフレーム(I)」を必要とするため
それは、ちょうど私のブロックの最後のフレームを取るとデコードを実行することはできませんデコードされる。
最初の "I"フレームを取得してから、それをffmpegの "avcodec_decode_video"関数に渡して最後の "P"フレームがffmpegに渡されますその前の "P"フレームで、右か? (だけでなく..私の知る限り、この方法をテストしてきたように、私の最後のPフレームは、アーティファクトを持っていたデコード)
今、私は逆方向に行ってる方法です遊ぶ - 最初に私の「ブロック」のフレームの全てをデコードRGBに変換してメモリに格納します。 (ほとんどの場合、ブロックあたり最大25フレームまでです)しかし、この方法は実際には多くのメモリを必要とします...(特にフレームの解像度が高い場合) そして、これは正しい方法ではないと感じていますこれは...
私は質問したいと思いますが、FFmpegを使用してこの「後方に」フレームのデコード/再生を行う方法はありますか?
おかげ
デコードされた「ブロック」フレームをすべてJPEG形式で保存していますが、メモリを大幅に節約できますが、最終的に出力フォーマットはRGBでなければなりません。 JPEGからRGBへの変換... これは正しい選択ではないと感じています(すべての画像をメモリに保存しています) – Gediminas