本文介绍在使用声网 SDK 实现视频直播场景中,需要注意的 API 调用和参数设置事项。
视频直播场景需要使用声网 RTC SDK、声网 RTM SDK、第三方美颜 SDK 共同搭建。集成请参考以下文档:
在对直播质量要求较高的场景中,主播端可以在进入频道前进行网络测试和设备检测。观众端在上麦前,也可以进行网络探测。详见通话前网络和设备检测。
调用 setChannelProfile
设置频道场景。在视频直播场景中,声网推荐将频道场景设置为 LiveBroadcasting
。
用户角色分主播和观众两种。其中主播可以发送与接收音视频流、观众只能接收流。在加入频道前,你需要通过 setClientRole
对用户的初始角色进行设置。在直播过程中,如果有观众请求上麦发言,可以再调用 setClientRole
切换用户角色。
加入频道时,声网强烈推荐使用动态密钥 Token 进行鉴权,并设置一个合理的 Token 过期时间(不超过 24 小时)。 如何获取和使用 Token 详见从服务端生成 Token。
对于大多数视频直播场景,你可以直接使用默认的音频属性,无需特殊设置。
在调用 setVideoEncoderConfiguration
设置视频编码属性时,声网建议不要设置太高。因为分辨率太高对低端机型的编解码 CPU 会造成压力,可能导致卡顿;码率太高会对上下行带宽造成压力。根据窗口大小,在保证视频效果的情况下,尽可能使用低分辨率和低码率,以减少编解码的资源消耗和缓解下行带宽压力。
通常来讲,视频参数的选择要根据产品实际情况来确定。常用的视频分辨率、码率、帧率可以参考设置视频编码属性
如场景中涉及视频旋转,可以通过设置视频属性 setVideoEncoderConfiguration
方法实现,详见设置视频属性。
多人视频场景下,推荐使用双流功能。各发流端在加入频道前或者后,都可以调用 enableDualStreamMode
方法开启双流模式,详见多人视频场景最佳实践。
在网络条件不理想,无法同时保证音频和视频质量的情况下,可以调用 setLocalPublishFallbackOption
和 setRemoteSubscribeFallbackOption
两个方法启用流回退功能,详见视频流回退。
声网建议在直播过程中进行质量监控,并在 app 界面提示用户监控结果,告知用户本地和远端的网络质量,详见通话中质量监测。
如果用户加入频道 10 秒内没有成功,可以检查网络环境是否设置了防火墙。如果你的网络环境部署了防火墙,请参考应用企业防火墙限制以正常使用声网服务。