WebM 有自己的交付方式吗?它与 RTMP 和 HTTP Live Streaming 有什么关系?

Col*_*gan 13 streaming rtmp webm

当我阅读流媒体格式和打包方法时,我对 WebM 被描述为与RTMPHTTP Live Streaming互斥的方式感到困惑

根据我的理解,WebM 是一种视频格式,就像一种对视频文件进行编码的方式,具有 .webm扩展名,而 RTMP 和 HLS 都是通过实时流在网络上发送视频格式的方式(一种打包信息和通过某些 Web 协议(例如 HTTP TCP)发送它们)。

WebM 是否有自己的专有方法通过网络发送自己?RTMP 和 HLS 是否无法发送 WebM 格式的视频?

slh*_*hck 21

WebM 本质上是一种用于承载 VP8 或 VP9 视频和 Vorbis 或 Opus 音频的容器格式。与其他容器格式(如 MPEG-2 TS 或 MP4)相比,它没有指定应如何流式传输,并且通常不支持流式传输。但是,它仍然可以用于流式传输。

请注意,“流式传输”并不是指从网站下载单个文件,或在 HTML5<video>标签中嵌入单个(长)剪辑。在过去的几年里,已经使用了几种更先进的流媒体技术:

  • RTMP 流(实时消息传递协议),需要像Adobe Flash Media Server这样的 RTMP 服务器,它将 Flash 支持的文件格式(MP4、FLV)流式传输到客户端。这仍然很普遍,但缓慢而肯定地消失了——就像所有基于 Flash 的技术一样。

    由于 Flash 不支持 WebM,您不能在那里使用它。

  • RTSP 流(实时流协议)是一种用于流服务器的控制协议,例如QuickTime Streaming ServerHelix Server。客户端和服务器将通过该协议交换控制消息,而数据通过RTP(实时传输协议)有效载荷传输。这在网络上很少见,而是IPTV

    有关于如何在 RTP 中封装 WebM 的规范。

  • HTTP Live StreamingMPEG-DASH是自适应流技术,其中客户端基于 M3U8 播放列表文件(在 HLS 的情况下)或 MPD 清单(在情况下)通过简单的 HTTP 请求从服务器请求视频块短跑)。该文件索引这些包含实际音频和视频数据的文件块。

    在 HLS 中,视频必须存储在 MPEG-2 TS 中,或者自 2017 年起存储为碎片化的 MP4(ISO 基本媒体格式)文件。MPEG-DASH 有更广泛的支持;在这里,也可以使用分段的 WebM