前一篇《webrtc方案漫谈》我们分析了webrtc的方案特点,根据实际的应用场景我们需要对webrtc native代码进行定制开发,下面对webrtc常规需求进行定制。
一、去掉流加密和解密流程
加密和解密是一种对CPU开销比较大的操作,PC端性能不是问题,但在嵌入式单板上,CPU资源非常宝贵,去掉加密和解密流程就显得非常迫切了。
加密模式的密钥协商
修改代码如下:
去掉加密相关修改
未加密模式的,无密钥协商
二、开启h264视频编码格式
Webrtc默认采用VPX编码,如需要实现h264编码,需要做以下工作:
1) 开启h264相关宏,使webrtc代码上支持
配置命令为:
gn gen out/h264Debug --args="proprietary_codecs=true ffmpeg_branding="Chrome\"",
会默认打开h264相关宏,将h264相关文件编译进去。Webrtc编码采用是openh264,解码采用的是ffmpeg软解.
2)调整编码格式优先级顺序,让h264成为第一优先级
H264协商代码修改(一)
H264协商代码修改(二)
以上只是去流加密和增加h264的编码格式的定制。