直播延时高的常见原因及解决方法

直播延时高的常见原因及解决方法

播放侧Native播放器SDK最优配置阿里云RTS直播采用WebRTC协议,具有良好的抗丢包和抗抖动能力。通过优化播放器的缓冲控制策略,可以获得更低的延时。

说明 使用阿里云播放器SDK 5.5.6.0及以上版本或播放器Demo播放,系统已默认生成延时最优配置,无需额外调整。

若完成上述配置后直播延时未得到改善,您可以进一步分析RTS SDK:

分析直播延时:打开Android端阿里云播放器SDK日志开关或iOS端阿里云播放器SDK日志开关,在日志code=154中查询端到端延时,单位:ms,字段详细解释如下:

gd:globalDelayMS,端到端时延。

td:transDelayMS,推流端延时+CDN传输延时,如果大于800ms,可能是推流延时或者CDN延时过大。

nd: network delay,CDN到播放端的网络延时,如果大于800ms,可能是网络问题。

jd:jitterDelayMS,视频抗抖动缓冲区延时,如果大于800ms,可能是网络问题。

ud:用户缓冲区长度,一般为0,可忽略。

dd:decoder delay,从播放器获取到的解码延时,如果大于800ms,可能是播放器解码问题。

rd:render delay,从播放器获取到的渲染延时,如果大于800ms,可能是播放器渲染问题。

ut: 可忽略。

分析首帧延时:在SDK日志code=161中查询以下关键字:

st:0,init:1,sdns:0,rdns:2,sc:0,ced:12,sub:5,frsp:309,si:8,fp:13,ffc:5,ffo:416,sum:763如果sum与您的首帧差别很大,则为播放器解码、渲染的问题;如果sum与您的首帧差别不大,则看具体哪个字段耗时多,如果ced、frsp、ffc大,一般为网络问题。

Web播放器SDK最优配置在Web播放器中进行RTS直播,缓冲Buffer由浏览器默认策略控制,无需额外设置。若使用Web SDK播放时出现延时高、首帧高等情况,您可以通过Chrome浏览器访问chrome://webrtc-internals查看WebRTC数据是否异常。

您可以关注以下两个指标:

inbound-rtp(kind=audio)和inbound-rtp(kind=video):分别表示实时数据接收和帧解码状态,如果framesDropped比较高,或framesDecoded/s和您预期的码率不符,则解码有问题,请检查推流或转码环节。

candidate-pair:表示连接状态,如果currentRoundTripTime(往返时间)比较高,或inbound-rtp 中的packetsLost(丢包)比较高,可能是您的网络存在问题。

播放仅音频或仅视频时产生的延时如果源流只有视频或只有音频时,阿里云会默认等待5秒用于获取完整的音视频数据,因此会导致5秒的黑屏。您可以手动设置不订阅视频/音频,即在拉流URL最后直接添加@subvideo=no或@subaudio=no:

如果一个流只有视频,拉流地址为artc://example.aliyundoc.com/app/stream?auth_key={鉴权串},则拉流地址改写成artc://example.aliyundoc.com/app/stream?auth_key={鉴权串}@subaudio=no。

如果一个流只有音频,拉流地址为artc://example.aliyundoc.com/app/stream?auth_key={鉴权串},则拉流地址改写成artc://example.aliyundoc.com/app/stream?auth_key={鉴权串}@subvideo=no。

播放网络环境检查推流时请确保您的播放侧网络环境良好,若您的网络不稳定,播放器SDK将自动加大本地缓冲区的大小,通过增大延时的方式获取更平滑的播放 。

相关作品

C with STL入门详解(适合初学者) 365bet特点

C with STL入门详解(适合初学者)

❤️ 128 📅 06-29
4K/8K电视大展身手,超高清看世界杯大有不同! 365bet大陆官网

4K/8K电视大展身手,超高清看世界杯大有不同!

❤️ 585 📅 06-28
如何切菱形片 ?黄瓜的9种切法,你知道几种? 365bet大陆官网

如何切菱形片 ?黄瓜的9种切法,你知道几种?

❤️ 209 📅 06-29