RTMP和RTSP协议是流媒体协议。

RTSP (Real-Time Stream Protocol)由Real Networks 和 Netscape共同提出的,基于文本的多媒体播放控制协议。RTSP定义流格式,流数据经由RTP传输;RTSP实时效果非常好,适合视频聊天,视频监控等方向。

RTMP(Real Time Message Protocol) 有 Adobe 公司提出,用来解决多媒体数据传输流的多路复用(Multiplexing)和分包(packetizing)的问题,优势在于低延迟,稳定性高,支持所有摄像头格式,浏览器加载 flash插件就可以直接播放。

RTSP和RTMP的区别:

RTSP虽然实时性最好,但是实现复杂,适合视频聊天和视频监控;

RTMP强在浏览器支持好,加载flash插件后就能直接播放,所以非常火,相反在浏览器里播放rtsp就很困难了。

直播的协议有:rtmp,http,rtsp等等。

最常用的有二种:http,rtmp,当使用http协议的时候视频格式需要是m3u8或flv,下面作详细说明各种环境的优缺点。

首先,rtsp不能使用于网页环境(包含PC端和移动端)。

那么直播只能选择rtmp或http

rtmp协议只支持flashplayer,也就是只能在PC端(或安卓环境中安装了flashplayer组件,这种环境比较少)安装了flashplayer的情况下使用。按现在的趋势,flashplayer是要逐渐被淘汰掉的。当然,在中国还会存在相对长时间。

http协议的直播分二种格式,m3u8和flv。flv是一种即将被淘汰的直播格式。用来做直播已显的力不从心了。所以综合考虑,m3u8相对的比较好点,优点是支持移动端,并且支持PC端上安装了flashplayer的环境。缺点就如同rtmp一样。flashplayer并不是未来的发展趋势。另外一个缺点就是m3u8是有延迟的。并不能实时,实时传输方面不如rtmp协议。因为m3u8的直播原理是将直播源不停的压缩成指定时长的ts文件(比如9秒,10秒一个ts文件)并同时实时更新m3u8文件里的列表以达到直播的效果。这样就会有一个至少9,10秒的时间延迟。如果压缩的过小,可能导致客户端网络原因致视频变卡。

考虑到以上原因。现在并没有一种可以兼容性很好的视频格式或协议来做直播。目前最理想的环境就是pc端使用rtmp已达到减少延时的效果。而移动端只能使用m3u8格式直播,如果要求不是太高,建议直接使用m3u8做直播。