小编Kae*_*ael的帖子

ffmpeg函数问题avformat_seek_file()

我试图使用ffmpeg库在视频中寻找给定的帧.我知道有av_seek_frame()功能,但建议使用它avformat_seek_file().这里提到类似的东西.

我知道avformat_seek_file()不能总是把你带到你想要的确切框架,但这对我来说没问题.我只是想跳到最近的关键帧.所以我打开视频,找到视频流并像这样调用它:

avformat_seek_file( formatContext, streamId, 0, frameNumber, frameNumber, AVSEEK_FLAG_FRAME )
Run Code Online (Sandbox Code Playgroud)

它总是返回0,所以我理解为正确完成.但是,它不能正常工作.我检查字节位置像这里之前和之后调用avformat_seek_file().实际上它会改变,但每当我试图放置不同的目标帧数时,它总会以相同的方式改变!我的意思是,即使使用不同的frameNumber值,此调用后的字节位置也始终相同.显然,我做错了但我不知道到底是什么.我不知道它是否重要,但我正在使用.h264文件.我尝试了不同的标志,不同的文件,使用时间戳而不是帧,前后刷新缓冲等等,但它对我不起作用.如果有人能告诉我它有什么问题,我将非常感激.

c++ ffmpeg libavformat

1
推荐指数
1
解决办法
8568
查看次数

标签 统计

c++ ×1

ffmpeg ×1

libavformat ×1