赞
踩
一、SRT介绍
SRT(Secure Reliable Transport)是由Havision联合Wowza制定的一个开源、免版权费的基于UDP的传输协议,目的是安全可靠的解决TCP在长距离链路传输中延迟高、抗抖动性差的问题,并针对直播场景做了优化。SRT包含ARQ重传和丢包恢复的FEC前向纠错,也支持AES加密,同时支持TLS链路加密,其显著优势是抗丢包能力较强。
二、兼容直播产品,推动SRT落地应用
视频直播平台绝大多数使用的都是RTMP协议,基于TCP的RTMP协议由于有累积延迟,在远距离传输或网络环境较差时会产生累积延迟高达几秒以上,而随着直播行业逐步走向“精细化运营”的转变,用户对于高质量、低延迟的要求也在不断提升,这就要求直播平台在这种大规模远距离传输的情况下,还能保证画质高清、画面流畅、延迟更低。
相比RTMP,SRT更具优势!SRT协议是基于UDT的传输协议,保留了UDT的核心思想和机制,抗丢包能力强,是一款能够在复杂网络环境下实时、稳定传输高码率数据流的开源网络传输协议。
具体而言,SRT在传输层使用UDP协议,基于公网的传输延迟一般可控制在1s以内,且SRT的传输和纠错机制可以最大化利用可用带宽并排除网络错误和干扰,因此可以在同等网络环境下传输更高码率的视频流,最终保障在复杂的网络状况下依然保证视频直播的高质量。
视频云已将SRT集成到直播系统中,并进行了多项技术改造及优化,保障重要直播源在复杂网络环境中高质量传输,从而将直播内容以更稳定、更低延迟的输送到用户播放端。
为了无缝兼容现有直播产品,视频云将SRT流直接接入CDN系统中,如上行推流使用SRT,下行复用直播系统(RTMP/FLV/HLS等),和现有直播协议体系完美的结合在一起,同时也可以支持全链路使用SRT。用户只需将推流地址通过Haivision硬件、OBS或FFmpeg等工具推到边缘服务器,即可快速完成接入使用。
三、SRT协议原理
SRT协议的思想基于编码,具有抗丢包、抗拥塞、抗抖动等特性。Send buffer会对数据进行时间校验,按照一定的时间顺序编码并通过网络发送至Receive buffer,Receive buffer按照报文上的时间戳进行处理,并确保生成的数据与源流保持一致。
SRT报文格式分为数据报文与控制报文。观察数据结构分为上方UDP部分和下方SRT部分。'F' 如果初始化为0,则是数据报文,Timestamp表示时间戳,Destination Socket ID是SRT自定义的一个socket id。从此数据结构可以看出:SRT的数据报文拥有精准的32位时间戳,sequence number字长足够,且结构简单。
采用了ACK + NACK的方式。每隔固定间隔,SRT接收方会发送一个ACK包,将当前接收Receive Buffer中连续的最大包序号告诉发送方,发送方收到ACK包后,将发送窗口前移,同时发送ACKACK进行确认,接收方依据Time(ACKACK) - Time(ACK)来计算链路RTT值。对于高码率的链路,每隔10ms确认一次对应的包太多时,通过每收到64个包,发送一个LITEACK,用来快速确认数据。
四、丢包少、延迟低,远程传输可达商用
SRT、RTMP推流,通过对比SRT有所改善,相同网络层丢包率和RTT下,SRT应用层重传更高,但应用层丢包较少,最终卡顿率较小。网络层丢包30%以内时,经SRT重传机制处理后丢包率基本为0。如图所示:
除此之外,针对高码率远距离传输的直播场景,在SRT协议、传输机制等方面都做出了不断优化和提升,实测数据显示:在相同测试条件下,SRT相比RTMP,延迟更低,抗抖动能力更强,观看时流畅度体验更佳。即使在丢包30%的网络环境下,用户依然可以流畅观看直播画面。
SRT也是继视频云低延时直播RTC后的又一有力补充,SRT更适用于大型赛事直播、党建直播、电视台直播、重要活动直播等高并发、高码率的直播场景。
京东云会继续在音视频领域不断探索,结合用户业务场景不断创新,给您带来全新的高质量观看体验。
-End-
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。