什么是Simulcast:
一个客户端向服务器发送高清,标清,低清三种视频流,服务器根据其他接收客户端的带宽情况分发不同的视频流。Simulcast不仅有客户端的工作,还有服务器的工作。
开启Simulcast的三种方式:
Munging SDP方式
添加a=ssrc-group:SIM 632233 2383928 43434
后面三个是三个流的ssrc号
这种方式的问题:
1.这些修改SDP比较麻烦,需要配置各个流之间的关系
老的rid方式(firefox用法)
通过api方式设置进去,如下,设置三路,第一路码率是900kb,第二路是300kb,分辨率是第一路的二分之一,第三路码率是100kb,分辨率是第一路的四分之一。
此时offer sdp如下:
answer sdp如下,它可以选择接收其中的流,这里三路全部接收:
新的rid方式(规范)
这个方式使用了不同的api接口
这种方式下的sdp信息如下:
Simulcast的源码实现
SVC分层
Webrtc开启SVC
VP9中的SVC码流
拿到VP9的SVC码流如何区分出各层,并分别转发各层