webrtc推流能成为直播的主要方案吗?

妮妮:今天我们聊聊Web RTC做直播推流。

小新:好的,WHIP推流协议实现已经合入FFMPEG,OBS。推进了web rtc推流的方案。

妮妮:那什么是WHIP协议呢?

小新:WHIP的全称是:Web RTC HTTP Ingestion Protocol,是一种基于 HTTP 的协议,专为简化 Web RTC 推流流程而设计。它通过标准化的 HTTP 接口,替代传统 Web RTC 中复杂的 SDP 信令交换和 ICE 协商,广泛应用于低延迟直播、视频会议和远程控制等场景。

妮妮:哪些客户端和服务端支持呢?

小新:WHIP 的核心功能是将客户端(如浏览器或 OBS,FFMPEG8.0)生成的媒体流推送到媒体服务器(如 SRS、Janus、LiveKit)。它的主要优势包括简化信令流程、标准化接口以及基于 WebRTC 的低延迟传输。

妮妮:这么多的应用,是不是意味WHIP协议是未来更好的直播推流协议了?

小新:个人认为并不会是这样。

妮妮:详细说说。

小新:先说说视频直播的技术要求和特点:首先,直播要求平稳,流畅,不卡顿,不花屏;其次,能容忍网络抖动,短时间的网络阻塞不会影响流畅性;再者,运动直播,游戏直播要求高帧率,保证其高分辨率,高帧率;

妮妮:直播对质量和体验的要求很高呀,之前的直播技术推流是怎么处理的?

小新:传统的推流采用RTMP协议,客户端推流的时候,如果遇到TCP发送阻塞,会有一个本地缓存队列把暂时要发送的音视频缓存起来,这个队列可以有2到6秒;而拉流播放端也有个2~4秒的播放缓存,也就是即使出现几秒的抖动,卡顿,是不影响用户流畅观看的。

妮妮:哦,理解了,也就是用缓存队列换流畅,或者说用延时换流畅。那么WebRTC推流的技术特点呢?

小新:Web RTC的传输,是低延时的传输方式。它的流控方式有:丢包重传,动态码率,流量整形。

妮妮:听着好高大上,能详细说说吗?

小新:传输基于不可靠的UDP网络,也就是视频传输可能出现丢包,所以有自己的丢包重传机制,但是丢包重传的重传队列只有几百毫秒,也就是达不到秒级。

妮妮:听着是有点悬,那遇到网络短暂的抖动,假如短暂的阻塞了,怎么处理?

小新:遇到网络阻塞时,其没有阻塞缓存队列,是通过带宽预测算法估计出口速率,采用降低视频速率,降低视频编码质量的方式,有时候预测算法不及时,就可能出现少量的丢包情况。

妮妮:也就是观看者可能看见花屏,或抖动的画面。

小新:是的。而且Web RTC对编码也有限制,H264编码仅仅支持baseline profile和最低main的profile,也就是压缩率最低的方式。

妮妮:但是直播不是应该提供高清,且压缩比高的视频吗?

小新:你说的对,所以这方面Web RTC是满足不了的。

妮妮:虽然有这么多缺点,那Web RTC的直播推流有哪些实际的应用场景呢?

小新:如一些会议过程,主播需要用OBS推流加入某个会议,并直播出去,这种情况就需要Web RTC;或者某些平台仅支持WHIP的接入方式;再就就是工业界,一些设备推流用Web RTC技术,实现高实时性观看的需求。

妮妮:理解了,传统的直播协议RTMP暂时还不能被替代,Web RTC的直播推流仅仅在某些场景才会使用。

小新:是的,不过使用者要想要抗弱网的能力,可以考虑基于QUIC协议的WebTransport,当前已经有讨论在其上面承载媒体流的想法和协议设计了。

妮妮:技术真是在飞速的发展。如果大家觉得感兴趣,欢迎大家点赞,关注我们。

相关推荐
XHW___0011 天前
RTP/RTCP 基本知识
webrtc·rtp/rtcp
runner365.git1 天前
语言接入大模型,websocket还是webrtc?
websocket·网络协议·webrtc
好多渔鱼好多4 天前
【流媒体协议】WebRTC 技术详解
webrtc
txp玩Linux4 天前
webrtc降噪模块NS源码解析(1)
webrtc
鲲鹏混子鱼4 天前
WebRTC P2P信令服务架构设计文档
网络协议·webrtc·p2p
平行云11 天前
实时云渲染支持数字孪生智能工厂:迈向“零原型”制造
人工智能·unity·ue5·云计算·webrtc·制造·实时云渲染
笔夏12 天前
【安卓学习之webRTC】学习相关资料
android·学习·webrtc
每日出拳老爷子12 天前
【浏览器方案】只用浏览器访问的内网会议系统设计思路(无客户端)
运维·服务器·webrtc·实时音视频·流媒体
softshow102615 天前
Vue3 :封装 WebRTC 低延迟视频流与 WebSocket 实时状态驱动的大屏可视化
websocket·网络协议·webrtc