早上好。我有一个带有提示点ex [5,10]的Flowplayer视频。在这里,我的视频从第5秒开始,在第10秒暂停。所以它有效。但是,视频有时会在第9秒暂停,有时会在第10秒暂停。所以它看起来像一个流动播放器的bug。
我很欣赏一个提示或解决方案,我怎样才能让视频每次都在准确的时间暂停。
这是代码段
flowplayer(flowplayerObject, {
hlsjs: {
xhrSetup: function (xhr) {
xhr.withCredentials = true;
}
},
swf: ------,
swfHls: -------,
clip: {
cuepoints:[videoStartTime,videoEndTime],
sources: [
{type: "application/x-mpegURL", src: -------l},
{type: "video/mp4", src: -------}
]
}
}).one("ready", function (e, api, video){
api.seek(parseInt(videoStartTime));
}).on("cuepoint", function (e, api, cuepoint) {
if (cuepoint.index === 1) {
api.pause();
};
}) ;
谢谢
答案 0 :(得分:1)
之前我没有使用过Flowplayer的cuepoints功能,但我熟悉seek()API函数,你可以在其中指定你想要寻找的视频中的时间(以秒为单位)。
要使搜索功能正常工作,您的视频需要在视频的每一秒都有一个关键帧。我有一种感觉,提示点会有相同的要求。
如果您熟悉ffmpeg,可以像这样使用“force_key_frames”参数为视频的每一秒添加一个关键帧 -
ffmpeg -i input_file_location -force_key_frames“expr:gte(t,n_forced * 1)” other_ffmpeg_parameters -y output_file_location
添加其他关键帧的缺点是您的视频会在磁盘上占用更多空间,但如果您需要视频暂停(或)在指定的时间一致地启动,我想不出任何其他方式使用Flowplayer的HTML5版本。
答案 1 :(得分:1)
感谢您的回答ami91。这是我从流动者开发者那里得到的:
对于触发cuepoint事件的250ms的进度事件(出于内存原因)的粒度有限制。 您正在使用的视频帧速率为25 fps,因此7.0s的提示点恰好位于帧边界上,因此如果触发提示点的进度事件低于7.0之前的125ms,则可能会过早触发。 稍后设置提示点应具有所需的效果。 你不会获得总精度,因为每隔0.04秒发射一次事件 - 甚至更多
所以,我只是在视频结尾加了0.5秒。