答案1
WebM 本质上是一种用于承载 VP8 或 VP9 视频和 Vorbis 或 Opus 音频的容器格式。它没有指定应如何进行流式传输,并且与 MPEG-2 TS 或 MP4 等其他容器格式相比,它通常没有广泛的流式传输支持。但是它仍然可以用于流式传输。
请注意,我所说的“流媒体”并不是指从网站下载单个文件,也不是指在 HTML5<video>
标签中嵌入单个(长)剪辑。过去几年,人们使用了几种更先进的流媒体技术:
RTMP 流式传输(实时消息协议),需要像Adobe Flash 媒体服务器,它将向客户端传输 Flash 支持的文件格式(MP4、FLV)。这种技术仍然非常流行,但正在慢慢消亡——就像所有基于 Flash 的技术一样。
由于 Flash 不支持 WebM,因此您无法在那里使用它。
RTSP 流式传输(实时流协议)是用于流媒体服务器的控制协议,例如QuickTime 流媒体服务器或者Helix 服务器客户端和服务器将通过此协议交换控制消息,而数据则通过实时协议(实时传输协议)有效负载。这在网络上很少见,而是网络电视。
有关于如何将 WebM 封装在 RTP 中。
HTTP 直播流和MPEG-DASH是自适应流媒体技术,其中客户端通过简单的 HTTP 请求从服务器请求视频块,这些请求基于 M3U8 播放列表文件(对于 HLS)或 MPD 清单(对于 DASH)。此文件索引这些包含实际音频和视频数据的文件块。
在 HLS 中,视频必须存储在 MPEG-2 TS 中,或者自 2017 年以来,存储在碎片化的 MP4(ISO 基础媒体格式)文件中。MPEG-DASH 有更广泛的支持;在这里,分段式 WebM 也可以使用。