让 WebRTC 使用外部的音视频编解码器

WebRTC 支持使用自己的编解码器(限 native 开发),音频,视频都可以。这里以视频编码为例来分析下 WebRTC 中相应的源码。

CreatePeerConnectionFactory

在 webrtc/api/peerconnectioninterface.h 中有个方法 CreatePeerConnectionFactory,原型如下:

inline rtc::scoped_refptr<PeerConnectionFactoryInterface> 
CreatePeerConnectionFactory(
    rtc::Thread* worker_and_network_thread,
    rtc::Thread* signaling_thread,
    AudioDeviceModule* default_adm,
    rtc::scoped_refptr<AudioEncoderFactory> audio_encoder_factory,
    rtc::scoped_refptr<AudioDecoderFactory> audio_decoder_factory,
    cricket::WebRtcVideoEncoderFactory* video_encoder_factory,
    cricket::WebRtcVideoDecoderFactory* video_decoder_factory);

可以看到, CreatePeerConnectionFactory 最后四个参数,允许我们提供自己的编解码工厂。这样我们就可以实现自己的 factory ,在 factory 中创建自己的 encoder(decoder),WebRTC 内部就会使用我们的 encoder(decoder)。

代码片段类似下面:

    rtc::scoped_refptr<webrtc::PeerConnectionFactoryInterface> factory = webrtc::CreatePeerConnectionFactory(
            current_thread, current_thread, 
            your_adm, 
            your_audio_encoder_factory, 
            your_audio_decoder_factory,
            your_video_encoder_factory,
            your_video_decoder_factory);
    rtc::scoped_refptr<PeerConnectionInterface> peer_connection = factory->CreatePeerConnection(
         
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

foruok

你可以选择打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值