Webrtc使用是RTP分装码流,跟视频监控领域,IPTV领域,会议电视一样都是RTP承载媒体流,只不过webrtc信令遵守ICE框架,走自定义信令,IPTV领域走RTSP信令,视频监控走GB28181或者onvif信令,会议电视走h323或SIP协议。但webrtc 不能像传统IPTV和视频监控,会议电视一样可以直接抓包导流播放,因为webrtc的RTP流做了以下工作:
1、码流加密,走SRTP协议。传统IPTV和视频监控也有走SRTP,但开销大,因此不常见,特别是通用嵌入式设备无法承受加密和加密的开销。
SRTP的密钥协商
2 、Webrtc优先级是VP9, VP8,H264,不支持h265
wertc通过协商,视频是VP9,音频是opus
3 、webrtc做了FEC编码(RED编码,flexfec编码,uplfe编码等)。传统IPTV和视频监控也有加入FEC编码,但都是私有协议,通常一个系统,融入众多厂家设备,兼容行差,难以推广。
视频的为h264的Red FEC编码,音频为opus
4、webrtc支持h265功能还有以下工作要做
1)加入265编码器和265解码器
2)加入h265的rtp封包和解包
5、webrtc 原生只支持双向通话,如果是单向通话,需要native 二次开发
6、webrtc 原生只软编码软解,如果支持硬解硬编码,还需要native 二次开发
7、webrtc 原生只支持P2P模式,不适合多人会议场景,如果应用在会议场景,需要增加MCU或SFU服务器转发。
总之原生webrtc仅仅适合P2P通话,如果需要应用到会议电视,在线直播,安防监控,还有很多工作要做,移植,裁剪,二次开发需要投入大量人力。但webrtc的jitterbuffer技术,弱网对抗技术,音频的3A技术还是值得学习和借鉴的,或将传统的视频方案通过webrtc网关接入混合使用。