了解 blob url 视频流

Posted

技术标签:

【中文标题】了解 blob url 视频流【英文标题】:Understanding blob url video streaming 【发布时间】:2020-09-19 14:52:02 【问题描述】:

许多视频流网站,例如 youtube,似乎都有一个 blob url 作为他们的视频源。搜索,我无法弄清楚这是如何工作的。比如……

<video src="blob:https://www.youtube.com/ea375257-e9a8-4c3f-9cef-d8cf0f3ae53f"></video>

URL.createObjectURL(),获取 blob url 的唯一方法,接受 File、Blob 或 MediaSource 对象。由于视频正在流式传输,因此必须不断添加新数据,而 File 和 Blob 似乎没有该选项,而 MediaSource 有,但在 developer.mozilla.org 上被标记为实验性功能...

我的问题是这个通过 blob url 流式传输视频的过程是如何工作的?

【问题讨论】:

【参考方案1】:

我发现这篇文章解释了这个过程......

medium article about web streaming

这是答案,但如果您想更深入,请阅读文章。

具有可变比特率或只是流式视频需要不断添加新的视频数据,这确实排除了不具备该功能的文件或 Blob 对象。 MediaSource,由于某种原因在 developer.mozilla.org 上被标记为实验性的,实际上是视频流服务在这种情况下使用的技术。 URL.createObjectURL() 仅用于获取指向 MediaSource 对象的 blob url。

然后Source Buffers 用于向 MediaSource 提供数据。可以使用多个缓冲区来存储诸如单独的音频和视频之类的东西。重要的是 SourceBuffer 对象包括附加新数据的函数,称为媒体段。这个关键部分允许部分加载视频并将片段附加到视频数据中。对于可变比特率(多种分辨率)或多种语言等问题,只需选择和加载特定分辨率/剪辑/音频并将其附加到视频数据中即可。

【讨论】:

以上是关于了解 blob url 视频流的主要内容,如果未能解决你的问题,请参考以下文章

解码 facebook 的 blob 视频 url

Python:如何下载 blob url 视频?

将视频 Blob URL 转换为视频 mp4 文件

html HTML视频播放文件blob对象url

html HTML视频播放文件blob对象url

Safari:无法从 blob url 动态加载视频