Media Over QUIC (MoQ)是一种利用 QUIC 特性来改善互联网上媒体文件传输的协议。作为一种新兴标准,它为在线文件传输提供了更多的选择。
底层协议 QUIC(Quick UDP Internet Connection,快速UDP网络连接) 是在谷歌支持下开发的基于 UDP 的协议,后来由互联网工程任务组(IETF)进行了改进和标准化。它旨在解决 HTTP/2 TCP 连接的缺点,如开销、延迟和队头阻塞。
为什么要创建 MoQ?
MoQ 的开发主要是为了满足在不同网络条件下更高效、稳健、快速地传输媒体内容的需求。现有的媒体传输协议(如 RTMP、HLS 和 WebRTC)经常面临高延迟、数据包丢失和拥塞等挑战,这些都是流式传输高质量视频和音频的巨大弊端。
QUIC 的引入改进了连接建立时间、无队头阻塞的多路复用和更好的拥塞控制等方面。MoQ 在这些改进的基础上,重点关注媒体流,目的是在不断变化的网络条件下提供良好的用户体验。
与以往解决方案相比的优势
- 减少延迟:目前向数百万用户传送媒体的解决方案延迟较高。MoQ 可降低媒体流的整体延迟,同时共享当前标准化播放解决方案的许多功能。
- 连接稳定性:利用 QUIC 在用户 IP 地址发生变化时(如从蜂窝数据切换到 Wi-Fi 时)保持连接的能力,MoQ 可确保不间断的媒体流,从而提高观众的满意度。
- 流多路复用:它允许通过单个 QUIC 连接传输多个媒体流,而不会相互干扰,这是对 TCP 协议的升级,因为在 TCP 协议中,一个缓慢的媒体流会妨碍其他媒体流的传输。MoQ 还允许在传输过程中对特定媒体进行优先排序。
- 改进的丢包处理:它采用先进的重传技术,可根据网络条件进行实时调整,从而在次优网络环境中保持媒体质量。
- 可扩展性:MoQ 解决了当前标准化低延迟解决方案(如视频会议服务中使用的解决方案)中存在的可扩展性问题,其设计可有效处理大规模媒体传输,即使用户数量增加也能保持低延迟。
- 与编解码器无关:虽然 MoQ 并未明确声称具有 “与编解码器无关 “的功能,但其设计通过专注于在网络上传输媒体数据,可适应各种编解码器。这种设计与用于编码和解码的特定编解码器无关。此外,MoQ 还与 WebCodecs 集成(WebCodecs 是浏览器 API,可促进各种视频和音频格式的解码),从而利用浏览器的内置功能进行解码,而无需依赖协议本身的特定编解码器。这种灵活性使系统具有更强的兼容性和未来适应性。
MoQ 协议现状与展望
MoQ 仍在积极开发中,尚未完全标准化,但该协议旨在通过浏览器和非浏览器端点实现,目的是提高媒体传输的可扩展性和效率。
开发工作还得到了开发人员社区的支持,他们为与 MoQ 相关的开源项目做出了贡献。这包括本地组件和网络组件的开发,以及与现有工具(如 ffmpeg 和 OBS 插件)的集成。
尽管 MoQ 仍处于开发的早期阶段,但通过将低延迟与高可扩展性相结合,它有望在现有技术的基础上实现重大改进,并有可能在实现标准化的过程中改变实时媒体传输方式。