h264编码的asf文件如何实现快进、快退?
h264编码的asf文件如何实现快进、快退?
用DirectShow外挂codec可以实现播放,但没法实现快进、快退。seeking接口的setRate也不管用。
哪位朋友提供一个思路或解决办法?
[解决办法]
这个需要外挂的CODEC支持才行。
[解决办法]
需要分析文件流。
[解决办法]
ASF文件一般都会有simple index object。可以通过解析它,得到keyframe所在文件位置以及PTS。将这些位置合并成一张索引表。快进,快退,每次的跳转可以通过查表,拿到下次跳转的位置即可。
举例:当前10秒,如果下次跳到12秒,则查索引中12秒附近keyframe的位置在哪里,查到后,file seek到哪个位置,解出一张frame。后面,继续重复这样的操作,便实现了快进。