主播端视频通过本地摄像头采集,并在客户端 SDK 进行编码和推流,再由云端经过 CDN 分发到观众端。如果您提供的是多码率的地址,那么该视频流还会在云端经过重新编码的处理。其中视频的质量主要取决于摄像头采集的质量,编码的分辨率,帧率以及视频关键帧间隔大小,视频编码的码率等因素。综合考虑对于观看延迟和码率的影响,推荐关键帧间隔推荐设置为2秒-3秒。
以下按照两种不同类型的播放地址,讲解如何排查并优化拉流视频质量不清晰问题。
原始流播放地址
若您的拉流地址为原始流播放地址(无水印,无混流)情况下视频不清晰,建议从推流端寻找问题原因:
1. 排除摄像头的物理因素,例如:是否有灰尘、采集和对焦是否本身是清晰等。
2. 查看推流的帧率和码率是否符合对应的期望值。
分辨率 | 帧率 | 码率期望值 |
640 × 368 | 15fps | 800kbps |
960 × 544 | 15fps | 1000kbps |
1280 × 720 | 15fps | 1500kbps |
1920 × 1080 | 15fps | 2500kbps |
优化方法
若您使用直播 SDK,可使用 API 接口中的 setVideoQuality 对客户端的视频编码质量进行控制,具体请参见 设定画面质量。
如果使用第三方的 SDK,请参考以上的码率推荐,对视频的质量进行调整控制,或联系第三方 SDK 厂家解决。
若预览的窗口很清晰,但拉流视频质量不清晰。可能因为预览窗口与实际编码推流的视频质量并不一致,可以参考以上设置对实际编码推流的视频质量进行调整。
低码率低分辨率的播放地址
若您的拉流地址为低码率低分辨率播放地址,需要先检查原始流的播放地址视频质量是否清晰。若原始流的地址视频清晰,说明客户端推流质量不错。建议调整云端的转码参数设置,按推荐码率调整转码的模板设置,提高转码流的输出码率。
分辨率 | 帧率 | 码率期望值 |
640 × 368 | 15fps | 800kbps |
960 × 544 | 15fps | 1000kbps |
1280 × 720 | 15fps | 1500kbps |
1920 × 1080 | 15fps | 2500kbps |
例如,在视频分辨率为 640 × 368 分辨率情况下,若模板帧率为30fps,建议输出码率拓展至1.5倍大,因此推荐调整码率为 800kbps × 1.5 = 1200kbps。
注意