一种RTMP直播回看方法及系统技术方案

技术编号:13797860 阅读:53 留言:0更新日期:2016-10-06 19:44
本发明专利技术公开了一种RTMP直播回看方法及系统,所述方法包括:根据预先配置下载RTMP音视频流并解码得到音视频文件;根据预先设定的策略将所述音视频文件编码生成音视频数据;生成所述音视频数据的索引文件头,将所述索引文件头和音视频数据封装成为回看音视频文件;将所述回看音视频文件通过服务器发布。本发明专利技术实施例的方案,能够将RTMP直播流转成了flv等格式的直播流,实现flv点播回看的功能,极大的提高了用户体验度。

【技术实现步骤摘要】

本专利技术涉及互联网
,特别涉及一种RTMP直播回看方法及系统
技术介绍
RTMP是Real Time Messaging Protocol(实时消息传输协议)的首字母缩写。该协议基于TCP,是一个协议簇,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种。RTMP是一种设计用来进行实时数据通信的网络协议,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信。支持该协议的软件包括Adobe Media Server/Ultrant Media Server/red5等。RTMP有三种变种:1)工作在TCP之上的明文协议,使用端口1935;2)RTMPT封装在HTTP请求之中,可穿越防火墙;3)RTMPS类似RTMPT,但使用的是HTTPS连接。RTMP协议就像一个用来装数据包的容器,这些数据既可以是AMF格式的数据,也可以是FLV中的视/音频数据。一个单一的连接可以通过不同的通道传输多路网络流。这些通道中的包都是按照固定大小的包传输的。一个Actionscript连接并播放一个流的简单代码:var videoInstance:Video=your_video_instance;var nc:NetConnection=new NetConnection();var connected:Boolean=nc。connect(\RTMP:/localhost/myapp\);var ns:NetStream=new NetStream(nc);videoInstance。attachVideo(ns);ns。play(\flvName\);默认端口为1935。RTMP包包含一个固定长度的包头和一个最长为128字节的包体。包头可以是下面4种长度的任意一种:12,8,4,or 1 byte(s)。第一个字节的前两个Bit很重要,它决定了包头的长度。它可以用掩码0xC0进行\与\计算。下面的表格罗列了可能的包头长度:Bits Header Length00 12 bytes01 8 bytes10 4 bytes11 1 byte其实RTMP包结构就是使用了AMF格式。下面是一个关于客户端向服务器端发送流的流程:Client→Server:发送一个创建流的请求。Server→Client:返回一个表示流的索引号。Client→Server:开始发送。Client→Server:发送视音频数据包(这些包在同一个频道(channel)并用流的索引号来唯一标识)。现有技术中,RTMP流只能提供直播流方式,也就是说用户只能通过RTMP看直播,而不能看点播,即无法实现回看视频。因而,亟需要一种新的可以满足用户对于RTMP直播流的回看和点播需要的方案,以提高用户体验度。
技术实现思路
本专利技术提供一种RTMP直播回看方法及系统,用以解决现有技术中码RTMP直播流无法进行回看和点播的问题。本专利技术提供一种RTMP直播回看方法,包括:根据预先配置下载RTMP音视频流并解码得到音视频文件;根据预先设定的策略将所述音视频文件编码生成音视频数据;生成所述音视频数据的索引文件头,将所述索引文件头和音视频数据封装成为回看音视频文件;将所述回看音视频文件通过服务器发布。所述方法还包括:将所述RTMP音视频流解码为h264和aac数据并存入数据链表。所述方法还包括:将所述数据链表中的h264和aac数据按照每第一预设时长生成一个音视频文件。所述方法还包括:所述索引文件头包括所述音视频文件对应的TVM二进制数据遗迹对应的音视频编码信息。所述方法还包括:每第二预设时长根据所述音视频文件的信息生成一个索引文件;所述索引文件包括时间信息与所述音视频文件的位置。所述方法还包括:根据用户点播回看请求信息,查找索引文件;根据索引文件获取对应的回看音视频文件;重新封装后发送给用户。一种RTMP直播回看系统,包括:下载单元,用于根据预先配置下载RTMP音视频流并解码得到音视频文件;编码单元,用于根据预先设定的策略将所述音视频文件编码生成音视频数据;索引单元,用于生成所述音视频数据的索引文件头,将所述索引文件头和音视频数据封装成为回看音视频文件;发布单元,将所述回看音视频文件通过服务器发布。所述系统还包括:数据链表单元,用于存储所述的音视频文件。所述系统还包括:预设单元,用于设置第一预设时长和第二预设时长;所述第一预设时长用于所述数据链表单元将数据按照每第一预设时长生成一个音视频文件;所述第二预设时长用于所述索引单元每第二预设时长根据所述音视频文件的信息生成一个索引文件;所述索引文件包括时间信息与所述音视频文件的位置。所述系统还包括:检索单元,用于根据用户点播回看请求信息,查找索引文件;根据索引文件获取对应的回看音视频文件。本专利技术实施例根据预先配置下载RTMP音视频流并解码得到音视频文件;根据预先设定的策略将所述音视频文件编码生成音视频数据;生成所述音视频数据的索引文件头,将所述索引文件头和音视频数据封装成为回看音视频文件;将所述回看音视频文件通过服务器发布。本专利技术实施例的方案,能够将RTMP直播流转成了flv等格式的直播流,实现flv点播回看的功能,极大的提高了用户体验度。本专利技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本专利技术而了解。本专利技术的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。下面通过附图和实施例,对本专利技术的技术方案做进一步的详细描述。附图说明附图用来提供对本专利技术的进一步理解,并且构成说明书的一部分,与本专利技术的实施例一起用于解释本专利技术,并不构成对本专利技术的限制。在附图中:图1为本专利技术实施例1提供的一种RTMP直播回看方法原理流程图;图2为本专利技术实施例3提供的一种RTMP直播回看系统结构示意图。具体实施方式以下结合附图对本专利技术的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本专利技术,并不用于限定本专利技术。如图1所示,为本专利技术实施例1提供的一种RTMP直播回看方法原理流程图,其中,步骤11,根据预先配置下载RTMP音视频流并解码得到音视频文件。本实施例中,首先需要获取RTMP音视频流。这里对于RTMP流的获取,可以根据预先设定的下载策略进行,也可以根据用户指定的地址进行。例如,可以预先配置好下载策略,在策略生效后,根据该下载策略进行具体的下载。通常,RTMP协议基于TCP,是一个协议簇,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种。RTMP是一种设计用来进行实时数据通信的网络协议,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信。支持该协议的软件包括Adobe Media Server/Ultrant Media Server/red5等。RTMP协议有三种变种:工作在TCP之上的明文协议,使用端口1935;RTMPT封装在HTTP请求之中,可穿越防火墙;RTMPS类似RTMPT,但使用的是HTTPS连接。RTMP协议封包由一个包头和一个包体组成,包头可以是4种长度的任意一种:12,8本文档来自技高网
...

【技术保护点】
一种RTMP直播回看方法,其特征在于,包括:根据预先配置下载RTMP音视频流并解码得到音视频文件;根据预先设定的策略将所述音视频文件编码生成音视频数据;生成所述音视频数据的索引文件头,将所述索引文件头和音视频数据封装成为回看音视频文件;将所述回看音视频文件通过服务器发布。

【技术特征摘要】
1.一种RTMP直播回看方法,其特征在于,包括:根据预先配置下载RTMP音视频流并解码得到音视频文件;根据预先设定的策略将所述音视频文件编码生成音视频数据;生成所述音视频数据的索引文件头,将所述索引文件头和音视频数据封装成为回看音视频文件;将所述回看音视频文件通过服务器发布。2.如权利要求1所述的方法,其特征在于,所述方法还包括:将所述RTMP音视频流解码为h264和aac数据并存入数据链表。3.如权利要求2所述的方法,其特征在于,所述方法还包括:将所述数据链表中的h264和aac数据按照每第一预设时长生成一个音视频文件。4.如权利要求1或3所述的方法,其特征在于,所述方法还包括:所述索引文件头包括所述音视频文件对应的TVM二进制数据遗迹对应的音视频编码信息。5.如权利要求1或3所述的方法,其特征在于,所述方法还包括:每第二预设时长根据所述音视频文件的信息生成一个索引文件;所述索引文件包括时间信息与所述音视频文件的位置。6.如权利要求5所述的方法,其特征在于,所述方法还包括:根据用户点播回看请求信息,查找索引文件;根据索引文件...

【专利技术属性】
技术研发人员:张新亮
申请(专利权)人:天脉聚源北京科技有限公司
类型:发明
国别省市:北京;11

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

1