一种流媒体的处理方法及装置的制造方法

文档序号:10616482阅读:563来源:国知局
一种流媒体的处理方法及装置的制造方法
【专利摘要】本发明实施例提供一种流媒体的处理方法及装置,其中的方法包括:在播放流媒体文件的过程中,接收来自用户的时移指令;其中,所述时移指令中包括目标时间点;根据所述流媒体文件对应的切片索引文件,确定所述目标时间点对应的传输流TS切片;确定所述TS切片中与所述目标时间点最接近的关键帧的位置信息;从所述关键帧的位置信息播放所述TS切片。本发明实施例可以直接从与时移目标时间点最接近的关键帧开始播放TS切片,因此可以提高流媒体文件播放过程中的时移准确度。
【专利说明】
一种流媒体的处理方法及装置
技术领域
[0001]本发明实施例涉及流媒体技术领域,尤其涉及一种流媒体的处理方法及装置。
【背景技术】
[0002]随着流媒体技术和网络技术的不断发展,用户可以通过网络在终端设备上观看各种网络视频,网络视频已经成为人们日常生活中不可或缺的一部分。
[0003]目前,视频网站通常采用HLS (HTTP Live Streaming,动态码率自适应技术)流媒体传输协议来传输网络视频文件。通过HLS协议在服务器端将容量巨大的网络视频文件进行分段,分割为数量众多的TS(Transport Stream,传输流)切片以在互联网中进行传输,并且生成m3u8索引文件记录每个TS切片的顺序和时长,通过该索引文件来控制TS切片的下载和播放。通常,TS切片的时长通常是固定的或者相等的,例如,某个总时长为10分钟的网络视频文件,以10秒为TS切片的时长单位,该网络视频文件可以被分割为60个TS切片。
[0004]用户在终端设备上观看网络视频时,通常会使用时移功能,也即通过拖拽播放进度条,要求从指定的时间点开始播放视频内容。例如,以上述10分钟的网络视频为例,用户拖拽播放进度条至25秒的位置,则终端设备会向服务器请求第25秒对应的TS切片,然而,由于HLS是以切片为传输单位的,所以上述情形下服务器向终端设备返回的是从第20秒开始的切片,终端设备将从第20秒的位置开始播放。因此,现有的时移方案存在一定的误差,无法做到精准时移。

【发明内容】

[0005]本发明实施例提供一种流媒体的处理方法及装置,用以解决现有的时移方案存在一定的误差,无法做到精准时移的缺陷,以提高时移的准确度。
[0006]本发明实施例提供一种流媒体的处理方法,包括:
[0007]在播放流媒体文件的过程中,接收来自用户的时移指令;其中,所述时移指令中包括目标时间点;
[0008]根据所述流媒体文件对应的切片索引文件,确定所述目标时间点对应的传输流TS切片;
[0009]确定所述TS切片中与所述目标时间点最接近的关键帧的位置信息;
[0010]从所述关键帧的位置信息播放所述TS切片。
[0011]本发明实施例提供一种流媒体的处理装置,包括:
[0012]指令接收模块,用于在播放流媒体文件的过程中,接收来自用户的时移指令;其中,所述时移指令中包括目标时间点;
[0013]切片确定模块,用于根据所述流媒体文件对应的切片索引文件,确定所述目标时间点对应的传输流TS切片;
[0014]位置确定模块,用于确定所述TS切片中与所述目标时间点最接近的关键帧的位置信息;及
[0015]媒体播放模块,用于从所述关键帧的位置信息播放所述TS切片。
[0016]本发明实施例提供的流媒体的处理方法及装置,按照用户指定的时移时间点,根据切片索引文件,确定对应的TS切片以及该TS切片中与所述时移时间点最接近的关键帧的位置信息,进而直接从该位置信息开始播放TS切片。相对于现有技术中从切片头开始播放,由于本发明实施例可以直接从与时移目标时间点最接近的关键帧开始播放TS切片,因此可以提高流媒体文件播放过程中的时移准确度。此外,通过本发明实施例,可以直接定位到与目标时间点最接近的关键帧,由于关键帧能够独立解码进行播放,不用从TS切片的开头进行解码,从而提高了解码效率。
【附图说明】
[0017]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0018]图1示出了本发明的一种流媒体的处理方法实施例一的步骤流程图;
[0019]图2示出了本发明的一种流媒体的处理方法实施例二的步骤流程图;
[0020]图3示出了本发明的一种流媒体的处理方法实施例三的步骤流程图;及
[0021]图4示出了本发明的一种流媒体的处理装置实施例的结构框图。
【具体实施方式】
[0022]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0023]实施例一
[0024]参照图1,示出了本发明的一种流媒体的处理方法实施例一的步骤流程图,具体可以包括:
[0025]步骤101、在播放流媒体文件的过程中,接收来自用户的时移指令;其中,所述时移指令中包括目标时间点;
[0026]本发明实施例适用于任何可以播放流媒体文件的终端设备,所述终端设备可以包括蜂窝电话、智能电话、膝上型计算机、PC (personal computer,个人电脑)、电子书终端、数字广播终端、PDA (Personal Digital Assistant,个人电子助理)、智能电视、便携式多媒体播放器或导航系统等,可以理解,本发明实施例对于具体的终端设备不加以限制。其中,所述流媒体是指采用流式传输的方式在网络中播放的音频/视频等媒体格式指采用流式传输的方式在网络中播放的媒体格式,如音频、视频或多媒体文件,为了便于说明,本发明均以视频为例进行描述,其它格式的应用场景相互参照即可。
[0027]用户在使用终端设备播放流媒体文件的过程中,可以发送时移指令,也即拖拽播放进度条,要求从指定的目标时间点开始播放流媒体文件内容。
[0028]步骤102、根据所述流媒体文件对应的切片索引文件,确定所述目标时间点对应的传输流TS切片;
[0029]根据HLS协议,流媒体文件是由多个TS切片按时间顺序组成的,切片索引文件(m3u8索引文件)中记录了每个TS切片的顺序和时长。可以通过m3u8索引文件获取流媒体文件的总时长和每个TS切片的时长,通常TS切片的时长是固定或相等的,因此,根据流媒体文件的总时长以及每个TS切片的时长可以确定所述目标时间点对应的TS切片。
[0030]在本发明的一种优选实施例中,所述切片索引文件中可以包括:TS切片的时长信息;
[0031]所述根据切片索引文件,确定所述时移时间点对应的传输流TS切片的步骤,具体可以包括:
[0032]根据所述TS切片的时长信息,确定TS切片的开始时间信息;
[0033]根据所述TS切片的开始时间信息,确定所述时移时间点对应的TS切片。
[0034]具体地,以如下示出的一种m3u8索引文件为例说明上述确定目标时间点对应的TS切片的过程:
[0035]#EXTM3U
[0036]#EXT-X-TARGETDURAT1N:10
[0037]SEXT-X-MEDIA-SEQUENCE:0
[0038]#EXTINF:10,
[0039]https://priv.example, com/fileSequence0.ts
[0040]#EXTINF:10,
[0041 ] https://priv.example, com/fileSequencel.ts
[0042]#EXTINF:10,
[0043]https://priv.example, com/fileSequence2.ts
[0044]其中,EXTM3U为文件头,起标识作用;EXT-X_VERS10N表示协议版本;EXT-X-TARGETDURAT1N表示每个TS切片的最大的时长;EXT-X-MEDIA-SEQUENCE表示当前m3u8索引文件中第一个TS切片的序号,每个TS切片在m3u8索引文件中都有唯一固定的序号;EXTINF 表不 TS 切片的时长信息;https://priv.example, com/f ileSequence0.ts 表示序号为0的TS切片对应的URL (Uniform Resource Locator,统一资源定位符);在上述m3u8索引文件中包括三个TS切片,序号分别为0、1、2。
[0045]在上述应用示例中,每个TS切片的时长为10秒,则可以计算出每个TS切片的开始时间,例如,第一个TS切片开始时间为O秒,那么第二个TS切片开始的时间为10秒,第三个TS切片开始时间为30秒,假设目标时间点为25秒,可以确定目标时间点在第二个TS切片中。
[0046]步骤103、确定所述TS切片中与所述目标时间点最接近的关键帧的位置信息;
[0047]步骤104、从所述关键帧的位置信息播放所述TS切片。
[0048]在具体应用中,视频文件由I帧(关键帧)、P帧和B帧等组成,由于视频播放前需要先进行视频帧的解码,而只有I帧能够独立进行解码和播放,当用户请求的目标时间点对应的数据帧不是I帧则无法播放,因此,需要确定所述TS切片中与所述目标时间点最接近的I帧的位置信息。
[0049]为了能够快速定位到目标时间点最接近的I帧,本发明实施例在服务器端对流媒体文件进行切片并生成m3u8索引文件的过程中,除了记录分片的时长信息,还将所有I帧的起始时间信息和偏移量信息存储到m3u8索引文件中。终端设备可以从服务器下载m3u8索引文件,在对m3u8索引文件进行解析的过程中,就可以得到每个TS切片中I帧的起始时间信息和偏移量信息。
[0050]在本发明的一种应用示例中,通过在m3u8索引文件的每个切片描述字段“EXTINF”后面,增加一个扩展字段“KEYFRAME”来定义I帧的起始时间信息和偏移量信息。具体地,参见如下示出了本发明的一种m3u8索引文件的应用示例:
[0051]#EXTM3U
[0052]#EXT-X-VERS1N:3
[0053]#EXT-X-TARGETDURAT1N:10
[0054]SEXT-X-MEDIA-SEQUENCE:0
[0055]#EXTINF:10,
[0056]#EXT-X-STREAM-1NF:KEYFRAME =”0,56 ;3.32,153224 ;5.94,683546”
[0057]https://priv.example, com/fileSequence0.ts
[0058]#EXTINF:10,
[0059]#EXT-X-STREAM-1NF:KEYFRAME =”0,72 ;4.89,124532 ;6.82,356820”
[0060]https://priv.example, com/fileSequencel.ts
[0061]其中,KEYFRAME为本发明实施例定义的扩展字段,用于标识I帧的起始时间信息和偏移量信息;例如,可以定义 KEYFRAME = “time,offset ;time,offset ; 其中,time为I帧的起始时间信息,offset为偏移量信息。在上述示例中,序号为O的TS切片中包括3个I帧,第一个I帧的起始时间为O秒,偏移量为56 ;第二个I帧的起始时间为4.89秒,偏移量为124532 ;第三个I帧的起始时间为6.82秒,偏移量为356820。
[0062]在本发明的一种应用示例中,在终端设初始化时,可以从服务器下载待播放流媒体文件对应的m3u8索引文件,当终端设备接收到来自用户的时移指令时,通过解析该m3u8索引文件,确定时移指令中目标时间点对应的TS切片,以及该TS切片中与目标时间点最近的I帧的起始时间信息和偏移量信息,即可从该I帧所在位置播放所述TS切片。
[0063]在本发明的一种应用示例中,假设流媒体文件总时长为10分钟,TS切片为10秒,目标时间点为25秒,则根据上述m3u8索引文件,找到目标时间点对应的TS切片为序号为I的TS切片(fileSequencel.ts),该TS切片的起始时间为20秒,该TS切片中包括三个I帧,其中第二个I帧的起始时间为4.89秒,也即第二个I帧的起始时间为24.89秒,最接近目标时间点,因此,从该第二个I帧所在位置开始播放TS切片。通过本发明实施例,可以直接定位到与目标时间点最接近的I帧,不用从fileSequencel.ts切片的开头,也即第20秒开始解析播放TS切片,提高了时移精准度和时移效率。
[0064]在本发明的一种优选实施例中,所述方法还可以包括:在从所述关键帧的位置信息播放所述TS切片之前,检测是否已从服务器下载所述TS切片,若未下载,则向服务器请求下载所述关键帧的位置信息之后的TS切片。
[0065]在具体应用中,终端设备可以向服务器发送HTTP (HyperText TransferProtocol,超文本传输协议)请求,请求下载所述关键帧的位置信息之后的TS切片。HTTP协议支持只请求某个资源的某一部分,具体地,可以在HTTP请求中添加Range信息,Range信息用于表示请求的资源范围,在本发明实施例中,请求的资源范围为关键帧的位置信息之后的TS切片,由此,从服务器下载的数据就是用户时移的目标时间点对应的数据,终端设备可以直接从该位置开始播放,这样不但提高了时移的精确程度,还减小了服务器负担,不用传输用户不希望得到的数据。
[0066]综上,本发明实施例按照用户指定的时移时间点,根据切片索引文件,确定对应的TS切片以及该TS切片中与所述时移时间点最接近的关键帧的位置信息,可以直接从该位置开始播放TS切片。本发明实施例可以直接从与时移目标时间点最接近的关键帧开始播放TS切片,相对于现有技术中从切片头开始播放,可以提高流媒体文件播放过程中的时移准确度。此外,通过本发明实施例,可以直接定位到与目标时间点最接近的关键帧,由于关键帧能够独立解码进行播放,不用从TS切片的开头进行解码,从而提高了解码效率。
[0067]实施例二
[0068]参照图2,示出了本发明的一种流媒体的处理方法实施例二的步骤流程图,具体可以包括:
[0069]步骤201、在播放流媒体文件的过程中,接收来自用户的时移指令;其中,所述时移指令中包括目标时间点;
[0070]步骤202、根据所述流媒体文件对应的切片索引文件,确定所述目标时间点对应的传输流TS切片;
[0071]步骤203、解析所述切片索引文件,得到所述TS切片中所有关键帧的起始时间信息和偏移量信息;
[0072]步骤204、确定与所述目标时间点最接近的关键帧对应的起始时间信息和偏移量信息;
[0073]在本发明的一种应用示例中,终端设备对流媒体文件进行解码和播放,在解析m3u8索引文件过程中,当解析到#EXT-X-STREAM-1NF:KEYFRAME字段时,可以将每一个I帧对应的起始时间信息和偏移量信息都保存到数据结构列表(list)中,每一个TS切片都对应一个list,以在执行时移操作时可以快速定位到I帧的位置,不用每次时移时都要解析m3u8索引文件,从而提高时移效率。当用户要做时移操作时,按照用户时移的目标时间点,根据m3u8索引文件,找到目标时间点对应的TS切片,然后找到该切片对应的list,根据目标时间点找到最接近的I帧的起始时间信息和偏移量信息,即可从该I帧所在位置开始播放流媒体文件。
[0074]步骤205、从与所述目标时间点最接近的关键帧所在位置开始播放所述TS切片。
[0075]本发明实施例通过解析切片索引文件,得到TS切片中所有关键帧的起始时间信息和偏移量信息,确定与时移目标时间点最接近的关键帧对应的起始时间信息和偏移量信息,从而可以直接从与时移目标时间点最接近的关键帧开始播放TS切片,相对于现有技术中从切片头开始播放,可以提高流媒体文件播放过程中的时移准确度。
[0076]实施例三
[0077]上述实施例一和实施例二均以终端设备的角度进行说明,为了更清楚的描述本发明的流媒体的处理方法,下面结合实际应用场景,从服务器侧说明本发明的具体实现过程。
[0078]在服务器端,本发明实施例实现了对流媒体文件的转码和封装,以及在此过程中,根据自定义的协议加入了 I帧的描述信息,包括I帧的起始时间信息和偏移量信息,以使客户端播放流媒体文件时,可以提高时移的精准度。
[0079]参照图3,示出了本发明的一种流媒体的处理方法实施例三的步骤流程图,应用于服务器,具体可以包括:
[0080]步骤301、在对所述流媒体文件进行封装之前,确定TS切片中关键帧的起始时间信息和偏移量信息;
[0081]具体地,在服务器端进行视频转码时,可以记录视频的每一个TS切片中I帧的起始时间信息和偏移量信息。
[0082]步骤302、将所述TS切片中关键帧的起始时间信息和偏移量信息存储在切片索引文件中。
[0083]具体地,在生成m3u8索引文件时,将所有I帧的起始时间信息和偏移量信息集成到m3u8索引文件中,定义私有协议,也即增加扩展字段KEYFRAME = “time,offset ;time,offset ;...”,其中,time为I帧的起始时间信息,offset为偏移量信息。
[0084]本发明实施例在服务器侧对流媒体文件进行转码的过程中,在生成的m3u8索引文件中标注每一个分片内I帧的起始时间信息和偏移量信息,以使终端设备执行时移操作时,可以根据该m3u8索引文件直接定位到对应的I帧进行播放,从而提高时移的准确度。
[0085]装置实施例
[0086]参照图4,示出了本发明的一种流媒体的处理装置实施例的结构框图,具体可以包括:
[0087]指令接收模块410,用于在播放流媒体文件的过程中,接收来自用户的时移指令;其中,所述时移指令中包括目标时间点;
[0088]切片确定模块420,用于根据所述流媒体文件对应的切片索引文件,确定所述目标时间点对应的传输流TS切片;
[0089]位置确定模块430,用于确定所述TS切片中与所述目标时间点最接近的关键帧的位置信息;及
[0090]媒体播放模块440,用于从所述关键帧的位置信息播放所述TS切片。
[0091]在本发明的一种优选实施例中,所述切片索引文件中可以包括:TS切片的时长信息;
[0092]所述切片确定模块420,具体可以包括:
[0093]时间确定子模块,用于根据所述TS切片的时长信息,确定TS切片的开始时间信息;
[0094]切片确定子模块,用于根据所述TS切片的开始时间信息,确定所述时移时间点对应的TS切片。
[0095]在本发明的另一种优选实施例中,所述切片索引文件中可以包括:TS切片中关键帧的起始时间信息和偏移量信息;
[0096]所述位置确定模块430,具体可以包括:
[0097]解析子模块,用于解析所述切片索引文件,得到所述TS切片中所有关键帧的起始时间信息和偏移量信息;
[0098]确定子模块,用于确定与所述目标时间点最接近的关键帧对应的起始时间信息和偏移量信息。
[0099]在本发明的又一种优选实施例中,所述装置还可以包括:
[0100]下载模块,用于在从所述关键帧的位置信息播放所述TS切片之前,检测是否已从服务器下载所述TS切片,若未下载,则向服务器请求下载所述关键帧的位置信息之后的TS切片。
[0101]在本发明的再一种优选实施例中,所述装置还可以包括:
[0102]关键帧信息确定模块,用于在对所述流媒体文件进行封装之前,确定TS切片中关键帧的起始时间信息和偏移量信息;
[0103]关键帧信息存储模块,用于将所述TS切片中关键帧的起始时间信息和偏移量信息存储在切片索引文件中。
[0104]以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0105]通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如R0M/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0106]最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
【主权项】
1.一种流媒体的处理方法,其特征在于,包括: 在播放流媒体文件的过程中,接收来自用户的时移指令;其中,所述时移指令中包括目标时间点; 根据所述流媒体文件对应的切片索引文件,确定所述目标时间点对应的传输流TS切片; 确定所述TS切片中与所述目标时间点最接近的关键帧的位置信息; 从所述关键帧的位置信息播放所述TS切片。2.根据权利要求1所述的方法,其特征在于,所述切片索引文件中包括:TS切片的时长信息; 所述根据切片索引文件,确定所述时移时间点对应的传输流TS切片的步骤,包括: 根据所述TS切片的时长信息,确定TS切片的开始时间信息; 根据所述TS切片的开始时间信息,确定所述时移时间点对应的TS切片。3.根据权利要求1所述的方法,其特征在于,所述切片索引文件中包括:TS切片中关键帧的起始时间信息和偏移量信息; 所述确定所述TS切片中与所述目标时间点最接近的关键帧的位置信息的步骤,包括: 解析所述切片索引文件,得到所述TS切片中所有关键帧的起始时间信息和偏移量信息; 确定与所述目标时间点最接近的关键帧对应的起始时间信息和偏移量信息。4.根据权利要求1所述的方法,其特征在于,所述方法还包括: 在从所述关键帧的位置信息播放所述TS切片之前,检测是否已从服务器下载所述TS切片,若未下载,则向服务器请求下载所述关键帧的位置信息之后的TS切片。5.根据权利要求1所述的方法,其特征在于,所述方法还包括: 在对所述流媒体文件进行封装之前,确定TS切片中关键帧的起始时间信息和偏移量信息; 将所述TS切片中关键帧的起始时间信息和偏移量信息存储在切片索引文件中。6.一种流媒体的处理装置,其特征在于,包括: 指令接收模块,用于在播放流媒体文件的过程中,接收来自用户的时移指令;其中,所述时移指令中包括目标时间点; 切片确定模块,用于根据所述流媒体文件对应的切片索引文件,确定所述目标时间点对应的传输流TS切片; 位置确定模块,用于确定所述TS切片中与所述目标时间点最接近的关键帧的位置信息 '及 媒体播放模块,用于从所述关键帧的位置信息播放所述TS切片。7.根据权利要求6所述的装置,其特征在于,所述切片索引文件中包括:TS切片的时长信息; 所述切片确定t吴块,包括: 时间确定子模块,用于根据所述TS切片的时长信息,确定TS切片的开始时间信息;切片确定子模块,用于根据所述TS切片的开始时间信息,确定所述时移时间点对应的TS切片。8.根据权利要求6所述的装置,其特征在于,所述切片索引文件中包括:TS切片中关键帧的起始时间信息和偏移量信息; 所述位置确定模块,包括: 解析子模块,用于解析所述切片索引文件,得到所述TS切片中所有关键帧的起始时间信息和偏移量信息; 确定子模块,用于确定与所述目标时间点最接近的关键帧对应的起始时间信息和偏移量信息。9.根据权利要求6所述的装置,其特征在于,所述装置还包括: 下载模块,用于在从所述关键帧的位置信息播放所述TS切片之前,检测是否已从服务器下载所述TS切片,若未下载,则向服务器请求下载所述关键帧的位置信息之后的TS切片。10.根据权利要求6所述的装置,其特征在于,所述装置还包括: 关键帧信息确定模块,用于在对所述流媒体文件进行封装之前,确定TS切片中关键帧的起始时间信息和偏移量信息; 关键帧信息存储模块,用于将所述TS切片中关键帧的起始时间信息和偏移量信息存储在切片索引文件中。
【文档编号】H04L29/06GK105979404SQ201510870437
【公开日】2016年9月28日
【申请日】2015年12月1日
【发明人】苍鹏
【申请人】乐视致新电子科技(天津)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1