CN104869430B - 一种视频倍速播放方法及装置 - Google Patents
一种视频倍速播放方法及装置 Download PDFInfo
- Publication number
- CN104869430B CN104869430B CN201510251629.8A CN201510251629A CN104869430B CN 104869430 B CN104869430 B CN 104869430B CN 201510251629 A CN201510251629 A CN 201510251629A CN 104869430 B CN104869430 B CN 104869430B
- Authority
- CN
- China
- Prior art keywords
- frame
- speed
- video
- information
- deleted
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 32
- 238000009826 distribution Methods 0.000 claims abstract description 24
- 238000005243 fluidization Methods 0.000 claims abstract description 7
- 238000012217 deletion Methods 0.000 claims description 90
- 230000037430 deletion Effects 0.000 claims description 90
- 230000008859 change Effects 0.000 claims description 55
- 230000009467 reduction Effects 0.000 claims description 18
- 238000012545 processing Methods 0.000 claims description 17
- 238000004458 analytical method Methods 0.000 claims description 12
- 239000000284 extract Substances 0.000 claims description 11
- 230000000694 effects Effects 0.000 claims description 5
- 239000004744 fabric Substances 0.000 claims 1
- 230000005540 biological transmission Effects 0.000 abstract description 10
- 238000004422 calculation algorithm Methods 0.000 description 11
- 238000003860 storage Methods 0.000 description 11
- 238000000605 extraction Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 238000012216 screening Methods 0.000 description 3
- 241001269238 Data Species 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012067 mathematical method Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/234381—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the temporal resolution, e.g. decreasing the frame rate by frame skipping
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/637—Control signals issued by the client directed to the server or network components
- H04N21/6373—Control signals issued by the client directed to the server or network components for rate control, e.g. request to the server to modify its transmission rate
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/65—Transmission of management data between client and server
- H04N21/658—Transmission by the client directed to the server
- H04N21/6587—Control parameters, e.g. trick play commands, viewpoint selection
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Television Signal Processing For Recording (AREA)
Abstract
本发明提供一种视频倍速播放的方法及装置,该装置主要包括文件视频倍速模块、音视频复用模块、流化模块,该些模块具体执行:根据用户的倍速请求,从待变速视频中提取出视频帧分布信息;对所述的帧分布信息进行处理,生成冗余帧信息;依据文件信息及倍速播放要求,从所述冗余帧中删除部分或全部冗余帧数据,以达到倍速播放要求。本发明实现了在无需编解码及保证视频质量的情况下,实现视频倍速播放的要求,并提高视频传输效率,有效降低带宽的占用,降低了视频提供商的成本,同时提高了用户体验。
Description
技术领域
本发明涉及一种视频倍速播放方法及装置,尤其涉及一种在通过互联网进行在线视频学习时,提高视频播放效率的倍速播放方法及其相应的装置。
背景技术
互联网视频倍速播放,可以方便用户把时间集中到感兴趣的片段上,尤其是在互联网教育网站,对提高学员的学习效率大有益处;老师在录课时为了照顾大部分学员课堂的内容比较丰富且语速比较平缓;但对于一些基础好的学生,在通过视频学习时希望能够提高播放速度的方法来提高学习效率;因此,本发明提出了一种视频倍速播放的方法及装置,解决互联网视频倍速播放的问题。
为了解决这个问题,常见的技术方案是通过adobe或其它的流媒体服务器提高播放速度,问题是随着倍速的增加,码流会相应的增加,导致服务端带宽突增,同时用户的带宽有更高的要求,从而导致观看的过程中经常播放不流畅。
本发明主要是解决通过互联网在线视频学习时,提高视频的播放倍速,导致的码流增加问题。视频码流的增加会导致企业的运营成本增加的同时,也影响用户观看的体验,带来的不良学习效果。
发明内容
为解决上述现有技术中存在的技术问题,本发明提出了一种视频倍速播放方法及装置,实现了在无需视频编解码的情况下,通过删除冗余帧的方式,实现不增加码流,不损失视频质量的倍速处理技术。
不进行编解码的原理是利用视频编解码的特性,例如,可以设置在编码时生成IBP帧,然而,B帧可以仅依赖前一个I帧或P及后面一个P帧进行解码,删除其他任何一个或多个B帧,不会影响视频的解码,因此在进行变速时,B帧数据可以作为冗余帧被删除。当然,该冗余帧也可以是预先设定的满足一定要求的视频帧。
基于上述的技术目的及要解决的技术问题,本发明的目的是提供了一种视频倍速播放方法,其特征在于无需编解码实现文件变速,所述方法的步骤包括:
步骤1、从要求倍速播放的视频中提取出视频帧分布信息;
步骤2、对所述视频帧分布信息进行处理,生成冗余帧信息;
步骤3、依据所述视频的视频文件信息、所述冗余帧信息及倍速播放要求,从所述视频的冗余帧中删除部分或全部冗余帧数据,以达到所述倍速播放要求。
优选地,所述步骤2进一步包括,
步骤201、依据冗余帧的特性,从所述视频帧分布信息中提取出冗余帧信息;
步骤202、根据所述冗余帧信息计算冗余帧数量。
优选地,所述步骤3进一步包括,
步骤301、获取视频文件信息,所述视频文件信息包括视频总时长、帧率;
步骤302、根据视频文件信息及倍速播放要求,计算整个视频文件需要删除的冗余帧数量及删除步长;
步骤303、根据删除步长、所述冗余帧信息,删除冗余帧数据;结合所述视频帧分布信息,判断删除冗余帧后视频的播放倍速是否与所述倍速播放要求的倍速相等,如果相等,则按照所述删除步长继续删除,直至视频播放结束;否则不断调整删除步长,使播放倍速达到所述倍速播放要求的倍速。
优选地,所述步骤303中删除冗余帧数据是实时进行的,是在视频文件播放的同时进行删除。此处申请人需要说明的是,本领域技术人员应当知晓,该删除冗余帧数据的方式,可以是实时进行的,即边播放边删除,也可以是非实时进行的,例如在完成了删除后,在进行码流的传输与播放;详细而言,可以实现冗余帧的删除是在获取到待倍速文件以及用户的倍速请求后,可以边播放边实现删除的,即实现了动态对视频进行调整,以满足用户,尤其是在线用户对视频文件的实时观看及实时调整视频倍速的需求,这一实时是作为本发明的一个优选的实时方式而实现的;也可以是,如果在用户对视频变速的观看要求不高的情况下,在获取到视频文件以及用户的倍速请求后,根据倍速请求及视频文件的相关信息,将视频文件按照倍速要求处理完成后,即对冗余帧删除完成后,再发送给用户,这其中虽然会产生一定的延时,但对于时效要求不高的用户来说,也可以采用这一方式,执行本发明提出的冗余帧删除的倍速处理方式,并且有效降低了带宽压力。
优选地,所述步骤3中,删除部分或全部冗余帧数据,采用以下方式:依据当前播放的帧及删除步长,计算下一待删除的帧位置,如果该帧位置处为冗余帧,则进行删除,否则,依据预设规则计算冗余帧,再执行删除。
优选地,所述视频文件信息还包括:帧类型、帧序号、帧数据的起始位置、数据长度的信息。本领域技术人员也可以采用视频领域中的其他可用的文件信息,按照不同的视频倍速请求,删除冗余帧,从而实现视频倍速,例如,通过每帧的播放周期和总时长,计算删除冗余时长,从而达到变速效果,本领域技术人员应当知晓,此处仅作为例举,本发明的保护范围并不以此为限。同样,本领域技术人员也可以对上述视频文件信息进行任意的组合、筛选使用,这些均应视为落入本发明的保护范围之内。
优选地,所述步骤201中的冗余帧特性包括以下特性:冗余帧的特性是不能被其他帧解码所依赖,但解码可以依赖其他帧。从视频帧中识别出帧信息,并利用这些特性进行冗余帧的筛选,本领域技术人员应当知晓,冗余帧的特性,也可以是用户或开发人员等进行自定义的,本发明所述的冗余帧是B帧,这可作为本发明的优选的一种实施方式,当然,也可以使用其他有冗余帧特性的视频帧,例如,全I帧数据,任意一个I帧都可以做作为冗余帧。本领域技术人员应当知晓,此处仅作为本发明的示例性阐释,本领域技术人员也可以具体设置冗余帧的定义条件,从而使用本发明提出的删除冗余帧的方法,这些更改、设置也应当视为落入本发明的保护范围之内。
优选地,所述步骤201中的从所述视频帧分布信息中提取出冗余帧信息的具体步骤为:
分析所述视频文件,获取NAL信息;
记录NAL类型及NAL的起始位置;
分析记录的NAL类型及起始位置,区分I帧、B帧、P帧及其他NAL信息,并提取冗余帧信息;所述冗余帧信息包括:冗余帧的序号、位置、涉及的NAL序列;
所述步骤202中的计算冗余帧数量的具体步骤为:
在分析完NAL信息后,按照帧类型直接计算冗余帧数量。
优选地,所述步骤303中的计算整个视频文件需要删除的冗余帧数量及删除步长的具体步骤为:
根据变速的倍速要求,计算删除冗余帧数据的删除步长;
根据当前位置和已删除的帧的数量,计算出当前的播放倍速;
如果当前的播放倍速不满足请求变速的倍速要求,则增加/减少删除步长,直至满足倍速要求。
进一步优选地,所述增加/减少删除步长的具体步骤为:
计算应该删除的冗余帧的数量:X=(L-(L/V))*F;
计算删除冗余帧的删除步长:S=T/X;
计算当前冗余帧删除后的倍速的倍率:Vi=i/(i-Ri)
其中,L是总时长,V是要求倍速的倍率,F是帧率,T是总帧数,L、V、F、T是在文件分析时已经获得的已知变量;X是应该删除的冗余帧的数量,S是删除冗余帧的删除步长;Vi是当前冗余帧删除后的倍速的倍率,i是当前帧的序号;Ri是在序号为i的帧位置之前已删除的冗余帧的总数;
当倍速调整到第i帧时,计算第i+1帧使用当前删除步长的倍率值Vi+1;当Vi+1大于V时,通过增加删除步长改变在i+1帧时的i-Ri值从而使Vi+1等于V或小于V;当Vi+1小于V时,通过减小删除步长改变在i+1帧时的i-Ri值从而使Vi+1等于V或大于V。
进一步优选地,所述步长及增加/减少删除的步长的具体步骤也可以为:
计算满足倍速要求需要删除的总时长:X'=(L-(L/V));
计算每秒需要删除的视频时长:S'=L/X';
计算已删除的帧的总时长:RTi=Ri*1000/F
计算当前冗余帧删除后的倍速的倍率:Vi=TIMEi/(TIMEi-RTi)
其中,L是总时长,V是要求倍速的倍率,F是帧率,L、V、F是在文件分析时已经获得的已知变量,X'是需要删除的总时长,S'为每秒需要删除的视频时长,TIMEi为从视频文件起始(即视频文件的起始位置或起始帧)至当前第i帧的时长,RTi为已删除的帧的总时长;Vi是当前冗余帧删除后的倍速的倍率,i是当前帧的序号;Ri是在序号为i的帧位置之前已删除的冗余帧的总数;
当倍速调整到第i帧时,计算第i+1帧使用当前每秒需要删除的视频时长的倍率值Vi+1;当Vi+1大于V时,通过增加每秒需要删除的视频时长改变在i+1帧时的i-Ri值从而使Vi+1等于V或小于V;当Vi+1小于V时,通过减小每秒需要删除的视频时长改变在i+1帧时的i-Ri值从而使Vi+1等于V或大于V。
优选地,所述步骤303中,不断调整删除步长的具体步骤,同时也是调节Vi以满足倍速要求的含义,具体为:
当到第i帧时,计算第i+1帧使用当前删除步长的倍速值Vi+1;当Vi+1大于V时,通过增加步长改变在i+1帧时的i-Ri值从而使Vi+1等于V或小于V;当Vi+1小于V时,通过减小步长改变在i+1帧时的i-Ri值从而使Vi+1等于V或大于V。此处,当步长改变后,使得Vi+1与V之间的关系满足倍速要求,则可以将此时的步长作为该倍速要求下的最优步长,该满足倍速要求即Vi+1与V相等,或者Vi+1与V之间的差值满足一预定的范围,例如,当改变步长后,如果不能满足Vi+1与V相等,则可令Vi+1与V之间差值的绝对值与V的比值小于10%,视为满足倍速要求等,具体而言,当Vi+1大于V时,增加步长后,如果Vi+1小于V,并且差值在V的10%以内,即视为满足了倍速要求,同理,当Vi+1小于V时,调整步长,调整步长后,如果Vi+1大于V,且差值在V的10%以内,即视为满足了倍速要求。此处,10%的比值仅作为例举说明,该比值也可以是任意其他的设定比值,本领域技术人员应当知晓,也可以采用本领域中常用的误差算法,例如统计算法等,或者依据具体的用户体验要求来设置这一满足倍速要求的条件,这些常规算法在此处的应用,均视为落入本发明的保护范围之内。
本发明的另一目的,是提供了一种视频倍速播放装置,其特征在于,所述装置包括:视频倍速模块、音视频复用模块、流化模块;
所述视频倍速模块用于分析统计视频文件信息及视频帧分布信息,并依据所述视频文件信息、视频帧分布信息及倍速要求,通过删除视频文件中的部分或全部冗余帧数据,以达到倍速要求;
所述音视频复用模块用于将变速后的视频流与对应倍速的音频文件进行复用,复用成一个音视频一体的流,达到整体的倍速效果;
所述流化模块用于将倍速处理后的视频数据发送给用户。
优选地,所述视频倍速模块进一步包括:
文件分析模块,用于分析统计视频文件信息及视频帧分布信息,并依据所述视频帧分布信息获取冗余帧信息;
变速处理模块,用于获取视频文件信息,所述视频文件信息包括视频总时长、帧率;根据视频文件信息、冗余帧信息及倍速播放要求,计算整个视频文件需要删除的冗余帧数量及删除步长,并删除冗余帧数据。
优选地,所述删除冗余帧数据是实时进行的,是在视频文件播放的同时进行删除。此处申请人需要说明的是,本领域技术人员应当知晓,该删除冗余帧数据的方式,可以是实时进行的,即边播放边删除,也可以是非实时进行的,例如在完成了删除后,在进行码流的传输与播放;详细而言,可以实现冗余帧的删除是在获取到待倍速文件以及用户的倍速请求后,可以边播放边实现删除的,即实现了动态对视频进行调整,以满足用户,尤其是在线用户对视频文件的实时观看及实时调整视频倍速的需求,这一实时是作为本发明的一个优选的实时方式而实现的;也可以是,如果在用户对视频变速的观看要求不高的情况下,在获取到视频文件以及用户的倍速请求后,根据倍速请求及视频文件的相关信息,将视频文件按照倍速要求处理完成后,即对冗余帧删除完成后,再发送给用户,这其中虽然会产生一定的延时,但对于时效要求不高的用户来说,也可以采用这一方式,执行本发明提出的冗余帧删除的倍速处理方式,并且有效降低了带宽压力。
优选地,所述删除部分或全部冗余帧数据,采用以下方式:依据当前播放的帧及删除步长,计算下一待删除的帧位置,如果该帧位置处为冗余帧,则进行删除,否则,依据预设规则计算冗余帧,再执行删除。
优选地,所述视频文件信息还包括:帧类型、帧序号、帧数据的起始位置、数据长度的信息。本领域技术人员也可以采用视频领域中的其他可用的文件信息,删除冗余帧,实现不同的倍速要求,从而实现视频倍速,例如,在用户可以通过每帧的播放时长信息,删除视频的冗余帧数据,实现变速的处理,当然,本领域技术人员应当知晓,此处仅作为例举,本发明的保护范围并不以此为限。同样,本领域技术人员也可以对上述视频文件信息进行任意的组合、筛选使用,这些均应视为落入本发明的保护范围之内。
优选地,在对冗余帧进行统计或者信息提取时,可以依据冗余帧特性,包括以下特性:
冗余帧的特性是不能被其它帧依赖,其删除不影响正常的解码显示,利用这些特性进行冗余帧的筛选,本领域技术人员应当知晓,冗余帧的特性,也可以是用户或开发人员等进行自定义的,本发明所述的冗余帧B帧,这可作为本发明的优选的一种实施方式;当然,也可以包含其他的可作为冗余帧的视频帧,例如,全I帧数据,任意一个I帧都可以做作为冗余帧。本领域技术人员应当知晓,此处仅作为本发明的示例性阐释,本领域技术人员也可以具体设置冗余帧的定义条件,从而使用本发明提出的删除冗余帧的方法,这些更改、设置也应当视为落入本发明的保护范围之内。
优选地,从所述视频帧分布信息中提取出冗余帧信息的具体方式为:
分析所述视频文件,获取NAL信息;
记录NAL类型及NAL的起始位置;
分析记录的NAL类型及起始位置,区分I帧、B帧、P帧及其他NAL信息,并提取冗余帧信息;所述冗余帧信息包括:冗余帧的序号、位置、涉及的NAL序列;
所述计算冗余帧数量的具体方式为:
在分析完NAL信息后,按照帧类型直接计算冗余帧数量。
优选地,所述变速处理模块,进一步包含计算模块,用于实现计算整个视频文件需要删除的冗余帧数量及删除步长,具体为:
根据变速的倍速要求,计算删除冗余帧数据的删除步长的模块;
根据当前位置和已删除的帧的数量,计算出当前的播放倍速的模块;
如果当前的播放倍速不满足请求变速的倍速要求,则增加/减少删除步长,直至满足倍速要求的模块。
进一步优选地,所述增加/减少删除步长的具体方式为:
计算应该删除的冗余帧的数量:X=(L-(L/V))*F;
计算删除冗余帧的删除步长:S=T/X;
计算当前冗余帧删除后的倍速的倍率:Vi=i/(i-Ri)
其中,L是总时长,V是要求倍速的倍率,F是帧率,T是总帧数,L、V、F、T是在文件分析时已经获得的已知变量;X是应该删除的冗余帧的数量,S是删除冗余帧的删除步长;Vi是当前冗余帧删除后的倍速的倍率,i是当前帧的序号;Ri是在序号为i的帧位置之前已删除的冗余帧的总数;
当倍速调整到第i帧时,计算第i+1帧使用当前删除步长的倍率值Vi+1;当Vi+1大于V时,通过增加删除步长改变在i+1帧时的i-Ri值从而使Vi+1等于V或小于V;当Vi+1小于V时,通过减小删除步长改变在i+1帧时的i-Ri值从而使Vi+1等于V或大于V。
进一步优选地,所述步长及增加/减少删除的步长的具体方式也可以为:
计算满足倍速要求需要删除的总时长:X'=(L-(L/V));
计算每秒需要删除的视频时长:S'=L/X';
计算已删除的帧的总时长:RTi=Ri*1000/F
计算当前冗余帧删除后的倍速的倍率:Vi=TIMEi/(TIMEi-RTi)
其中,L是总时长,V是要求倍速的倍率,F是帧率,L、V、F是在文件分析时已经获得的已知变量,X'是需要删除的总时长,S'为每秒需要删除的视频时长,TIMEi为从视频文件起始至当前第i帧的时长,RTi为已删除的帧的总时长;Vi是当前冗余帧删除后的倍速的倍率,i是当前帧的序号;Ri是在序号为i的帧位置之前已删除的冗余帧的总数;
当倍速调整到第i帧时,计算第i+1帧使用当前每秒需要删除的视频时长的倍率值Vi+1;当Vi+1大于V时,通过增加每秒需要删除的视频时长改变在i+1帧时的i-Ri值从而使Vi+1等于V或小于V;当Vi+1小于V时,通过减小每秒需要删除的视频时长改变在i+1帧时的i-Ri值从而使Vi+1等于V或大于V。
优选地,所述不断调整删除步长的具体步骤,同时也是调节Vi以满足倍速要求的含义,具体为:
当到第i帧时,计算第i+1帧使用当前删除步长的倍速值Vi+1;当Vi+1大于V时,通过增加步长改变在i+1帧时的i-Ri值从而使Vi+1等于V或小于V;当Vi+1小于V时,通过减小步长改变在i+1帧时的i-Ri值从而使Vi+1等于V或大于V。此处,当步长改变后,使得Vi+1与V之间的关系满足倍速要求,则可以将此时的步长作为该倍速要求下的最优步长,该满足倍速要求即Vi+1与V相等,或者Vi+1与V之间的差值满足一预定的范围,例如,当改变步长后,如果不能满足Vi+1与V相等,则可令Vi+1与V之间差值的绝对值与V的比值小于10%,视为满足倍速要求等,具体而言,当Vi+1大于V时,增加步长后,如果Vi+1小于V,并且差值在V的10%以内,即视为满足了倍速要求,同理,当Vi+1小于V时,调整步长,调整步长后,如果Vi+1大于V,且差值在V的10%以内,即视为满足了倍速要求。此处,10%的比值仅作为例举说明,该比值也可以是任意其他的设定比值,本领域技术人员应当知晓,也可以采用本领域中常用的误差算法,例如统计算法等,或者依据具体的用户体验要求来设置这一满足倍速要求的条件,这些常规算法在此处的应用,均视为落入本发明的保护范围之内。
本发明的上述技术方案的有益效果如下:
1、实现了在无需视频编解码的情况下,通过删除冗余帧的方式,不损失视频质量的倍速处理,与传统变速相比降低了传输码流,有效降低了整个视频流的数据量;
2、本发明技术方案中,是在服务器端直接按照用户的倍速要求,对视频文件进行冗余帧的删除处理,有效减少了通过网络传输的视频流数据量,提高了视频传输效率,提高了用户的体验;
3、降低带宽的占用,降低了企业的运营成本,提高企业的竞争力。
附图说明
图1为本发明实施例的视频倍速处理流程图;
图2为本发明实施例的视频倍速装置结构图;
图3为本发明又一实施例的视频倍速装置结构。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。本领域技术人员应当知晓,下述具体实施例或具体实施方式,是本发明为进一步解释具体的发明内容而列举的一系列优化的设置方式,而该些设置方式之间均是可以相互结合或者相互关联使用的,除非在本发明明确提出了其中某些或某一具体实施例或实施方式无法与其他的实施例或实施方式进行关联设置或共同使用。同时,下述的具体实施例或实施方式仅作为最优化的设置方式,而不作为限定本发明的保护范围的理解。
在现有技术中,是通过提高播放视频的帧率,例如:1小时的节目以2倍速播放,意味着半小时要看完整个视频,那么码流将是原始倍速的2倍。这种方式不但增加服务端的运营成本,同时对客户的带宽要求也有所提高,视频的观看时常不流畅,大大降低了用户的体验。
本发明根据用户播放的倍速请求,在服务端通过技术手段对视频的冗余数据进行选择性删除部分,不损失视频质量、提高播放的速度,与传统方式相比降低视频的码流,降低了视频服务商成本、改善了用户的体验。
实施例1:
如图1所示,本发明提供了一种视频倍速播放方法,其特征在于无需编解码实现文件变速,所述步骤包括:
步骤1、从要求倍速播放的视频中提取出视频帧分布信息;
步骤2、对所述视频帧分布信息进行处理,生成冗余帧信息;
步骤3、依据所述视频的视频文件信息、所述冗余帧信息及倍速播放要求,从所述视频的冗余帧中删除部分或全部冗余帧数据,以达到所述倍速播放要求。
在一具体的实施方式中,所述步骤2进一步包括,
步骤201、依据冗余帧的特性,从所述视频帧分布信息中提取出冗余帧信息;
步骤202、根据所述冗余帧信息计算冗余帧数量。
优选地,所述步骤3进一步包括,
步骤301、获取视频文件信息,所述视频文件信息包括视频总时长、帧率;
步骤302、根据视频文件信息及倍速播放要求,计算整个视频文件需要删除的冗余帧数量及删除步长;
步骤303、根据删除步长、所述冗余帧信息,删除冗余帧数据;结合所述视频帧分布信息,判断删除冗余帧后视频的播放倍速是否与所述倍速播放要求的倍速相等,如果相等,则按照所述删除步长继续删除,直至视频播放结束;否则不断调整删除步长,使播放倍速达到所述倍速播放要求的倍速。
在一具体的实施方式中,所述步骤303中删除冗余帧数据是实时进行的,是在视频文件播放的同时进行删除。此处申请人需要说明的是,本领域技术人员应当知晓,该删除冗余帧数据的方式,可以是实时进行的,即边播放边删除,也可以是非实时进行的,例如在完成了删除后,在进行码流的传输与播放;详细而言,可以实现冗余帧的删除是在获取到待倍速文件以及用户的倍速请求后,可以边播放边实现删除的,即实现了动态对视频进行调整,以满足用户,尤其是在线用户对视频文件的实时观看及实时调整视频倍速的需求,这一实时是作为本发明的一个优选的实时方式而实现的;也可以是,如果在用户对视频变速的观看要求不高的情况下,在获取到视频文件以及用户的倍速请求后,根据倍速请求及视频文件的相关信息,将视频文件按照倍速要求处理完成后,即对冗余帧删除完成后,再发送给用户,这其中虽然会产生一定的延时,但对于时效要求不高的用户来说,也可以采用这一方式,执行本发明提出的冗余帧删除的倍速处理方式,并且有效降低了带宽压力。
在一具体的实施方式中,所述步骤3中,删除部分或全部冗余帧数据,采用以下方式:依据当前播放的帧及删除步长,计算下一待删除的帧位置,如果该帧位置处为冗余帧,则进行删除,否则,依据预设规则计算冗余帧,再执行删除。具体而言,在接收到用户发送的倍速请求后,根据视频文件信息以及倍速播放的请求倍速,从当前帧紧邻的下一冗余帧开始删除;当然,此处也可以设置一初始的步长范围,例如可以按照符合步长范围要求的距离当前帧最近的冗余帧开始删除,或者可以是这一范围要求中距离当前帧最远的冗余帧开始删除;此外,示例性地,如果用户在视频播放之初或者视频未播放时,即设定了倍速要求,那么,删除冗余帧数据可以从视频文件中的第一个冗余帧开始删除;也可以采用如下的方式,在收到用户的倍速请求后,计算删除步长,并获得冗余帧信息,然后依据当前帧,依据当前计算的步长,删除下一紧邻的冗余帧,如果依据步长计算后,下一紧邻的帧不是冗余帧,则删除与该帧紧邻的下一冗余帧,并继续进行后续步骤,当然,此时删除的冗余帧的确定,也可以采用其他的常规的确定方式,例如,设置一偏移量a,当根据删除步长确定的待删除帧并非冗余帧时,可以首先寻找该帧的(-a,+a)范围内的冗余帧,并优选该冗余帧作为待删除的冗余帧,当该范围内存在多个冗余帧时,可以设定选取规则以确定要删除的冗余帧,例如可以是距离当前帧最近的/最远的冗余帧等等。此处,本领域技术人员也可以采取其他的删除起始冗余帧的设定,从符合删除规则的冗余帧开始,执行冗余帧数据的删除,本发明并不以此为限。
在一具体的实施方式中,所述视频文件信息还包括:帧类型、帧序号、帧数据的起始位置、数据长度的信息。本领域技术人员也可以采用视频领域中的其他可用的文件信息,按照不同的视频倍速请求,删除冗余帧,从而实现视频倍速,例如,通过每帧的播放周期和总时长,计算删除冗余时长,从而达到变速效果,本领域技术人员应当知晓,此处仅作为例举,本发明的保护范围并不以此为限。同样,本领域技术人员也可以对上述视频文件信息进行任意的组合、筛选使用,这些均应视为落入本发明的保护范围之内。
在一具体的实施方式中,所述步骤201中的从所述视频帧分布信息中提取出冗余帧信息的具体步骤为:
分析所述视频文件,获取NAL信息;具体的NAL信息的获取方式,可以参照本领域中的《H.264-AVC-ISO_IEC_14496-10》进行视频文件分析,从而获取NAL信息;当然此处仅是以H.264作为示例性举例,作为其他视频格式,也可以采用类似的本领域中的公知手段,进行相关信息的提取,本发明并不以此作为保护范围的限定;
记录NAL类型及NAL的起始位置;
分析记录的NAL类型及起始位置,区分I帧、B帧、P帧及其他NAL信息,并提取冗余帧信息;所述冗余帧信息包括:冗余帧的序号、位置、涉及的NAL序列;
所述步骤202中的计算冗余帧数量的具体步骤为:
在分析完NAL信息后,按照帧类型直接计算冗余帧数量。
在一具体的实施方式中,所述步骤303中的计算整个视频文件需要删除的冗余帧数量及删除步长的具体步骤为:
根据变速的倍速要求,计算删除冗余帧数据的删除步长;
根据当前位置和已删除的帧的数量,计算出当前的播放倍速;
如果当前的播放倍速不满足请求变速的倍速要求,则增加/减少删除步长,直至满足倍速要求。
在一具体的实施方式中,所述增加/减少删除步长的具体步骤为:
计算应该删除的冗余帧的数量:X=(L-(L/V))*F;
计算删除冗余帧的删除步长:S=T/X;
计算当前冗余帧删除后的倍速的倍率:Vi=i/(i-Ri)
其中,L是总时长,V是要求倍速的倍率,F是帧率,T是总帧数,L、V、F、T是在文件分析时已经获得的已知变量;X是应该删除的冗余帧的数量,S是删除冗余帧的删除步长;Vi是当前冗余帧删除后的倍速的倍率,i是当前帧的序号;Ri是在序号为i的帧位置之前已删除的冗余帧的总数;
当倍速调整到第i帧时,计算第i+1帧使用当前删除步长的倍率值Vi+1;当Vi+1大于V时,通过增加删除步长改变在i+1帧时的i-Ri值从而使Vi+1等于V或小于V;当Vi+1小于V时,通过减小删除步长改变在i+1帧时的i-Ri值从而使Vi+1等于V或大于V。
在一具体的实施方式中,所述步长及增加/减少删除的步长的具体步骤也可以为:计算满足倍速要求需要删除的总时长:X'=(L-(L/V));
计算每秒需要删除的视频时长:S'=L/X';
计算已删除的帧的总时长:RTi=Ri*1000/F
计算当前冗余帧删除后的倍速的倍率:Vi=TIMEi/(TIMEi-RTi)
其中,L是总时长,V是要求倍速的倍率,F是帧率,L、V、F是在文件分析时已经获得的已知变量,X'是需要删除的总时长,S'为每秒需要删除的视频时长,TIMEi为从视频文件起始(即视频文件的起始位置或起始帧)至当前第i帧的时长,RTi为已删除的帧的总时长;Vi是当前冗余帧删除后的倍速的倍率,i是当前帧的序号;Ri是在序号为i的帧位置之前已删除的冗余帧的总数;
当倍速调整到第i帧时,计算第i+1帧使用当前每秒需要删除的视频时长的倍率值Vi+1;当Vi+1大于V时,通过增加每秒需要删除的视频时长改变在i+1帧时的i-Ri值从而使Vi+1等于V或小于V;当Vi+1小于V时,通过减小每秒需要删除的视频时长改变在i+1帧时的i-Ri值从而使Vi+1等于V或大于V。
在一具体的实施方式中,所述步骤303中,不断调整删除步长的具体步骤,同时也是调节Vi以满足倍速要求的含义,具体为:
当到第i帧时,计算第i+1帧使用当前删除步长的倍速值Vi+1;当Vi+1大于V时,通过增加步长改变在i+1帧时的i-Ri值从而使Vi+1等于V或小于V;当Vi+1小于V时,通过减小步长改变在i+1帧时的i-Ri值从而使Vi+1等于V或大于V。此处,当步长改变后,使得Vi+1与V之间的关系满足倍速要求,则可以将此时的步长作为该倍速要求下的最优步长,该满足倍速要求即Vi+1与V相等,或者Vi+1与V之间的差值满足一预定的范围,例如,当改变步长后,如果不能满足Vi+1与V相等,则可令Vi+1与V之间差值的绝对值与V的比值小于10%,视为满足倍速要求等,具体而言,当Vi+1大于V时,增加步长后,如果Vi+1小于V,并且差值在V的10%以内,即视为满足了倍速要求,同理,当Vi+1小于V时,调整步长,调整步长后,如果Vi+1大于V,且差值在V的10%以内,即视为满足了倍速要求。此处,10%的比值仅作为例举说明,该比值也可以是任意其他的设定比值,本领域技术人员应当知晓,也可以采用本领域中常用的误差算法,例如统计算法等,或者依据具体的用户体验要求来设置这一满足倍速要求的条件,这些常规算法在此处的应用,均视为落入本发明的保护范围之内。
在一具体的实施方式中,所述冗余帧信息至少包括冗余帧在视频文件中的位置信息和冗余帧的存储位置信息;在删除冗余帧时,依据视频文件中的冗余帧的位置信息,按照删除步长,确定所要删除的冗余帧,再依据该冗余帧对应的存储位置信息,将该存储位置处的冗余帧数据进行删除,以完成冗余帧数据的删除。当然,本领域技术人员也可以采用其他的冗余帧删除的具体方式,例如使用其他的可以标定冗余帧的标识数据,这些标识性数据可以唯一地标识未删除的每个冗余帧在视频文件中的位置,例如可以是与时间关联的标识信息等,然后依据删除步长,来确定要删除的具体冗余帧,并依据该冗余帧对应的存储位置,将该存储位置处的冗余帧数据进行删除,以完成冗余帧数据的删除。此处仅作为本发明的一优选的实施方式,本发明的技术方案并不以此为限制。
实施例2:
同样如图1所示,在一具体的实施方式中,可替代地,如实施例1中所述的一种视频倍速播放方法,所述步长及增加/减少删除的步长的具体步骤还可以采用如下的具体步骤来实现:
计算满足倍速要求需要删除的总时长:X'=(L-(L/V));
计算每秒需要删除的视频时长:S'=L/X';
计算已删除的帧的总时长:RTi=Ri*1000/F
计算当前冗余帧删除后的倍速的倍率:Vi=TIMEi/(TIMEi-RTi)
其中,L是总时长,V是要求倍速的倍率,F是帧率,L、V、F是在文件分析时已经获得的已知变量,X'是需要删除的总时长,S'为每秒需要删除的视频时长,TIMEi为从视频文件起始(即视频文件的起始位置或起始帧)至当前第i帧的时长,RTi为已删除的帧的总时长;Vi是当前冗余帧删除后的倍速的倍率,i是当前帧的序号;Ri是在序号为i的帧位置之前已删除的冗余帧的总数;
当倍速调整到第i帧时,计算第i+1帧使用当前每秒需要删除的视频时长的倍率值Vi+1;当Vi+1大于V时,通过增加每秒需要删除的视频时长改变在i+1帧时的i-Ri值从而使Vi+1等于V或小于V;当Vi+1小于V时,通过减小每秒需要删除的视频时长改变在i+1帧时的i-Ri值从而使Vi+1等于V或大于V。
在一具体的实施方式中,所述步骤303中,不断调整删除步长的具体步骤,同时也是调节Vi以满足倍速要求的含义,具体为:
当到第i帧时,计算第i+1帧使用当前删除步长的倍速值Vi+1;当Vi+1大于V时,通过增加步长改变在i+1帧时的i-Ri值从而使Vi+1等于V或小于V;当Vi+1小于V时,通过减小步长改变在i+1帧时的i-Ri值从而使Vi+1等于V或大于V。此处,当步长改变后,使得Vi+1与V之间的关系满足倍速要求,则可以将此时的步长作为该倍速要求下的最优步长,该满足倍速要求即Vi+1与V相等,或者Vi+1与V之间的差值满足一预定的范围,例如,当改变步长后,如果不能满足Vi+1与V相等,则可令Vi+1与V之间差值的绝对值与V的比值小于10%,视为满足倍速要求等,具体而言,当Vi+1大于V时,增加步长后,如果Vi+1小于V,并且差值在V的10%以内,即视为满足了倍速要求,同理,当Vi+1小于V时,调整步长,调整步长后,如果Vi+1大于V,且差值在V的10%以内,即视为满足了倍速要求。此处,10%的比值仅作为例举说明,该比值也可以是任意其他的设定比值,本领域技术人员应当知晓,也可以采用本领域中常用的误差算法,例如统计算法等,或者依据具体的用户体验要求来设置这一满足倍速要求的条件,这些常规算法在此处的应用,均视为落入本发明的保护范围之内。
实施例3:
如图2所示,本发明的另一具体实施例提供了一种视频倍速播放装置,其特征在于,所述装置包括:视频倍速模块、音视频复用模块、流化模块;
所述视频倍速模块用于分析统计视频文件信息及视频帧分布信息,并依据所述视频文件信息、视频帧分布信息及倍速要求,通过删除视频文件中的部分或全部冗余帧数据,以达到倍速要求;
所述音视频复用模块用于将变速后的视频流与对应倍速的音频文件进行复用,复用成一个音视频一体的流,达到整体的倍速效果;
所述流化模块用于将倍速处理后的视频数据发送给用户。
在一具体的实施方式中,所述视频倍速模块进一步包括:
文件分析模块,用于分析统计视频文件信息及视频帧分布信息,并依据所述视频帧分布信息获取冗余帧信息;
变速处理模块,用于获取视频文件信息,所述视频文件信息包括视频总时长、帧率;根据视频文件信息、冗余帧信息及倍速播放要求,计算整个视频文件需要删除的冗余帧数量及删除步长,并删除冗余帧数据。
在一具体的实施方式中,所述删除冗余帧数据是实时进行的,是在视频文件播放的同时进行删除。此处申请人需要说明的是,本领域技术人员应当知晓,该删除冗余帧数据的方式,可以是实时进行的,即边播放边删除,也可以是非实时进行的,例如在完成了删除后,在进行码流的传输与播放;详细而言,可以实现冗余帧的删除是在获取到待倍速文件以及用户的倍速请求后,可以边播放边实现删除的,即实现了动态对视频进行调整,以满足用户,尤其是在线用户对视频文件的实时观看及实时调整视频倍速的需求,这一实时是作为本发明的一个优选的实时方式而实现的;也可以是,如果在用户对视频变速的观看要求不高的情况下,在获取到视频文件以及用户的倍速请求后,根据倍速请求及视频文件的相关信息,将视频文件按照倍速要求处理完成后,即对冗余帧删除完成后,再发送给用户,这其中虽然会产生一定的延时,但对于时效要求不高的用户来说,也可以采用这一方式,执行本发明提出的冗余帧删除的倍速处理方式,并且有效降低了带宽压力。
在一具体的实施方式中,所述删除部分或全部冗余帧数据,采用以下方式:依据当前播放的帧及删除步长,计算下一待删除的帧位置,如果该帧位置处为冗余帧,则进行删除,否则,依据预设规则计算冗余帧,再执行删除。具体而言,在接收到用户发送的倍速请求后,根据视频文件信息以及倍速播放的请求倍速,从当前帧紧邻的下一冗余帧开始删除;当然,此处也可以设置一初始的步长范围,例如可以按照符合步长范围要求的距离当前帧最近的冗余帧开始删除,或者可以是这一范围要求中距离当前帧最远的冗余帧开始删除;此外,示例性地,如果用户在视频播放之初或者视频未播放时,即设定了倍速要求,那么,删除冗余帧数据可以从视频文件中的第一个冗余帧开始删除。也可以采用如下的方式,在收到用户的倍速请求后,计算删除步长,并获得冗余帧信息,然后依据当前帧,依据当前计算的步长,删除下一紧邻的冗余帧,如果依据步长计算后,下一紧邻的帧不是冗余帧,则删除与该帧紧邻的下一冗余帧,并继续进行后续步骤,当然,此时删除的冗余帧的确定,也可以采用其他的常规的确定方式,例如,设置一偏移量a,当根据删除步长确定的待删除帧并非冗余帧时,可以首先寻找该帧的(-a,+a)范围内的冗余帧,并优选该冗余帧作为待删除的冗余帧,当该范围内存在多个冗余帧时,可以设定选取规则以确定要删除的冗余帧,例如可以是距离当前帧最近的/最远的冗余帧等等。此处,本领域技术人员也可以采取其他的删除起始冗余帧的设定,从符合删除规则的冗余帧开始,执行冗余帧数据的删除,本发明并不以此为限。
在一具体的实施方式中,所述视频文件信息还包括:帧类型、帧序号、帧数据的起始位置、数据长度的信息。本领域技术人员也可以采用视频领域中的其他可用的文件信息,删除冗余帧,实现不同的倍速要求,从而实现视频倍速,例如,在用户可以通过每帧的播放时长信息,删除视频的冗余帧数据,实现变速的处理,当然,本领域技术人员应当知晓,此处仅作为例举,本发明的保护范围并不以此为限。同样,本领域技术人员也可以对上述视频文件信息进行任意的组合、筛选使用,这些均应视为落入本发明的保护范围之内。
在一具体的实施方式中,在对冗余帧进行统计或者信息提取时,可以依据冗余帧特性,包括以下特性:
冗余帧的特性是不能被其它帧依赖,其删除不影响正常的解码显示,利用这些特性进行冗余帧的筛选,本领域技术人员应当知晓,冗余帧的特性,也可以是用户或开发人员等进行自定义的,本发明所述的冗余帧B帧,这可作为本发明的优选的一种实施方式;当然,也可以包含其他的可作为冗余帧的视频帧,例如,全I帧数据,任意一个I帧都可以做作为冗余帧。本领域技术人员应当知晓,此处仅作为本发明的示例性阐释,本领域技术人员也可以具体设置冗余帧的定义条件,从而使用本发明提出的删除冗余帧的方法,这些更改、设置也应当视为落入本发明的保护范围之内。
在一具体的实施方式中,从所述视频帧分布信息中提取出冗余帧信息的具体方式为:
分析所述视频文件,获取NAL信息;具体的NAL信息的获取方式,可以参照本领域中的《H.264-AVC-ISO_IEC_14496-10》进行视频文件分析,从而获取NAL信息;当然此处仅是以H.264作为示例性举例,作为其他视频格式,也可以采用类似的本领域中的公知手段,进行相关信息的提取,本发明并不以此作为保护范围的限定;
记录NAL类型及NAL的起始位置;
分析记录的NAL类型及起始位置,区分I帧、B帧、P帧及其他NAL信息,并提取冗余帧信息;所述冗余帧信息包括:冗余帧的序号、位置、涉及的NAL序列;
所述计算冗余帧数量的具体方式为:
在分析完NAL信息后,按照帧类型直接计算冗余帧数量。
在一具体的实施方式中,所述变速处理模块,进一步包含计算模块,用于实现计算整个视频文件需要删除的冗余帧数量及删除步长,具体为:
根据变速的倍速要求,计算删除冗余帧数据的删除步长的模块;
根据当前位置和已删除的帧的数量,计算出当前的播放倍速的模块;
如果当前的播放倍速不满足请求变速的倍速要求,则增加/减少删除步长,直至满足倍速要求的模块。
在一具体的实施方式中,所述增加/减少删除步长的具体方式为:
计算应该删除的冗余帧的数量:X=(L-(L/V))*F;
计算删除冗余帧的删除步长:S=T/X;
计算当前冗余帧删除后的倍速的倍率:Vi=i/(i-Ri)
其中,L是总时长,V是要求倍速的倍率,F是帧率,T是总帧数,L、V、F、T是在文件分析时已经获得的已知变量;X是应该删除的冗余帧的数量,S是删除冗余帧的删除步长;Vi是当前冗余帧删除后的倍速的倍率,i是当前帧的序号;Ri是在序号为i的帧位置之前已删除的冗余帧的总数;
当倍速调整到第i帧时,计算第i+1帧使用当前删除步长的倍率值Vi+1;当Vi+1大于V时,通过增加删除步长改变在i+1帧时的i-Ri值从而使Vi+1等于V或小于V;当Vi+1小于V时,通过减小删除步长改变在i+1帧时的i-Ri值从而使Vi+1等于V或大于V。
在另一具体的实施方式中,可替代地,所述步长及增加/减少删除的步长的具体方式也可以为:
计算满足倍速要求需要删除的总时长:X'=(L-(L/V));
计算每秒需要删除的视频时长:S'=L/X';
计算已删除的帧的总时长:RTi=Ri*1000/F
计算当前冗余帧删除后的倍速的倍率:Vi=TIMEi/(TIMEi-RTi)
其中,L是总时长,V是要求倍速的倍率,F是帧率,L、V、F是在文件分析时已经获得的已知变量,X'是需要删除的总时长,S'为每秒需要删除的视频时长,TIMEi为从视频文件起始至当前第i帧的时长,RTi为已删除的帧的总时长;Vi是当前冗余帧删除后的倍速的倍率,i是当前帧的序号;Ri是在序号为i的帧位置之前已删除的冗余帧的总数;
当倍速调整到第i帧时,计算第i+1帧使用当前每秒需要删除的视频时长的倍率值Vi+1;当Vi+1大于V时,通过增加每秒需要删除的视频时长改变在i+1帧时的i-Ri值从而使Vi+1等于V或小于V;当Vi+1小于V时,通过减小每秒需要删除的视频时长改变在i+1帧时的i-Ri值从而使Vi+1等于V或大于V。
在一具体的实施方式中,所述不断调整删除步长的具体步骤,同时也是调节Vi以满足倍速要求的含义,具体为:
当到第i帧时,计算第i+1帧使用当前删除步长的倍速值Vi+1;当Vi+1大于V时,通过增加步长改变在i+1帧时的i-Ri值从而使Vi+1等于V或小于V;当Vi+1小于V时,通过减小步长改变在i+1帧时的i-Ri值从而使Vi+1等于V或大于V。此处,当步长改变后,使得Vi+1与V之间的关系满足倍速要求,则可以将此时的步长作为该倍速要求下的最优步长,该满足倍速要求即Vi+1与V相等,或者Vi+1与V之间的差值满足一预定的范围,例如,当改变步长后,如果不能满足Vi+1与V相等,则可令Vi+1与V之间差值的绝对值与V的比值小于10%,视为满足倍速要求等,具体而言,当Vi+1大于V时,增加步长后,如果Vi+1小于V,并且差值在V的10%以内,即视为满足了倍速要求,同理,当Vi+1小于V时,调整步长,调整步长后,如果Vi+1大于V,且差值在V的10%以内,即视为满足了倍速要求。此处,10%的比值仅作为例举说明,该比值也可以是任意其他的设定比值,本领域技术人员应当知晓,也可以采用本领域中常用的误差算法,例如统计算法等,或者依据具体的用户体验要求来设置这一满足倍速要求的条件,这些常规算法在此处的应用,均视为落入本发明的保护范围之内。
当然,上述步长及增加/减少删除的步长的具体方法,仅作为本发明优选的两种计算方法,本领域技术人员也可以采用常规的其他数学方法来设定这一步长,或者不通过计算,而直接依据倍速要求,设定对应不同倍速的步长,来直接进行视频的倍速处理,该步长可以是以帧为单位的,也可以是以时长为单位的。此处仅作为优选的例举,采用的其他常规的数学替代算法均视为落入本发明的保护范围之内。
在一具体的实施方式中,所述冗余帧信息至少包括冗余帧在视频文件中的位置信息和冗余帧的存储位置信息;在删除冗余帧时,依据视频文件中的冗余帧的位置信息,按照删除步长,确定所要删除的冗余帧,再依据该冗余帧对应的存储位置信息,将该存储位置处的冗余帧数据进行删除,以完成冗余帧数据的删除。当然,本领域技术人员也可以采用其他的冗余帧删除的具体方式,例如使用其他的可以标定冗余帧的标识数据,这些标识性数据可以唯一地标识未删除的每个冗余帧在视频文件中的位置,例如可以是与时间关联的标识信息等,然后依据删除步长,来确定要删除的具体冗余帧,并依据该冗余帧对应的存储位置,将该存储位置处的冗余帧数据进行删除,以完成冗余帧数据的删除。此处仅作为本发明的一优选的实施方式,本发明的技术方案并不以此为限制。在本发明所提出的装置中,可以设置对应的模块来实现上述功能。
在又一具体的实施方式中,如图3所示,所述的视频倍速播放装置还可以包括:存储模块,用于将倍速处理后的视频数据写入到存储中;
点播模块,当用户进行点播时,将已经变速后的对应文件以流的形式发送给请求者。
在一般的倍速要求下,倍速处理速度往往要快于倍速后视频的播放速度,因此,在这一实施方式中,设置了该存储模块及点播模块,这样,在用户提供了倍速要求后,在用户观看已经处理完的音视频流数据时,后续处理完成的音视频流数据将存储在存储模块中,并陆续发送给用户进行后续的观看;当然,也可以是将提供的几种常用的倍速,提前对视频文件进行倍速处理,当处理完成后,与音频文件进行合成,以形成按照某一预定的倍速处理完成的视频文件,存储在存储设备中,当用户点播按照相应倍速播放时,直接将已经处理完毕的视频文件发送给用户使用。当然,本领域技术人员也可以在本发明提出的装置结构基础上,加入其它的常规模块或装置,例如电源装置、信号源装置等等,这些常规结构的加入,同样落入本发明的保护范围之内。
Claims (12)
1.一种视频倍速播放方法,其特征在于,所述方法的步骤包括:
步骤1、从要求倍速播放的视频中提取出视频帧分布信息;
步骤2、对所述视频帧分布信息进行处理,生成冗余帧信息,并计算冗余帧数量;
步骤3、获取视频文件信息;根据视频文件信息及倍速播放要求,计算整个视频文件需要删除的冗余帧数量及删除步长;根据删除步长、所述冗余帧信息,从所述视频的冗余帧中删除部分或全部冗余帧数据,结合所述视频帧分布信息,判断删除冗余帧后视频的播放倍速是否与所述倍速播放要求的倍速相等,如果相等,则按照所述删除步长继续删除,直至视频播放结束;否则不断调整删除步长,使播放倍速达到所述倍速播放要求的倍速。
2.根据权利要求1所述的方法,其特征在于,所述步骤2包括:
步骤201、依据冗余帧的特性,从所述视频帧分布信息中提取出冗余帧信息;
步骤202、根据所述冗余帧信息计算冗余帧数量。
3.根据权利要求1所述的方法,其特征在于,所述步骤3进一步包括:
所述视频文件信息包括视频总时长、帧率。
4.根据权利要求3所述的方法,其特征在于,所述视频文件信息还包括:帧类型、帧序号、帧数据的起始位置、数据长度的信息。
5.根据权利要求2所述的方法,其特征在于,所述步骤201中的冗余帧的特性为:
不能被其他帧解码所依赖,但可以依赖其他帧解码。
6.根据权利要求2或5所述的方法,其特征在于:所述步骤201中的从所述视频帧分布信息中提取出冗余帧信息的具体步骤为:
分析所述视频文件,获取NAL信息;
记录NAL类型及NAL的起始位置;
分析记录的NAL类型及起始位置,区分I帧、B帧、P帧及其他NAL信息,并提取冗余帧信息;所述冗余帧信息包括:冗余帧的序号、位置、涉及的NAL序列;
所述步骤202中的计算冗余帧数量的具体步骤为:
在分析完NAL信息后,按照帧类型直接计算冗余帧数量。
7.根据权利要求3所述的方法,其特征在于:所述计算整个视频文件需要删除的冗余帧数量及删除步长的具体步骤为:
根据变速的倍速要求,计算删除冗余帧数据的删除步长;
根据当前位置和已删除的帧的数量,计算出当前的播放倍速;
如果当前的播放倍速不满足请求变速的倍速要求,则增加/减少删除步长,直至满足倍速要求。
8.根据权利要求7所述的方法,其特征在于,所述增加/减少删除步长的具体步骤为:
计算应该删除的冗余帧的数量:X=(L-(L/V))*F;
计算删除冗余帧的删除步长:S=T/X;
计算当前冗余帧删除后的倍速的倍率:Vi=i/(i-Ri)
其中,L是总时长,V是要求倍速的倍率,F是帧率,T是总帧数,L、V、F、T是在文件分析时已经获得的已知变量;X是应该删除的冗余帧的数量,S是删除冗余帧的删除步长;Vi是当前冗余帧删除后的倍速的倍率,i是当前帧的序号;Ri是在序号为i的帧位置之前已删除的冗余帧的总数;
当倍速调整到第i帧时,计算第i+1帧使用当前删除步长的倍率值Vi+1;当Vi+1大于V时,通过增加删除步长改变在i+1帧时的i-Ri值从而使Vi+1等于V或小于V;当Vi+1小于V时,通过减小删除步长改变在i+1帧时的i-Ri值从而使Vi+1等于V或大于V。
9.根据权利要求7所述的方法,其特征在于,所述增加/减少删除步长的具体步骤为:
计算满足倍速要求需要删除的总时长:X'=(L-(L/V));
计算每秒需要删除的视频时长:S'=L/X';
计算已删除的帧的总时长:RTi=Ri*1000/F
计算当前冗余帧删除后的倍速的倍率:Vi=TIMEi/(TIMEi-RTi)
其中,L是总时长,V是要求倍速的倍率,F是帧率,X'是需要删除的总时长,S'为每秒需要删除的视频时长,TIMEi为从视频文件起始至当前第i帧的时长,RTi为已删除的帧的总时长;Vi是当前冗余帧删除后的倍速的倍率,i是当前帧的序号;Ri是在序号为i的帧位置之前已删除的冗余帧的总数;
当倍速调整到第i帧时,计算第i+1帧使用当前每秒需要删除的视频时长的倍率值Vi+1;当Vi+1大于V时,通过增加每秒需要删除的视频时长改变在i+1帧时的i-Ri值从而使Vi+1等于V或小于V;当Vi+1小于V时,通过减小每秒需要删除的视频时长改变在i+1帧时的i-Ri值从而使Vi+1等于V或大于V。
10.一种视频倍速播放装置,其特征在于,所述装置包括:视频倍速模块、音视频复用模块、流化模块;
所述视频倍速模块用于分析统计视频文件信息及视频帧分布信息,并依据所述视频文件信息、视频帧分布信息及倍速要求,通过删除视频文件中的部分或全部冗余帧数据,以达到倍速要求;
所述视频倍速模块进一步包含变速处理模块,用于获取视频文件信息;根据视频文件信息、冗余帧信息及倍速播放要求,通过一计算模块,计算整个视频文件需要删除的冗余帧数量及删除步长,具体为:
根据倍速要求,计算删除冗余帧数据的删除步长;根据当前位置和已删除的冗余帧,计算出当前的倍速;如果当前的倍速不满足要求的倍速,则增加/减少删除步长,直至满足倍速要求;
所述音视频复用模块用于将变速后的视频流与对应倍速的音频文件进行复用,复用成一个音视频一体的流,达到整体的倍速效果;
所述流化模块用于将倍速处理后的视频数据发送给用户。
11.根据权利要求10所述的装置,其特征在于,所述视频倍速模块进一步包括:
文件分析模块,用于分析统计视频文件信息及视频帧分布信息,并依据所述视频帧分布信息获取冗余帧信息;
所述视频文件信息包括视频总时长、帧率。
12.根据权利要求10所述的装置,其特征在于,所述视频文件信息还包括帧类型、帧序号、帧数据的起始位置、数据长度的信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510251629.8A CN104869430B (zh) | 2015-05-18 | 2015-05-18 | 一种视频倍速播放方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510251629.8A CN104869430B (zh) | 2015-05-18 | 2015-05-18 | 一种视频倍速播放方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104869430A CN104869430A (zh) | 2015-08-26 |
CN104869430B true CN104869430B (zh) | 2017-12-05 |
Family
ID=53914869
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510251629.8A Active CN104869430B (zh) | 2015-05-18 | 2015-05-18 | 一种视频倍速播放方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104869430B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107493482B (zh) * | 2016-06-12 | 2020-02-04 | 杭州海康威视数字技术股份有限公司 | 一种视频回放方法及装置 |
CN108900799A (zh) * | 2018-06-20 | 2018-11-27 | 北京酷米科技有限公司 | 一种基于实时视频的调度系统及方法 |
CN112154670A (zh) * | 2019-08-13 | 2020-12-29 | 深圳市大疆创新科技有限公司 | 视频的处理方法、装置和存储介质 |
CN112422804B (zh) * | 2019-08-20 | 2022-06-14 | 华为技术有限公司 | 视频特效生成方法及终端 |
CN111327966B (zh) * | 2020-03-27 | 2022-03-08 | 深圳市酷开网络科技股份有限公司 | 视频倍速播放方法、系统及存储介质 |
CN111327965A (zh) * | 2020-03-27 | 2020-06-23 | 深圳市酷开网络科技有限公司 | 视频分片倍速播放方法、系统及存储介质 |
CN111327967B (zh) * | 2020-03-27 | 2022-02-08 | 深圳市酷开网络科技股份有限公司 | 视频智能倍速播放方法、系统及存储介质 |
CN114257878A (zh) * | 2020-09-21 | 2022-03-29 | 深圳富桂精密工业有限公司 | 倍速播放视频的方法、计算机装置及存储介质 |
CN112437345B (zh) * | 2020-11-20 | 2023-03-14 | 北京字跳网络技术有限公司 | 视频倍速播放方法、装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1161784C (zh) * | 1997-04-24 | 2004-08-11 | 皇家菲利浦电子有限公司 | 记录和重放电视图象的方法及设备 |
CN101018323A (zh) * | 2007-02-08 | 2007-08-15 | 华为技术有限公司 | 一种快进快退播放视频数据的方法和流媒体服务器 |
CN101075949A (zh) * | 2006-05-15 | 2007-11-21 | 中兴通讯股份有限公司 | 一种改变流媒体文件播放速度的方法 |
US7739715B2 (en) * | 2003-06-24 | 2010-06-15 | Microsoft Corporation | Variable play speed control for media streams |
CN101841692A (zh) * | 2010-04-23 | 2010-09-22 | 深圳市茁壮网络股份有限公司 | 视频流快进快退的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7596300B2 (en) * | 2005-12-07 | 2009-09-29 | Sony Corporation | System and method for smooth fast playback of video |
-
2015
- 2015-05-18 CN CN201510251629.8A patent/CN104869430B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1161784C (zh) * | 1997-04-24 | 2004-08-11 | 皇家菲利浦电子有限公司 | 记录和重放电视图象的方法及设备 |
US7739715B2 (en) * | 2003-06-24 | 2010-06-15 | Microsoft Corporation | Variable play speed control for media streams |
CN101075949A (zh) * | 2006-05-15 | 2007-11-21 | 中兴通讯股份有限公司 | 一种改变流媒体文件播放速度的方法 |
CN101018323A (zh) * | 2007-02-08 | 2007-08-15 | 华为技术有限公司 | 一种快进快退播放视频数据的方法和流媒体服务器 |
CN101841692A (zh) * | 2010-04-23 | 2010-09-22 | 深圳市茁壮网络股份有限公司 | 视频流快进快退的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104869430A (zh) | 2015-08-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104869430B (zh) | 一种视频倍速播放方法及装置 | |
CN100568972C (zh) | 视频品质评估设备和方法 | |
CN107888579B (zh) | 一种非干扰式的移动视频用户体验质量指标建模方法 | |
CN101959063B (zh) | 媒体内容传送的网络传输效应的评估系统和方法 | |
RU2020114319A (ru) | Системы и способы для рендеринга и выдачи подсказок кодеру на основании оценки предварительно кодированной нагрузки | |
CN103338393A (zh) | 一种hspa系统下用户体验驱动的视频码率选择方法 | |
CN110177298B (zh) | 一种基于语音的视频倍速播放方法及系统 | |
US11689433B2 (en) | Method and scoring node for estimating a user's quality of experience for a delivered service | |
CN104105012B (zh) | 流媒体的片段准备方法和装置 | |
CN109451303A (zh) | 一种针对VR视频中用户体验质量QoE的建模方法 | |
CN106791850A (zh) | 视频编码方法及装置 | |
CN107133892A (zh) | 一种网络钢琴课的实时评价方法及系统 | |
CN104320719A (zh) | 基于音频水印的电视节目互动参与方法及系统 | |
CN105872589A (zh) | 一种多路视频播放方法、服务器和终端 | |
CN103475911A (zh) | 基于视频特征的电视信息提供方法及系统 | |
CN105872537A (zh) | 视频播放方法、装置及系统 | |
CN112104863B (zh) | 视频质量评测模型训练、视频质量评测的方法和相关装置 | |
CN111354367B (zh) | 一种语音处理方法、装置及计算机存储介质 | |
CN111353439A (zh) | 一种教学行为的分析方法、装置、系统及设备 | |
CN107205150A (zh) | 编码方法及装置 | |
CN105871802A (zh) | 一种监控流媒体文件传输的方法、装置及系统 | |
CN109862375A (zh) | 云录播系统 | |
CN116233498B (zh) | 一种基于ai人工智能的影音视频播放控制方法 | |
CN107888905A (zh) | 一种基于GoP显著性加权的视频质量评价方法 | |
EP1353530A1 (de) | Individuelles Hörtraining für Hörgeräteträger |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |