防止浏览器下载过多视频

问题描述 投票:0回答:1

我在 Google Cloud Storage 的私人存储桶存储中托管一些视频。 这些视频的持续时间相当长(每个大约一个小时),但我只想循环显示这些视频的 3 到 4 秒(例如时间 1120 秒到 1123 秒之间)。 问题是,即使我给

<video>
标签提供了正确的 URL(类似于 https://mybucket.storage.googleapis.com/path-to-my-video.mp4?access_token=...t=1120 ,1123),浏览器(Chrome 或 Firefox)仍然下载大约。 10Mb的数据,对于3秒的播放来说有点长。 浏览器下载的数据似乎比播放我想要的范围所需的数据要多,因此我正在寻找一种方法来加载最少量的数据来播放我的范围。

我已经尝试过

preload="metadata"
并添加了这些事件监听器以确保视频永远不会超出边界播放:

<video controls preload="metadata"
          src={`${videosRootUrl}/${videoMetadata.name}/${videoMetadata.name}.mp4?access_token=${accessToken}#t=${from},${to}`}
          onError={err => handleVideoError(err)}
          onTimeUpdate={e => handleTimeUpdate(e, from, to)}
          onLoadedMetadata={e => onloadedmetadata(e.currentTarget, from)}
        >
  function handleTimeUpdate(event, from, to) {
    const videoElt = event.currentTarget
    const currentTime = videoElt.currentTime
    if(currentTime < from || currentTim
    }
  }
  function onloadedmetadata(video, from) {
    video.currentTime = from;
  }
javascript google-cloud-storage video-streaming html5-video buffering
1个回答
1
投票

Google Cloud Storage 无法像您期望的视频流服务那样处理特定视频。您无法清理到特定时间点或重新采样质量。 GCS 所能做的就是传递对象的全部内容,它并不真正关心对象包含什么。因此,应该预期浏览器将从头开始下载,并在播放内容时继续下载。

另请参阅:

© www.soinside.com 2019 - 2024. All rights reserved.