webrtc 视频编码格式及参数配置

https://blog.csdn.net/CrystalShaw/article/details/80372015

一、视频编码格式初始配置

webrtc\media\engine\internalencoderfactory.cc

按照Push顺序,优先选取第一个编解码格式。

 
二、视频分辨率初始配置

webrtc\pc\videocapturertracksource.cc

选取的原则是,在kVideoFormats里面找参数与kDefaultFormat默认值最接近的一组参数,作为本端的编码能力。

三、视频码率默认值

webrtc\media\engine\webrtcvideoengine.cc

EncoderStreamFactory::CreateEncoderStreams

四、默认QP、帧率最大值配置

webrtc\media\engine\webrtcvideoengine.cc

static const int kDefaultQpMax = 56;

const int kDefaultVideoMaxFramerate = 60;

五、使能SRTP

webrtc\src\webrtc\api\peerconnectioninterface.h

disable_encryption = true 取消SRTP

disable_encryption = false 开启SRTP

配置密钥:

bool Conductor::CreatePeerConnection(bool dtls)配置是否生成密钥。
六、生效新的帧率码率流程

在webrtc里面函数实现如下:
->VideoStreamEncoder::EncodeVideoFrame
->VideoSender::AddVideoFrame----在这个函数中读取全局变量encoder_params_,判断是否需要调整视频参数。
->VideoSender::SetEncoderParameters

->VCMGenericEncoder::SetEncoderParameters

->H264EncoderImpl::SetRateAllocation---传递新的帧率码率到编码器。

 
七、H264打包模式

codec.cc  VideoCodec::SetDefaultParameters


---------------------
作者:CrystalShaw
来源:CSDN
原文:https://blog.csdn.net/CrystalShaw/article/details/80372015
版权声明:本文为博主原创文章,转载请附上博文链接!

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在iOS上使用WebRTC进行音视频通话时,调整编码参数有助于优化网络传输质量和设备性能。WebRTC(Web Real-Time Communication)库提供了丰富的设置选项来控制编解码器的行为。以下是一些关键的编码参数调整: 1. **VideoEncoder**: - `videoEncoderConfiguration`: 可以设置特定的视频编码配置,例如H264Profile、Bitrate、MaxFramerate等。例如: ```swift let videoEncoderConfig = RTCVideoEncoderConfiguration( codecType: .h264, profile: .high, bitrate: 1000000, // 1 Mbps maxBitrate: 2000000, // 2 Mbps ) ``` 2. **AudioEncoder/Decoder**: - `audioEncoder` 和 `audioDecoder` 可能支持自适应比特率或者设置特定的参数,如码率、采样率等。例如: ```swift let audioEncoderConfig = RTCRtpAudioEncoderConfiguration( payloadType: ..., bitrate: 64000, // 64 kbps ) ``` 3. **VideoCodecConstraints**: 当选择编解码器时,可以提供偏好或限制,比如对分辨率、帧率的约束: ```swift let constraints = RTCVideoConstraints( mandatory: [ .width: 640, .height: 480, .frameRate: 30.0, ], optional: [ .maxWidth: 1280, .maxHeight: 720, ] ) ``` 4. **Network Monitoring**: 通过RTCPeerConnection的`stats`接口监控网络状况,根据丢包率和延迟动态调整码率。 相关问题-- 1. 如何在iOS WebRTC中检测并调整视频编码的丢包率? 2. 如何设置iOS WebRTC以优先使用设备音频的高质量模式? 3. 怎么在iOS上启用或禁用视频编码的自适应比特率功能?

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值