FFMpeg中av_seek_frame按时间戳定位视频帧播放视频花屏问题

小小皮皮虾 2015-05-27 03:09:36
利用FFMpeg的av_seek_frame函数按时间定位视频播放MP4格式视频,会有花屏,播放AVI格式视频则不会出现,刚开始接触FFMpeg,希望有大神可以帮忙解答,非常感谢!代码如下:
...全文
7568 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
百灵工作室 2018-01-06
  • 打赏
  • 举报
回复
向后取I帧解码进行显示
Jack Yuan(ChengDu) 2017-08-23
  • 打赏
  • 举报
回复
楼主的问题解决了吗?
那一片海 2016-12-13
  • 打赏
  • 举报
回复
引用 2 楼 jiangsuitao 的回复:
请问楼主,不同版本的ffmpeg,av_seek_frame里面的时间戳的单位是不是不同,我用视频流的duration/2*流的时间基得到视频时长秒,再乘以AV_TIME_BASE,总是会跳到视频末尾去,得不到视频中间某一帧的图片,而我不乘AV_TIME_BASE的话,反而可以得到需要的图像,不知怎么回事
可以这样处理 AVRational time_base_q ; time_base_q.num = 1; time_base_q.den = AV_TIME_BASE; int64_t seek_target = av_rescale_q(State.uSeekPos, time_base_q, m_pAVFormatCont->streams[stream_index[0]]->time_base); if (av_seek_frame(m_pAVFormatCont, stream_index[0], seek_target, State.nSeekFlag) < 0)
jiangsuitao 2016-01-14
  • 打赏
  • 举报
回复
请问楼主,不同版本的ffmpeg,av_seek_frame里面的时间戳的单位是不是不同,我用视频流的duration/2*流的时间基得到视频时长秒,再乘以AV_TIME_BASE,总是会跳到视频末尾去,得不到视频中间某一帧的图片,而我不乘AV_TIME_BASE的话,反而可以得到需要的图像,不知怎么回事
小小皮皮虾 2015-05-29
  • 打赏
  • 举报
回复
都没有人回答吗?。。。。。 或者或者如果想用FFMpeg解码视频,按照时间获取某一帧,是不是就是用av_seek_frame函数?我要做的其实就是对按照时间解码的视频进行播放,暂停,停止操作。

1,451

社区成员

发帖
与我相关
我的任务
社区描述
多媒体/设计/Flash/Silverlight 开发 图象工具使用
社区管理员
  • 图象工具使用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧