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,当前已经有讨论在其上面承载媒体流的想法和协议设计了。

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

相关推荐
程序员老陆2 小时前
WHIP 与 WHEP:WebRTC 直播的标准化入口与出口
ffmpeg·音视频·webrtc·whip·whep
平行云8 天前
国产GPU云渲染适配实战:驱动兼容、编码调优与多路并发
unity·ue5·webrtc·webgl·实时云渲染·云桌面·像素流送
隐擎fox9 天前
网络传输安全剖析:WebRTC 本地真实 IP 泄漏机制(STUN/TURN)与 Python 防护检测实战
网络·网络协议·tcp/ip·安全·webrtc
福大大架构师每日一题11 天前
mediamtx v1.21.0 发布:Media-over-QUIC、RTSP、HLS、WebRTC 与安全能力全面升级
安全·webrtc
脏脏a12 天前
Neko 自托管实战:WebRTC 远程浏览器、多用户权限与公网访问
webrtc
cuijiecheng201813 天前
从 6.49 秒到约 1.9 秒:RK3588上的WebRTC 实时流启动速度优化记录
webrtc
SendTomo14 天前
SendTomo 与 send.wang 全景对比评测与实战指南
网络·网络协议·tcp/ip·webrtc·p2p
java_logo14 天前
Docker 部署 SRS:轻松搭建实时音视频流媒体平台
docker·容器·webrtc·实时音视频·rtmp·http-flv·轩辕镜像
wjcroom15 天前
一个可以在线多人玩的五子棋开发与布署方法-WebRTC和WebSocket的测试方法
websocket·网络协议·webrtc
cuijiecheng201818 天前
RK3588 WebRTC 实时流卡顿优化:从视频桥接到 H.264 PTS 回退
音视频·webrtc·h.264