首页 > 解决方案 > 如何在html5和js中下载部分视频

问题描述

我想下载或保存在我的 HTML 中播放的视频的一部分,我不想访问网络摄像头和麦克风我只需要下载或播放另一个视频标签中的视频标签的一部分或下载它.. . 我该怎么做?... 我看到的任何东西 正在访问麦克风和网络摄像头

    <video id="yourVideoplayer" width="640" height="480" preload="auto"> //preload="auto" buffers the video if initialize. you cannot seek a video which isn t buffering already
  <source src="test.mp4" type="video/mp4" />
  <source src="test.ogv" type="video/ogg" /> 
  This browser is not compatible with HTML 5
</video>

我想要一个按钮从播放的视频开始录制然后我想保存它

标签: javascripthtmlhtml5-video

解决方案


<!DOCTYPE html>
<html>
<body>    
<video id="original-video" width="320" height="240" controls>
  <source src="movie.mp4" type="video/mp4">
  <source src="movie.ogg" type="video/ogg">
  Your browser does not support the video tag.
</video>
<video width="320" height="240" data-from="original-video" data-start="5" data-end="10" data-autoreplay="true" autoplay>
</video>
<video width="320" height="240" data-from="original-video" data-start="5" data-end="10" data-autoreplay="false" autoplay>
</video>
<script>
const body = document.querySelector('body');
const videos = document.querySelectorAll('video[data-from]');

videos.forEach(video=>{
    const originalVideo = document.getElementById(video.dataset.from);
    [...originalVideo.children].forEach(child=>{
        video.appendChild(child.cloneNode())
    });

    video.duration = Number(video.dataset.end) - Number(video.dataset.start);
    video.currentTime = video.dataset.start;

    video.addEventListener('timeupdate', (e)=>{
      if(video.currentTime>=video.dataset.end){
          video.pause();
          video.currentTime=video.dataset.start;
          if(video.dataset.autoreplay==="true"){
            video.play();
          }
      }
    });
});

</script>
</body>

这是我能达到的最接近您的要求。您使用data属性来指定:

  • 原始视频
  • 开始
  • 结束
  • 如果它应该不停地重播

推荐阅读