ffmpegライブラリを使用してビデオ内の特定のフレームを検索しようとしています。機能があることは知っていましたが、代わりav_seek_frame()
に使うことをお勧めしましavformat_seek_file()
た。ここで言及されている同様の何か。
avformat_seek_file()
いつもあなたが望む正確なフレームにあなたを連れて行くことができるとは限らないことを私は知っています、しかしこれは私にとっては大丈夫です。最も近いキーフレームにジャンプしたいだけです。だから私はビデオを開き、ビデオストリームを見つけて次のように呼び出します:
avformat_seek_file( formatContext, streamId, 0, frameNumber, frameNumber, AVSEEK_FLAG_FRAME )
常に0を返すので、正しい仕上がりだと理解しています。ただし、正常に機能しません。を呼び出す前後に、このようにバイト位置を確認しますavformat_seek_file()
。実際には変化しますが、異なるターゲットフレーム番号を入力しようとすると、常に同じように変化します。つまり、この呼び出し後のバイト位置は、frameNumber
値が異なっていても常に同じです。明らかに、私は何か間違ったことをしていますが、正確には何がわかりません。それが問題になるかどうかはわかりませんが、そのために.h264ファイルを使用しています。フレームの代わりにタイムスタンプを使用したり、前後のバッファをフラッシュしたりして、さまざまなフラグ、さまざまなファイルを試しましたが、うまくいきません。誰かがそれの何が悪いのか教えてくれたらとてもありがたいです。