如何使用 videojs 从 s3 预签名 url 流式传输视频文件

How to stream a video file from an s3 presigned url using videojs

我目前正在尝试从 s3 存储桶流式传输一个小视频文件。我在 s3 存储桶上的视频文件大小为 23.5 Mb,格式为 video/quicktime。我在 jQuery 中使用以下代码来检索预签名的 URL

 const video = await fetch('http://localhost/getUrl', {
    method: "POST",
    body: "key",
    headers: {
        'Content-Type': 'application/json'
    }
})
const result = await video.text();

结果变量 returns 一个预先签名的 url,单击它会下载视频文件。

我的html代码如下

<video id="vid1" class="video-js " controls preload="auto" width="640" height="265">
</video>

之后我将 id vid1 中的 src 设置如下

if (result){
    videojs("vid1").src([
        { type: 'video/quicktime', src: result }
      ]);
}

但是文件没有播放,我收到以下错误

video.min.js:1 VIDEOJS: ERROR: (CODE:4 MEDIA_ERR_SRC_NOT_SUPPORTED) The media could not be loaded, either because the server or network failed or because the format is not supported. st {code: 4, message: "The media could not be loaded, either because the …rk failed or because the format is not supported."}.

我如何使用带有预签名 urls 的 videojs 从 s3 存储桶流式传输视频文件

无法播放,因为浏览器无法播放video/quicktime。 mov 不是 HTML5 视频的格式。尝试使用 h264/acc 和 video/mp4 类型的 mp4。