一种服务器及其在线播放视频的发送方法

文档序号:7927352阅读:389来源:国知局
专利名称:一种服务器及其在线播放视频的发送方法
技术领域
本发明涉及视频在线播放领域,尤其涉及实现支持进度拖放功能的视频 在线播放的技术。
背景技术
Web2.0视频分享网站(如Youtube、 土豆等)通常是通过HTTP( Hyper Text Transfer Protocol,超文本传输协议)进行FLV ( Flash Video,动画视频)视频 在线播放的。在FLV视频进行在线播放时,观看该在线播放视频的用户可以 拖动播放器的进度条来选择观看当前播放进度前、或者当前播放进度后的视 频。这种支持用户拖动播放器的进度条来进行视频观看的进度拖放功能,则 是HTTP服务器在线视频应用中的一个重要的功能。
如图1所示,FLV视频文件除了文件头(FLV Header)之外,其余内容 由连续交替的包含音频帧、视频帧或者元数据的FLV tag (FLV片段)以及指 示FLV tag大小的Previous Tag Size (在前FLV Tag的大小)组成。
FLV视频的客户端播放器一般由基于Adobe浏览器Flash插件所支持的语 言ActionScript实现,而该语言的FLV播放控制功能比较有限。 一个FLV文 件的播放程序大致如下
〃《鍵一个脸n画对,
<formula>formula see original document page 5</formula>
通过上述的播放程序,可以看出该语言只能在程序中播放一个URL(Uniform Resource Locator,统一资源定位符)。在该语言实现的插-i文器中, 当用户将播放器的进度条拖动到已经下载到本地的FLV内容时,使用 NetStream的seek方法即可转到新的拖动点进行播放;但当用户将播放器的进 度条拖动到尚未下载到本地的内容时,则无法播放用户要求播放的内容。
为了解决上述FLV文件播放时的任意拖动问题,目前的做法是每当用户 将进度条拖动到一个文件内容尚未下载到本地的位置时,如图2所示,HTTP 服务器就在线生成包含完整FLV头的新的FLV文件送给播;改器进行播放,对 应地,播放器程序中也播放一个新的URL:
〃^,摔遽!夯遂动封^求74'到本她W在J#
〃摔位置/^惑餘>^^^" ^@,"潜放一个者W魂j^Jt斧W L
m少尸丄F5^e画./ —卩'f^/7v 加W=_/ 2 , ,
近年来,随着支持H.264和MP4文件格式的Adobe Flash Player Version 9 的发布,越来越多的Web2.0视频分享网站都开始使用压缩率更高的EL264编 码视频,文件封装格式也普遍采用MP4格式。
MP4文件是MPEG-4 (动态图像专家组4 )定义的 一种新的4某体内容封装 格式(即多媒体文件格式),其于QTFF ( QuickTime File Format)格式。MP4 文件由若干个单元(Atom或称作Box)组成。每个Atom的结构都由大小、 类型和内容组成。 一个Atom还可以包含别的Atom。
通常来说, 一个MP4文件最顶层包含两个Atom,分别是元数据存储单 元Movie Atom (也称为MOOV Atom)和媒体数据(Media Data)存储单元 MDAT Atom ( Media Data Atom )。
MOOV Atom的主要功能是说明媒体数据的类型,数据存放的位置、解码 时间等系统信息。每个々某体流在MP4码流中对应不同的轨道(track),这些 轨道能够通过索引轨道相关联。MP4文件中的媒体采样数据是连续存放在 MD ATA Atom中的。
不同于FLV文件中音视频采样按时间顺序以tags的形式交替存放,MP4文件中采样数据本身是独立于采样时间信息存放在MDATAtom中的。在进行 在线播放时,当用户拖动到MP4文件中 一个新的播放位置时,如果HTTP服 务器依然按照上述的现有技术的方法,在接收到用户发送的播放进度信息时, 生成一个新的基于MP4的々某体文件发送给客户端,那么在生成新的基于MP4 的媒体文件过程中HTTP服务器需要较多的时间以及较大的计算量来完成该 项任务。而HTTP服务器需要服务众多的客户,因此在实际应用中,若HTTP
送的进度信息,那么会导致HTTP服务器因无法响应众多用户发送的进度信 息,而导致处理效率低下甚至瘫痪。所以,现有技术的HTTP服务器处理、 响应用户针对MP4格式的在线播放视频文件发送的进度信息在现实中是不可 行的;换言之,现有技术的HTTP服务器不能处理、响应众多用户针对MP4 格式的在线播放视频文件发送的进度信息。

发明内容
本发明实施例提供了 一种服务器及其在线播放视频的发送方法,用以及 时处理、响应用户发送的在线播放进度信息,向用户发送相应视频文件。 一种在线播放一见频的发送方法,包括 获得用户端发送的在线播放视频的进度信息;
确定所述进度信息所对应的片段起始点;所述片段起始点为预先设置在 所述在线播放视频的播放进程中的若干个点;
在线生成新媒体文件的媒体数据信息,并将预先存储的该新媒体文件的 元数据信息与所述媒体数据信息组合成所述新媒体文件;所述新媒体文件的 播放起点为确定的片段起始点;
将组合的新媒体文件发送给用户端。
一种在线播放视频的发送方法,包括
获得用户端发送的在线播放视频的进度信息;确定所述进度信息所对应的片段起始点;所述片段起始点为预先设置在 所述在线播放视频的播放进程中的若千个点;
将预先存储的对应于该片段起始点的媒体文件发送给用户端进行视频播放。
一种服务器,包括
进度信息获得模块,用于获得用户端发送的在线播放视频的进度信息; 片段起始点确定模块,用于确定所述进度信息所对应的片段起始点;所 述片段起始点为预先设置在所述在线播放视频的播放进程中的若干个点; 媒体文件确定模块,用于确定预先存储的对应于该片段起始点的媒体文
件;
媒体文件发送模块,用于将确定的媒体文件发送给用户端进行视频播放。 一种服务器,包括
进度信息获得模块,用于获得用户端发送的在线播放视频的进度信息;
片段起始点确定模块,用于确定所述进度信息所对应的片段起始点;所 述片段起始点为预先设置在所述在线播放视频的播放进程中的若干个点;
媒体数据信息生成模块,用于以确定的片段起始点作为新媒体文件的播 放起点,在线生成所述新媒体文件的媒体数据信息;
元数据信息存储模块,用于存储预先生成的所述新々某体文件的元数据信

,&,
媒体文件生成模块,用于将预先存储的所述新媒体文件的元数据信息与 所述媒体数据信息组合成所述新媒体文件;
媒体文件发送模块,用于将组合的新媒体文件发送给用户端。 本发明实施例的服务器由于在整个视频的播放进度中设置若千个片,殳起 始点,并预先生成以各片段起始点作为播放起点的各媒体文件,或者媒体文 件的元数据信息,从而当服务器接收到用户发送的进度信息时,可以根据进 度信息确定一个对应片段起始点的媒体文件发送给用户,从而避免在线生成媒体文件、或者媒体文件的元数据信息而花费较多时间和计算资源,达到及 时处理、响应用户发送的在线播放进度信息、为用户发送相应的播放视频的 媒体文件的目的。


图1为现有技术的FLV视频文件示意图; 图2为现有技术的生成新4某体文件的示意图3为本发明实施例的在线播放视频进程中设置片段起始点的示意图; 图4a为本发明实施例的支持进度拖放功能的在线视频播放方法流程图; 图4b、 4c、 4d为本发明实施例的才艮据进度信息确定对应片^殳起始点的示 意图5、 6为本发明实施例的支持在线视频播放的进度拖放功能的服务器结 构示意图。
具体实施例方式
如图3所示,本发明实施例的HTTP服务器对于一个在线播放的完整一见 频,在该视频的整个播放进度中设置若干个片段起始点,例如片段起始点l、 片段起始点2……。对于每个设置的片段起始点都预先生成一个以该片段起始 点作为播放起点的媒体文件。当用户在线收看视频时,拖动进度条时,HTTP 服务器接收到用户发送的进度信息。HTTP服务器根据接收的进度信息确定该 进度信息所对应的片段起始点,并进而确定该片段起始点所对应的媒体文件, 并向用户发送该媒体文件。例如,HTTP服务器接收的进度信息为"10分钟,, 的进度信息,而片段起始点6的播放时间为IO分钟,则片段起始点6所对应 的媒体文件包含10分钟以后的视频内容,则HTTP服务器向用户发送片^殳起 始点6所对应的媒体文件,用户即可通过该媒体文件在线收看10分钟以后的 视频。这样,对于某些格式的视频文件(例如MP4格式的视频文件)运用本发明实施例的方法事先生成各片段起始点所对应的^某体文件,从而既可以响 应用户的进度信息,又可以避免在线实时生成新的^ 某体文件而占用大量时间 和资源,从而达到及时处理、响应用户发送的在线播放进度信息的目的。
下面以MP4 ^L频文件为例讲述具体纟支术方案,对于其它类型的i见频文件,
视频文件的进度拖放功能。
本发明实施例提供的一种支持进度拖放功能的在线视频播放方法,流程 图如图4a所示,包括如下步骤
S401 、用户端向HTTP服务器发送进度信息。
用户在线收看HTTP服务器提供的视频时,拖动播放器的进度条,播放 视频的终端(即用户端)将视频播放进度信息发送给HTTP服务器。 S402、 HTTP服务器确定接收的进度信息所对应的片段起始点。 在视频播放的整个进度中设置了若干个片段起始点。例如,对于一个视 频,其播放时间为1小时,也就是其整个播放进度用时1小时。可以将该视 频的1小时播放进度按照每5分钟一个片段起始点进行划分。例如,设置的 片段起始点1的播放进度时间起点为0:00;片段起始点2的播放进度时间起 点为5:00,……。
HTTP服务器需要确定接收的进度信息对应于哪个片段起始点。而进度信 息与片段起始点之间的对应关系,本领域技术人员可以根据实际情况来制订。 比如,可以采用如下^于应方法
方法一
若进度信息中的播放进度时间点离某个在前的片段起始点最近,则确定 该进度信息对应于该片段起始点(如图4b所示)。 方法二
若进度信息中的播放进度时间点离某个片段起始点最近,则确定该进度 信息对应于该片^殳起始点(如图4c所示)。方法三
若进度信息中的播放进度时间点离某个在后的片段起始点最近,则确定
该进度信息对应于该片段起始点(如图4d所示)。
当然,本领域4支术人员还可以釆用其它的对应方法,此处不再——列举。
5403、 HTTP服务器确定该片段起始点对应的媒体文件。 片段起始点对应的媒体文件可以是事先生成并保存的。但是,本发明的
发明人发现在生成媒体文件的过程中,主要是计算媒体文件中携带的元数据 (例如索引信息、时间长度信息、帧数目信息等)需要占用较多时间和计算 量,而媒体文件中携带的媒体数据则不需要进行较多的计算。
那么,作为一种优化的方法,可以针对各片段起始点仅预先保存对应于 该片段起始点的媒体文件的元数据信息,而不是预先保存整个媒体文件。当 HTTP服务器接收到用户的进度信息、确定出片段起始点时,可以从视频文件 中实时生成该片段起始点所对应的媒体数据信息,并将预先保存的该片段起 始点所对应的元数据信息与媒体数据信息组合成一个媒体文件发送给用户。 这样,可以大大节省HTTP服务器用于存储事先生成的对应于各片段起始点 的媒体文件的存储空间。
5404、 HTTP服务器将媒体文件发送给用户端。
用户端根据新接收的媒体文件继续进行视频播放。
下面以MP4文件为例,讲述各片教爽始点对应的4某体文件的生成方法, 对于其它类型的视频文件,本领域技术人员可以依据本发明的原理生成基于 该视频文件的片段起始点对应的媒体文件,此处不再对各种视频文件的片段 起始点对应的纟某体文件的生成方法进行赘述。
MP4文件的各片段起始点对应的媒体文件都需要包括对应于该片段起 始点对应的媒体文件的元数据信息,以及对应于该片段起始点的媒体文件的 媒体数据信息。
对于某个片段起始点tl,根据原始视频文件(即在线播放视频的整个视频文件)生成对应于该片段起始点的元数据信息的具体方法为,调整有关索
引信息,具体要修改的内容包括
1、 修改开始播放时的采样编号参数将片段起始点tl映射为开始播放时 的采样编号;即开始播放的采样编号从tl所对应的编号开始。
2、 修改相关的播放时间长度参数,包括播放时间长度、轨道(track) 时间长度、轨道媒体播放时间长度等,修改这些时间长度参数为相应的时间 长度值,即T-tl;其中,T为原始视频文件的整个进程播放时间长度。表明该 片段起始点tl对应的媒体文件的播放时间长度为T-tl。
3、 调整采样信息相关参数,具体包括
A、 修改相关的帧数目参数。由于媒体文件中播放时间与采样帧数目是相 对应的,所以当播放时间改变了,也就需要相应修改相关的帧数目参数。
B、 修改相关的采样組(Sample-to-Chunk)偏移量(offset)参数。类似 的,由于媒体文件开始播放的时间点与播放的采样组偏移量相对应,因此也 需要相应修改相关的采样组偏移量。例如,如果片段起始点对应的媒体文件 开始播放的时间点与在线播放视频的整个进程开始播放的时间点相同,则采 样组偏移量为0。
C、 修改采样组编号。由于片段起始点对应的媒体文件的采样组有偏移量, 因此,偏移量之前的采样组可以删除,保留偏移量之后的采样组,并需要适 应性调整修改这些采样组编号。例如,原视频文件中采样组偏移量为5,则需 要将采样组编号5、 6、 7......,适应性调整为采样组编号1、 2、 3......。
D、 修改关键帧的数目以及每个关键帧的编号。
E、 修改采样数目。
对于上述生成的各片^史起始点对应的元数据信息可以预先保存在HTTP 服务器上。通常,对于MP4格式的文件,每个片段起始点对应的元数据信息 具体可以是保存在一个MOOV Atom中。通过修改这些元数据,从而使得片 段起始点所对应的媒体文件可以根据这些元数据实现播放从原始视频文件中截取的对应片段。
生成对应于该片段起始点tl的媒体数据信息的具体方法为,根据该片段
起始点tl计算媒体文件播放需要跳过的采样偏移量skip—offset:根据开始播放 时的采样编号,对每个track计算出需要跳过的偏移量,最后取所有track的 偏移量的最小值作为整个视频文件需要调过的偏移量skip一offset。根据计算的 skip—offset从原始碎见频文件中截取J某体数据。
各片段起始点应的媒体数据信息既可以预先保存在HTTP服务器上,也 可以是在HTTP服务器接收到进度信息、确定对应的片段起始点后再实时生 成。生成的、或者预先保存的每个片段起始点对应的々某体数据信息具体可以 是放在一个MDAT Atom中。
那么,根据片段起始点对应的媒体数据信息和该片段起始点对应的元数
的MOOV Atom和MD AT Atom组合成一个新的MP4文件发送给用户端。 本发明实施例提供的一种支持进度拖放功能的在线视频播放服务器,如
图5所示,包括进度信息获得模块501、片段起始点确定模块502、媒体文
件确定模块503、々某体文件发送模块504。
进度信息获得模块501用于获得用户端发送的在线播放视频的进度信息。 片段起始点确定模块502用于确定所述进度信息所对应的片段起始点;
所述片段起始点为预先设置在所述在线播放视频的播放进程中的若干个点。
确定对应片段起始点的具体方法如步骤S402中所述,此处不再赘述。
媒体文件确定模块503确定预先存储的对应于该片段起始点的媒体文件。
预先存储的对应于片段起始点的媒体文件生成方法前已详述,此处不再赘述。 媒体文件发送模块504用于将确定的媒体文件发送给用户端进行视频播放。
本发明实施例提供的一种支持进度拖放功能的在线视频播放服务器,如 图6所示,包括进度信息获得模块601、片段起始点确定模块602、々某体数据信息生成模块603、媒体文件生成模块604、媒体文件发送模块605、元数 据信息存储模块607。
进度信息获得模块601用于获得用户端发送的在线播放视频的进度信息;
片段起始点确定模块602用于确定所述进度信息所对应的片段起始点; 所述片段起始点为预先设置在所述在线播放视频的播放进程中的若干个点。 具体确定方法如前所述。
媒体数据信息生成模块603用于以确定的片段起始点作为新々某体文件的 播放起点,在线生成所述新媒体文件的媒体数据信息。生成片段起始点所对 应的媒体文件的媒体数据信息的方法前面已经相信介绍,此处不再赘述。
媒体文件生成模块604用于将元数据信息存储模块607存储的预先生成 的所述新媒体文件的元数据信息与所述媒体数据信息组合成所述新媒体文 件。预先存储的片段起始点所对应的媒体文件的元数据信息生成方法前面已 经相信介绍,此处不再赘述。
媒体文件发送模块605用于将组合的新媒体文件发送给用户端进行视频 播放。
如图6所示的服务器还可以包括
元数据信息生成模块606用于生成所述在线播放视频的播放进程中各片 段起始点分别对应的媒体文件的元数据信息。元数据信息的具体生成方法前 面已经相信介绍,此处不再赘述。
本发明实施例的服务器由于在整个视频的播放进度中设置若干个片段起 始点,并预先生成以各片段起始点作为播放起点的各媒体文件,或者媒体文 件的元数据信息,从而当服务器接收到用户发送的进度信息时,可以根据进 度信息确定一个对应片段起始点的媒体文件发送给用户,从而避免在线生成 媒体文件、或者媒体文件的元数据信息而花费较多时间和计算资源,达到及 时处理、响应用户发送的在线播放进度信息的目的。
本领域技术人员可以理解,虽然上述说明中,为便于理解,对方法的步骤采用了顺序性描述,但是应当指出,对于上述步骤的顺序并不作严格限制。 是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读
取存储介质中,如ROM/RAM、磁碟、光盘等。
还可以理解的是,附图或实施例中所示的装置结构仅仅是示意性的,表 示逻辑结构。其中作为分离部件显示的模块可能是或者可能不是物理上分开 的,作为模块显示的部件可能是或者可能不是物理模块。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普 通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润 饰,这些改进和润饰也应一见为本发明的保护范围。
权利要求
1、一种在线播放视频的发送方法,其特征在于,包括获得用户端发送的在线播放视频的进度信息;确定所述进度信息所对应的片段起始点;所述片段起始点为预先设置在所述在线播放视频的播放进程中的若干个点;在线生成新媒体文件的媒体数据信息,并将预先存储的该新媒体文件的元数据信息与所述媒体数据信息组合成所述新媒体文件;所述新媒体文件的播放起点为确定的片段起始点;将组合的新媒体文件发送给用户端。
2、 如权利要求l所述的方法,其特征在于,所述确定所述进度信息所对 应的片段起始点,具体为若所述进度信息中的播放进度时间点距离在前的某个片段起始点最近, 则确定该进度信息对应于该片段起始点;或者若所述进度信息中的播放进度时间点距离某个片段起始点最近,则确定 该进度信息对应于该片段起始点;或者若所述进度信息中的播放进度时间点距离在后的某个片段起始点最近, 则确定该进度信息对应于该片段起始点。
3、 如权利要求l所述的方法,其特征在于,所述在线播放视频为动态图 像专家组MP4格式。
4、 如权利要求3所述的方法,其特征在于,所述预先存储的所述新纟某体 文件的元数据信息,具体包括采样编号参数、相关的播放时间长度参数、 采样信息相关参数。
5、 如权利要求4所述的方法,其特征在于,所述在线生成所述新媒体文 件的媒体数据信息,具体包括根据确定的片段起始点确定所述新媒体文件播放需要跳过的采样偏移量 skip_offset;根据计算的skip—offset从所述在线播放视频的完整视频文件中截取媒体 数据作为所述新媒体文件的媒体数据信息。
6、 如权利要求5所述的方法,其特征在于,所述在线播放视频为MP4 格式的;所述新媒体文件的元数据信息保存于元数据存储单元MOOV Atom 中;生成的新媒体文件的媒体数据信息保存于媒体数据存储单元MDATAtom 中;以及所述将预先存储的所述新媒体文件的元数据信息与所述媒体数据信息组 合成所述新媒体文件,具体为将所述MOOV Atom和MDATAtom组合成所述新J 某体文件。
7、 一种在线播放视频的发送方法,其特征在于,包括 获得用户端发送的在线播放视频的进度信息;确定所述进度信息所对应的片段起始点;所述片段起始点为预先设置在 所述在线播放视频的播放进程中的若干个点;将预先存储的对应于该片段起始点的媒体文件发送给用户端进行视频播放。
8、 一种服务器,其特征在于,包括进度信息获得模块,用于获得用户端发送的在线播放视频的进度信息; 片段起始点确定模块,用于确定所述进度信息所对应的片段起始点;所 迷片段起始点为预先设置在所述在线播放视频的播放进程中的若干个点;媒体文件确定模块,用于确定预先存储的对应于该片段起始点的媒体文件;媒体文件发送模块,用于将确定的媒体文件发送给用户端进行视频播放。
9、 一种服务器,其特征在于,包括进度信息获得模块,用于获得用户端发送的在线播放视频的进度信息; 片段起始点确定模块,用于确定所述进度信息所对应的片段起始点;所 述片段起始点为预先设置在所述在线播放视频的播放进程中的若干个点;媒体数据信息生成模块,用于以确定的片段起始点作为新媒体文件的播放起点,在线生成所述新^某体文件的媒体数据信息;元数据信息存储模块,用于存储预先生成的所述新媒体文件的元数据信息;媒体文件生成模块,用于将预先存储的所述新媒体文件的元数据信息与所述媒体数据信息组合成所述新媒体文件;媒体文件发送模块,用于将组合的新媒体文件发送给用户端。
10、如权利要求9所述的服务器,其特征在于,还包括 元数据信息生成模块,用于生成所述在线播放视频的播放进程中各片段起始点分别对应的媒体文件的元数据信息。
全文摘要
本发明涉及视频在线播放领域,尤其涉及实现支持进度拖放功能的视频在线播放的技术。一种服务器及其在线播放视频的发送方法,所述方法包括获得用户端发送的在线播放视频的进度信息;确定所述进度信息所对应的片段起始点;以确定的片段起始点作为新媒体文件的播放起点,在线生成所述新媒体文件的媒体数据信息;并将预先存储的所述新媒体文件的元数据信息与所述媒体数据信息组合成所述新媒体文件发送给用户端。由于在整个视频的播放进度中设置若干个片段起始点,并预先生成以各片段起始点作为播放起点的各媒体文件的元数据信息,从而避免在线生成媒体文件的元数据信息而花费较多时间和计算资源,达到及时响应用户发送的在线播放进度信息的目的。
文档编号H04N5/00GK101415069SQ20081022465
公开日2009年4月22日 申请日期2008年10月22日 优先权日2008年10月22日
发明者浩 尹, 张焕强, 邹焕英 申请人:清华大学;北京蓝汛通信技术有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1