+
95
-

回答

RTMP协议是Real Time Messaging Protocol(实时消息传输协议)的缩写。它是由Adobe公司提出的一种应用层的协议,RTMP协议是要靠底层可靠的传输层协议(通常是TCP)来保证信息传输的可靠性的,RTMP用于在服务器和Flash播放器之间实时传输视频,音频和数据。

RTMP 是目前应用较广的流媒体传输协议,广泛用于直播领域,可以说市面上绝大多数的直播平台都采用支持这个协议。

RTMP优点:

RTMP 是专为流媒体开发的协议,对底层的优化比其它协议更加优秀;

广泛支持:国内主流的CDN平台和OTT平台基本都支持RTMP,大部分的硬件或软件编码器也都支持RTMP推流格式;

RTMP适合长时间播放,连续10 天以上连续播放仍然比较稳定;

RTMP不足之处:

RTMP协议用于端到端视频传输时,需要中转RTMP服务器,传输延时较大。如果是采用用户自建的专有RTMP服务器,延时可控制在1s左右,但是如果通过商用的RTMP服务器来传输视频,延时一般有几秒到十几秒。

RTMP有累积延迟,原因是RTMP基于TCP不会丢包。所以当网络状态差时,服务器会将包缓存起来,导致累积的延迟,延迟时间一般在几秒到几十秒;

RTMP基于TCP传输,使用非公共端口1935,RTMP历来很难通过防火墙 ;

RTMP 为 Adobe 私有协议,很多设备无法播放,特别是在 iOS 端,需要使用第三方解码器才能播放;

SRT协议(Secure Reliable Transport,安全可靠传输)是一种新的开源标准协议,由Haivision公司发明,2017年Haivision与Wowza一起创建了SRT联盟,并一起推动SRT的开发和应用。

SRT协议是一种能够在复杂网络环境下实时、安全、可靠地传输数据流的网络传输技术,它在传输层使用UDP协议,虽然UDP协议是一种不可靠传输协议,但是凭借SRT强大的数据恢复机制,配合UDP协议自身速度快、开销低的特点,最终实现了SRT安全、稳定、快速的传输效果。

SRT是目前非常受欢迎的互联网视频传输协议,广泛用于广电远程节目制作播出、企业远程直播和互联网流媒体应用。

SRT协议的优点:

可靠性:适应于任何网络环境,高效处理网络丢包、抖动和带宽波动等干扰;

延迟低:由于采用了UDP传输方式,并使用ARQ的丢包恢复机制,基于公网的传输延迟级别一般可控制在1s以内;

高质量:SRT的传输和纠错机制可以最大化利用可用带宽并排除网络错误和干扰,因此可以在同等网络环境下传输更高码率的视频流,配合H.264和HEVC等高效编码格式,能够在不良的网络状况下依然保证视频的高质量;

带宽利用率高:不同于ABR的多码率自适应分发技术需要为冗余码率占用额外的带宽,SRT实时监测网络链路状态,并可以进行实时的码率调整(NAE,网络自适应编码)。此外,ARQ的丢包恢复机制相比TCP的丢包恢复机制也大大节省带宽,减少网络拥塞;

安全性:SRT采用AES-128或256加密保护内容安全;

免费开源:SRT完全免费开源。

SRT的不足之处:

SRT基于双向UDP点对点连接,适合点对点的高质量低延迟可靠传输,而不大适合对海量用户的内容分发。

我认为SRT技术会替代RTMP技术

首先,RTMP协议太老,且最后一次更新是在2012年;同时HEVC/H.265/AV1等视频格式都没有官方定义,以至于需要国内CDN厂商自行定义。

RTMP连接过程较长,由于RTMP基于TCP(TCP存在三次握手),除此之外,其本身又存在c0/s0到c2/s2的三次握手,再加上connection,createstream,play/publish,总地来说RTMP完成一次建连需要进行9次会话,用于PC端勉强能够接受,对于移动端网络质量的要求则很高。

RTMP的拥塞控制完全依赖传输层,即完全依赖于TCP传输层的拥塞控制算法来进行拥塞管理,几乎没有什么优化;RTMP本身基于TCP传输,无法提供带宽自适应的算法。

RTMP的这些缺点,SRT都解决了,替代这是早晚的事。

参考:https://zhuanlan.zhihu.com/p/403771996


网友回复

我知道答案,我要回答