【WebRTC研究(4)】让WebRTC支持H264编解码

让WebRTC支持H264编解码

一般我们会使用H.264编码格式,否则默认是谷歌自己的VP8、VP9。开启方式如下:

--args="proprietary_codecs=true ffmpeg_branding=\"Chrome\""

执行完毕后,可以使用下列命令验证一下:

gn args out/Debug --list=proprietary_codecs
gn args out/Debug --list=rtc_use_h264

看到 Current Value 为 true,就说明H264编码已经生效了。

到这里还没结束, 因为网页使用 WebRTC 发送 SDP ,进行协商时,默认的 codec 顺序是:

  1. VP8

  2. VP9

  3. H264

所以需要修改源码,internal_encoder_factory.cc,GetSupportedFormats函数,将H264编码器移到最前面,代码如下:

std::vector<SdpVideoFormat> InternalEncoderFactory::GetSupportedFormats()
    const {
  std::vector<SdpVideoFormat> supported_codecs;

  //chb 20191106
  for (const webrtc::SdpVideoFormat& format : webrtc::SupportedH264Codecs())
    supported_codecs.push_back(format);

  supported_codecs.push_back(SdpVideoFormat(cricket::kVp8CodecName));
  for (const webrtc::SdpVideoFormat& format : webrtc::SupportedVP9Codecs())
    supported_codecs.push_back(format);

  return supported_codecs;
}

src\third_party\ffmpeg\chromium\config\Chromium\win\x64\config.hsrc\third_party\ffmpeg\chromium\config\Chromium\win-msvc\x64\config.h中的

#define CONFIG_H264_DECODER 0

修改为1。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值