Flowplayer 使用提示点在不同时间暂停
Flowplayer pauses at different times with cuepoint
早上好。我有一个带有提示点的 Flowplayer 视频 [5、10]。在这里,我的视频从第 5 秒开始,在第 10 秒暂停。所以它有效。但是,视频有时会在第 9 秒暂停,有时会在第 10 秒暂停。所以它看起来像一个 flowplayer 错误。
我希望得到提示或解决方案,如何让视频每次都在准确的时间暂停。
这是代码片段
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();
};
}) ;
谢谢
我以前没有使用过 Flowplayer 的提示点功能,但我熟悉 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
添加额外关键帧的缺点是您的视频会占用更多 space 磁盘空间,但如果您需要视频在指定的时间连续暂停(或)开始,我想不出使用 HTML5 版本的 Flowplayer 的任何其他方式。
感谢 ami91 的回答。这是我从 flowplayer 开发者那里得到的:
触发提示点事件的进度事件的粒度限制为 250 毫秒(出于内存原因)。
您使用的视频的帧速率为 25 fps,因此 7.0s 的提示点恰好位于帧边框上,因此如果触发提示点的进度事件在 7.0 之前低于 125 毫秒,则可能会过早触发。
稍微晚一点设置提示点应该会产生预期的效果。
你不会得到完全的精确度,因为每 0.04 秒触发一次事件 - 甚至更多
所以,我只是在视频结尾添加了 0.5 秒。
早上好。我有一个带有提示点的 Flowplayer 视频 [5、10]。在这里,我的视频从第 5 秒开始,在第 10 秒暂停。所以它有效。但是,视频有时会在第 9 秒暂停,有时会在第 10 秒暂停。所以它看起来像一个 flowplayer 错误。
我希望得到提示或解决方案,如何让视频每次都在准确的时间暂停。
这是代码片段
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();
};
}) ;
谢谢
我以前没有使用过 Flowplayer 的提示点功能,但我熟悉 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
添加额外关键帧的缺点是您的视频会占用更多 space 磁盘空间,但如果您需要视频在指定的时间连续暂停(或)开始,我想不出使用 HTML5 版本的 Flowplayer 的任何其他方式。
感谢 ami91 的回答。这是我从 flowplayer 开发者那里得到的:
触发提示点事件的进度事件的粒度限制为 250 毫秒(出于内存原因)。 您使用的视频的帧速率为 25 fps,因此 7.0s 的提示点恰好位于帧边框上,因此如果触发提示点的进度事件在 7.0 之前低于 125 毫秒,则可能会过早触发。 稍微晚一点设置提示点应该会产生预期的效果。 你不会得到完全的精确度,因为每 0.04 秒触发一次事件 - 甚至更多
所以,我只是在视频结尾添加了 0.5 秒。