【最佳实践】巡检项:实时音视频 (TRTC) Web SDK 视频码率设置是否合理

2022-05-19 10:14:19 浏览数 (1)

问题/风险描述:

在直播场景中,主播的推流分辨率已经设置为1080p,但观众端看到的画面还是很模糊。通过分析这个案例,发现问题不是出现在推流端分辨率过低导致的模糊。从仪表盘上观察推流数据发现,上行分辨率是1080p,但是推流的码率过低。1080p x 15fps的码率只有500kbps左右,在排除了推流端的网络带宽不足情况,跟客户确认了,应用侧设置码率是只有500kbps。

根据客户提供推流参数,我们对比复现了在相同1080p分辨率下,分别用1000kbps和500kbps的码率在直播模式下进行了测试。

如下图所示,在500kbps的码率下,即使是1080p的分辨率,画面相比1000kbps要模糊不小,所以判断这个案例是因为用客户设置的码率过低,编码器把画面压缩比设置过大,导致的画面细节丢失而产生的模糊现象。

 1000kbps画面质量 1000kbps画面质量
500kbps画面质量500kbps画面质量
 设置1000kbps推流 设置1000kbps推流
设置500kbps推流设置500kbps推流

解决方案:

根据上面的分析得知,因为没有正确设置推流端的码率,码率过小情况下,即使是带宽充足也会出现视频画面模糊问题。

解决办法是根据推流端画面分辨率和帧率,然后参考这里的表格设置适合的码率:实时音视频 设定画面质量 - 无 UI 集成方案 - 文档中心 - 腾讯云

下面是设置Web SDK推流端分辨率、码率的代码:

代码语言:javascript复制
localStream.setVideoProfile({
  width: 1080, // 视频宽度
  height: 720, // 视频高度
  frameRate:15, // 帧率
  bitrate: 2000 // 比特率 kbps
});

注意事项:

在不同的场景对画面的质量要求是不一样的,应该根据场景设置适合的码率,比如广播影视比普通视频通话对画面要求要高得多,这时候可以设置更高的码率。

另外,如果设置最小码率,SDK会根据用户带宽自动调整码率,在带宽不足情况下,牺牲画面质量来保持通话的流畅性。

0 人点赞