媒体内容流播的系统和方法与流程

文档序号:14185686阅读:337来源:国知局
媒体内容流播的系统和方法与流程

本申请是申请日为2010年11月04日、于2011年12月26日进入中华人民共和国国家阶段的申请号为cn201080027024.6、发明名称为“媒体内容流播的系统和方法”的中国发明专利申请的分案申请。

相关专利申请的交叉引用

本发明要求2009年11月4日提交的名为“http流播”的第61/258,162号美国临时专利的优先权,该应用以引入的方式并入本文本中。

本发明主要涉及通信系统,具体涉及媒体内容流播的系统及方法。



背景技术:

因为ip网络和网络基础架构的功能得以增强,基于互联网的视频流播技术的质量出现提升,对视频传输适用互联网流播技术的情况已出现大幅增长。实施流播视频的一种常用方法是将超文本传输协议(http)服务器中的视频程序传输至基于网络(web)的http客户端。基于网络流播视频由于其存取简单的特性而广为使用,因此用户仅须单击链接即可观看视频内容。

但视频流播技术面临一些挑战。在某些情况下,当用户请求视频内容时,可能出现很长时间的迟延,而内容只能在迟延之后开始播放。在某些情况下,由于网络负荷重和/或较差的链接条件,流播视频内容遭到阻断或终止。在其它情况下,即使网络链接一开始表现良好,之后由于网络条件的变化,观看体验可能受到影响。



技术实现要素:

根据实施例之一,方法包括以电子方式从网络中接收媒体展现描述(mpd)。mpd描述其中包括多种媒体类型其它展现方式的多媒体内容,而且mpd包括可说明其它展现方式编码方法的信息。本方法还包括,基于mpd中包含的信息为一种以上的媒体类型选择多种其它展现方式,分别请求所选的多种其它展现方式之一,以及以电子方式接收一份媒体数据。

下文将详细列出本发明实施例的特点,以便使以下发明的详细说明更易懂。后文将说明本发明实施例的其它功能和优势,构成本发明权利要求的主题。本技术领域的人员应深知,本文所透露的概念和指定实施例可被用作为修改或设计与本发明拥有相同目的的其它结构或流程的基础。上述技术人员还应认识到,这些等效结构并不违背追加申请中阐述的发明的实质和范畴。

附图说明

为提供更完整的本发明见解及其优势说明,现为以下说明提供参考信息,请参阅与其相对应的附图,其中:

图1说明了媒体流播系统;

图2说明了实施例数据结构;

图3说明了实施例媒体展现形式描述(mpd)的结构;

图4说明了用于执行实施例方法的计算机系统。

不同图片中的相应数字和符号一般指相对应的部件,除非另有说明。这些图片虽未按比例绘制,但可清晰说明实施例的相关部分。

具体实施方式

下文将详细讨论多种实施例的制备和使用。但这应理解为,本发明所提供的众多适用的发明概念都能够在多种指定场合中实施。所讨论的指定实施例只是说明本发明的指定利用和使用方法,而不是限制本发明的使用范围。

将针对一种具体场合下的实施例,例如,媒体内容流播的系统及方法,,对本发明进行描述。尤其是,某些实施例与基于http协议对媒体内容进行流播有关。

图1说明了基于http的媒体内容流播系统100,该系统可实现本发明的概念及方法。系统100具有可通过ip网络104将流播媒体传输至http客户端106的http流播服务器102。这应理解为,其它实施例也可适用于http流播系统之外的其它流播系统。

本发明实施例利用音频和/或视频和/或其它媒体类型多媒体流的http流播技术的系统及方法。此类系统及方法可灵活且有效地支持基于存储方法,媒体展现描述(mpd),以及具有或未具有字节范围的httpget请求的点播及直播技术。在mpd中,可包括媒体片断的字节范围和时间范围,以便客户端能高效地请求仅使用字节范围的媒体片断。mpd可包括媒体其它展现的更多编解码信息,以支持采用一种以上编码配置而进行编码的媒体内容。例如,图2中的mpd202指向其它展现204、206、208和210。这些其它展现中的每一项都可包含一个文件或多个文件的媒体内容数据,其中每一个文件都与一个独特的统一资源定位符(url)相关联。

mpd可包括所有片断的最大长度,从而无需mpd中的字节范围的信令即可使用字节范围,并大大缩减mpd的大小,这意味着流播过程的启动迟延降低。为了表明直播流会话结束,服务器可采用异常方式组成下一个预期文件或片断,例如,清空文件或片断。为了成功调至直播流会话并开始请求最新内容,流播服务器中可用的且其中包含最新片断的文件使用了一个特殊的文件名称,继而使用了一个特殊的url。为了让客户端计算出其欲寻找一个具体临时位置时启动的具体文件,当片断持续时间保持不变,以及mpd中每一个片断都没有任何字节偏移或时间偏移信令,可生成文件的url其其可具有指明文件开始回放时间的功能。提供了可启动诸如设置、暂停、续播及停止等一般流播流程的高效流播流程,并提供了搜索、快进、快退及媒体流自适应流程。

图3根据本发明实施例之一说明了mpd结构300。mpd300具有字节范围及时间范围信息302、片断持续时间信息304、快进快退信息306、url信息308及帧率信息310.在某些实施例中,可包括其它信息312。在另一种实施例中,可使用mpd结构300的子集。

图4说明经自适应而可使用本发明实施例的计算机系统400,例如,存储和/或运行与实施例相关的软件。中央处理器(cpu)401与系统总线402相耦合。cpu401可为一般用途的cpu。但是只要cpu401支持本文所述的创造性操作,本发明的实施例则不受限于cpu401的架构。总线402与随机存取存储器(ram)403相耦合,后者可为sram、dram或sdram。诸如prom、eprom或eeprom等rom404也可与总线402相耦合。ram403和rom404存储本领域内常见的用户及系统数据和程序。

总线402也与输入/输出(i/o)适配器405、通信适配器411、用户接口408和多媒体适配器409相耦合。i/o适配器405将存储设备406,例如以下驱动器中的一种或多种:一个硬盘驱动器、一个cd驱动器、一个软盘驱动器、一个磁带驱动器,连接至计算机系统400。i/o适配器405还可连接至打印机(未显示),后者有利于系统打印诸如文件、照片、文章等信息的纸质副本。注意:打印机可为点阵式打印机、激光打印机等打印机、传真机、扫描仪或影印机。用户接口适配器与键盘413和鼠标407及其它设备相耦合。在某些实施例中其可为显示器和/或音频卡的多媒体适配器409连接至显示设备410和音频设备415。显示设备410可为crt、平板显示器或其它类型的显示设备,而音频设备415可为扬声器、耳机或其它模拟或数字音频系统。

在某些实施例中,http流播指代基于http协议的多媒体内容的流播。3gpp版本4及以上版本支持流播分发。3gppts26.234具体说明了基于rtspoverudp协议和rtpoverudp协议的流播分发。http流播成为了互联网视频分发的主要形式,而且将http用作多媒体分发的主要协议,已成为趋势。在其它实施例中,可采用其它流播系统及标准。

http流播得到广泛应用的技术原因包括:可使用标准服务器和标准http缓存(或一般而言较廉价的服务器)来分发内容,以便能从cdn或其它任何标准服务器集群分发内容;能将对“流播会话”的控制整体转移至客户端,后者基本上仅打开一个或几个与一个或几个标准http服务器相连的tcp接口。http流播之所以广为应用的原因还在于,它能克服nat及防火墙穿越问题,从而简单且轻松地提供流播服务。

http流播的一种方法称为静态内容服务模式。在此模式中,使用标准http服务器无需任何扩展。以一个文件或一组文件的形式提供内容,此类文件可从http服务器获取。客户端通过访问使用httpget请求而具有或未具有字节范围的文件来获取内容。

凭借目前基于上述方法的http流播解决方案,还无法解决至少以下问题。首先,在httpget请求中使用时间范围便于客户端从流播服务器请求媒体数据。但是,现有标准http服务器识别字节范围,但不能识别时间范围。

第二,还没有相关方法可用于在mpd中发送媒体其它展现形式多种编码配置的消息的信令。第三,为了降低启动迟延,最好具有小尺寸的mpd。因而,在某些情况下,理想情况是mpd中不要具有文件或媒体片断的特定信息,因为展现可在时间层面上划分为大量的文件。但是,还没有一种相关方法可用于促成客户端有效地请求媒体片断,而mpd中无需文件或媒体片断特定的信息,例如,时间范围和/或字节范围。

第四,当直播流流话结束时,服务器应通知客户端,以便它们不会继续尝试而不断失败,否则会给用户体验造成负面影响。将此信息通知客户端的一种方法在于使用及时更新的mpd。但是,这要求mpd更新及时为客户端所接收,而这会消耗客户端上的其它资源,并在使用静态mpd是理想且可行的方法的情况下造成负载。

第五,当调至直播流时,客户端通常会开始接收最新内容。实现这一点的方法之一为通过及时更新的mpd传输最新媒体片断url和/或字节范围的信息。但是,这要求mpd更新及时为客户端所接收,而这会消耗客户端上的其它资源,并在使用静态mpd是理想且可行的方法的情况下造成负载。

第六,当片断持续时间保持不变且mpd中每一个片断都没有任何字节偏移或时间偏移信令的时候,客户端无法计算出其寻找一个具体临时位置时待启动的具体文件。最后,缺乏相关机制用于支持在http流播过程中进行快进及快退操作。

为了解决以上问题,本发明的实施例提供了以下新功能及未列在此处的其它功能。首先,在mpd中,可包括媒体片断的字节范围和时间范围,以便客户端能高效地请求仅使用字节范围的媒体片断。第二,mpd可包括媒体其它展现形式的其它编解码信息,以支持采用一种以上编码配置而进行编码的媒体内容。

第三,mpd可包括所有片断的最大长度,使得在mpd中无需字节范围的信令即可使用字节范围,并大大缩减mpd的大小,这意味着流播过程的启动迟延降低。第四,为了表明直播流会话结束,服务器可采用异常方式组成下一个预期文件或片断,例如,清空文件或片断。第五,为了成功调至直播流会话并开始请求最新内容,流播服务器中可用的且其中包含最新片断的文件使用了一个特殊的文件名称,继而使用了一个特殊的url。

第六,提供有其它展现形式的url前缀。如果一个文件包含另一展现展现方式的一个或多个片断,则该文件的url是另一展现展现方式的url前缀和相应的文件索引值之间的级联,例如,在具体形式为五个十进制数位的情况下,00000、00005及00012等。对于其它展现内容中的每一项,第一文件(该文件包含'moov'窗)的文件索引值等于0,而其它文件的文件索引值等于文件本身中第一片断的片断索引值,后者等于与文件本身中第一片断对应的电影片断的电影片断标头窗中的序号字段。这样一来,当片断持续时间保持不变且mpd中每一个片断都没有任何字节偏移或时间偏移信令的时候,客户端可计算出其寻找一个具体临时位置时待启动的具体文件。

最后,提供了可启动诸如设置、暂停、续播及停止等一般流播流程的高效流播流程,并提供了搜索、快进、快退及媒体流自适应流程。

本发明的实施例包含http流播的一种静态内容服务模式方法,其中包括文件存储、媒体展现形式描述和按需流播及直播流的流播过程。

关于文件存储,在某些实施例中,媒体展现形式描述(mpd)自身存储于一个独立的文件中。在实施例之一中,存储媒体文件,以便每一个文件包含另一展现方式的一个或多个片断。例如,在某些实施例中,一个文件可能包含且仅包含另一个音频展现内容中的一个或多个片断,一个文件可能包含且仅包含另一个视频展现内容的一个或多个片断,一个文件可能包含且仅包含另一个音视频展现内容的一个或多个片断,其中的音视频展现内容包含另一个音频展现内容和一个视频展现内容。但在实施例之一中,一个文件包含其它多个视频展现内容的一个或多个片断,而不包含其它多个音频展现内容的一个或多个片断。

在实施例之一中,另一个展现内容的第一个片断包含'ftyp'窗和'moov'窗,而不包含'moof窗。在'moov'窗中,在一个实施例中,不会记录任何媒体样本,即'moov'窗中包含的每一个'stts'窗中的入口计数应等于0,'moov'窗中包含的每一个'stsz'或'stz2'窗中的样本计数应等于0。因为第一个片断中没有记录任何样本,所以无须是一个相关联的'mdat'窗。在实施例之一中,第一片断之外的任何其它片断仅包含一个电影片断。或者,可以使用多个电影片断。另外,对于第一片断之外的任何其它片断,元数据('moof窗等等)和媒体数据('mdat'窗)应存储在同一文件中。

对于另外一些展现方式,对媒体样本的片断分区进行临时调整,从而另一展现方式a的第n个片断含括其它任何展现方式b的同一时间段。这一点可能不适用于快进及快退的其它展现方式,对于它们来说,一个片断含括正常回放相应的其它展现方式的整数个片断。

另一种与上述存储方法(称为存储方法1)效用相当的方法,其中有一个包含其它展现方式的第一片断的“大”'moov'窗,而且它自身存储在一个独立的文件中,而其它展现方式的其它片断按照上述存储方法进行存储。这一替代性方法称为存储方法2。对于存储方法1和2,mpd还可包含于'moov'窗中,或由'moov'窗中包含的url所引用。

对于直播流,除了上述规范,以下内容亦适用:

在实施例之一中,当使用h.264/avc视频时,参数集未存储于样本记录,而存储于独立的参数集磁迹,原因在于视频编码器可能须要在编码过程中计算出最佳编码参数,因而在生成'moov'窗之后,该参数集无法得知,且不可包含在内。

在实施例之一中,mpd的另一种存储方式为将其作为媒体文件的一部分进行存储。但mpd自身存储于独立的文件,会使得对mpd的访问变得简单,尤其在有相关需求的情况下,仅一条httpget请求即可用于获取mpd。如果其作为媒体文件的一部分进行存储,则客户端只有掌握mpd在文件中的准确位置,才能准确地单独请求mpd。单独存储mpd的另一个好处在于,因为mpd记录的增加不会对其中包含mpd的媒体文件的媒体部分的偏移产生任何影响,因而对于直播流,该流程会更加简单。

还有其它许多方法可用于存储mpd之外的媒体内容。例如,第一替代性方法为,将其它所有展现方式存储在一个文件中,这一方法仅适用于基于rtp/rtsp的流播中。第二种替代性方法为,将所有元数据('moov'窗和'moor窗等等)存储在一个文件,将所有媒体文件('mdat'窗)存储在其它文件,而未在时间维度上划分为多个文件(即另一种展现内容的所有片断在一个文件中)。在某些实施例中,上述两种存储方法可能不适用于缓存。

第三种替代性方法与第二种替代性方法相似,不同的是,在时间维度上划分为多个文件,例如,每一个片断存储于两个独立的文件中,一个适用于元数据('moov'或'moof窗),一个适用于媒体数据('mdat'窗)。相比所提议的方法,本存储方法的一大劣势在于,文件数量加倍增加,因而http请求的数量加倍增加,以对同一内容进行流播。

第四种替代性方法为,将每一个音视频替代项的一个或多个片断存储在一个文件。这一方法的一大劣势在于存储冗余。例如,当有另外两个音频表现方式时,另外的视频表现方式每一个均重复存储两遍。

对于直播流h.264/avc视频的情况,参数集还可存储在样本记录。但这一方法不利于视频编码器在编码过程中更改为更为理想的编码参数。另一种方法为将新参数集放置进其中包含'moof窗的新窗中。在某些方面,这一方法不是后向兼容,而且现有的h.264/avc文件阅读器会忽略新窗,其中需要新参数集以对电影片断中包含的样本进行正确解码。

一种实施例句法及语义如下所示:

在实施例之一中,变量定义如下:

live_session:本字段等于false(假),说明mpd适用于按需流播会话。值true(真)说明mpd适用于直播流会话。

major_brand:主文件格式标识符,说明旨在播放媒体展现内容,客户端须予以支持的文件格式特点。

时间标度:一个指定整个展现内容时间标度的整数;其为时间单位(以秒计时)的数量。例如,一个每1/60秒测量一次时间的时间坐标系具有的时间标度等于60。

presentation_duration:这类整数可反映出正常回放的另一次展现的展现长度(以指定的时间标度计算)。当该值等于0时,展现长度不可知。在直播流会话的媒体展现描述中,这个值设置为0。

constant_segment_duration:当该值为true(真)时,片断长度为一个恒定的时间值。当该值为false(假)时,片断的时间长度不恒定。

segment_duration:说明片断的时间长度(以指定的时间标度计算)。

constant_num_segments_per_file:当该值为true(真),其中包含'moov'窗的文件除外,每一个文件包含恒定数量的片断。当该值为false(假),未包含'moov'窗的文件可能包含不同数量的片断。

num_segments_in_one_file:说明一个文件中分断的数量(其中包含'moov'窗的文件除外)。

num_segments_aligned:当该值为true(真)时,对于其它所有展现方式,临时校准每个文件中片断的数量。当该值为false(假)时,对于其它所有展现方式,不临时调整每个文件中片断的数量。

byte_offset_included:当该值为true(真)时,每个片断的字节偏移包含在mpd内。当该值为false(假)时,每个片断的字节偏移未包含在mpd内。

codec_mime_type_included_for_each_file:当该值为true(真)时,一个编解码mime类型包含在mpd的特定文件部分内。当该值为false(假)时,一个编解码mime类型信息仅包含在mpd的全局部分内。

num_separate_audio_alternatives:指定单独存储其它音频展现方式的次数。

num_separate_video_alternatives:指定单独存储其它视频展现方式的次数。

num_av_combined_audio_alternatives:指定单独存储的其它音视频展现方式的次数。

num_video_fastforward_alternatives:指定单独存储其它视频快进展现方式的次数。

num_video_rewind_alternatives:指定单独存储其它视频快退展现方式的次数。

codec_mime_type:说明另一展现展现中音频或视频媒体类型的初始媒体样本的mime类型参数。对于视频,mime型参数也包括模型和级别信息。

avg_bitrate/audio_avg_bitrate/video_avg_bitrate:说明另一展现中音频或视频媒体类型的平均比特速率(单位为比特/秒)。

language_code:说明此媒体的语言代码。请参阅iso639-2/t以了解三字符代码集。每个字符按照其ascii值与0x60之间的差值予以打包。因为该代码限定为三个小写字母,所以此类值仅为正数。

channel_count:说明另一展现中音频媒体类型的音频信道的数量。

url_prefix:说明另一展现的url前缀。如果一个文件包含另一种展现内容的一个或多个分片,则该文件的url是另一种展现内容的url前缀的链接和相应的文件索引值,例如,在具体形式为五个十进制数位的情况下,00000、00005及00012等。文件索引值自mpd推出。对于其它展现内容中的每一项,第一文件(该文件包含'moov'窗)的文件索引值等于0,而其它文件的文件索引值等于文件本身中第一片断的片断索引值,后者等于与文件本身中第一分片对应的电影片断的电影片断标头窗中的sequence_number(序号)字段。当片断持续时间保持不变且mpd中每一个片断都没有任何字节偏移或时间偏移信令的时候,客户端可计算出其寻找一个具体临时位置时待启动的具体文件。

max_segment_len_in_bytes:指定片断的最大长度(以字节计)。此值促成在mpd中无需字节范围的信令即可使用合适的字节范围。例如,基于片断的起始位置,在不知片断长度(以字节计)的情况下,客户端可能请求数据块,后者大小等于max_segment_len_in_bytes,以确保请求整个片断。基于片断的特定位置,在不知片断长度(以字节计量)的情况下,客户端可能请求数据块,后者大小等于max_segment_len_in_bytes减去特定位置的字节长度,以确保请求整个片断。

宽度:说明另一展现中视频媒体类型的水平分辨率(以象素计量)。

高度:说明另一展现中视频媒体类型的垂直分辨率(以象素计量)。

avg_framerate:说明另一展现中视频媒体类型的平均帧率,以帧/每256秒为单位。对于其它的视频快进或快退展现方式,此值计算过程为正常回放另一展现的展现长度(以指定的时间标度计算)除以所有视频帧的数量,再换算为以帧/每256秒为单位。

num_segments_denominator_ff[i]:第i个视频快进的另一展现的每个片断对应着与正常回放另一次视频展现的片断的num_segments_denominator_ff[i]值相等的数。

num_segments_denominator_rw[i]:第i个视频快进的另一展现的每个片断对应着与正常回放另一次视频展现的片断的num_segments_denominator_rw[i]值相等的数。

audio_codec_mime_type_for_one_file:说明与特定文件索引值对应的文件中的音频样本的编解码mime型。

video_codec_mime_type_for_one_file:说明与特定文件索引值对应的文件中的视频样本的编解码mime型。此值包括模型和级别信息。

segment_start_time:说明相对于展现的起始时间,片断的起始时间(以毫秒计量)。

segment_duration:说明片断的时间长度(以指定的时间标度计算)。

segment_start_byte_offset:说明文件(其中包含片断)中的片断的第一个字节的字节偏移。

segment_end_byte_offset:说明文件(其中包含片断)中的片断的最后一个字节的字节偏移。

这应理解为,另一个实施例可包含上述命令、变量及定义的子集。

在实施例之一中,mpd可采用xml或sdp加以描述,或根据基于iso的媒体文件格式将其描述为一个新窗中包含的数据块字段。采用xml或sdp形式的mpd还可包含在窗内,例如,'moov'窗或文件中'ftyp'窗正后面的新窗。

以下所示的xml示例方案说明了xml中任何mpd的格式。

对于某些实施例,mpd的上述实施例句法及语义适应于存储方法1。使用存储方法2时,mpd在某些实施例中可如下略微进行修改。例如,mpd可包含在"giant"'moov'窗中或由"giant"'moov'窗中的url引用。可从"giant"'moov'窗为其查找到等效信息的字段可从mpd中抽除,例如,major_brand、时间标度、presentation_duration。文件索引值初始设置为1,而非0,以保证在环路中全局信息之后,该索引值起始于1,而且为其中包含"giant"'moov'窗的文件保留文件索引值0。

在实施例之一中,url前缀新增为其中包含"giant"'moov'窗的文件的全局信息的一部分,而且该文件的url是url前缀和"00000"的链接。或者,文件本身的url新增为全局信息的一部分。

为在mpd中传输编解码信息的信令,一种替代性方法是传输一种媒体类型另一展现的一种全局编解码mime类型的信令,并指定全局codec_mine_type仅说明另一展现中的上述媒体类型的初始编解码mime类型。相似的方法可适用于流播其中包含诸如计时文本和计时图形等其它媒体类型的多媒体内容。

在某些实施例中,按需流播流程执行后,可实现设置、暂停、续播及停止功能。在实施例之一中,流播设置包括以下步骤。首先,客户端获取mpd的url。客户端获取mpd的url的方式不属于本文的范围。第二,例如,客户端通过使用httpget请求获取mpd。客户端还可能通过采用一种循序渐进的方式(即使用具有字节范围的多个httpget请求)获取mpd。当适用mpd渐进式请求方式时,以下步骤即可在各个片断的mpd数据可为客户端所用的情况下马上启动,而且客户端可在使用tcp链接请求片断时,使用单独的tcp链接请求mpd。使用存储方法2时,客户端获取其中包含"giant"'moov'窗的文件,而在未包含mpd的情况下,客户端通过使用httpget请求或采用循序渐进的方式获取mpd。

第三,客户端解析mpd并选择其中包含客户端所需的所有媒体类型的另一次或其它多次合适展现方式。使用存储方法2时,客户端会在选择其它合适的展现方式的过程中解析其中包含"giant"'moov'窗的文件并使用文件及/或mpd中的信息。

第四,始于所选的其它展现方式每一项的第一片断,客户端请求所选的其它展现方式的片断。使用存储方法2时,始于所选的其它展现方式每一项的第二片断,客户端请求所选的其它展现方式的片断。

在实施例之一中,其中包含一个特定片断的文件的url由mpd指定,其中每一个文件索引值对应着一个文件和多个片断,而且一个文件索引值的url是相应url前缀和文件索引值的级联,例如,采用五个十进制数位的形式。这一规则适应于流播过程涉及的所有httpget请求,其中包括直播流情况。使用存储方法2时,为其中包含"giant"'moov'窗的文件保留文件索引值00000。

如果请求整个文件,则不须要使用字节范围,这与是否其中包含一个或多个片断无关。如果文件中存储有多个片断,而且客户端请求该文件中包含的所有片断的子集,则须使用字节范围。这一规则适应于流播过程涉及的所有httpget请求,其中包括直播流情况。

在实施例之一中,为了暂停或停止,客户端通过发送httpget请求即可停止请求更多数据。为了续播,自下一个片断开始,客户端在上一次所请求的片断之后发送httpget请求以请求片断。

在实施例之一中,为了定位具体位置、快进或倒退,客户端始于上述具体位置处起始的片断发送httpget请求,以请求当前其它展现方式的请求片断。注意:定位操作可仅定位在其中片断起始的具体位置。为了定位到具体的倒退位置,如果客户端已自上述具体位置缓冲数据,则它可自上述具体位置回放数据。

在实施例之一中,为了以具体的回放速度执行快进操作,则可进行以下步骤。首先,客户端停止请求当前其它展现方式的数据。第二,客户端选择合适的其它视频快进展现,该展现拥有与目标回放速度最为接近的帧率。第三,客户端自上一次所请求的片断之后的临时位置请求所选的其它展现的片断。在实施例之一中,客户端以指定的回放速度播放媒体。

在实施例之一中,为了以具体的回放速度执行快退操作,则可进行以下步骤。首先,客户端停止请求当前其它展现方式的数据。第二,客户端选择合适的其它视频快退展现,该展现拥有与目标回放速度最为接近的帧率。第三,客户端自上一次所请求的片断之后的临时位置请求所选的其它展现的片断。在实施例之一中,这要求在生成其它视频快退的过程中,视频帧的解码顺序与显示顺序相反。在实施例之一中,客户端以指定的回放速度播放媒体。

在实施例之一中,为了通过自一种替换性展现a切换至另一种替换性展现b而执行流播自适应,会执行以下步骤。首先,客户端停止请求当前其它展现方式的数据。

第二,如果客户端从未接收到b的任何片断,则客户端首先请求b的第一片断,再继上一次所请求片断之后,立即请求始于临时位置的b的片断。同时客户端存储b的第一片断,以便日后在自其它任何替换性展现切回至b的情况下使用。如果客户端已接收到并存储了b的第一片断,则会跳过对第一片断的请求。使用存储方法2时,客户端继上一次所请求的片断之后即可请求始于临时位置的b的片断。

在实施例之一中,对于直播流,以下规定适应于某些实施例。首先,除开第一片断(其包含零媒体样本),片断持续时间恒定,例如,constant_segment_duration不等于0。

第二,如果每个片断都存储在单独的文件中,则mpd不包含每个文件的元素,即,mpd在直播流会话过程中是静态的(不会发生变化)。这意味着constant_num_segments_per_file不等于0,codec_mime_type_included_for_each_file应等于0,constant_segment_duration不等于0,以及byte_offset_included等于0。在此情况下,其中包含其它每次展现最后片断的文件的url应为其它展现的url前缀和五个十进制数位99999之间的链接。或者,其中包含其它展现最后片断的文件的url可为其它展现的url前缀和特殊字符串(如,"last_segment")之间的链接。在实施例之一中,如果有文件包含多个片断,则num_segments_aligned设置为真。

在一个直播流实施例中,设置具有以下步骤。首先,客户端获取mpd的url。第二,客户端通过使用httpget请求获取mpd。使用存储方法2时,客户端获取其中包含"giant"'moov'窗的文件,而在未包含mpd的情况下,客户端获取mpd。

第三,客户端解析mpd并选择其中包含客户端所需的所有媒体类型的另一次或其它多次合适展现方式。使用存储方法2时,客户端会在选择其它合适的展现方式的过程中解析其中包含"giant"'moov'窗的文件并使用文件及/或mpd中的信息。

第四,客户端请求所选的其他每一展现展现方式的第一片断,再请求所选的其他每一展现方式的最后一个片断。使用存储方法2时,客户端直接请求所选的其他每一次展现的最后一个片断。

第五,如果每个片断存储在单独的文件中(即constant_num_segments_per_file等于1),则客户端定期检查与下一个文件索引值对应的下一个文件的可用性,并在可获取文件的情况下,客户端通过使用不具有字节范围的httpget请求,请求下一个文件。在此情况下,如果下一个文件不包含'moof'窗(例如,文件为空),则客户端应断定直播流会话已结束。否则(多个片断可能存储在一个文件中),客户端通过使用具有开放式字节范围的httpget请求,自之前请求最后一个字节后定期请求mpd中已更新的部分,再请求下一个可用的片断。在此情况下,如果下一个片断为空(即其不包含任何媒体样本),则客户端应断定直播流会话已结束。客户端可使用独立的tcp链接用于请求mpd,而使用另一个tcp链接用于请求片断。对下一个文件或下一个片断的可用性定期进行检查的时间,应不少于而应约近片断持续时间,或等于片断持续时间。

在实施例之一中,为了暂停或停止,客户端通过发送httpget请求即可停止请求更多数据。为了续播,客户端发送httpget请求,以请求所选的其它每一展现的最后一个片断,再执行上述的第五步。

在实施例之一中,为了定位到具体倒退位置,客户端始于上述具体位置处起始的片断发送httpget请求,以请求当前其它展现方式的片断。在某些实施例中,定位操作定位在其中片断起始的具体位置。如果客户端已自上述具体位置缓冲数据,则它可自上述具体位置回放数据。

在实施例之一中,快退对于直播流和按需流播发挥同样的作用。

在一个直播流实施例中,为了通过自一种替换性展现a切换至另一种替换性展现b而执行流播自适应,会执行以下步骤。

首先,客户端停止请求当前其它展现方式的数据。第二,如果客户端从未接收到b的任何片断,则客户端首先请求b的第一片断,再请求b的最后一个片断。同时客户端存储b的第一片断,以便日后在自其它任何替换性展现切回至b的情况下使用。如果客户端已接收到并存储了b的第一片断,则会跳过对第一片断的请求。使用存储方法2时,客户端仅请求b的最后一个片断。

第三,如果每个片断存储在单独的文件中(即constant_num_segments_per_file等于1),则客户端定期检查与下一个文件索引值对应的下一个文件的可用性,并在可获取文件的情况下,客户端通过使用不具有字节范围的httpget请求,请求下一个文件。在此情况下,如果下一个文件不包含'moof'窗(例如,文件为空),则客户端应断定直播流会话已结束。否则(多个片断可能存储在一个文件中),客户端通过使用具有开放式字节范围的httpget请求,自之前请求最后一个字节后定期请求mpd中已更新的部分,再请求下一个可用的片断。在此情况下,如果下一个片断为空(即其不包含任何媒体样本),则客户端应断定直播流会话已结束。客户端可使用独立的tcp链接用于请求mpd,而使用另一个tcp链接用于请求片断。对下一个文件或下一个片断的可用性定期进行检查的时间,应不少于而应约近片断持续时间,或等于片断持续时间。

在实施例之一中,在mpd中,可包括媒体片断的字节范围和时间范围,以便客户端能高效地请求仅使用字节范围的媒体片断。

在另一个实施例中,mpd可包括媒体其它展现形式的其它编解码信息,以支持采用一种以上编码配置而进行编码的媒体内容。在实施例之一中,mpd可包括所有片断的最大长度,使得在mpd中无需字节范围的信令即可使用字节范围,并大大缩减mpd的大小,这意味着流播过程的启动迟延降低。

在另一个实施例中,为了表明直播流会话结束,服务器可采用异常方式组成下一个预期文件或片断,例如,清空文件或片断。在实施例之一中,为了成功调至直播流会话并开始请求最新内容,流播服务器中可用的且其中包含最新片断的文件使用了一个特殊的文件名称,继而使用了一个特殊的url。在实施例之一中,为了让客户端计算出其寻找一个具体临时位置时待启动的具体文件,而此时分片持续时间保持不变,以及mpd中每一个分片都没有任何字节偏移或时间偏移信令,文件的url生成后可具有指明文件开始回放时间的功能。在实施例之一中,提供了可启动诸如设置、暂停、续播及停止等一般流播流程的高效流播流程,并提供了搜索、快进、快退及媒体流自适应流程。

虽然详细描述了目前的实施例及其优势,但请理解这一点:在不背离专利申请中定义的发明实质和范畴的情况下,可进行各种变化、变动和替换。例如,上述的许多特性和功能可在软件、硬件、固件或它们的组合中实施。

另外,本申请的范围并不局限于规格中描述的流程、机器、制造、物质成分、装置、方法和步骤的特定实施例。这些流程、机器、制造、物质成分、工具、方法或步骤,不管是目前已存在还是有待日后开发,只要是能够与本文描述的相应的实施例发挥本质上相同的功能或取得本质上相同的结果,都可以根据本发明而予以采用,作为相关技术中的一个普通技巧。本发明披露后,技术人员应对这一点有所理解。相应地,随附的权利要求书旨在将这些流程、机器、制造、物质成分、工具、方法或步骤纳入权利要求的范围中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1