LAMP之路

不积跬步,无以至千里!

http and rtmp

2013-9-4 一抹阳光 环境架设

RTMP协议和HTTP比有哪些优势呢,或者说:我们为什么要使用FMS/Red5呢?

 

两种协议HTTPRTMP,有点点不同.

HTTP: 

超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法

 

HTTP 先通过IIS 将FLV下载到本地缓存,然后再通过NetConnection的本地连接来播放这个FLV,这种方法是播放本地的视频,并不是播放服务器的视频。因此在 本地缓存里可以找到这个FLV。其优点就是服务器下载完这个FLV,服务器就没有消耗了,节省服务器消耗。其缺点就是FLV会缓存在客户端,对FLV的保 密性不好。

 

HTTP 方式播放,如果服务器端不限速,客户端的带宽越大,服务器消耗的带宽也越大,但限速又会影响用户体验.


RTMP

 实时消息传送协议(RTMP,Real Time Messaging Protocol)是Adobe Systems公司为Flash播放器和服务器之间音频、视频和数据传输开发的私有协议。它有三种变种:   

1)工作在TCP之上的明文协议,使用端口1935;   

2)RTMPT封装在HTTP请求之中,可穿越防火墙;   

3)RTMPS类似RTMPT,但使用的是HTTPS连接;

RTMP协议是被Flash用于对象,视频,音频的传输.该协议建立在TCP协议或者轮询HTTP协议之上.   

RTMP协议就像一个用来装数据包的容器,这些数据可以是AMF格式的数据,也可以是FLV中的视/音频数据.

 

RTMP 通过NetConnection连接到FMS/Red5服务器,并实时播放服务器的FLV文件,这种方式可以任意选择视频播放点(SEEK()),并不象 HTTP方式需要缓存完整个FLV文件到本地才可以任意选择播放点,其优点就是在本地缓存里是找不到这个FLV文件的。其优点就是FLV不会缓存在客户 端,FLV的保密性好,其缺点就是消耗服务器资源,连接始终是实时的。
一句话,一个是本地播放,一个是服务器实时播放,因需而定。

HTTP现在应用的比较多,因为这个完全不需要RED5或者FMS的服务器端的支持,普通的WEB服务器都可以实现(虚拟主机)
后面一个就必须有服务器了,不过保密性会强一些。

只所以大多数站点都用HTTP模式,一个是因为对服务器来说压力小一些,另外一种对FLASH来讲,播放器的参数更容易设置一些,因为只要修改xxx.swf?file=xxx就可以了.


RTMP 流媒体方式播放,只要客户端达到最低带宽要求,不管客户端的带宽如何,服务器消耗的带宽都一样.