前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SRS云服务器:300ms和8Mbps,超高清低延迟直播

SRS云服务器:300ms和8Mbps,超高清低延迟直播

作者头像
Winlin
发布2022-03-18 17:15:00
3.4K0
发布2022-03-18 17:15:00
举报
文章被收录于专栏:SRS开源服务器

开局贴一张图,后面就全靠我自己胡乱编了,请先看疗效,来自真实应用场景的测试数据,延迟200~500ms和码率4~8Mbps的超清低延迟直播图:

Why

低延迟一直是直播的话题点,一般认为HLS的延迟在3~5秒,RTMP/HTTP-FLV的延迟在1~3秒,如果要做更低延迟比如800ms之内的延迟,只能WebRTC?

其实不对,传输层除了WeBRTC使用UDP协议,还有SRT也是UDP,可以做到抗抖动,无累计延迟。

由于WebRTC主要是会议场景,直播场景的画质要求,编码方式差异,其实SRT会比WebRTC更适合做低延迟直播。比如:

•客户端:在直播领域,支持SRT的客户端比较多,比如编码器有FFmpeg和OBS,播放器ffplay和VLC都能支持SRT,还有vmix和芯象客户端都支持SRT,而支持WebRTC的客户端就少很多了,可以选Chrome或者自己编译。•高码率:由于WebRTC主要是流畅交流,在超高码率下的支持不是很好,会优先选择保障延迟而不是质量,而广电和直播天然对于画质和码率的就是基本要求,会优先选择增加一定延迟保障质量。•云服务:SRS云服务器可以无门槛的构建SRT应用,只需要会复制粘贴,不用搞懂SRT那个沙雕URL格式。若需要大规模应用,各家视频云都已经支持了SRT协议接入,无缝从小规模变成大规模。

另外,若需要录制,由于SRT是广电直播使用的协议,编码和一般直播差别不大,OBS可以直接录制,或者转成RTMP后录制也很容易,转成其他的直播比如FLV或HLS也很成熟。而WebRTC的编码方式,对录制不太友好。

因此,SRT做超清低延迟直播,是非常成熟的方案。广电使用SRT相当的成熟了,实际互联网应用中,比如B站直播可以选择RTMP或者SRT推流。

但是,要做低延迟可不容易,一般用户连测量直播延迟都弄不明白,更不要说如何端到端搞定延迟,实际上只要一个小配置没弄对,延迟就上去了。

有痛点,这就是SRS云服务器要支持的场景。

How

SRS云服务器提供的不仅仅是一台开箱即用的SRS,而且是开箱即用的方案,只要按照步骤一点点操作,就可以完成这个场景的应用,如下图所示:

首先,你需要有一台SRS云服务器,请阅读原文直达,或者跟着下面视频的引导操作:

隆重推荐大家使用SRS云服务器,开箱即用的音视频方案,后续还会持续更新其他的、更加丰富好用的方案。

然后,请在应用场景中选择超清实时直播,跟着引导一步步操作就可以。

Tips

如果你需要详细了解SRT低延迟的技术细节,以下是关键点:

•要关注客户端的Ping和CPU,这两个容易忽略,但是会对延迟有影响。•服务器请用LightHouse SRS,已经调整好了,不会造成额外延迟。•RTT变大会影响延迟,基本上在60ms以下的RTT,能稳定在预期延迟。•RTT在100ms时延迟大概300ms,RTT在150ms时延迟大概增加到430ms左右。•丢包会影响质量,10%以上丢包会有花屏和丢帧,不影响延迟,音频影响较小。•目前最低延迟,是vmix或芯象推SRT,用ffplay播放,延迟200ms左右。•OBS推SRT,ffplay播放,延迟350ms左右。

特别说明:目前测试下来,SRT的延迟天花板在200ms,尽管vmix能设置成1ms延迟但不起作用,实际的延迟只会比这个更差不会更好,当然如果能保障好网络,200ms的延迟也是足够了。

超高清、超低延迟、SRT直播的推荐方案:

•推流:芯象(230ms),vmix(200ms),OBS(300ms)。•播放:ffplay(200ms),vmix(230ms),芯象(400ms)。

-

ffplay

vmix播放

芯象播放

芯象[1]推流

230ms(荐)

-

400ms

vmix推流

200ms

300ms

-

OBS推流

300ms

-

-

延迟涉及到每个环节,下面是每个环节的详细配置。目录如下:

•CPU[2] 客户端CPU会造成延迟。•Ping[3] 客户端网络RTT对延迟有影响。•Encoder[4] 编码器如何设置低延迟模式。•Server[5] 服务器如何配置低延迟•SRT[6] SRT服务器特别配置•Player[7] 播放器如何配置低延迟•Benchmark[8] 如何准确的测量延迟•Bitrate[9] 从0.5到6Mbps不同码率对延迟的影响•Network Jitter[10] 丢包和不同RTT下对延迟的影响•Report[11] 测试报告

更详细的描述,请参考Lagging[12]

References

[1] 芯象: http://www.sinsam.com/ [2] CPU: https://github.com/ossrs/srs/issues/1147#lagging-cpu [3] Ping: https://github.com/ossrs/srs/issues/1147#lagging-ping [4] Encoder: https://github.com/ossrs/srs/issues/1147#lagging-encoder [5] Server: https://github.com/ossrs/srs/issues/1147#lagging-server [6] SRT: https://github.com/ossrs/srs/issues/1147#lagging-srt [7] Player: https://github.com/ossrs/srs/issues/1147#lagging-player [8] Benchmark: https://github.com/ossrs/srs/issues/1147#lagging-benchmark [9] Bitrate: https://github.com/ossrs/srs/issues/1147#lagging-bitrate [10] Network Jitter: https://github.com/ossrs/srs/issues/1147#lagging-jitter [11] Report: https://github.com/ossrs/srs/issues/1147#lagging-report [12] Lagging: https://github.com/ossrs/srs/issues/1147#lagging

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-02-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 SRS开源服务器 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Why
  • How
  • Tips
    • References
    相关产品与服务
    云直播
    云直播(Cloud Streaming Services,CSS)为您提供极速、稳定、专业的云端直播处理服务,根据业务的不同直播场景需求,云直播提供了标准直播、快直播、云导播台三种服务,分别针对大规模实时观看、超低延时直播、便捷云端导播的场景,配合腾讯云视立方·直播 SDK,为您提供一站式的音视频直播解决方案。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档