网页端WebRTC推流转换为RTMP/GB28181等其他直播流协议
WebRTC是一个在WEB浏览器端广泛应用的流媒体引擎,通过点对点的方式实现音视频数据的传输,以完成视频会议等功能。但是考虑到WebRTC主要是为有限人数情况下的点对点视频会议服务,在做其他直播应用的时候,或者接入现有流媒体网络的情况下,并不太适合,可以考虑将浏览器端的WebRTC流,转换为RTMP/GB28181等其他流媒体协议。经过一段时间的研究,已经成功实现了这一功能,这里我介绍一下转换原理。
WebRTC工作流程
WebRTC 协议主要由三部分组成:

-
用户接口 (User Interface):提供了一组 API,使得开发者可以在浏览器和移动应用程序之间进行音视频通信;
-
网络协议栈 (Network Protocol Stack):负责网络数据的传输和协议处理;
-
音视频引擎 (Audio/Video Engine):负责音视频数据的处理和编解码。
在建立音视频通信之前,浏览器之间需要通过信令服务器进行一系列交互,以协商会话参数和通信方式。下面是 WebRTC 的信令交互过程:
-
建立房间(Room):浏览器A和B都需要进入同一个房间,以便进行音视频通信。在进入房间之前,它们需要通过信令服务器进行认证和授权。
-
交换SessionDescriptionProtocol(SDP):在进入房间之后,浏览器A和B都会生成SDP信息,用于协商音视频通信的参数和格式。它们会将自己的SDP信息通过信令服务器发送给对方。

文章介绍了如何将WebRTC的点对点音视频流转换为RTMP或GB28181等其他直播协议,涉及WebRTC的工作流程,包括用户接口、网络协议栈和音视频引擎,以及信令交互、ICECandidate、PeerConnection等概念。在理解WebRTC的传输协议和数据通道后,提出了协议转换方案,包括构建通信协议、处理信令和数据包,并解决了STUN报文、RTCP交互和关键帧重传等问题。
最低0.47元/天 解锁文章
1505

被折叠的 条评论
为什么被折叠?



