一种流媒体播出方法及其系统的制作方法

文档序号:7795625阅读:96来源:国知局
一种流媒体播出方法及其系统的制作方法
【专利摘要】本发明公开一种流媒体播出方法及其系统,流媒体播出方法包括如下步骤:将连续播放的大文件或流切分成一个个的小文件;将切分出的片段文件放在播出服务端进行存储;播出服务端根据播放客户端的请求播放节目。本发明可将大文件切分成多个小片段文件能够更方便快速的在互联网上传输,将网络带宽不稳定对传输效果的影响降到最低。
【专利说明】一种流媒体播出方法及其系统
【技术领域】
[0001]本发明涉及流媒体【技术领域】,特别涉及一种流媒体播出方法及其系统。
【背景技术】
[0002]流媒体播的特点是播放终端可以随时请求播放一个完整节目的任一段播出内容,而无论其所请求的内容是否已经全部下载到客户端。
[0003]流媒体播出相对于下载式播出能够明显的增强用户体验,用户可以快速的跳转到其感兴趣的位置观看,而不必从头开始。在服务器负载上,流媒体播出也有极大的优势,由于只输出用户请求的内容,可以有效节约带宽、磁盘10、内存、CPU等服务资源。
[0004]目前常用的流媒体播出方法是在一个大文件上进行位置偏移读取,服务器根据客户端的请求将文件读取的指针偏移到合适的位置,然后读取文件数据向客户端发送。这种方法由于是一个大文件上进行数据读取,存在如下问题:1)不利于CDN加速,大文件很难在各加速节点之间快速移动;2)不利于负载均衡,大量的读取操作加载在一个存储上,磁盘10很难进行负载分担。
[0005]因此,如何将上述问题加以解决,即为本领域技术人员的研究方向所在。

【发明内容】

[0006]本发明的主要目的是提供一种流媒体播出方法及其系统,本发明的方法是将播出节目的大文件切分成众多的片段文件,每个片段文件包含数秒钟的播出内容,每个片段文件可以单独播放,也可以跟相邻的片段文件拼接在一起播放,播出服务端根据客户端的播放请求发送一个或多个片段文件到客户端,能够有效避免传统流媒体播出方法存在的弊端,大大提高播出的效率和播放的灵活性。
[0007]为了达到上述目的,本发明提供一种流媒体播出方法,其包括如下步骤:
[0008]将连续播放的大文件或流切分成一个个的小文件;
[0009]将切分出的片段文件放在播出服务端进行存储;
[0010]播出服务端根据播放客户端的请求播放节目。
[0011]其中,将连续播放的大文件或流切分成一个个的小文件包括如下子步骤:
[0012]对要播出的大文件进行格式分析;
[0013]根据文件格式判断是否需要生成头文件,如果需要,则输出头文件;
[0014]根据GOP分组对文件进行切片,输出片段文件;
[0015]对每个片段文件进行描述,输出索引文件。
[0016]其中,对要播出的大文件进行格式分析的步骤是根据文件复用格式和视频编码分组信息将大文件切分成一个个的片段文件。
[0017]其中,每个片段文件的文件数据中包含一个或多个完整的视频GOP的编码数据和复用数据,同时包含与该段视频对应的音频数据。
[0018]其中,将切分出的片段文件放在播出服务端进行存储的步骤包括:[0019]流媒体播出的逻辑运行在播出服务端上;
[0020]播出服务端根据播放客户端的请求发送相应的播放数据到客户端。
[0021]其中,所述播出客户端和播出服务器的通信协议是http、rtmp、rtsp、udp。
[0022]其中,播出服务端根据播放客户端的请求播放节目包括如下子步骤:
[0023]分析请求参数;
[0024]检索需要播出的片段文件;
[0025]如果播出节目格式需要发送文件头,首先将文件头数据发给播放客户端;
[0026]按片段文件播出顺序逐个发送到播放客户端。
[0027]其中,播放客户端请求播放整个节目或者请求播放节目的某一部分,当请求播放节目的部分内容时,以该部分播放内容的在整个节目中的起至时间点作为请求参数。
[0028]其中,按片段文件播出顺序逐个发送到播放客户端是播出服务端根据播放请求读取节目索引文件,从索引文件中读取每个片段文件的信息,如果片段文件的播出起至时间在请求播出时间范围内,则判断该片段文件需要发送到播出客户端。
[0029]为了达到上述目的,本发明还一种流媒体播放系统,其包括:
[0030]切分模块,用于将连续播放的大文件或流切分成一个个的小文件;
[0031]存储模块,用于将切分出的片段文件放在播出服务端进行存储;
[0032]播出模块,用于播出服务端根据播放客户端的请求播放节目。
[0033]与现有技术相比,本发明所带来的好处在于:
[0034]I)将大文件切分成多个小片段文件能够更方便快速的在互联网上传输,将网络带宽不稳定对传输效果的影响降到最低;2)片段文件可以方便的在各加速节点之间移动,对CDN加速非常有利;3)片段文件可以方便的分布在各个负载均衡节点上,有利于负载均衡。
【专利附图】

【附图说明】
[0035]图1为本发明流媒体播出方法流程图;
[0036]图2为本发明流媒体播出方法的切片流程图;
[0037]图3为本发明媒体播出方法的分段文件示意图
[0038]图4为本发明媒体播出方法的播出流程图;
[0039]图5为本发明媒体播出系统组成框图。
【具体实施方式】
[0040]以下结合附图,对本发明上述的和另外的技术特征和优点作更详细的说明。
[0041]首先,对本发明出现的技术术语进行说明:
[0042]播放终端:流媒体播出的客户端系统,包含各种安装在智能手机、PC电脑、机顶盒上的播放器软件。
[0043]播出服务端:流媒体播出的服务端系统,根据播放终端的请求向播放终端发送多媒体数据。
[0044]GOP:视频编码分组,一个分组中包含完整的视频解码数据,不需要参考其他分组中的数据。
[0045]文件头数据:视音频编码的描述数据,是播放终端进行解码的重要参考。[0046]片段文件:从一个大文件切分出来的小文件,每个小文件包含一个或多个完整的GOP数据,加上文件头数据后可以独立播放。
[0047]头文件:包含文件头数据的文件,是一个特殊的片段文件。
[0048]索引文件:描述片段文件的文件,索引文件中包含对一个或多个片段文件的描述信息,描述信息包括但不限于文件大小、播放时长、播出偏移起至时间。
[0049]如图1至4所示,分别为本发明流媒体播出方法流程图、本发明流媒体播出方法的切片流程图、本发明媒体播出方法的分段文件示意图及本发明媒体播出方法的播出流程图。
[0050]本发明提供一种流媒体播出方法,其包括如下步骤:
[0051]步骤S1:将连续播放的大文件或流切分成一个个的小文件,其具体包括如下子步骤:
[0052]步骤Sll:对要播出的大文件或流进行格式分析,是根据文件复用格式和视频编码分组信息将大文件切分成一个个的片段文件;
[0053]步骤S12:根据文件格式判断是否需要生成头文件,如果需要,则输出头文件;
[0054]步骤S13:根据GOP分组对文件进行切片,输出片段文件,每个片段文件的文件数据中包含一个或多个完整的视频GOP的编码数据和复用数据,同时包含与该段视频对应的音频数据,切片的粒度根据应用需要来定,可以选择I个或多个GOP存成一个文件;配合参阅图3,为本发明媒体播出方法的分段文件示意图,其中,h为文件头数据;f为切片输出的片段文件数据;G0P为视频编码分组。
[0055]步骤S14:对每个片段文件进行描述,输出索引文件,使用一个或多个索引文件描述所有切片出来的片段文件的信息,每个节目设定一个识别ID,索引文件使用ID命名:ID.1dx ;
[0056]每个片段文件的描述信息包括但不限于:1)以字节为单位的文件大小;2)以秒或者毫秒为单位的播出时长;3)以秒或者毫秒为单位的该片段文件在完整播出节目中的播出起止位置。
[0057]对于有些复用格式,如FLV、MP4、M0V,在切片时将包含视音频编码描述信息的文件头数据以一个独立的片段文件进行保存。对于TS格式的复用格式,不需要单独保留文件头数据。
[0058]步骤S2:将切分出的片段文件放在播出服务端进行存储;流媒体播出的逻辑运行在播出服务端上。切分出的片段文件存放在播出服务端的存储上,播出服务端根据播放客户端的请求发送相应的播放数据到客户端。播出客户端和播出服务器的通信协议可以是http、rtmp、rtsp、udp等。采用其中按自然时间索引的方法,其存储目录结构为:ID/YYYY/MM/DD, ID是为广播、电视频道或摄像头等直播流设定的一个有意义的目录。采用其中按相对时间索引的方法,其存储目录位置不做限定,可以在一个目录下,也可以在多个目录下。
[0059]步骤S3:播出服务端根据播放客户端的请求播放节目,其包括如下子步骤:
[0060]步骤S31:分析请求参数;
[0061]步骤S32:检索需要播出的片段文件;
[0062]步骤S33:如果播出节目格式需要发送文件头,首先将文件头数据发给播放客户端;[0063]步骤S34:按片段文件播出顺序逐个发送到播放客户端。
[0064]根据流媒体播出的特性,播放客户端可以请求播放整个节目,也可以请求播放节目的某一部分。当请求播放节目的部分内容时,以该部分播放内容的在整个节目中的起至时间点作为请求参数。如,请求播放节目的第20秒到第30秒的内容,则传递开始时间20和结束时间30两个参数给播出服务端。
[0065]播出服务端根据播放请求读取节目索引文件,从索引文件中读取每个片段文件的信息,如果片段文件的播出起至时间在请求播出时间范围内,则可以判断该片段文件需要发送到播出客户端。最终检索出一个或多个片段文件发送给播放终端。对有些格式的视频如FLV、MP4、M0V等,在发送片段文件前需要将头文件数据首先下发。大部分的视频封装格式都有文件头,如FLV、MP4、F4V等,这种情况下需要在发送数据的开头发送文件头到客户端,文件头中包括满足媒体播放的所有元数据。
[0066]播放客户端使用频道(或节目)ID和播出时间请求播出内容。
[0067]对于直播流,客户端使用频道ID、开始时间、结束时间来请求播出内容。如果开始时间为0,表示请求正在直播的内容。如果结束时间为0,开始时间非0,表示请求从开始时间之后的内容,这是时移播放形式(time shifting)。开始时间和结束时间都非0,表示请求一段点播内容。
[0068]对于点播流,客户端使用节目ID来请求播出内容。加上开始时间、结束时间,表示请求相对开头的一段内容。
[0069]服务器收到请求后,根据请求内容检索到一个或多个碎片文件,将这些碎片文件按顺序连续发送到客户端。从客户端来看,服务器端发来的是一个连续的文件,而非一个个片段。
[0070]服务器和客户端的通信协议通常为HTTP,也可以是FTP、RTSP、RTMP等等。
[0071]如图5所示,为本发明一种流媒体播放系统组成框图,本发明提供一种流媒体播放系统,其包括:切分模块101、存储模块102及播出模块103,其中
[0072]所述的切分模块101,用于将连续播放的大文件或流切分成一个个的小文件;
[0073]所述的存储模块102,用于将切分出的片段文件放在播出服务端进行存储;
[0074]所述的播出模块103,用于播出服务端根据播放客户端的请求播放节目。
[0075]所述的切分模块101具体是对要播出的大文件或流进行格式分析,是根据文件复用格式和视频编码分组信息将大文件切分成一个个的片段文件,并根据文件格式判断是否需要生成头文件,如果需要,则输出头文件;根据GOP分组对文件进行切片,输出片段文件,每个片段文件的文件数据中包含一个或多个完整的视频GOP的编码数据和复用数据,同时包含与该段视频对应的音频数据,切片的粒度根据应用需要来定,M3U8播出的一般10秒钟左右播放长度存成一个ts文件,flash播出可以选择I个或多个GOP存成一个文件;配合参阅图3,为本发明媒体播出方法的分段文件示意图,其中,h为文件头数据;f为切片输出的片段文件数据;G0P为视频编码分组。
[0076]所述的切分模块101还用于对每个片段文件进行描述,输出索引文件,使用一个或多个索引文件描述所有切片出来的片段文件的信息,每个节目设定一个识别ID,索引文件使用ID命名:ID.1dx ;
[0077]其中,所述的切分模块101中的每个片段文件的描述信息包括但不限于:1)以字节为单位的文件大小;2)以秒或者毫秒为单位的播出时长;3)以秒或者毫秒为单位的该片段文件在完整播出节目中的播出起止位置。
[0078]所述的存储模块102,具体是将切分出的片段文件存放在播出服务端的存储上,播出服务端根据播放客户端的请求发送相应的播放数据到客户端。播出客户端和播出服务器的通信协议可以是http、rtmp、rtsp、udp等。
[0079]所述的播出模块103,具体用于分析请求参数,并检索需要播出的片段文件,如果播出节目格式需要发送文件头,首先将文件头数据发给播放客户端,并按片段文件播出顺序逐个发送到播放客户端。
[0080]综上所述,本发明是将播出节目的大文件切分成众多的片段文件,每个片段文件包含数秒钟的播出内容,每个片段文件可以单独播放,也可以跟相邻的片段文件拼接在一起播放。播出服务端根据客户端的播放请求发送一个或多个片段文件到客户端。
[0081]这种方法带来的好处是:1)将大文件切分成多个小片段文件能够更方便快速的在互联网上传输,将网络带宽不稳定对传输效果的影响降到最低;2)片段文件可以方便的在各加速节点之间移动,对CDN加速非常有利;3)片段文件可以方便的分布在各个负载均衡节点上,有利于负载均衡。
[0082]以上说明对本发明而言只是说明性的,而非限制性的,本领域普通技术人员理解,在不脱离权利要求所限定的精神和范围的情况下,可作出许多修改、变化或等效,但都将落入本发明的保护范围之内。
【权利要求】
1.一种流媒体播出方法,其特征在于,其包括如下步骤: 将连续播放的大文件或流切分成一个个的小文件; 将切分出的片段文件放在播出服务端进行存储; 播出服务端根据播放客户端的请求播放节目。
2.根据权利要求1所述的一种流媒体播出方法,其特征在于,将连续播放的大文件或流切分成一个个的小文件包括如下子步骤: 对要播出的大文件进行格式分析; 根据文件格式判断是否需要生成头文件,如果需要,则输出头文件; 根据GOP分组对文件进行切片,输出片段文件; 对每个片段文件进行描述,输出索引文件。
3.根据权利要求2所述的一种流媒体播出方法,其特征在于,对要播出的大文件进行格式分析的步骤是根据文件复用格式和视频编码分组信息将大文件切分成一个个的片段文件。
4.根据权利要求3所述的一种流媒体播出方法,其特征在于,每个片段文件的文件数据中包含一个或多个完整的视频GOP的编码数据和复用数据,同时包含与该段视频对应的音频数据。
5.根据权利要求1所述的一种流媒体播出方法,其特征在于,将切分出的片段文件放在播出服务端进行存储的步骤包括: 流媒体播出的逻辑运行在播出服务端上; 播出服务端根据播放客户端的请求发送相应的播放数据到客户端。
6.根据权利要求5所述的一种流媒体播出方法,其特征在于,所述播出客户端和播出服务器的通信协议是http、rtmp、rtsp、udp。
7.根据权利要求1所述的一种流媒体播出方法,其特征在于,播出服务端根据播放客户端的请求播放节目包括如下子步骤: 分析请求参数; 检索需要播出的片段文件; 如果播出节目格式需要发送文件头,首先将文件头数据发给播放客户端; 按片段文件播出顺序逐个发送到播放客户端。
8.根据权利要求1所述的一种流媒体播出方法,其特征在于,播放客户端请求播放整个节目或者请求播放节目的某一部分,当请求播放节目的部分内容时,以该部分播放内容的在整个节目中的起至时间点作为请求参数。
9.根据权利要求7所述的一种流媒体播出方法,其特征在于,按片段文件播出顺序逐个发送到播放客户端是播出服务端根据播放请求读取节目索引文件,从索引文件中读取每个片段文件的信息,如果片段文件的播出起至时间在请求播出时间范围内,则判断该片段文件需要发送到播出客户端。
10.一种流媒体播放系统,其特征在于,其包括: 切分模块,用于将连续播放的大文件或流切分成一个个的小文件; 存储模块,用于将切分出的片段文件放在播出服务端进行存储; 播出模块,用于播出服务端根据播放客户端的请求播放节目。
【文档编号】H04N21/845GK103763637SQ201410025005
【公开日】2014年4月30日 申请日期:2014年1月21日 优先权日:2014年1月21日
【发明者】王建 申请人:北京云视睿博传媒科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1