基于低倍速文件实现快进快退播放视频数据的方法转让专利

申请号 : CN201310528709.4

文献号 : CN103581711A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘俊张力肖腾翔

申请人 : 广州西维尔计算机系统有限公司

摘要 :

本发明涉及基于低倍速文件实现快进快退播放视频数据的方法,该方法根据原始媒体文件生成一种低倍速文件,并且对该低倍速文件分片存储。当用户操作的倍速播放刚好是生成的倍速,则流媒体服务器根据播放请求的时间点找到对应的文件片和在该文件片中的偏移位置,然后从此偏移位置读取视频数据推送到客户端;当用户操作的倍速播放大于生成的低倍速时,则通过跳文件片的方式实现倍速播放。本发明具有更节约存储空间,读取数据效率更好,运营成本更低的优点。

权利要求 :

1.基于低倍速文件实现快进快退播放视频数据的方法,其特征在于,包括以下步骤:步骤1、从原始媒体文件中获取按一种低倍速快进或快退播放时所需的视频数据;

步骤2、对所述视频数据进行切片处理,得到多个分片,每一个分片是一个完整的画面组;

步骤3、将相邻的画面组进行组合,得到多个文件片,每一个文件片的时长与预设的时长相等;

步骤4、根据所述多个文件片生成索引文件;

步骤5、接收来自客户端的快进或快退播放请求,所述快进或快退播放请求的播放倍速大于或等于所述低倍速;

步骤6、根据客户端在操作快进或快退播放请求时的视频播放时间点,根据公式(T/n1)/S得到整数商和余数,根据整数商和索引文件得到对应的文件片,根据余数和索引文件得到相对于所述对应的文件片的起始播放位置,从所述起始播放位置读取视频数据并通过网络发送至客户端;其中,T为客户端在操作快进或快退播放请求时的视频播放时间点,n1为低倍速,S为文件片的时长;

步骤7、当当前播放的文件片结束播放后,继续从下一个文件片的起始端读取视频数据并通过网络发送至客户端;其中,所述当前播放的文件片与所述下一个文件片相隔(n2/n1)-1个文件片,n2为快进或快退播放请求的播放倍速;

步骤8、重复执行步骤7,直到判断到下一个文件片为空或者接收到来自客户端的结束快进或快退播放请求,则结束快进或快退播放。

2.如权利要求1所述的基于低倍速文件实现快进快退播放视频数据的方法,其特征在于,所述低倍速为2倍速或4倍速或8倍速。

3.如权利要求1所述的基于低倍速文件实现快进快退播放视频数据的方法,其特征在于,所述文件片的时长为4s或2s。

4.基于低倍速文件实现快进快退播放视频数据的装置,其特征在于,包括以下模块:获取模块,用于从原始媒体文件中获取按一种低倍速快进或快退播放时所需的视频数据;

切片模块,用于对所述视频数据进行切片处理,得到多个分片,每一个分片是一个完整的画面组;

组合模块,用于将相邻的画面组进行组合,得到多个文件片,每一个文件片的时长与预设的时长相等;

索引模块,用于根据所述多个文件片生成索引文件;

接收模块,用于接收来自客户端的快进或快退播放请求,所述快进或快退播放请求的播放倍速大于或等于所述低倍速;

起始模块,用于根据客户端在操作快进或快退播放请求时的视频播放时间点,根据公式(T/n1)/S得到整数商和余数,根据整数商和索引文件得到对应的文件片,根据余数和索引文件得到相对于所述对应的文件片的起始播放位置,从所述起始播放位置读取视频数据并通过网络发送至客户端;其中,T为客户端在操作快进或快退播放请求时的视频播放时间点,n1为低倍速,S为文件片的时长;

播放模块,用于当当前播放的文件片结束播放后,继续从下一个文件片的起始端读取视频数据并通过网络发送至客户端;其中,所述当前播放的文件片与所述下一个文件片相隔(n2/n1)-1个文件片,n2为快进或快退播放请求的播放倍速;

结束模块,用于重复执行播放模块,直到判断到下一个文件片为空或者接收到来自客户端的结束快进或快退播放请求,则结束快进或快退播放。

5.如权利要求1所述的基于低倍速文件实现快进快退播放视频数据的装置,其特征在于,所述低倍速为2倍速或4倍速或8倍速。

6.如权利要求1所述的基于低倍速文件实现快进快退播放视频数据的装置,其特征在于,所述文件片的时长为4s或2s。

说明书 :

基于低倍速文件实现快进快退播放视频数据的方法

[0001]

技术领域

[0002] 本发明涉及视频播放技术。
[0003]

背景技术

[0004] 1.广电等行业的发展迫切需要多倍速实现的技术应用随着广电和IPTV等业务的不断发展,用户量也不断地壮大,致使用户的需求也越来越多,其中倍速流控操作尤为突出。大部分用户在播放媒体影片的过程中都希望能够以不同的倍速进行快进快退操作。因此该行业的发展迫切需要以较低成本和高效率实现多倍速快进快退播放功能的技术应用。
[0005] 2.低倍速实现多倍速技术应用满足了行业的需求随着三网融合发展推动广电双向业务开展,广电进入互联网领域已经成为不争的目标趋势,视频硬件条件上的直接碰撞在所难免。无论从降低成本还是从视频质量的角度来看,多倍速技术应用在广电等行业势在必行。
[0006] 3.传统多倍速播放实现的不足传统的多倍速实现方式是根据原始媒体文件按照一定的规则生成对应的倍速文件(针对不同倍速生成不同的倍速文件)并保存在磁盘上。当用户进行倍速操作时,流媒体服务器根据用户指定的倍速读取相对应的倍速文件。该实现方式存在浪费存储空间,磁盘吞吐量大,运营成本高,效率较低等诸多不足。
[0007]

发明内容

[0008] 本发明的目的在于提出一种基于低倍速文件实现快进快退播放视频数据的方法,其能解决浪费存储空间、磁盘吞吐量大、运营成本高和效率低的问题。
[0009] 为了达到上述目的,本发明所采用的技术方案如下:基于低倍速文件实现快进快退播放视频数据的方法,其包括以下步骤:
步骤1、从原始媒体文件中获取按一种低倍速快进或快退播放时所需的视频数据;
步骤2、对所述视频数据进行切片处理,得到多个分片,每一个分片是一个完整的画面组;
步骤3、将相邻的画面组进行组合,得到多个文件片,每一个文件片的时长与预设的时长相等;
步骤4、根据所述多个文件片生成索引文件;
步骤5、接收来自客户端的快进或快退播放请求,所述快进或快退播放请求的播放倍速大于或等于所述低倍速;
步骤6、根据客户端在操作快进或快退播放请求时的视频播放时间点,根据公式(T/n1)/S得到整数商和余数,根据整数商和索引文件得到对应的文件片,根据余数和索引文件得到相对于所述对应的文件片的起始播放位置,从所述起始播放位置读取视频数据并通过网络发送至客户端;其中,T为客户端在操作快进或快退播放请求时的视频播放时间点,n1为低倍速,S为文件片的时长;
步骤7、当当前播放的文件片结束播放后,继续从下一个文件片的起始端读取视频数据并通过网络发送至客户端;其中,所述当前播放的文件片与所述下一个文件片相隔(n2/n1)-1个文件片,n2为快进或快退播放请求的播放倍速;
步骤8、重复执行步骤7,直到判断到下一个文件片为空或者接收到来自客户端的结束快进或快退播放请求,则结束快进或快退播放。
[0010] 优选的,所述低倍速为2倍速或4倍速或8倍速。
[0011] 优选的,所述文件片的时长为4s或2s。
[0012] 本发明还提出一种基于低倍速文件实现快进快退播放视频数据的装置,其包括以下模块:获取模块,用于从原始媒体文件中获取按一种低倍速快进或快退播放时所需的视频数据;
切片模块,用于对所述视频数据进行切片处理,得到多个分片,每一个分片是一个完整的画面组;
组合模块,用于将相邻的画面组进行组合,得到多个文件片,每一个文件片的时长与预设的时长相等;
索引模块,用于根据所述多个文件片生成索引文件;
接收模块,用于接收来自客户端的快进或快退播放请求,所述快进或快退播放请求的播放倍速大于或等于所述低倍速;
起始模块,用于根据客户端在操作快进或快退播放请求时的视频播放时间点,根据公式(T/n1)/S得到整数商和余数,根据整数商和索引文件得到对应的文件片,根据余数和索引文件得到相对于所述对应的文件片的起始播放位置,从所述起始播放位置读取视频数据并通过网络发送至客户端;其中,T为客户端在操作快进或快退播放请求时的视频播放时间点,n1为低倍速,S为文件片的时长;
播放模块,用于当当前播放的文件片结束播放后,继续从下一个文件片的起始端读取视频数据并通过网络发送至客户端;其中,所述当前播放的文件片与所述下一个文件片相隔(n2/n1)-1个文件片,n2为快进或快退播放请求的播放倍速;
结束模块,用于重复执行播放模块,直到判断到下一个文件片为空或者接收到来自客户端的结束快进或快退播放请求,则结束快进或快退播放。
[0013] 优选的,所述低倍速为2倍速或4倍速或8倍速。
[0014] 优选的,所述文件片的时长为4s或2s。
[0015] 本发明具有如下有益效果:相对于需要生成所有的倍速文件才能实现快进快退播放的方法,本发明只需生成一种倍速的倍速文件就可以实现多种不同倍速的快进快退播放,具有节约存储空间,读取数据效率好,运营成本低的优点。
[0016]

附图说明

[0017] 图1为本发明较佳实施例的基于低倍速文件实现快进快退播放视频数据的方法的流程图。
[0018]

具体实施方式

[0019] 下面,结合附图以及具体实施方式,对本发明做进一步描述。
[0020] 为了便于描述,对下文用到的术语进行解释:GOP全称为Group of Pictures(即画面组,一组连续的画面);
1X:表示一倍速(正常播放);
4X:表示四倍速;
8X:表示八倍速;
16X:表示十六倍速;
32X:表示三十二倍速;
nX:表示n倍速;
每个文件片由一个或多个GOP组成。
[0021] 如图1所示,一种基于低倍速文件实现快进快退播放视频数据的方法,其包括以下步骤:步骤S1、从原始媒体文件中获取按一种低倍速(如4X)快进或快退播放时所需的视频数据。可通过媒资注入或录制的方式将原始媒体文件存储到磁盘上。获取所述视频数据的过程可以是:根据原始媒体文件的第一时间(默认为0秒开始),依据第一时间与进行快进或快退的底倍速(即4X),获取当前低倍速下的第二时间(0秒,4秒,8秒……以此类推),依据所述第二时间获取离第二时间最近的I帧数据序列。
[0022] 步骤S2、对所述视频数据进行切片处理,得到多个分片,每一个分片是一个完整的画面组(即GOP)。
[0023] 步骤S3、将相邻的画面组进行组合,即将相邻的GOP链接在一起,得到多个文件片,每一个文件片的时长与预设的时长(如4s)相等。此外,每个文件片默认大小可为1.8M,其中标清文件片时长为4s,高清文件片时长为2s。
[0024] 步骤S4、根据所述多个文件片生成索引文件(索引文件的建立请参考NGOD Comcast索引标准)。文件片的名称方式可以是:第一个文件片为F0,第二个文件片为F1,以此类推F2,F3……Fn。
[0025] 实际上,步骤S1至步骤S4是生成一种低倍速文件的过程。
[0026] 步骤S5、接收来自客户端的快进或快退播放请求,所述快进或快退播放请求的播放倍速大于或等于所述低倍速。
[0027] 步骤S6、根据客户端在操作快进或快退播放请求时的视频播放时间点,根据公式(T/n1)/S得到整数商和余数,根据整数商和索引文件得到对应的文件片,根据余数和索引文件得到相对于所述对应的文件片的起始播放位置,从所述起始播放位置读取视频数据并通过网络发送至客户端;其中,T为客户端在操作快进或快退播放请求时的视频播放时间点,n1为低倍速,S为文件片的时长。
[0028] 步骤S7、当当前播放的文件片结束播放后,继续从下一个文件片的起始端读取视频数据并通过网络发送至客户端;其中,所述当前播放的文件片与所述下一个文件片相隔(n2/n1)-1个文件片,n2为快进或快退播放请求的播放倍速。也就是说,当当前播放的文件片结束播放后,需要跳过(n2/n1)-1个文件片,才继续读取视频数据。
[0029] 步骤S8、重复执行步骤S7,直到判断到下一个文件片为空或者接收到来自客户端的结束快进或快退播放请求,则结束快进或快退播放。
[0030] 下面以实际的案例进行说明:假设用户操作请求4X播放(刚好是系统设置的低倍速),视频播放时间点是第100s,流媒体服务器根据请求的视频播放时间点,实际生产的低倍速和每个文件片的时长找到对应的文件片和相对于该文件片的文件偏移位置(100/4/4,得出的结果6表示F6文件片,余数
1表示从F6文件片的第1s开始播放,然后再根据该视频播放时间点和低倍速从索引文件中得出对应的文件片偏移位置(即文件片播放的起始位置,单位:字节),最后流媒体服务器再从该文件片偏移位置开始读取流数据,当该文件片结束的时候再跳4/4-1=0个文件片(即依次按4X的视频数据)继续读取流数据推送到客户端。
[0031] 假设用户操作请求8X播放,视频播放时间点是第100s,流媒体服务器根据请求的视频播放时间点,实际生产的低倍速和每个文件片的时长找到对应的文件片和相对于该文件片的文件偏移位置(100/4/4,得出的结果6表示F6文件片,余数1表示从F6文件片的第1s开始播放,然后再根据该视频播放时间点和低倍速从索引文件中得出对应的文件片偏移位置,最后流媒体服务器再从该文件片偏移位置开始读取流数据,当该文件片结束的时候再跳8/4-1=1个文件片继续读取流数据推送到客户端。
[0032] 假设用户操作请求16X播放,播放时间点是第100s,流媒体服务器根据请求的视频播放时间点,实际生产的低倍速和每个文件片的时长找到对应的文件片和相对于该文件片的文件偏移位置(100/4/4,得出的结果6表示F6文件片,余数1表示从F6文件片的第1s开始播放,然后再根据该视频播放时间点和低倍速从索引文件中得出对应的文件片偏移位置,最后流媒体服务器再从该文件片偏移位置开始读取流数据,当该文件片结束的时候再跳16/4-1=3个文件片继续读取流数据推送到客户端。
[0033] 假设用户操作请求32X播放,播放时间点是第100s,流媒体服务器根据请求的视频播放时间点,实际生产的低倍速和每个文件片的时长找到对应的文件片和相对于该文件片的文件偏移位置(100/4/4,得出的结果6表示F6文件片,余数1表示从F6文件片的第1s开始播放,然后再根据该视频播放时间点和低倍速从索引文件中得出对应的文件片偏移位置,最后流媒体服务器再从该文件片偏移位置开始读取流数据,当该文件片结束的时候再跳32/4-1=7个文件片继续读取流数据推送到客户端。
[0034] 因此当用户操作请求播放的倍速大于或等于实际生成的低倍速时,流媒体服务器根据请求的视频播放时间点,实际生成的低倍速和每个文件片的时长找到对应的文件片和相对于该文件片的文件偏移位置(用户请求的视频播放时间点/实际生成的低倍速/文件片的时长),得出的整数商表示第几个文件片,余数表示相对于该文件片的起始播放时间点,然后再根据该起始播放时间点和低倍速从索引文件中得出对应的文件偏移位置,最后流媒体服务器再从该文件偏移位置开始读取流数据,当该文件片结束的时候再跳n个文件片(n=用户实际请求的倍速/实际生成的低倍速 - 1)继续读取流数据推送到客户端。
[0035] 本发明还提出一种基于低倍速文件实现快进快退播放视频数据的装置,其包括以下模块:获取模块,用于从原始媒体文件中获取按一种低倍速快进或快退播放时所需的视频数据;
切片模块,用于对所述视频数据进行切片处理,得到多个分片,每一个分片是一个完整的画面组;
组合模块,用于将相邻的画面组进行组合,得到多个文件片,每一个文件片的时长与预设的时长相等;
索引模块,用于根据所述多个文件片生成索引文件;
接收模块,用于接收来自客户端的快进或快退播放请求,所述快进或快退播放请求的播放倍速大于或等于所述低倍速;
起始模块,用于根据客户端在操作快进或快退播放请求时的视频播放时间点,根据公式(T/n1)/S得到整数商和余数,根据整数商和索引文件得到对应的文件片,根据余数和索引文件得到相对于所述对应的文件片的起始播放位置,从所述起始播放位置读取视频数据并通过网络发送至客户端;其中,T为客户端在操作快进或快退播放请求时的视频播放时间点,n1为低倍速,S为文件片的时长;
播放模块,用于当当前播放的文件片结束播放后,继续从下一个文件片的起始端读取视频数据并通过网络发送至客户端;其中,所述当前播放的文件片与所述下一个文件片相隔(n2/n1)-1个文件片,n2为快进或快退播放请求的播放倍速;
结束模块,用于重复执行播放模块,直到判断到下一个文件片为空或者接收到来自客户端的结束快进或快退播放请求,则结束快进或快退播放。
[0036] 本实施例根据原始媒体文件生成一种低倍速文件,并且对该低倍速文件分片存储(对流媒体数据进行GOP边界判定,每个文件片默认大小1.8M,其中标清文件片时长为4s,高清文件片时长为2s)。当用户操作的倍速播放刚好是生成的倍速,则流媒体服务器根据播放请求的时间点找到对应的文件片和在该文件片中的偏移位置,然后从此偏移位置读取视频数据推送到客户端;当用户操作的倍速播放大于生成的低倍速时,则通过跳文件片的方式实现倍速播放。
[0037] 相对于传统生成所有的倍速文件实现快进快退的方法,本实施例具有更节约存储空间,读取数据效率更好,运营成本更低的优点;相对于自动跳I帧实现快进快退的方法,本实施例更简单,更易实现,读取数据效率也较高,用户体验效果也很流畅。
[0038] 对于本领域的技术人员来说,可根据以上描述的技术方案以及构思,做出其它各种相应的改变以及变形,而所有的这些改变以及变形都应该属于本发明权利要求的保护范围之内。