webrtc本身自帶VP8,VP9的編解碼器艰管, google主推VP8,VP9,隨著webrtc發(fā)展,webrtc也支持了h264的編解碼器
對(duì)于webrtc編解碼器的設(shè)置以及他們的先后順序沪袭,首先sdp中設(shè)置支持的編解碼格式,在InternalEncoderFactory此類中计雌,有默認(rèn)塞入pop的順序荣赶,你可以在這里修改,或者直接在sdp中修改刽虹,以達(dá)到目的酗捌;
那如何支持h264呢,默認(rèn)webrtc是不支持的,rtc_use_h264是決定是否支持h264的參數(shù)胖缤,rtc_use_h264 = proprietary_codes && !is_android && !is_ios,通過修改這個(gè)屬性尚镰,android端將is_android去掉,proprietary_codes默認(rèn)是false,可以在編譯gn gen out/h264Debug --args="proprietary_codecs=true"參數(shù)中設(shè)置為true,此時(shí)哪廓,openh264就被集成進(jìn)去
rtc_initialize_ffmpeg 定義在 webrtc/webrtc.gni 中定義:rtc_initialize_ffmpeg = 狗唉!build_with_chrome,build_with_chrome默認(rèn)為
false,即無(wú)需修改涡真,此時(shí)要修改FFMPEG_H264_DECODER為1 分俯,在third_party/ffmpeg/config/chromium/android? ?config.h中
設(shè)置完成之后還需要修改third_party/ffmpeg/ffmpeg_generated.gni? 中的編譯屬性,是由if()條件判斷的哆料,你需要閱讀清楚缸剪,哪些是is_android的,默認(rèn)webrtc沒有將h264的對(duì)應(yīng)文件打開东亦,你需要將條件設(shè)置進(jìn)去