HTTP-FLV的两种方式

目前,有两种Http-Flv的实现方式,一种是基于文件的方式,一种是基于包的方式


两种Http-Flv的相同之处在于,都是HTTP方式输出,都是FLv 格式

两种Http-Flv的不同之处在于:

1、架构上,一个

     基于包的架构更偏实时,基于包,基于收到包,转发包。

     基于文件的架构,边写文件,边output给用户数据。

2、存储

      基于包的架构,一般只使用内存,通常只缓存很少的数据,例如Gop-cache(当前数据帧到上一个IDR帧)

      基于文件的架构,通常会使用到存储,可以缓存7天乃至更多的数据,用来实现电视时移回看等应用。


后记:还有一种基于http flv文件的方式也属于http-flv,但不叫hrrp-flv流式直播,可以叫http-flv切片直播。

          另外,基于文件方式的HTTP-FLV流式直播补充以下内容:业界常见的另一种HTTP直播协议是将直播流式数据虚拟成为一个无限大的FLV(FLASH VIDEO)文件,并通过HTTP协议进行传输。客户端仅发送一次HTTP GET请求,请求中携带需要访问的直播流名,服务器返回HTTP响应,不携带消息体内容长度直接发送无限长FLV文件内容,或者使用HTTP CHUNK模式将无限长FLV文件按分段模式发送。客户端获得HTTP消息体中的FLV内容时即可播放。

例如请求直播流 http://flv.drag.test,.com/live/livestream.flvHTTP 交互如下:

请求:

GET/live/livestream.flv?wsHost=flv.drag.test, com HTTP/1.1

accept:*/*

accept-encoding:gzip,

accept-language:zh_CN

connection:Keep-Alive

host:www.abc.com

referer:http: //www.abc.com/vplayer.swf

响应:

HTTP/1.1 2000K

Content-Type: video/χ-fIv


你可能感兴趣的:(HTTP-FLV的两种方式)