基于HTTP协议的直播流推流方法和系统技术方案

技术编号:8863568 阅读:1501 留言:0更新日期:2013-06-29 00:44
本发明专利技术公开了基于HTTP协议的直播流推流方法和系统,不受RTMP协议版权限制和Flash平台限制,开源服务器资源丰富。其技术方案为:方法包括推流器推送直播流过程和流媒体服务器接收直播流过程,其中推流器的过程为:推流器连接流媒体服务器的推流端口;发送HTTP请求;读取封装好的分段格式的直播流并在HTTP请求中发送;根据HTTP的类型进行处理;最后停止推送。流媒体服务器的过程为:流媒体服务器监听服务端口;读取HTTP请求,解析流名;读取分段格式的直播流;分析处理每个分段,如果是非数据分段则直接处理,否则处理数据类型的分段,并将媒体数据加入到URI对应的直播流中;接收完毕后根据HTTP类型进行处理。

【技术实现步骤摘要】

本专利技术涉及HTTP报文传输技术,尤其涉及流媒体直播中使用HTTP协议的媒体传输技术。
技术介绍
在流媒体直播领域,直播流的推送目前主要使用RTMP协议(Real Time MessagingProtocol,实时消息传送协议)或者RTMP的加密版本RTMPE协议。这两个协议都归Adobe公司所有,其中RTMP协议只公开了一个初级版本,RTMPE协议未公开。使用RTMP协议进行直播流推送的原理如下:1.编码器首先与流媒体服务器进行RTMP握手。2.编码器与服务器通过connect命令建立一个逻辑连接。3.编码器通过createStream命令创建一个流。4.编码器在创建的流发送publish命令进行推流。5.编码器用RTMP的消息格式推送视频和音频数据,直到推流结束。使用该方法进行直播推流,有以下几个缺点:(I)使用RTMP协议本身具有版权问题。(2)RTMP协议实现复杂,如果不使用Adobe公司提供的开发工具,推流器开发难度很大。如果使用Adobe公司提供的开发工具,开发出的推流程序需要运行在Flash Player上,对运行环境有特殊要求,不支持Flash Player的设备便无法用Adobe提供的工具经行开发。(3)支持RTMP推流的流媒体服务器一般使用FMS (Flash Media Server)或者Wowza0大多是商用的,使用费用昂贵,且定制功能的开发比较困难。自己开发服务器难度大,且涉及版权问题。(4) RTMP协议使用非通用端口,如1935.服务端前端的防火墙需要专门配置相关端口。
技术实现思路
本专利技术的目的在于解决上述问题,提供了一基于HTTP协议的直播流推流方法和系统,不会有RTMP协议的版权限制,不受Flash Player这种虚拟机运行环境的限制,且开源服务器资源丰富,运营时不必再经行特殊端口的配置。本专利技术的技术方案为:本专利技术揭示了一种基于HTTP协议的直播流推流方法,包括推流器推送直播流的过程和流媒体服务器接收直播流的过程,其中:推流器推送直播流的过程如下:推流器连接流媒体服务器的推流端口 ;发送HTTP请求,其中HTTP请求中的URI为流名;读取封装成分段格式的直播流并将其设置在HTTP请求中发送;待HTTP请求发送完毕后,根据所使用的HTTP的类型进行处理;待直播流结束后停止推送;流媒体服务器接收直播流的过程如下:流媒体服务器监听服务端口 ;读取HTTP请求,从URI中解析出流名;从HTTP请求中读取分段格式的直播流;分析并处理直播流的每个分段,如果是非数据分段则直接处理,否则处理数据类型的分段,并将媒体数据加入到URI对应的直播流中;在当前HTTP请求发送完毕后根据HTTP的类型进行处理。根据本专利技术的基于HTTP协议的直播流推流方法的一实施例,在推流器推送直播流的过程中,根据所使用的HTTP的类型进行处理包括:若HTTP的类型是1.0或者1.1且非保持连接的情况,则断开HTTP连接,从当前的分段开始重新执行推流器连接流媒体服务器的步骤;若HTTP的类型是1.1且保持连接的情况,则可以插入控制信息,然后从当前的分段开始重新发送HTTP请求。根据本专利技术的基于HTTP协议的直播流推流方法的一实施例,在流媒体服务器接收直播流的过程中,根据HTTP的类型进行处理包括:若HTTP的类型是1.0或者1.1且非保持连接的情况,则关闭HTTP的连接,等待重新推入;若HTTP的类型是1.1且保持连接的情况,则继续读取数据,返回HTTP推流请求的读取步骤。根据本专利技术的基于HTTP协议的直播流推流方法的一实施例,在发送HTTP请求的过程中根据需要在数据类型的分段格式的直播流中插入控制类型的分段,以控制是否需要断开当前的HTTP连接来重新推流。本专利技术还揭示了一种基于HTTP协议的直播流推流系统,包括推流器和流媒体服务器两个装置,其中:推流器包括:连接模块,推流器连接流媒体服务器的推流端口 ;请求发送模块,发送HTTP请求,其中HTTP请求中的URI为流名;直播流发送模块,读取封装成分段格式的直播流并将其设置在HTTP请求中发送;发送完成处理模块,待HTTP请求发送完毕后,根据所使用的HTTP的类型进行处理; 推送停止模块,待直播流结束后停止推送;流媒体服务器包括:监听模块,流媒体服务器监听服务端口 ;解析模块,读取HTTP请求,从URI中解析出流名;直播流读取模块,从HTTP请求中读取分段格式的直播流;直播流处理模块,分析并处理直播流的每个分段,如果是非数据分段则直接处理,否则处理数据类型的分段,并将媒体数据加入到URI对应的直播流中;接收完成处理模块,在当前HTTP请求发送完毕后根据HTTP的类型进行处理。根据本专利技术的基于HTTP协议的直播流推流系统的一实施例,发送完成处理模块进一步包括:第一发送完成处理单元,若HTTP的类型是1.0或者1.1且非保持连接的情况,则断开HTTP连接,从当前的分段开始重新执行连接模块;第二发送完成处理单元,若HTTP的类型是1.1且保持连接的情况,则重新执行请求发送模块。根据本专利技术的基于HTTP协议的直播流推流系统的一实施例,接收完成处理模块进一步包括:第一接收完成处理单元,若HTTP的类型是1.0或者1.1且非保持连接的情况,则关闭HTTP的连接,等待重新推入;第二接收完成处理单元,若HTTP的类型是1.1且保持连接的情况,则继续接收数据,返回执行解析模块。根据本专利技术的基于HTTP协议的直播流推流系统的一实施例,请求发送模块还包括:控制单元,在发送HTTP请求的过程中根据需要在数据类型的分段格式的直播流中插入控制类型的分段,以控制是否需要断开当前的HTTP连接来重新推流。本专利技术对比现有技术有如下的有益效果:本专利技术的方案是使用HTTP协议经行直播推流,这样不再会有RTMP协议的版权限制。由于HTTP协议简单,任何设备上都可以轻松实现,且开源的各种库也很多,因此推流器开发容易,且不受Flash Player这种虚拟机运行环境限制。HTTP协议的开源服务器资源丰富,不需要花昂贵的价钱使用FMS或者Wowza等支持RTMP协议的服务器,可控范围大,定制功能的开发非常容易。HTTP协议使用80端口。一般的防火墙该端口都是开放的,所以不必再经行特殊端口的配置,运营方便。附图说明图1示出了本专利技术的基于HTTP协议的直播流推流方法的较佳实施例中的推流器端的流程图。图2示出了本专利技术的基于HTTP协议的直播流推流方法的较佳实施例中的流媒体服务器的流程图。图3示出了本专利技术的基于HTTP协议的直播流推流系统的较佳实施例的原理图。具体实施例方式下面结合附图和实施例对本专利技术作进一步的描述。基于HTTP协议的肓播流推流方法的实施例本实施例的基于HTTP协议的直播流推流方法包括推流器推送直播流的过程和流媒体服务器接收直播流的过程。图1示出了推流器端的流程,图2示出了流媒体服务器的流程。推流器推送直播流的过程如下:步骤SlOO:推流器连接流媒体服务器的推流端口(端口 80),建立TCP连接。步骤SlOl:发送HTTP请求(HTTP Request Header)。其中HTTP请求的命令为POST, URI为流名,Content-Length设置为一个合理值。在一次HTTP POS本文档来自技高网...

【技术保护点】
一种基于HTTP协议的直播流推流方法,包括推流器推送直播流的过程和流媒体服务器接收直播流的过程,其中:推流器推送直播流的过程如下:推流器连接流媒体服务器的推流端口;发送HTTP请求,其中HTTP请求中的URI为流名;读取封装好的分段格式的直播流并在HTTP请求中发送;待HTTP请求发送完毕后,根据所使用的HTTP的类型进行处理;待直播流结束后停止推送;流媒体服务器接收直播流的过程如下:流媒体服务器监听服务端口;读取HTTP请求,从URI中解析出流名;从HTTP请求中读取分段格式的直播流;分析并处理直播流的每个分段,如果是非数据分段则直接处理,否则处理数据类型的分段,并将媒体数据加入到URI对应的直播流中;在当前HTTP请求接收完毕后根据HTTP的类型进行处理。

【技术特征摘要】
1.一种基于HTTP协议的直播流推流方法,包括推流器推送直播流的过程和流媒体服务器接收直播流的过程,其中: 推流器推送直播流的过程如下: 推流器连接流媒体服务器的推流端口 ; 发送HTTP请求,其中HTTP请求中的URI为流名; 读取封装好的分段格式的直播流并在HTTP请求中发送; 待HTTP请求发送完毕后,根据所使用的HTTP的类型进行处理; 待直播流结束后停止推送; 流媒体服务器接收直播流的过程如下: 流媒体服务器监听服务端口; 读取HTTP请求,从URI中解析出流名; 从HTTP请求中读取分段 格式的直播流; 分析并处理直播流的每个分段,如果是非数据分段则直接处理,否则处理数据类型的分段,并将媒体数据加入到URI对应的直播流中; 在当前HTTP请求接收完毕后根据HTTP的类型进行处理。2.根据权利要求1所述的基于HTTP协议的直播流推流方法,其特征在于,在推流器推送直播流的过程中,根据所使用的HTTP的类型进行处理包括: 若HTTP的类型是1.0或者1.1且非保持连接的情况,则断开HTTP连接,从当前的分段开始重新执行推流器连接流媒体服务器的步骤; 若HTTP的类型是1.1且保持连接的情况,则从当前的分段开始重新发送HTTP请求。3.根据权利要求2所述的基于HTTP协议的直播流推流方法,其特征在于,在流媒体服务器接收直播流的过程中,根据HTTP的类型进行处理包括: 若HTTP的类型是1.0或者1.1且非保持连接的情况,则关闭HTTP的连接,等待重新推A ; 若HTTP的类型是1.1且保持连接的情况,则重新进入HTTP推流请求的读取步骤。4.根据权利要求3所述的基于HTTP协议的直播流推流方法,其特征在于,在发送HTTP请求的过程中根据需要在数据类型分段的直播流中插入控制类型的分段,以控制是否需要断开当前的HTTP连接来重新推流。5.一种基于HTTP协议的直播流推流系统,...

【专利技术属性】
技术研发人员:洪珂白永光郭斌
申请(专利权)人:网宿科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1