三种主流流媒体协议(RTMP,RTSP,HTTP)比较

2017-05-26 10:31:00
admin
原创
14460
摘要:当前,流媒体直播和点播中常用到的协议有rtmp,rtsp和http等,rtmp比较简单,应用性更广,客户端需要用到Aodbe的flash插件来观看,rtsp协议一般对实时性要求高,支持h.264和H.265以及其他形式的编解码,实用性更强,客户端一般需要自己做或者用vlc,ffplayer等。http一般用到flv_over_http,mp4_over_http,或者ts_over_http,或者hls等。
一、介绍
当前,流媒体直播和点播中常用到的协议有rtmp,rtsp和http等,rtmp比较简单,应用性更广,客户端需要用到Aodbe的flash插件来观看,rtsp协议一般对实时性要求高,支持h.264和H.265以及其他形式的编解码,实用性更强,客户端一般需要自己做或者用vlc,ffplayer等。http一般用到flv_over_http,mp4_over_http,或者ts_over_http,或者hls等。
 
二、协议介绍
1、HTTP协议:
 HTTP的视频协议,主要是在互联网普及之后。在互联网上看视频的需求下形成的。
   最初的HTTP视频协议,没有任何特别之处,就是通用的HTTP文件渐进式下载。本质就是下载视频文件,而利用视频文件本身的特点,就是存在头部信息,和部分视频帧数据,就完全可以解码播放了。显然这种方式需要将视频文件的头部信息放在文件的前面。有些例如faststart工具,就是专门做这个功能的。
    但是最为原始的状态下,视频无法进行快进或者跳转播放到文件尚未被下载到的部分。这个时候对HTTP协议提出了range-request的要求。这个目前几乎所有HTTP的服务器都支持了。range-request,是请求文件的部分数据,指定偏移字节数。在视频客户端解析出视频文件的头部后,就可以判断后续视频相应的帧的位置了。或者根据码率等信息,计算相应的为位置。
 
优点:
HTTP Live Streaming 还有一个巨大优势:自适应码率流播(adaptive streaming)。效果就是客户端会根据网络状况自动选择不同码率的视频流,条件允许的情况下使用高码率,网络繁忙的时候使用低码率,并且自动在二者间随意切换。这对移动设备网络状况不稳定的情况下保障流畅播放非常有帮助。实现方法是服务器端提供多码率视频流,并且在列表文件中注明,播放器根据播放进度和下载速度自动调整。使用起来也非常简单。
缺点:
    实时性相对较差,直播的时候延迟比较高。当然,现在进化出来的flv_over_http或者ts_over_http也可以做到直播延时很低,基本和rtmp协议差不多。
  
2、RTSP协议:
用于Internet上针对多媒体数据流的一种传输协议,是TCP/IP协议体系中的一个应用层协议,RTSP在体系结构上位于RTP和RTCP之上,它使用TCP或UDP完成数据传输,该协议定义了一对多应用程序如何有效地通过IP网络传送多媒体数据。
   本协议是最早的视频传输协议。其中RTSP协议用于视频点播的会话控制,例如发起点播请求的SETUP请求,进行具体播放操作的PLAY、PAUSE请求,视频的跳转也是通过PLAY请求的参数支持的。
 
优点:
RTSP协议族的优势,在于可以控制到视频帧,因此可以承载实时性很高的应用。这个优点是相对于HTTP方式的最大优点。H.323视频会议协议,底层一般采用RTSP协议。RTSP协议族的复杂度主要集中在服务器端,因为服务器端需要parse视频文件,seek到具体的视频帧,而且可能还需要进行倍速播放(就是老旧的DVD带的那种2倍速,4倍速播放的功能),倍速播放功能是RTSP协议独有的,其他视频协议都无法支持。
缺点:
就是服务器端的复杂度也比较高,实现起来也比较复杂。Ios端不支持该协议。
 
3、RTMP协议:
   RTMP是Real Time Messaging Protocol(实时消息传输协议)的首字母缩写。RTMP(Real Time Messaging Protocol)实时消息传送协议是Adobe Systems公司为Flash播放器和服务器之间音频、视频和数据传输 开发的开放协议。该协议基于TCP,是一个协议族,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种。RTMP是一种设计用来进行实时数据通信的网络协议,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信。支持该协议的软件包括Adobe Media Server/Aoku Media Server/red5/Wowza等。

优点:

支持直播、点播

缺点:

需要专用的服务器。
 
三、协议对比
关于三个RTMP,RTSP,HTTP的对比:
1.RTMP是adobe的,RTSP是 android native支持,http协议。
2.RTMP和HTTP有adaptive streaming的技术,RTSP没有
3.RTSP实时性是最好的,HTTP实时性比较差。
4.ios不支持rtsp,安卓支持。

四、总结
  三种协议各有优缺点,rtmp协议应用范围比较窄,一般客户端需要用flash接收,rtsp一般常用于监控领域和对实时性要求比较高的场合,http的延伸hls用的比较多,一般用在移动终端观看,一般一个成熟的流媒体服务系统都需要支持这三种协议,甚至更多的协议,比如udp组播,单播,或者p2p协议等。
   Aoku Media Server是可以同时支持这三种流媒体协议的。是国内为数不多的专业流媒体服务系统,提供的免费版可以供用户进行三种协议的测试对比
发表评论
评论通过审核后显示。
文章分类
联系我们
联系人: 北极星通公司
电话: 010-56545416
传真: 010-82896426
Email: support@bjsin.cn
QQ: 35338585
微信: Aoku2017 | QQ群:241759321
地址: 北京市中关村生命科学园创意园3-3-103