基于http协议的多子流流媒体传输系统及其传输方法

文档序号:7762332阅读:147来源:国知局
专利名称:基于http协议的多子流流媒体传输系统及其传输方法
技术领域
本发明涉及的是一种网络信息传输技术领域的系统及方法,具体是一种基于HTTP 协议的多子流流媒体传输系统及其传输方法。
背景技术
视频分享、网络直播等网络多媒体应用已经成为当前互联网上最重要的应用之 一。流媒体传输技术是这些应用的核心技术之一,它可以让客户端的播放器无需等待所有 节目内容都下载完毕就可以开始播放,比起先下载再播放的应用模式来说具有更好的用户 体验。传统的流媒体传输是基于专门的一些流媒体传输协议实现的。主流的协议包括 IETF制定的RTSP协议、微软公司开发的匪S协议和Real Network公司开发的Real协议 等。这些协议的问题是需要专门的流媒体服务器和专门的流媒体内容分发网络(CDN)来服 务大规模的客户群。而基于HTTP协议的Web服务器和针对Web内容的内容分发网络技术 和产品已经十分成熟,价格相对专门的流媒体服务器和专门的流媒体内容分发网络(CDN) 要低廉许多。另外,专用的流媒体传输协议在实际网络环境中往往由于网络通路中存在防 火墙、NAT路由器等原因,无法建立有效的传输数据的网络通道。而HTTP协议目前在穿透 防火墙、NAT路由器等方面没有任何障碍。因此能否基于HTTP协议和现成的Web服务器、 web内容CDN基础设施来实现流媒体传输越来越引起人们的重视。基于这一思路,Apple公司提出了其称为 HTTP Live Streaming (http //tools. ietf. org/html/draft-pantos-http-live-streaming-04)的流媒体传输方法,该方法将本 来连续的媒体流切分为若干相对较小的媒体文件,并相应的生成一个索引文件,然后通过 Web服务器将索引文件和媒体文件集合提供出来;相应的客户端利用标准HTTP协议来从 Web服务器下载索引文件并根据索引文件提供的URL地址去下载下一个需要播放的时间片 段对应的媒体文件。进一步检索发现,中国专利申请号200710145373. 8,记载了一种“支持手机超文本 传输流媒体业务的方法”以及Adobe公司提出的HTTP Dynamic Streaming (http //www. adobe, com/products/httpdynamicstreaming/)等。这些已有的方法可以较好的实现基于 标准HTTP协议、标准Web服务器和标准Web⑶N来提供流媒体传输服务。但是这些该方法 在用于多子流节目的传输时存在着明显到的不足。上述多子流节目是指一个节目包含多个子流,比如一个典型的在线实时课堂直播 节目就可能包括一个现场麦克风采集的教师授课声音的音频子流、一个面向教师的摄像 头采集的教师视频子流、一个面向现场学生的摄像头采集的教室场景视频子流和一个从教 师现场演示教案(如PPT)的PC上采集的讲义视频子流。由于在某个特定时刻,远程的学 生可能只关心这些子流中的若干子流,流媒体传输协议应该能让客户端选择只接收这些子 流中的一个子集。但目前提出的基于HTTP协议的流媒体传输协议却无法做到这一点。即 使用户只需要观看其中的少数几个子流,Web服务器也会把包含所有子流内容的媒体数据
3发给客户,客户端的播放器最后把不需要播放的子流的数据丢弃掉。这显然是对网络带宽 的浪费,对于通过手机上网来收看节目的用户来说,由于手机数据网络带宽的稀缺性,这个 矛盾更加突出。

发明内容
本发明针对现有技术存在的上述不足,提供一种基于HTTP协议的多子流流媒体 传输系统及其传输方法,将每个子流的媒体数据按照时间片单独切分为若干独立的片段文 件并存放在Web服务器上,用户可以通过HTTP协议请求自己所需的子流集合对应的片段文 件集合,发明既可以利用标准HTTP协议来传输流媒体,同时从服务器到客户只传输每个客 户需要的子流集合。本发明是通过以下技术方案实现的本发明涉及一种基于HTTP协议的多子流流媒体传输系统,包括子流分片模块、 索引文件生成模块、Web服务器模块和客户端模块,其中子流分片模块与Web服务器模块 相连接并向其提供每个子流的片段文件,索引文件生成模块与子流分片模块和Web服务器 模块相连接并根据子流分片模块的分片情况来产生索引文件并提供给Web服务器模块,客 户端模块与Web服务器模块相连接并向其请求索引文件和子流片段文件。所述的子流分片模块从一个多子流节目源中按照一定的时间间隔将每个子流的 数据分成若干片段,每个片段保存为符合某种多媒体文件存储格式的分片文件。所述的索引文件生成模块生成一个索引文件,该索引文件包括若干小节,每个小 节对应一个子流分片模块切割子流时采用的时间间隔,其内容包括该小节的时间信息和这 个小节对应时间间隔上节目源输出的每个子流的相应片段文件的URL地址。所述的Web服务器模块接收客户通过HTTP协议发来的对索引文件和子流片段文 件的URL地址请求,并提供相应的视频分片文件。所述的客户端模块接收Web服务器发出的索引文件并从中提出所需的子流集合 对应的分片文件的url,并向Web服务器请求这些文件。本发明涉及上述系统的多子流流媒体传输方法,包括如下步骤第一步、将节目源输出的多个子流,按照时间间隔分切割为若干片段并保存为符 合某种多媒体文件存储格式的分片文件,将这些分片文件存放在Web服务器可以访问的存 储区域,每个分片文件对应一个唯一的URL地址;第二步、生成一个索引文件,该索引文件包括若干小节,每个小节对应一个前述步 骤的时间间隔,其内容包括该小节的时间信息和这个小节对应时间间隔上节目源输出的每 个子流的相应片段文件的URL地址;第三步、通过HTTP协议向web服务器请求索引文件,然后根据需要播放的时间片, 从索引文件找出相应的小节,然后根据自己需要播放的子流的集合,获取对应片段文件的 URL地址集合,最后向Web服务器请求这些文件。所述的节目源为预先录制好的媒体文件或多个媒体编码器的实时输出。所述的索引文件的每个小节包含的对应时间间隔的时间信息是指每个小节的起 始时刻或者每个小节的时间跨度。本发明提出的基于HTTP协议的多子流流媒体传输系统和方法,既保留了基于HTTP协议传输流媒体的可以直接利用标准的Web服务器和Web CDN基础设施以及易于穿越 防火墙和NAT路由器的优点,又允许每个客户端让服务器只发送自己需要的子流集合,从 而节省了带宽的开销。本发明的方法可以广泛地应用于包含多子流的流媒体服务,比如远 程教育中课堂直播、多摄像机的全景现场直播。尤其注意到其实普通的视频节目也是多子 流的一个特例,即包含一个声音子流和一个视频子流,当用户只希望听到声音或者只希望 看到视频时,本发明的方法也可以发挥作用。


图1是本发明结构示意图。图2是多子流分段文件集合的构成示意3是实施例2结构示意图。图4是实施例3结构示意图。
具体实施例方式下面对本发明的实施例作详细说明,本实施例在以本发明技术方案为前提下进行 实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施 例。实施例1如图1所示,本实施例包括子流分片模块1、索引文件生成模块2、Web服务器模 块3和客户端模块4,其中子流分片模块1与Web服务器模块3相连接并向其提供每个子 流的片段文件,索引文件生成模块2与子流分片模块1和Web服务器模块3相连接并根据 子流分片模块1的分片情况来产生索引文件,然后提供给Web服务器模块3。客户端模块4 与Web服务器模块3相连接并向其请求索引文件和子流片段文件。所述的子流分片模块1从一个多子流节目源中按照一定的时间间隔将每个子流 的数据分成若干片段,每个片段保存为符合某种多媒体文件存储格式的分片文件所述的索引文件生成模块2生成一个索引文件;索引文件包括若干小节;每个小 节对应一个子流分片模块11切割子流时采用的时间间隔,其内容包括该小节的时间信息 和这个小节对应时间间隔上节目源输出的每个子流的相应片段文件的URL地址所述的Web 服务器模块3接收客户通过HTTP协议发来的对索引文件和子流片段文件的请求,并提供相 应的文件所述的客户端模块4向Web服务器请求索引文件,然后根据需要播放的时间片,从 索引文件找出相应的小节,然后根据自己需要播放的子流的集合,获取对应片段文件的URL 地址集合,最后向Web服务器请求这些文件如图2所示,为一种根据本装置的可能的实施例中对应图1中子流分片文件集合 的具体组成的例子。该实例中的节目源输出A,B,C 3个子流,时间段i时A子流的数据被 存为片段文件(A,i),B子流的数据被存为片段文件(B,i),C子流的数据被存为片段文件 (C,i);时间段i+Ι时A子流的数据被存为片段文件(A,i+1),B子流的数据被存为片段文 件(B,i+Ι),C子流的数据被存为片段文件(C,i+Ι);依次类推。实施例2
5
如图3所示,为一种根据本装置的可能的实施例。其中图1所示多子流节目源具 体体现为一个录制好的多子流媒体文件101。实施例3如图4所示,为另一种根据本装置的可能的实施例。其中图1所示多子流节目源 具体体现为由视频子流A编码器102、视频子流B编码器103、音频子流C编码器104。根据本装置的具体实施例中索引文件的格式可以根据需要定义一种可能的基于 XML的格式可以如下每个小节用〈Fragment〉元素来表示,其duration属性给出了本小 节对应的时间片段的持续时间。〈Fragment〉元素下为每个子流创建一个<Substream>元 素,其streamed属性标识了该元素对应哪个子流;根据这个属性,客户端可以知道不同 〈Fragment〉元素中的哪些<Substream>元素是对应同一个子流的。<Substream>的内容是 该时间段上对应子流生成的片段文件的URL地址。客户端可以根据此URL地址来向Web服 务器请求该文件。根据本装置的具体实施例中子流片段文件采用的存储格式可以采用任何可能的 媒体文件存储格式。一种可能的格式例子为MPEG2 Transport Stream格式;需要注意的是 尽管该格式可以在一个文件中同时存储多个子流的数据,但是在这里我们只存储一个单独 的子流的数据。其它可以采用的媒体文件存储格式的例子包括avi、mp4、ogg等。本装置相对已有的基于HTTP协议的流媒体传输系统和方法的创新点在于将每个 子流单独进行分片、存储和索引,从而可以让客户端选择性的只请求需要的子流内容。这在 节目源中包含多个子流,而客户端同时只需要呈现一部分子流的内容时,可以有效的节省 网络带宽开销。
权利要求
一种基于HTTP协议的多子流流媒体传输系统,其特征在于,包括子流分片模块、索引文件生成模块、Web服务器模块和客户端模块,其中子流分片模块与Web服务器模块相连接并向其提供每个子流的片段文件,索引文件生成模块与子流分片模块和Web服务器模块相连接并根据子流分片模块的分片情况来产生索引文件并提供给Web服务器模块,客户端模块与Web服务器模块相连接并向其请求索引文件和子流片段文件。
2.根据权利要求1所述的基于HTTP协议的多子流流媒体传输系统,其特征是,所述的 子流分片模块从一个多子流节目源中按照一定的时间间隔将每个子流的数据分成若干片 段,每个片段保存为符合某种多媒体文件存储格式的分片文件。
3.根据权利要求1所述的基于HTTP协议的多子流流媒体传输系统,其特征是,所述的 索引文件生成模块生成一个索引文件,该索引文件包括若干小节,每个小节对应一个子流 分片模块切割子流时采用的时间间隔,其内容包括该小节的时间信息和这个小节对应时间 间隔上节目源输出的每个子流的相应片段文件的URL地址。
4.根据权利要求1所述的基于HTTP协议的多子流流媒体传输系统,其特征是,所述的 Web服务器模块接收客户通过HTTP协议发来的对索引文件和子流片段文件的URL地址请 求,并提供相应的视频分片文件。
5.根据权利要求1所述的基于HTTP协议的多子流流媒体传输系统,其特征是,所述的 客户端模块接收Web服务器发出的索引文件并从中提出所需的子流集合对应的分片文件 的url,并向Web服务器请求这些文件。
6.一种根据上述任一权利要求所述系统的多子流流媒体传输方法,其特征在于,包括 如下步骤第一步、将节目源输出的多个子流,按照时间间隔分切割为若干片段并保存为符合某 种多媒体文件存储格式的分片文件,将这些视频分片文件存放在Web服务器可以访问的存 储区域,每个视频分片文件对应一个唯一的URL地址;第二步、生成一个索引文件,该索引文件包括若干小节,每个小节对应一个前述步骤的 时间间隔,其内容包括该小节的时间信息和这个小节对应时间间隔上节目源输出的每个子 流的相应片段文件的URL地址;第三步、通过HTTP协议向web服务器请求索引文件,然后根据需要播放的时间片,从 索引文件找出相应的小节,然后根据自己需要播放的子流的集合,获取对应片段文件的URL 地址集合,最后向Web服务器请求这些文件。
7.根据权利要求6所述的多子流流媒体传输方法,其特征是,所述的节目源为预先录 制好的媒体文件或多个媒体编码器的实时输出。
8.根据权利要求6所述的多子流流媒体传输方法,其特征是,所述的索引文件的每个 小节包含的对应时间间隔的时间信息是指每个小节的起始时刻或者每个小节的时间跨 度。
全文摘要
一种网络信息传输技术领域的基于HTTP协议的多子流流媒体传输系统及其传输方法,其系统包括子流分片模块、索引文件生成模块、Web服务器模块和客户端模块,子流分片模块与Web服务器模块相连接并向其提供每个子流的片段文件,索引文件生成模块与子流分片模块和Web服务器模块相连接并根据子流分片模块的分片情况来产生索引文件,然后提供给Web服务器模块。客户端模块与Web服务器模块相连接并向其请求索引文件和子流片段文件。本发明直接利用标准的Web服务器和Web CDN基础设施,易于穿越防火墙和NAT路由器从而节省了带宽的开销。
文档编号H04L29/06GK101951412SQ20101051011
公开日2011年1月19日 申请日期2010年10月15日 优先权日2010年10月15日
发明者谢伟凯 申请人:上海交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1