
基础产品
适用各种通信场景,接入灵活

融合场景
专为场景打造,接入成本低

扩展能力
核心能力延展,功能全面

更多服务
一站式服务,满足各种需求
回答:
融云使用 publish 发布资源,默认只发布普通流(大流),当传入参数 pubTiny 为 ture 时,表示发布视频数据的同时,额外发布一个小流数据,示例代码如下:
const { code } = await room.publish([ { track: videoTrack, pubTiny: true // pubTiny 用于指定同时发布视频数据的同时,额外发布一个小流数据 } ])
订阅小流方式与发布类似,只是 api 换成了 subscribe,由参数 subTiny 来决定是否订阅小流
const { code } = await room.subscribe([ // 音频不支持大小流 audioTrack, { track: videoTrack, subTiny: true // 订阅小流 } ])
可以通过控制台 network 查看exchange 接口的返回的 subscribedList 中 mediaType 为 1 的视轨数据来判断,simulcast:1(大流)|2(小流)
注意点:订阅小流仅在对方发布了小流的情况下有效,若对方并未发布小流,接收的仍然是对方的大流数据。
小流是通过 clone 原有的 localTrack,重新约束轨道的分辨率和帧率,最后添加到要发布的 stream 中
所以小流是不会单独占用 peerconnection 的,只是 MediaStream 多了一道小流的视轨。
小流默认分辨率为 W176_H144,帧率为 FPS_15,所有小流在相同的网络环境下,占用的带宽比较小,节省流量。
缺点就是画面比较小,且模糊。
一般使用场景是对画面要求不高,或者需要节省带宽,比如在小班授课或者考试场景中,只需要主窗口正常显示大流,其他窗口可以显示小流,主窗口切换时可以将小流换成大流。