我有一个flv vid并动态设置提示点
vid.addASCuePoint(1, "cuePoint1");
但它并不总是停在同一个地方。我怎么能更准确?我认为这是由于缓冲和其他一些因素造成的?
import fl.video.*;
//etc etc
vid.addEventListener(fl.video.VideoEvent.READY, flvPlayback_ready);
vid.addEventListener(MetadataEvent.CUE_POINT, flvPlayback_cuePoint);
function flvPlayback_ready(evt:fl.video.VideoEvent):void {
vid.addASCuePoint(1, "cuePoint1");
vid.play();
}
function flvPlayback_cuePoint(evt:MetadataEvent):void {
vid.pause();
trace("CUE POINT!!!");
trace("\t", "name:", evt.info.name); // name: cuePoint1
trace("\t", "time:", evt.info.time); // time: 1
trace("\t", "type:", evt.info.type); // type: actionscript
}
答案 0 :(得分:0)
这可能是由于flv编码的关键帧数量(我认为使用MediaEncoder进行编码时,默认情况下,每30帧数为1)。
尝试重新编码flv并将Key Frame Distance设置为更小的值(甚至使用Media Encoder嵌入关键帧,而不是通过ActionScript添加它)。
答案 1 :(得分:0)
可以通过两种方式将提示添加到视频中: 1)编码到实际视频中 2)通过actionscript添加
我没有任何相关文档的链接,但我之前已经处理过这个问题。我读过的东西说通过actionscript添加提示点不会像在视频上编码那样准确。 ...并且您的代码表明这是您添加它们的方式......
我希望我有更好的消息,但我知道要获得更高精度的唯一方法是在编码期间添加关键点。