我有一个H.264编码的视频,它有大约100毫秒的关键帧。我注意到我不能寻求某些关键帧。在我做了一个搜索之后,游戏头跳到了所需的时间(关键帧时间),以及它如何向前或向后跳几毫秒。我对NetStream.time的跟踪输出看起来像
ns.t: 2.86
ns.t: 2.86
ns.t: 2.86
10:12:01 GMT+0100 VideoPlayerNetStream: NetStatusEvent - NetStream.Seek.Notify time: ns.time= 2.86
10:12:02 GMT+0100 VideoPlayerNetStream: Seek.Notify info.seekPoint:未定义
ns.t: 2.76
ns.t: 2.76
ns.t: 2.76
ns.t: 2.76
ns.t: 2.8
ns.t: 2.8
我的目标是2.76(2秒76毫秒)。正如您所看到的,它确实寻求到所需的关键帧(在2.76有一个关键帧),但随后跳到了2.8。这会给跳转帧向后功能带来很多问题。奇怪的是,它适用于某些关键帧,而对某些关键帧则不起作用。视频有问题吗?有什么方法可以测试视频是否被正确编码?在谷歌上搜索,显示人们在寻找非关键帧时遇到了问题。但在这里,我试图寻找关键帧。该应用程序工作的视频,其中有关键帧是秒间隔。当视频以不同的方式编码以获得毫秒特性时,问题就出现了。
我已经为这个问题挣扎了很长一段时间了,如果我能收到任何正确方向的提示来解决这个问题,我将不胜感激。
问候
乌沙利
发布于 2011-02-01 15:58:07
如“帮助”中所述:
-- playheadTime属性在调用寻求方法之一或设置playheadTime以导致查找之后,可能没有预期的值。对于渐进式下载,只能查找关键帧;因此,查找会在指定的时间之后将您带到第一个关键帧的时间。
..。
查找是异步,因此如果调用查找方法或设置playheadTime属性,则playheadTime 不会立即更新。若要获取查找完成后的时间,请侦听查找事件,该事件在更新playheadTime属性之前不会启动。
http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/fl/video/VideoPlayer.html#seek()
因此,当游戏头实际到达关键帧时(应该是)分派http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/fl/video/VideoEvent.html#SEEKED。
换句话说,只有很少的关键帧使得搜索方法变得不精确。注:对于流媒体视频,播放头总是被立即设置为适当的时间/关键帧,这是不正确的。
如果启用了cuepoint,一个解决方案是“插入”视频的重要帧,并使用seekToNavCuePoint()、seekToNextNavCuePoint()和seekToPrevNavCuePoint(),据我所知,这些帧更精确。
https://stackoverflow.com/questions/4861550
复制相似问题