大虾救命呀~~~~,用Directx怎么样能够(遍历)获得关键帧的位置,或者判断某一帧是否为关键帧

knifezhtx 2004-05-13 10:58:29
问题如题,我用的是
pGraph->RenderFile(T2W(szFileName),NULL),播放AVI文件。
我想判断当前播放位置的帧是否为关键帧。
...全文
114 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
IUnknown9989 2004-06-09
  • 打赏
  • 举报
回复
实际上对于avi一般不用定位关键帧,因为avi如果能seek,则必然对所有的帧都有一个索引!
只要你定位准了都行,即使开始的不是关键帧,也没有关系,因为你能正确的定位到下一个关键帧,下面就可以正确播放了

问题的根本不是定位关键帧,而是要根据音频来定位视频的特定的帧数,也就是说你不能用你指定的时间直接去计算你需要定位的视频的帧数,你需要首先定位音频,然后用音频来重新修正视频的帧数,因为在一般情况下,不同格式的音频所要求的block的大小不一样,并且在很多情况下,你不能seek到一个音频chunk的内部,你需要定位到音频chunk的开始!

如果你一定要定位到关键帧,你需要反复修正,对于mpeg4的编码格式,在vop开始码(0x000001B6)后的第一个字节的最高两位指明了帧类型
下面是接着0x000001B6的字节的最高两位
00:关键帧
01:p帧
10:b帧
11:sprite 帧

http://ffmpeg.donews.net/ffmpeg/
windows_editor 2004-06-09
  • 打赏
  • 举报
回复
用ReaderFile自动化程度太高了把
最好自己写SourceFilter

2,543

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
  • 多媒体/流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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