在开发者推拉视频流时,可对编解码进行详细设置,可启用视频大小流编码方式。
视频大小流编码将码流分为基本层和扩展层,这种编码方式可以为不同网络状态的用户提供更好的体验,也称大小流。
基本层保证了最基本的视频质量,而扩展层则是对基本层的补充。对于网络较好的用户,可同时拉取基本层和扩展层获得更好的体验,对于网络状态较差的用户,只拉取基本层可以保证基本的视频质量。
当开发者在连麦或混流业务中出现以下情况时,推荐使用视频大小流编码功能:
视频大小流编码使用的是 ZEGO 的私有协议,拉流端只有从 ZEGO 服务器上才能拉取到不同分层的视频流。
如需使用视频大小流编码,需要先在推流前,开启视频大小流编码,然后在拉流时,指定要拉取的分层视频,详细步骤如下。
最初创建的流,默认为大流。
在推流(startPublishingStream)前,调用 enableDualStream 接口,开启或关闭视频小流编码功能。
// 开启小流
zg.enableDualStream(localStream);
可根据需要,在推流(startPublishingStream)和 调用 enableDualStream开启小流前,调用 setLowStreamParameter 接口设置小流分辨率、帧率及宽高。
zg.setLowStreamParameter(localStream, {width: 320, height: 240, frameRate: 15, bitRate: 400});
在推流端开启了视频大小流编码后,拉流端在拉流调用 startPlayingStream 接口时,可在可选拉流参数 streamType
中,选择指定的视频分层类型,此时拉流端默认会根据网络情况,拉取合适的视频分层,例如,弱网只拉取基本层。
开发者也可以传入具体的拉流参数,以拉取特定的视频分层,目前支持的视频分层如下:
枚举值 | 说明 |
---|---|
0 | 小流类型 |
1 | 大流类型 |
2 | 根据网络状态自动切换大小流 |
以拉取基础层为例:
// 拉取小流
zg.startPlayingStream("streamID", {streamType: 0});
大小流即分层视频编码,用户在接收端拉流前,根据自己的网络状况,可以调用 startPlayingStream 时设置 streamType 选择大小流,也可以设置为传入默认或则不传参,让 ZEGO 帮您自动选择。
视频大小流编码基本层的分辨率宽高默认为 160 x 120,帧率为 15,码率 50kbps,可根据需要通过 setLowStreamParameter 修改小流参数,小流参数均不能大于大流参数。
视频大小流编码使用的是 ZEGO 的私有协议,拉流端只有从 ZEGO 服务器上才能拉取到不同分层的视频流。
联系我们
文档反馈