CV_CAP_PROP_POS_FRAMES
プロパティを設定し、次のようにフレームを読み取ることで、特定のフレームにジャンプしようとしています。
cvSetCaptureProperty( input_video, CV_CAP_PROP_POS_FRAMES, current_frame );
frame = cvQueryFrame( input_video );
私が直面している問題は、OpenCV 2.1が12個の連続する値に対して同じフレームを返すのcurrent_frame
に対し、キーフレームだけでなく個々のフレームを読み取りたいということです。誰か教えてもらえますか?
調査を行ったところ、問題の原因は解凍アルゴリズムであることがわかりました。
MPEGのようなアルゴリズム(HDなどを含む)は、各フレームを個別に圧縮しませんが、キーフレームを時々保存し、最後のフレームと後続のフレームの違いのみを保存します。
あなたが報告した問題は、フレームを選択すると、デコーダー(ffmpeg、可能性が高い)が自動的に次のキーフレームに進むという事実が原因です。
それで、これを回避する方法はありますか?キーフレームだけでなく、個々のフレームも必要です。