Webrtc原生支持VP8和VP9,但是并不支持H264,这个在上一篇Webrtc和OpenWebrtc的对比中已经讲过。
那么如果我们想要使用H264怎么办呢?
可供选择的方案有两种,一种是x264,另一个是OpenH264。
OpenH264是汇编代码,在性能上比x264更强,所以我选择了OpenH264.
OpenH264是思科开源的项目,项目地址:https://github.com/cisco/openh264
这个项目的下载和编译可以说是傻瓜级的了,具体不多介绍,主要讲怎么将OpenH264集成进webrtc和使用起来。
1,集成
事实上集成264到webrtc是一个工作量很大的任务。不过还好,webrtc代码中已经帮我们做了一大部分事情(比如rtp对264的封装),我们只需要关注Codec的接口即可。
ViEEncoder中有一个方法可以注册第三方编码器:
int32_t RegisterExternalEncoder(VideoEncoder* encoder,
uint8_t pl_type,
bool internal_source);