webrtc本身自带VP8,VP9的编解码器, google主推VP8,VP9,随着webrtc发展,webrtc也支持了h264的编解码器
对于webrtc编解码器的设置以及他们的先后顺序,首先sdp中设置支持的编解码格式,在InternalEncoderFactory此类中,有默认塞入pop的顺序,你可以在这里修改,或者直接在sdp中修改,以达到目的;
那如何支持h264呢,默认webrtc是不支持的,rtc_use_h264是决定是否支持h264的参数,rtc_use_h264 = proprietary_codes && !is_android && !is_ios,通过修改这个属性,android端将is_android去掉,proprietary_codes默认是false,可以在编译gn gen out/h264Debug --args="proprietary_codecs=true"参数中设置为true,此时,openh264就被集成进去
rtc_initialize_ffmpeg 定义在 webrtc/webrtc.gni 中定义:rtc_initialize_ffmpeg = !build_with_chrome,build_with_chrome默认为
false,即无需修改,此时要修改FFMPEG_H264_DECODER为1 ,在third_party/ffmpeg/config/chromium/android config.h中
设置完成之后还需要修改third_party/ffmpeg/ffmpeg_generated.gni 中的编译属性,是由if()条件判断的,你需要阅读清楚,哪些是is_android的,默认webrtc没有将h264的对应文件打开,你需要将条件设置进去
网友评论