伪视频流技术(Pseudo Streaming)

做视频站点的人,都会或多或少的接触伪视频流技术

伪流技术是一种能在常见HTTP服务器如APACHE、tomcat、IIS或lighttpd, nginx 上安装提供的一种协议。它使用服务端脚本来提供FLASH到服务器的视频交互。播放器在URL上携带start time的参数发送HTTP请求到服务端,服务端的脚本处理视频流并且给予回复,保证提供的视频流起始位置与START TIME参数所对应。这个start time的参数通常命名为“start”,这个技术同样被风靡全球的youtube所使用,它使用的是lighttpd WEB服务器。

 

对于播放器来说,使用伪流或其他流式的解决方案最大的好处是:能跳转到尚未下载到的视频部分。这种情况在很符合大文件播放需求,比如2个小时的视频,用户想立刻跳转到它的后面部分开始播放,(这样不需要下载中间用户不关心的部分了)。好处如下:

 

# 能够随机跳转到视频的任意时间
# 从视频的中间开始播放
# 提供客户方流媒体服务器和服务端脚本集成的可能(???)
# 支持FLV和H.264的视频

下面是目前常见的解决方案:

  1. Lighttpd web server + FLV streaming script
  2. Apache/Lighttpd/Nginx + H.264 streaming module
  3. Apache + FLV module
  4. Nginx + MP4 + FLV module
  5. most of major CDNs

 

以下内容转载自别人的blog,写的非常不错

1. pseudo-streaming技术,也称伪流媒体技术,顾名思义,它并不是真正的流媒体技术,说它“伪”是因为它并不是基于流媒体协议的传输,而只是提供给用户一种流媒体操作的体验而已,它本质上也是顺序播放的,但客户端在请求的时候附加了一个时间参数,这样服务器在处理的时候会从请求点开始提供下载,这样对于用户来说,也能自由拖动观看地,而不需要全部下载完成再观看了。

2.由于伪流媒体技术的实现不是基于真正的RTCP,HSL等协议,因此它不能实现实时播放功能,举个例子,就是不能实现那种监控摄像的功能。

3.真正的流媒体技术需要有相应的专业流媒体来实现,目前就我收集到的信息来看,应该没有免费可用的软件。比较流行的是Helix,Red5,Wowza等等。

4.由于pseudo-streaming实现简单,且便宜,很多国内的视频服务网站例如优酷,土豆等都采取了这种方案。而且由于HTML5的不断发展,这种技术的前景还是不错的。

5.在网上可以搜到一些实现pseudo-streaming的方案,我只记录一下自己的实现,LAMP架构,apache服务器加载了mod_flvx,mod_h264_streaming模块,客户端播放的工具使用了flvscrubber。

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

This site uses Akismet to reduce spam. Learn how your comment data is processed.