流媒体协议介绍
日期:2015-08-25点击次数:17756
前言
本文档简要介绍几种流媒体协议。从事流媒体行业的开发,一般我们会接触到以下几种流媒体协议:rtmp,rtsp,http live streaming等。或者类似这些协议定义开发的私有协议的系统。本文会分别对其概念和应用范围。并对比私有协议的优缺点,做简单介绍。
1、RTMP协议
(1) 简介
Real Time Messaging Protocol(实时消息传送协议协议)是Adobe Systems公司为Flash播放器和服务器之间音频、视频和数据传输开发的私有协议,现在已经开源。由于flash播放器普遍性,这个协议公网应该最为广泛。是flash player从视频服务器接收视频的一种TCP协议。adobe公司已经公布了rtmp协议的大部分内容。
(2) 应用
rtmp要求服务器FMS/red5;客户端flash。
开源c++的rtmp服务器crtmpserver,很多企业拿来改为商用。
优酷都采用这个协议。
(3) 优缺点
无须安装客户端程序,一般收看流媒体都需要相应的客户端软件的支持,用户需要收看流媒体就必须下载相应的软件或插件,而支持RTMP协议的流媒体客户端可以制作成一个普通的Flash文件; 采用基于over tcp协议传输,视频传输效率没有udp高。
2、rtsp协议及Rtp/rtcp协议
(1) 简介
这是事实标准。实时传输协议RTP(Realtime Transport Protocol):是针对Internet上多媒体数据的一个传输协议, 由IETF(Internet工程任务组)作为RFC1889发布。RTP被定义为在一对一或一对多的传输情况下工作,其目的是提供时间信息和实现流同步。RTP的典型应用建立在UDP(User Datagram Protocol,用户数据包协议) 上,但也可以在TCP(Transfer Control Protocol,传输控制协议)
实时传输控制协议RTCP(Realtime Transport Control Protocol):负责管理传输质量在当前应用进程之间交换控制信息。在RTP会话期间,各参与者周期性地传送RTCP包,包中含有已发送的数据包的数量、丢失的数据包的数量等统计资料,因此,服务器可以利用这些信息动态地改变传输速率,甚至改变有效载荷类型
Rtsp协议一种媒体建立控制协议。RTSP协议以客户服务器方式工作,它是一个多媒体播放控制协议,用来使用户在播放从因特网下载的实时数据时能够进行控制,如:暂停/继续、后退、前进等。RTSP的对话过程中SETUP可以确定RTP/RTCP使用的端口,PLAY/PAUSE/TEARDOWN可以开始或者停止RTP的发送。RTSP 仅仅是使媒体播放器能控制多媒体流的传送。因此,RTSP 又称为带外协议,而多媒体流是使用 RTP 在带内传送的。
(2) 应用
常见的支持开源服务器,苹果达尔文(darwin)服务器,live555服务器,vlc播放器以改协议为基础。应用比较广泛,监控设备出门必备协议,在此基础又衍生出来的设备发现onvif协议等协议;平台厂商都支持这个协议;视频会议等这样便于接入和扩展。
(3) 优缺点
实时性比较好,有良好的反馈控制机制。广泛应用于监控行业,视频会议等业务。
3、HTTP live Streaming
(4) 简介
这个是 Apple 为了提高流播效率开发的技术,特点是将流媒体切分为若干 TS 片段(比如每10秒一段),然后通过一个扩展的 m3u 列表文件将这些 TS 片段集中起来供客户端播放器接收, 这样做相比使用 RTSP 协议的好处在于,一旦切分完成,之后的分发过程完全不需要额外使用任何专门软件,普通的网络服务器即可, 大大降低了 CDN 边缘服务器的配置要求,可以使用任何现成的 CDN。。代理服务器对这个协议的缓存优化相当成熟,而很少有代理服务器对 RTSP 的进行缓存优化。这对播放实时视频有相当大的优势,因为这样分发后,对源服务器的负载压力小得多。
(5) 应用
现在在公网做流媒体的公司爱奇艺,搜狐都是这个模式
(6) 优缺点
实时性不好。应用在视频监控监控行业对实时性要求严格,实时行保证需要改进。
4、私有协议
私有协议是一些平台内部实现基于自身业务实现的流媒体协议,实时性可控比较高。
诸如管控平台自定义流媒体协议,具有良好的私密性和灵活性。可以实现网络连接管理,链路控制等操作。可以根据需要扩展和完散,可以任意指定数据协议格式;不足之处,需要设计实现并完善各个业务的方方面面。
软件部 张亚飞