【发布时间】:2019-06-09 12:17:23
【问题描述】:
我有一个 10 秒的视频,我想使用 HTML5 控制它。用户有 2 个输入字段。一个是第一个框中的开始时间(如 3 秒),在第二个框中输入播放持续时间(6 秒)。例如,他们可能希望在 3 秒后开始播放视频并播放 6 秒。如何下载该视频的特定部分或在另一个视频元素中显示该部分视频并下载它?
我尝试使用将视频播放到画布并下载它,但我失败了。没有关于将视频播放到另一个元素的信息。
我尝试使用 canvas drawImage() 方法实现它,但它没有在画布中显示任何内容。
function extractFunction(){
video.addEventListener('timeupdate', function() {
if (video.currentTime >= endTime) {
this.pause;
}
}, false);
video.load();
video.play();
try {
video.currentTime = starttime;
ctx.drawImage($this, 0, 0);
setTimeout(loop, 1000 / 30); // drawing at 30fps
} catch (ex) {
}
}
在上面的代码中,我有一个按钮会触发这个功能。
【问题讨论】:
-
欢迎来到 StackOverflow!分享您的研究对每个人都有帮助。告诉我们您尝试了什么(带有代码示例)以及为什么它不能满足您的需求。这表明您已经花时间尝试帮助自己,它使我们免于重复明显的答案,最重要的是它可以帮助您获得更具体和相关的答案!另见:How to Ask
-
要将视频播放到画布上,您需要使用 drawImage() 方法。还有一个视频有一个
currentTime属性。您可以使用此属性从某个时刻开始在画布上绘制视频。它也可以用来停止视频。 -
您最好使用画布中的预览,如下面的示例所示,这样用户可以确认开始/结束时间是您想要的,然后将这些作为参数传递给服务器端脚本使用 ffmpeg(或类似的)按要求渲染视频
标签: javascript html5-canvas html5-video