目录
前言
正文
WebRTC编码时是如何区分屏幕分享流还是实时视频流的?
通过接口设置启动simulcast就一定会生效吗?
如何开启H264 simulcast?
simulcast是否启用是编码器的设置属性之一,在进行视频编码时,是区分普通视频流还是屏幕分享流的。
屏幕分享流的标识在编码参数的options中保存,用于底层处理时,可以区分屏幕分享流,还是实时视频流,比如,在设置最小传输码率时二者略有不同。
具体可以参考如下代码:
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
前言
正文
WebRTC编码时是如何区分屏幕分享流还是实时视频流的?
通过接口设置启动simulcast就一定会生效吗?
如何开启H264 simulcast?
前言
我们知道最新版本的webrtc是支持H264、VP8、VP9开启simulcast的,今天我们就来简单看一下这块的部分内部逻辑。正文
屏幕分享流和实时视频流都支持simulcast吗?webrtc有区分处理吗?另外,通过接口设置simulcast,就一定会编码相应的媒体流吗?带着这些疑问,我来看下面的内容。WebRTC编码时是如何区分屏幕分享流还是实时视频流的?
屏幕分享流的标识在编码参数的options中保存,用于底层处理时,可以区分屏幕分享流,还是实时视频流,比如,在设置最小传输码率时二者略有不同。
具体可以参考如下代码:
bool is_screencast = parameters_.options.is_screencast.value_or(false);
if (is_screencast) {
encoder_config.min_transmit_bitrate_bps =
1000 * parameters_.options.screencast_min_bitrate_kbps.value_or(0);
encoder_config.content_type =
webrtc::VideoEncoderConfig::ContentType::kScreen;
} else {
encoder_config.min_transmit_bitrate_bps = 0;
encoder_config.content_type =
webrtc::VideoEncoderConfig::ContentType::kRealtimeVideo;
}
通过接口设置启动simulcast就一定会生效吗?
理论上,默认协商了多少个ssrc对象,就会编码对应数量的媒体流,但是也有例外。如果当前设置的编码类型不支持,也不会编码simulca