CN111436004B - 视频播放方法、装置和设备、计算机可读存储介质 - Google Patents
视频播放方法、装置和设备、计算机可读存储介质 Download PDFInfo
- Publication number
- CN111436004B CN111436004B CN201910027118.6A CN201910027118A CN111436004B CN 111436004 B CN111436004 B CN 111436004B CN 201910027118 A CN201910027118 A CN 201910027118A CN 111436004 B CN111436004 B CN 111436004B
- Authority
- CN
- China
- Prior art keywords
- frame
- intra
- current
- video
- time value
- 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 43
- 238000003860 storage Methods 0.000 title claims abstract description 26
- 230000000977 initiatory effect Effects 0.000 claims abstract description 24
- 230000004044 response Effects 0.000 claims description 46
- 230000002123 temporal effect Effects 0.000 claims description 33
- 238000012545 processing Methods 0.000 description 11
- 238000011084 recovery Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 238000003825 pressing Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Images
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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/4402—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
-
- 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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/432—Content retrieval operation from a local storage medium, e.g. hard-disk
- H04N21/4325—Content retrieval operation from a local storage medium, e.g. hard-disk by playing back content from the storage medium
-
- 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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
- H04N21/4334—Recording operations
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明公开了一种视频播放方法,包括:当正在播放所述视频的应用程序从前台被切换到后台时,发起记录所述视频的当前播放位置;当所述应用程序从后台被切换回前台时,取回所记录的当前播放位置并且在所述视频中获取最接近所述当前播放位置且在所述当前播放位置之前的帧内编码帧;发起从所述最接近的帧内编码帧开始解码所述视频;并且当解码到达所述当前播放位置时,发起从所述当前播放位置恢复播放所述视频。还公开了一种视频播放设备和计算机可读存储介质。
Description
技术领域
本发明涉及视频内容再现,具体来说涉及一种视频播放方法、视频播放装置、视频播放设备、以及计算机可读存储介质。
背景技术
在播放视频的过程中,当视频应用被切入到后台(例如,由于用户按下home键),并且然后恢复到前台以继续播放视频时,可能会出现短暂的黑屏。直到视频中的下一个关键帧到来后,才能出现正常的画面,而此时的画面与用户点击home键时的画面通常是不连续的。这导致不连续的观看体验。
发明内容
提供一种可以缓解、减轻或消除上述问题的解决方案将是有利的。
根据本发明的一方面,提供了一种视频播放方法,包括:当正在播放所述视频的应用程序从前台被切换到后台时,发起记录所述视频的当前播放位置;当所述应用程序从后台被切换回前台时,取回所记录的当前播放位置并且在所述视频中获取最接近所述当前播放位置且在所述当前播放位置之前的帧内编码帧;发起从所述最接近的帧内编码帧开始解码所述视频;并且当解码到达所述当前播放位置时,发起从所述当前播放位置恢复播放所述视频。
在一些实施例中,发起记录所述视频的当前播放位置包括:将所述当前播放位置保存到全局内存中。取回所记录的当前播放位置包括:从所述全局内存中读取所述当前播放位置。
在一些实施例中,所述视频包括视频载荷数据、指示该视频载荷数据中的各视频帧的帧类型的标识元数据、以及指示所述各视频帧的显示时间值的时间元数据。获取所述最接近的帧内编码帧包括:基于所述标识元数据和所述时间元数据搜寻所述最接近的帧内编码帧。
在一些实施例中,所述标识元数据还包括索引信息,其指示所述视频载荷数据中的各帧内编码帧相对于所述视频的起始位置的相应偏移量。搜寻所述最接近的帧内编码帧包括:基于所述索引信息顺序地解析所述各帧内编码帧的所述时间元数据,其中:从所述时间元数据导出当前帧内编码帧的显示时间值;比较所述显示时间值与所述当前播放位置的时间值;响应于所述显示时间值小于所述当前播放位置的时间值,继续针对下一帧内编码帧进行所述时间元数据的所述解析;响应于所述显示时间值大于所述当前播放位置的时间值,确定前一帧内编码帧为所述最接近的帧内编码帧;并且响应于所述显示时间值等于所述当前播放位置的时间值,确定该当前帧内编码帧为所述最接近的帧内编码帧。
在一些实施例中,所述方法还包括:响应于所述各帧内编码帧中的最后一个帧内编码帧的显示时间值小于所述当前播放位置的时间值,确定该最后一个帧内编码帧为所述最接近的帧内编码帧。
在一些实施例中,所述视频包括多个分片,每个分片包括时间上分隔开的多个帧内编码帧,所述多个帧内编码帧中的每一个跟随有相应的非帧内编码帧。所述时间元数据还包括指示所述多个分片的相应持续时间的时间信息。搜寻所述最接近的帧内编码帧包括:根据所述当前播放位置和所述时间信息确定所述当前播放位置所在的、所述多个分片中的一个分片;顺序地解析所述当前播放位置所在的该分片内的各帧内编码帧和非帧内编码帧的所述标识元数据,其中:从所述标识元数据导出当前帧的帧类型;响应于所述当前帧为非帧内编码帧,继续针对下一帧进行所述标识元数据的所述解析;响应于所述当前帧为帧内编码帧,从所述当前帧的所述时间元数据导出所述当前帧的显示时间值;比较所述显示时间值与所述当前播放位置的时间值;响应于所述显示时间值小于所述当前播放位置的时间值,继续针对下一帧进行所述标识元数据的所述解析;响应于所述显示时间值大于所述当前播放位置的时间值,确定前一帧内编码帧为所述最接近的帧内编码帧;并且响应于所述显示时间值等于所述当前播放位置的时间值,确定该当前帧为所述最接近的帧内编码帧。
在一些实施例中,搜寻所述最接近的帧内编码帧还包括:响应于所述当前帧为非帧内编码帧,在继续针对下一帧进行所述标识元数据的所述解析之前,从所述当前帧的所述时间元数据导出所述当前帧的显示时间值;并且响应于所述当前帧的显示时间值等于所述当前播放位置所在的该分片的结束时间,确定所述各帧内编码帧中的最后一个帧内编码帧为所述最接近的帧内编码帧。
在一些实施例中,发起解码所述视频包括:将所获取的最接近的帧内编码帧和跟随该最接近的帧内编码帧的多个视频帧传递给解码器组件;并且每次当前帧被解码,则判断该解码的当前帧的显示时间值是否等于所述当前播放位置的时间值,其中:响应于所述显示时间值不等于所述当前播放位置的时间值,丢弃所述解码的当前帧并继续针对下一解码帧进行所述判断,并且响应于所述显示时间值等于所述当前播放位置的时间值,确定解码已到达所述当前播放位置。
在一些实施例中,所述应用程序运行在iOS平台中,所述iOS平台中开放了用于访问底层硬件解码框架的应用编程接口。发起解码所述视频包括:经由所述应用编程接口调用所述底层硬件解码框架以执行解码。
在一些实施例中,发起解码所述视频包括:调用软件解码器以执行解码。
根据本发明的另一方面,提供了一种视频播放装置,包括:用于当正在播放所述视频的应用程序从前台被切换到后台时,发起记录所述视频的当前播放位置的装置;用于当所述应用程序从后台被切换回前台时,取回所记录的当前播放位置并且在所述视频中获取最接近所述当前播放位置且在所述当前播放位置之前的帧内编码帧的装置;用于发起从所述最接近的帧内编码帧开始解码所述视频的装置;以及用于当解码到达所述当前播放位置时,发起从所述当前播放位置恢复播放所述视频的装置。
根据本发明的又另一方面,提供了一种视频播放设备,包括:播放位置记录模块,被配置成当正在播放所述视频的应用程序从前台被切换到后台时,记录所述视频的当前播放位置;帧内编码帧获取模块,被配置成当所述应用程序从后台被切换回前台时,取回所记录的当前播放位置并且在所述视频中获取最接近所述当前播放位置且在所述当前播放位置之前的帧内编码帧;以及播放恢复模块,被配置成从所述最接近的帧内编码帧开始解码所述视频,并且当解码到达所述当前播放位置时,促使所述应用程序从所述当前播放位置恢复播放所述视频。
在一些实施例中,所述播放位置记录模块被配置成将所述当前播放位置保存到全局内存中以记录所述视频的当前播放位置。所述帧内编码帧获取模块被配置成从所述全局内存中读取所述当前播放位置以取回所记录的当前播放位置。
在一些实施例中,所述视频包括视频载荷数据、指示该视频载荷数据中的各视频帧的帧类型的标识元数据、以及指示所述各视频帧的显示时间值的时间元数据。所述帧内编码帧获取模块被配置成基于所述标识元数据和所述时间元数据搜寻所述最接近的帧内编码帧。
在一些实施例中,所述标识元数据还包括索引信息,其指示所述视频载荷数据中的各帧内编码帧相对于所述视频的起始位置的相应偏移量。所述帧内编码帧获取模块被配置成:基于所述索引信息顺序地解析所述各帧内编码帧的所述时间元数据,其中:从所述时间元数据导出当前帧内编码帧的显示时间值;比较所述显示时间值与所述当前播放位置的时间值;响应于所述显示时间值小于所述当前播放位置的时间值,继续针对下一帧内编码帧进行所述时间元数据的所述解析;响应于所述显示时间值大于所述当前播放位置的时间值,确定前一帧内编码帧为所述最接近的帧内编码帧;并且响应于所述显示时间值等于所述当前播放位置的时间值,确定该当前帧内编码帧为所述最接近的帧内编码帧。
在一些实施例中,所述帧内编码帧获取模块还被配置成:响应于所述各帧内编码帧中的最后一个帧内编码帧的显示时间值小于所述当前播放位置的时间值,确定该最后一个帧内编码帧为所述最接近的帧内编码帧。
在一些实施例中,所述视频包括多个分片,每个分片包括时间上分隔开的多个帧内编码帧,所述多个帧内编码帧中的每一个跟随有相应的非帧内编码帧。所述时间元数据还包括指示所述多个分片的相应持续时间的时间信息。所述帧内编码帧获取模块被配置成:根据所述当前播放位置和所述时间信息确定所述当前播放位置所在的、所述多个分片中的一个分片;顺序地解析所述当前播放位置所在的该分片内的各帧内编码帧和非帧内编码帧的所述标识元数据,其中:从所述标识元数据导出当前帧的帧类型;响应于所述当前帧为非帧内编码帧,继续针对下一帧进行所述标识元数据的所述解析;响应于所述当前帧为帧内编码帧,从所述当前帧的所述时间元数据导出所述当前帧的显示时间值;比较所述显示时间值与所述当前播放位置的时间值;响应于所述显示时间值小于所述当前播放位置的时间值,继续针对下一帧进行所述标识元数据的所述解析;响应于所述显示时间值大于所述当前播放位置的时间值,确定前一帧内编码帧为所述最接近的帧内编码帧;并且响应于所述显示时间值等于所述当前播放位置的时间值,确定该当前帧为所述最接近的帧内编码帧。
在一些实施例中,所述帧内编码帧获取模块被配置成:响应于所述当前帧的显示时间值等于所述当前播放位置所在的该分片的结束时间,确定所述各帧内编码帧中的最后一个帧内编码帧为所述最接近的帧内编码帧。
在一些实施例中,所述播放恢复模块被配置成:将所获取的最接近的帧内编码帧和跟随该最接近的帧内编码帧的多个视频帧传递给解码器组件;并且每次当前帧被解码,则判断该解码的当前帧的显示时间值是否等于所述当前播放位置的时间值,其中:响应于所述显示时间值不等于所述当前播放位置的时间值,丢弃所述解码的当前帧并继续针对下一解码帧进行所述判断,并且响应于所述显示时间值等于所述当前播放位置的时间值,确定解码已到达所述当前播放位置。
在一些实施例中,所述应用程序运行在iOS平台中,所述iOS平台中开放了用于访问底层硬件解码框架的应用编程接口。所述播放恢复模块被配置成经由所述应用编程接口调用所述底层硬件解码框架以执行解码。
在一些实施例中,所述播放恢复模块被配置成调用软件解码器以执行解码。
根据本发明的再另一方面,提供了一种视频播放设备,包括处理器和存储器,所述存储器被配置成存储计算机指令,所述计算机指令当在所述处理器上执行时使所述处理器执行如上所述的方法。
根据本发明的再另一方面,提供了一种计算机可读存储介质,被配置成存储计算机指令,所述计算机指令当在处理器上执行时使所述处理器执行如上所述的方法。
根据在下文中所描述的实施例,本发明的这些和其它方面将是清楚明白的,并且将参考在下文中所描述的实施例而被阐明。
附图说明
在下面结合附图对于示例性实施例的描述中,本发明的更多细节、特征和优点被公开,在附图中:
图1示出了根据本发明实施例的视频播放方法的流程图;
图2更详细地示出了图1的方法中获取最接近的帧内编码帧的示例流程;
图3示出了相关技术中在分片内搜寻帧内编码帧的示意性图示;
图4更详细地示出了图1的方法中获取最接近的帧内编码帧的另一示例流程;
图5示出了图4的操作的示意性图示;
图6更详细地示出了图1的方法中发起解码和恢复播放的示意性和示例性图示;
图7示出了根据本发明实施例的视频播放设备的示意性框图;并且
图8一般地图示了一个示例***,其包括代表可以实现本文描述的各种技术的一个或多个***和/或设备的示例计算设备。
具体实施方式
本申请的发明人认识到,视频应用在前后台切换过程中遭受的视频播放不连续问题是由于视频解码组件中缓存的数据被清空所致。例如,在iOS平台中,使用可以直接访问硬件解码器的底层硬件解码框架(“VideoToolBox”)来进行硬件解码,并且当用户点击home键或者以其他方式将视频应用切入到后台时,VideoToolBox中缓存的数据会被回收。然后,当视频应用恢复到前台时,解码下一非关键帧所依赖的之前的关键帧已经被清空,使得无法正常解码该非关键帧,从而导致黑屏。直到下一个关键帧到来时,才能得到正常的解码画面,而此时的画面与播放被中断之前的画面是不连续的。其他平台(例如,Android或Windows)可能存在同样的问题。
图1示出了根据本发明实施例的视频播放方法100的流程图。
在步骤110处,当正在播放视频的应用程序(下文也称为“视频app”)从前台被切换到后台(例如,由于用户按下home键、视频播放窗口被最小化,等等)时,发起记录所述视频的当前播放位置(下文也称为“CurrentPos”)。
在一些实施例中,这包括将CurrentPos保存到全局内存中。这样,关于视频的当前播放位置的信息不会被清空,并且可以稍后被用于视频的恢复播放。其他实施例是可能的。具体地,CurrentPos可以是例如相对于视频的起始时间(例如,0分0秒)的相对时间量,并且可以具有例如毫秒或微妙的精度。
如本文使用的术语“视频”意图包括采用各种编码格式和/或封装格式的媒体文件。视频可以与播放该视频的视频app一起位于本地,或者从远程位置(例如,经由有线或无线网络)实时地接收。视频app在此处包括各种各样的具有视频播放功能的应用程序,例如视频播放器或内嵌有视频播放器的其他app,诸如腾讯视频、微信、微博、其变体(例如,手机版、网页版、电脑版),等等。
在步骤120处,当视频app从后台被切换回前台时,取回所记录的CurrentPos,并且在所述视频中获取最接近CurrentPos且在CurrentPos之前的帧内编码帧。
在一些实施例中,取回所记录的CurrentPos包括从所述全局内存中读取CurrentPos。然后,利用所取回的CurrentPos来在视频中定位适当的帧内编码帧。帧内编码帧(也称为“I帧”)包含重建一幅完整画面的全部信息,而非帧内编码帧(例如,P帧和B帧)必须直接或间接依赖于I帧进行解码。为了缩短处理时延以便尽快恢复播放,合乎期望的是获取最接近CurrentPos且时间上在CurrentPos之前的I帧。这可以利用I帧的搜寻(seek)操作来实现。
典型地,无论其编码格式和封装格式,视频均包括视频载荷数据和描述该视频载荷数据的元数据。元数据包括例如指示该视频载荷数据中的各视频帧的帧类型的标识元数据(例如,头部中的某一字段)以及指示所述各视频帧的显示时间值的时间元数据(例如,头部中的显示时间戳(pts))。因此,在步骤120中,可以利用所述标识元数据来识别某一帧是否为I帧,并且利用所述时间元数据来搜寻最接近CurrentPos且时间上在CurrentPos之前的I帧(简称为“最接近的I帧”)。
下面参考图2、3、4和5描述若干典型格式的视频的相应seek操作。
对于MP4格式或类似格式的视频,所述标识元数据还包括索引信息,例如I帧索引表,其指示所述视频载荷数据中的各I帧相对于所述视频的起始位置的相应偏移量。因此,针对这种类型的视频,可以通过解析所述索引信息来顺序地定位各个I帧,并且通过解析各I帧的时间元数据来确定所要求的I帧。在MP4格式的情况下,I帧索引表和显示时间信息均记录在HEADER BOX中。在进行seek操作时,如果HEADER BOX在本地可用,则可以通过直接读取HEADER BOX来得到I帧索引表和显示时间信息,并且如果HEADER BOX在本地不可用,则可以通过向远程视频源发送对于HEADER BOX的请求来得到I帧索引表和显示时间信息。
图2更详细地示出了适用于这一类视频格式的、获取最接近的I帧的示例流程120A。参考图2,在步骤121处,从当前I帧(例如,视频中的第1个I帧)的所述时间元数据导出当前I帧的显示时间值。在步骤122处,比较所述显示时间值与CurrentPos的时间值。如果所述显示时间值小于CurrentPos的时间值(步骤123),则继续针对下一个I帧进行所述时间元数据的所述解析(步骤124),并且因此流程返回到步骤121。相反,如果所述显示时间值不小于CurrentPos的时间值(步骤123),则在步骤125处判断当前I帧的显示时间值是否大于CurrentPos的时间值。如果所述显示时间值大于CurrentPos的时间值(步骤125),则表明当前I帧的显示时间已经超过了CurrentPos,并且确定前一个I帧为所要求的最接近的I帧(步骤126)。如果所述显示时间值不大于CurrentPos的时间值(步骤125),也即,所述显示时间值等于CurrentPos的时间值,则表明当前I帧就是所要求的最接近CurrentPos的I帧。在seek操作期间,各I帧的元数据被解析而无需解码视频载荷数据,因而仅导致很短的处理时延。
在CurrentPos处于视频中最后一个I帧之后的极端情况下,流程120A将无法定位所要求的最接近的I帧,因为对于该最后一个I帧,步骤125不会被触发。在这种情况下,可以响应于I帧索引表所指示的最后一个I帧的显示时间值小于CurrentPos的时间值,将该最后一个I帧确定为所要求的最接近的I帧。
对于HLS(HTTP Live Streaming)+TS(Transport Stream)格式或类似格式的视频,其包括多个分片(segment),每个分片包括时间上分隔开的多个I帧,并且所述多个I帧中的每一个跟随有相应的非帧内编码帧。而且,视频中的时间元数据还包括指示所述多个分片的相应持续时间的时间信息。
具体地,在HLS+TS格式的情况下,视频包括M3U8描述文件和TS媒体文件,其中M3U8描述文件由一系列标签(tag)组成,并且以文本方式对TS媒体文件进行描述。下面给出一个M3U8描述文件的示例。
#EXTM3U
#EXT-X-TARGETDURATION:10
#EXTINF:10,
./0.ts
#EXTINF:10,
./1.ts
在该示例中,标签#EXT-X-TARGETDURATION指定最大的TS媒体分片的持续时间(单位:秒),并且各个标签#EXTINF指定相应TS媒体分片的持续时间,它们必须小于或等于由标签#EXT-X-TARGETDURATION指定的最大值(在该示例中,10秒)。
图3示出了与该示例M3U8描述文件对应的TS媒体文件的示意性图示。在该示例中,TS媒体分片0.ts和1.ts具有相同的持续时间,即10秒。对于HLS+TS格式的视频,默认的seek操作所获取的帧是当前seek位置所在的TS媒体分片的起始I帧,如图3所示。虽然得到的起始I帧在时间上处于seek位置之前,并且可以用于后续解码操作,但是该起始I帧有可能与seek位置相隔太远,导致耗费很长的时间用于解码无用的数据。例如,假设seek位置刚好位于当前TS媒体分片的末尾,那么由默认seek操作返回的I帧与该seek位置之间的时间间隔将高达10秒(因为TS媒体分片1.ts的持续时间为10秒)。这将花费较长的时间来解码到达恢复播放的视频帧,并且在实践中可能是不可接受的。
图4更详细地示出了适用于这一类视频格式的、获取最接近的I帧的另一示例流程120B。参考图4,在步骤221处,根据CurrentPos和各个TS媒体分片的持续时间确定CurrentPos所在的、所述多个TS媒体分片中的一个分片。然后,顺序地解析CurrentPos所在的该分片内的各视频帧的所述标识元数据。在步骤222处,从所述标识元数据导出当前帧的帧类型。例如,在TS媒体文件采用H.264标准进行编码的情况下,可以利用nal_unit_type字段来判断当前帧是否为I帧。如果当前帧为非I帧(步骤223),则继续针对下一帧进行所述标识元数据的所述解析(步骤224),并且流程返回到步骤222。如果当前帧为I帧(步骤223),则在步骤225处从当前帧的时间元数据导出当前帧的显示时间值。在步骤226处,比较所述显示时间值与CurrentPos的时间值。如果所述显示时间值小于CurrentPos的时间值(步骤227),则继续针对下一帧进行所述标识元数据的所述解析(步骤228),并且流程返回步骤222。相反,如果所述显示时间值不小于CurrentPos的时间值(步骤227),则在步骤229处判断所述显示时间值是否大于CurrentPos的时间值。如果所述显示时间值大于CurrentPos的时间值(步骤229),则表明当前帧(具体地,I帧)的显示时间已经超过了CurrentPos,并且确定前一个I帧为所要求的最接近的I帧。如果所述显示时间值不大于CurrentPos的时间值(步骤229),也即,所述显示时间值等于所述当前播放位置的时间值,则确定该当前帧(具体地,I帧)为所要求的最接近的I帧。
图5示出了图4的操作的示意性图示。在该示例中,假设CurrentPos为15s。由于TS媒体分片0.ts和1.ts的持续时间均为10s,所以可以确定CurrentPos位于TS媒体分片1.ts内。如图5所示,在CurrentPos所在的TS媒体分片1.ts内进行seek操作。从1.ts的起始I帧a开始解析标识元数据,由于该视频帧为I帧,所以其时间元数据被解析,得到其显示时间值。由于该I帧a的显示时间值小于CurrentPos的时间值,所以继续对下一帧(未示出)进行所述标识元数据的所述解析。由于该下一帧为非I帧,所以继续针对再下一帧进行所述标识元数据的所述解析。当I帧b被解析时,由于其显示时间值仍然小于CurrentPos的时间值,所以继续对下一帧(未示出)进行所述标识元数据的所述解析。这样的过程持续进行,直到I帧d被解析。由于I帧d为I帧,所以其时间元数据被解析,得到其显示时间值。由于该I帧d的显示时间值大于CurrentPos的时间值,所以确定I帧d的前一个I帧(即I帧c)为所要求的最接近的I帧。在seek操作期间,各视频帧的元数据被解析而无需解码视频载荷数据,因而仅导致很短的处理时延。
与流程120A类似,在CurrentPos处于TS媒体分片中最后一个I帧之后的极端情况下,流程120B将无法定位所要求的最接近的I帧,因为对于该最后一个I帧,步骤229不会被触发。考虑到这种情形,在一些实施例中,可以解析每一视频帧的时间元数据,而无论该视频帧的类型如何(I帧或非I帧)。具体地,在步骤223处,如果当前帧为非I帧,则在步骤224之前,从当前帧的时间元数据导出当前帧的显示时间值。可以将当前帧的该导出的显示时间值与当前播放位置的时间值进行比较。响应于当前帧的显示时间值等于该TS媒体分片的结束时间,将该TS媒体分片中最后一个I帧确定为所要求的最接近的I帧。该TS媒体分片的结束时间例如可以通过将该TS媒体分片的持续时间与先前的各个TS媒体分片的持续时间进行累加而得到。在图5的示例中,TS媒体分片1.ts的结束时间可以计算为10+10=20s。
现在,获取到了最接近当前播放位置CurrentPos且时间上处于CurrentPos之前的I帧,并且因此可以从该获取的I帧开始对视频进行解码。
返回参考图1,在步骤130处,发起从所述最接近的I帧开始解码所述视频,并且在步骤140处,当解码到达CurrentPos时,发起从CurrentPos恢复播放所述视频。
图6更详细地示出了图1的方法100中发起解码和恢复播放的示意性和示例性图示。
在步骤131处,读取(例如,从播放器的缓存中)所获取的最接近的I帧数据和跟随该最接近的I帧的多个视频帧,并且将其传递给解码器用于解码。在一些实施例中,视频app运行在iOS平台中。版本8.0及更高版本的iOS***提供了经由其访问底层硬件解码框架VideoToolBox的应用编程接口(API),并且VideoToolBox可以直接访问硬件解码器来加快解码。在这种情况下,可以通过经由这样的API调用VideoToolBox来执行解码,从而缩短到视频的恢复播放的时延。将理解的是,本发明的概念是平台无关的,并且其他实施例是可能的。例如,可以调用软件解码器来进行解码。这在某些应用情景下是可能的。例如,在桌面型或膝上型计算机上使用网页版视频app的情况下,可以通过调用网络浏览器的内核中自带的软件解码器来进行解码。
在步骤132处,每次当前帧被解码,则判断该解码的当前帧的显示时间值是否等于CurrentPos的时间值。如果所述显示时间值不等于CurrentPos的时间值,则丢弃所述解码的当前帧(步骤133),并且继续针对下一帧的判断(步骤134)。如果该解码的当前帧的显示时间值等于CurrentPos的时间值,则确定解码已到达CurrentPos(步骤135)。此时,发起从CurrentPos恢复播放所述视频。如图6所示,已解码的帧数据被发送给应用层以供显示。
针对最接近的I帧的seek操作和从最接近的I帧开始的解码操作可以耗费如此短的时间以致于产生的时延对于用户而言不可察觉。因此,从用户的视角看,在视频app从后台切换回前台时,视频的播放将是连续的且流畅的。
这提供了相对于几种典型方案的优点。在一种典型方案中,当应用程序切入后台时,当前播放器实例被直接停止,并且当应用程序被切回到前台时,播放流程被从头重新执行(例如,调用播放器的start逻辑),并且开始播放位置被设置为之前应用程序切换到后台时的播放位置。然而,调用start逻辑来重新播放耗时较久,会出现短暂的黑屏。在另一种典型方案中,当应用程序切入后台时,通过调用播放器的pause逻辑来暂停播放,并且然后当应用程序从后台切回到前台时,调用播放器的resume逻辑重新播放当前视频。然而,直接调用resume逻辑会导致解码失败并且因此导致黑屏,因为此时解码器组件中的缓存的数据已经被清空。黑屏的持续时间由当前播放位置与下一个关键帧的显示时间值之间的间隔决定。由于解码失败,直到下一个I帧才会得到正常的画面,导致播放的画面是不连续的。
图7示出了根据本发明实施例的视频播放设备700的示意性框图。参考图7,视频播放设备700包括播放位置记录模块710、帧内编码帧获取模块720和播放恢复模块730。
播放位置记录模块710被配置成当正在播放所述视频的应用程序从前台被切换到后台时,记录所述视频的当前播放位置。播放位置记录模块710的操作已经在上面关于结合图1例示说明的方法实施例进行了详细描述,并且为了简洁起见在此不再重复。
帧内编码帧获取模块720被配置成当所述应用程序从后台被切换回前台时,取回所记录的当前播放位置并且在所述视频中获取最接近所述当前播放位置且在所述当前播放位置之前的帧内编码帧。帧内编码帧获取模块720的操作已经在上面关于结合图1-5例示说明的方法实施例进行了详细描述,并且为了简洁起见在此不再重复。
播放恢复模块730被配置成从所述最接近的帧内编码帧开始解码所述视频,并且当解码到达所述当前播放位置时,促使所述应用程序从所述当前播放位置恢复播放所述视频。播放恢复模块730的操作已经在上面关于结合图1和6例示说明的方法实施例进行了详细描述,并且为了简洁起见在此不再重复。
将理解的是,播放位置记录模块710、帧内编码帧获取模块720和播放恢复模块730可以由软件、固件、硬件或其组合来实现。
图8一般地图示了一个示例***800,其包括代表可以实现本文描述的各种技术的一个或多个***和/或设备的示例计算设备810。计算设备810可以是例如与客户端(例如,客户端设备)相关联的设备、片上***、服务提供商的服务器、和/或任何其它合适的计算设备或计算***。上面关于图7描述的视频播放设备700可以采取计算设备810的形式。替换地,视频播放设备700可以以视频app 816的形式被实现为计算机程序。更具体地,视频播放设备700可以被实现为视频播放器的组成部分,或者作为可与视频播放器相分离地下载和安装的插件。
如图示的示例计算设备810包括彼此通信耦合的处理***811、一个或多个计算机可读介质812以及一个或多个I / O接口813。尽管未示出,但是计算设备810还可以包括***总线或其他数据和命令传送***,其将各种组件彼此耦合。***总线可以包括不同总线结构的任何一个或组合,所述总线结构诸如存储器总线或存储器控制器、***总线、通用串行总线、和/或利用各种总线架构中的任何一种的处理器或局部总线。还构思了各种其他示例,诸如控制和数据线。
处理***811代表使用硬件执行一个或多个操作的功能。因此,处理***811被图示为包括可被配置为处理器、功能块等的硬件元件814。这可以包括在硬件中实现作为专用集成电路或使用一个或多个半导体形成的其它逻辑器件。硬件元件814不受其形成的材料或其中采用的处理机构的限制。例如,处理器可以由(多个)半导体和/或晶体管(例如,电子集成电路(IC))组成。在这样的上下文中,处理器可执行指令可以是电子可执行指令。
计算机可读介质812被图示为包括存储器/存储装置815。存储器/存储装置815表示与一个或多个计算机可读介质相关联的存储器/存储容量。存储器/存储装置815可以包括易失性介质(诸如随机存取存储器(RAM))和/或非易失性介质(诸如只读存储器(ROM)、闪存、光盘、磁盘等)。存储器/存储装置815可以包括固定介质(例如,RAM、ROM、固定硬盘驱动器等)以及可移动介质(例如,闪存、可移动硬盘驱动器、光盘等)。计算机可读介质812可以以下面进一步描述的各种其他方式进行配置。
一个或多个I/O接口813代表允许用户向计算设备810输入命令和信息并且可选地还允许使用各种输入/输出设备将信息呈现给用户和/或其他组件或设备的功能。输入设备的示例包括键盘、光标控制设备(例如,鼠标)、麦克风(例如,用于语音输入)、扫描仪、触摸功能(例如,被配置为检测物理触摸的容性或其他传感器)、相机(例如,可以采用可见或不可见的波长(诸如红外频率)将不涉及触摸的运动检测为手势)等等。输出设备的示例包括显示设备(例如,监视器或投影仪)、扬声器、打印机、网卡、触觉响应设备等。因此,计算设备810可以以下面进一步描述的各种方式进行配置以支持用户交互。
计算设备810还可以包括视频app 816。视频app 816可以例如是图7的视频播放设备700的软件实例,并且与计算设备810中的其他元件相组合地实现本文描述的技术。
本文可以在软件硬件元件或程序模块的一般上下文中描述各种技术。一般地,这些模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、元素、组件、数据结构等。本文所使用的术语“模块”(例如,前面段落中的播放位置记录模块710、帧内编码帧获取模块720和播放恢复模块730)、“功能”和“组件”一般表示软件、固件、硬件或其组合。本文描述的技术的特征是与平台无关的,意味着这些技术可以在具有各种处理器的各种计算平台上实现。
所描述的模块和技术的实现可以存储在某种形式的计算机可读介质上或者跨某种形式的计算机可读介质传输。计算机可读介质可以包括可由计算设备810访问的各种介质。作为示例而非限制,计算机可读介质可以包括“计算机可读存储介质”和“计算机可读信号介质”。
与单纯的信号传输、载波或信号本身相反,“计算机可读存储介质”是指能够持久存储信息的介质和/或设备,和/或有形的存储装置。因此,计算机可读存储介质是指非信号承载介质。计算机可读存储介质包括诸如易失性和非易失性、可移动和不可移动介质和/或以适用于存储信息(诸如计算机可读指令、数据结构、程序模块、逻辑元件/电路或其他数据)的方法或技术实现的存储设备之类的硬件。计算机可读存储介质的示例可以包括但不限于RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字通用盘(DVD)或其他光学存储装置、硬盘、盒式磁带、磁带,磁盘存储装置或其他磁存储设备,或其他存储设备、有形介质或适于存储期望信息并可以由计算机访问的制品。
“计算机可读信号介质”是指被配置为诸如经由网络将指令发送到计算设备810的硬件的信号承载介质。信号介质典型地可以将计算机可读指令、数据结构、程序模块或其他数据体现在诸如载波、数据信号或其它传输机制的调制数据信号中。信号介质还包括任何信息传递介质。术语“调制数据信号”是指以这样的方式对信号中的信息进行编码来设置或改变其特征中的一个或多个的信号。作为示例而非限制,通信介质包括诸如有线网络或直接连线的有线介质以及诸如声、RF、红外和其它无线介质的无线介质。
如前所述,硬件元件814和计算机可读介质812代表以硬件形式实现的指令、模块、可编程器件逻辑和/或固定器件逻辑,其在一些实施例中可以用于实现本文描述的技术的至少一些方面。硬件元件可以包括集成电路或片上***、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)以及硅中的其它实现或其他硬件设备的组件。在这种上下文中,硬件元件可以作为执行由硬件元件所体现的指令、模块和/或逻辑所定义的程序任务的处理设备,以及用于存储用于执行的指令的硬件设备,例如,先前描述的计算机可读存储介质。
前述的组合也可以用于实现本文所述的各种技术和模块。因此,可以将软件、硬件或程序模块和其它程序模块实现为在某种形式的计算机可读存储介质上和/或由一个或多个硬件元件814体现的一个或多个指令和/或逻辑。计算设备810可以被配置为实现与软件和/或硬件模块相对应的特定指令和/或功能。因此,例如通过使用处理***的计算机可读存储介质和/或硬件元件814,可以至少部分地以硬件来实现将模块实现为可由计算设备810作为软件执行的模块。指令和/或功能可以由一个或多个制品(例如,一个或多个计算设备810和/或处理***811)可执行/可操作以实现本文所述的技术、模块和示例。
在各种实施方式中,计算设备810可以采用各种不同的配置。例如,计算设备810可以被实现为包括个人计算机、台式计算机、多屏幕计算机、膝上型计算机、上网本等的计算机类设备。计算设备810还可以被实现为包括诸如移动电话、便携式音乐播放器、便携式游戏设备、平板计算机、多屏幕计算机等移动设备的移动装置类设备。计算设备810还可以实现为电视类设备,其包括具有或连接到休闲观看环境中的一般地较大屏幕的设备。这些设备包括电视、机顶盒、游戏机等。
本文描述的技术可以由计算设备810的这些各种配置来支持,并且不限于本文所描述的技术的具体示例。计算设备810还可以通过各种各样的通信技术“云”820进行交互。
云820包括和/或代表用于资源824的平台822。平台822抽象云820的硬件(例如,服务器)和软件资源的底层功能。资源824可以包括在远离计算设备810的服务器上执行计算机处理时可以使用的应用和/或数据。资源824还可以包括通过因特网和/或通过诸如蜂窝或Wi-Fi网络的订户网络提供的服务。平台822可以抽象资源和功能以将计算设备810与其他计算设备连接。平台822还可以用于抽象资源的分级以提供遇到的对于经由平台822实现的资源824的需求的相应水平的分级。
尽管已经以结构特征和/或方法动作特定的语言描述了主题,但是应当理解,所附权利要求中限定的主题不一定限于上述具体特征或动作。相反,上述具体特征和动作被公开为实现权利要求的示例形式。
本文中使用的术语仅出于描述特定实施例的目的并且不意图限制本发明。如本文中使用的,单数形式“一个”、“一”和“该”意图也包括复数形式,除非上下文清楚地另有指示。将进一步理解的是,术语“包括”和/或“包含”当在本说明书中使用时指定所述及特征、整体、步骤、操作、元件和/或部件的存在,但不排除一个或多个其他特征、整体、步骤、操作、元件、部件和/或其群组的存在或添加一个或多个其他特征、整体、步骤、操作、元件、部件和/或其群组。如本文中使用的,术语“和/或”包括相关联的列出项目中的一个或多个的任意和全部组合。
通过研究附图、公开内容和所附的权利要求书,本领域技术人员在实践所要求保护的主题时,能够理解和实现对于所公开的实施例的变型。在相互不同的从属权利要求中记载了某些措施的仅有事实并不表明这些措施的组合不能用来获利。
Claims (10)
1.一种视频播放方法,包括:
当正在播放所述视频的应用程序从前台被切换到后台时,发起记录所述视频的当前播放位置,其中所述视频包括视频载荷数据、指示该视频载荷数据中的各视频帧的帧类型的标识元数据、以及指示所述各视频帧的显示时间值的时间元数据,搜寻最接近的帧内编码帧,包括:
基于所述标识元数据确定帧内编码帧,并顺序地解析所述各帧内编码帧的所述时间元数据,其中:
从所述时间元数据导出当前帧内编码帧的显示时间值;
比较所述显示时间值与所述当前播放位置的时间值;
响应于所述显示时间值小于所述当前播放位置的时间值,继续针对下一帧内编码帧进行所述时间元数据的所述解析;
响应于所述显示时间值大于所述当前播放位置的时间值,确定前一帧内编码帧为所述最接近的帧内编码帧;并且
响应于所述显示时间值等于所述当前播放位置的时间值,确定该当前帧内编码帧为所述最接近的帧内编码帧;
当所述应用程序从后台被切换回前台时,取回所记录的当前播放位置并且在所述视频中获取最接近所述当前播放位置且在所述当前播放位置之前的帧内编码帧;
发起从所述最接近的帧内编码帧开始解码所述视频;并且
在解码到达所述当前播放位置时,发起从所述当前播放位置恢复播放所述视频;
其中搜寻所述最接近的帧内编码帧还包括:基于所述标识元数据确定非帧内编码帧,响应于所述当前帧为非帧内编码帧,在继续针对下一帧进行所述标识元数据的所述解析之前,从所述当前帧的所述时间元数据导出所述当前帧的显示时间值;并且响应于所述当前帧的显示时间值等于所述当前播放位置所在的分片的结束时间,确定所述分片中的最后一个帧内编码帧为所述最接近的帧内编码帧。
2.如权利要求1所述的方法,其中发起记录所述视频的当前播放位置包括:将所述当前播放位置保存到全局内存中,并且其中取回所记录的当前播放位置包括:从所述全局内存中读取所述当前播放位置。
3.如权利要求1所述的方法,还包括:响应于所述各帧内编码帧中的最后一个帧内编码帧的显示时间值小于所述当前播放位置的时间值,确定该最后一个帧内编码帧为所述最接近的帧内编码帧。
4.如权利要求1所述的方法,其中发起解码所述视频包括:
将所获取的最接近的帧内编码帧和跟随该最接近的帧内编码帧的多个视频帧传递给解码器组件;并且
每次当前帧被解码,则判断该解码的当前帧的显示时间值是否等于所述当前播放位置的时间值,其中:
响应于所述显示时间值不等于所述当前播放位置的时间值,丢弃所述解码的当前帧并继续针对下一解码帧进行所述判断,并且
响应于所述显示时间值等于所述当前播放位置的时间值,确定解码已到达所述当前播放位置。
5.如权利要求1所述的方法,其中所述应用程序运行在iOS平台中,所述iOS平台中开放了用于访问底层硬件解码框架的应用编程接口,并且其中发起解码所述视频包括:经由所述应用编程接口调用所述底层硬件解码框架以执行解码。
6.如权利要求1所述的方法,其中发起解码所述视频包括:调用软件解码器以执行解码。
7.一种视频播放装置,包括:
用于当正在播放所述视频的应用程序从前台被切换到后台时,发起记录所述视频的当前播放位置的装置,其中所述视频包括视频载荷数据、指示该视频载荷数据中的各视频帧的帧类型的标识元数据、以及指示所述各视频帧的显示时间值的时间元数据,搜寻最接近的帧内编码帧,包括:
基于所述标识元数据确定帧内编码帧,并顺序地解析所述各帧内编码帧的所述时间元数据,其中:
从所述时间元数据导出当前帧内编码帧的显示时间值;
比较所述显示时间值与所述当前播放位置的时间值;
响应于所述显示时间值小于所述当前播放位置的时间值,继续针对下一帧内编码帧进行所述时间元数据的所述解析;
响应于所述显示时间值大于所述当前播放位置的时间值,确定前一帧内编码帧为所述最接近的帧内编码帧;并且
响应于所述显示时间值等于所述当前播放位置的时间值,确定该当前帧内编码帧为所述最接近的帧内编码帧;
当所述应用程序从后台被切换回前台时,取回所记录的当前播放位置并且在所述视频中获取最接近所述当前播放位置且在所述当前播放位置之前的帧内编码帧;
用于发起从所述最接近的帧内编码帧开始解码所述视频的装置;以及
用于当解码到达所述当前播放位置时,发起从所述当前播放位置恢复播放所述视频的装置;
其中搜寻所述最接近的帧内编码帧还包括:基于所述标识元数据确定非帧内编码帧,响应于所述当前帧为非帧内编码帧,在继续针对下一帧进行所述标识元数据的所述解析之前,从所述当前帧的所述时间元数据导出所述当前帧的显示时间值;并且响应于所述当前帧的显示时间值等于所述当前播放位置所在的分片的结束时间,确定所述分片中的最后一个帧内编码帧为所述最接近的帧内编码帧。
8.一种视频播放设备,包括:
播放位置记录模块,被配置成当正在播放所述视频的应用程序从前台被切换到后台时,记录所述视频的当前播放位置,其中所述视频包括视频载荷数据、指示该视频载荷数据中的各视频帧的帧类型的标识元数据、以及指示所述各视频帧的显示时间值的时间元数据,搜寻最接近的帧内编码帧,包括:
基于所述标识元数据确定帧内编码帧,并顺序地解析所述各帧内编码帧的所述时间元数据,其中:
从所述时间元数据导出当前帧内编码帧的显示时间值;
比较所述显示时间值与所述当前播放位置的时间值;
响应于所述显示时间值小于所述当前播放位置的时间值,继续针对下一帧内编码帧进行所述时间元数据的所述解析;
响应于所述显示时间值大于所述当前播放位置的时间值,确定前一帧内编码帧为所述最接近的帧内编码帧;并且
响应于所述显示时间值等于所述当前播放位置的时间值,确定该当前帧内编码帧为所述最接近的帧内编码帧;
帧内编码帧获取模块,被配置成当所述应用程序从后台被切换回前台时,取回所记录的当前播放位置并且在所述视频中获取最接近所述当前播放位置且在所述当前播放位置之前的帧内编码帧;以及
播放恢复模块,被配置成从所述最接近的帧内编码帧开始解码所述视频,并且当解码到达所述当前播放位置时,促使所述应用程序从所述当前播放位置恢复播放所述视频;
其中搜寻所述最接近的帧内编码帧还包括:基于所述标识元数据确定非帧内编码帧,响应于所述当前帧为非帧内编码帧,在继续针对下一帧进行所述标识元数据的所述解析之前,从所述当前帧的所述时间元数据导出所述当前帧的显示时间值;并且响应于所述当前帧的显示时间值等于所述当前播放位置所在的分片的结束时间,确定所述分片中的最后一个帧内编码帧为所述最接近的帧内编码帧。
9.一种视频播放设备,包括处理器和存储器,所述存储器被配置成存储计算机指令,所述计算机指令当在所述处理器上执行时使所述处理器执行如权利要求1-6中任一项所述的方法。
10.一种计算机可读存储介质,被配置成存储计算机指令,所述计算机指令当在处理器上执行时使所述处理器执行如权利要求1-6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910027118.6A CN111436004B (zh) | 2019-01-11 | 2019-01-11 | 视频播放方法、装置和设备、计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910027118.6A CN111436004B (zh) | 2019-01-11 | 2019-01-11 | 视频播放方法、装置和设备、计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111436004A CN111436004A (zh) | 2020-07-21 |
CN111436004B true CN111436004B (zh) | 2023-02-21 |
Family
ID=71580517
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910027118.6A Active CN111436004B (zh) | 2019-01-11 | 2019-01-11 | 视频播放方法、装置和设备、计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111436004B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111901649B (zh) * | 2020-08-13 | 2022-03-25 | 海信视像科技股份有限公司 | 视频播放方法和显示设备 |
CN114356155A (zh) * | 2020-09-30 | 2022-04-15 | 北京字跳网络技术有限公司 | 一种基于视频的交互方法、装置、设备及存储介质 |
CN113542888B (zh) * | 2021-07-09 | 2024-04-09 | 北京百度网讯科技有限公司 | 视频的处理方法、装置、电子设备及存储介质 |
CN113542765B (zh) * | 2021-07-13 | 2023-09-15 | 海信电子科技(深圳)有限公司 | 一种媒体数据跳变续播方法及显示设备 |
CN114513658B (zh) * | 2022-01-04 | 2024-04-02 | 聚好看科技股份有限公司 | 一种视频加载方法、装置、设备及介质 |
CN114882915B (zh) * | 2022-04-13 | 2024-01-12 | Oppo广东移动通信有限公司 | 信息记录方法、装置以及电子设备 |
CN116761032B (zh) * | 2023-08-18 | 2024-04-23 | 荣耀终端有限公司 | 视频播放方法、可读介质和电子设备 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102169709A (zh) * | 2010-12-08 | 2011-08-31 | 深圳市融创天下科技发展有限公司 | 一种帧数据存储和定位的方法、***、终端设备 |
CN102264004A (zh) * | 2011-08-05 | 2011-11-30 | Tcl集团股份有限公司 | 一种防止关键帧缺失而不能seek的方法及装置 |
CN103986978A (zh) * | 2014-04-14 | 2014-08-13 | 曦威胜科技开发(深圳)有限公司 | 在HLS协议中扩展实现快进快退及精确Seek的方法 |
CN104661083A (zh) * | 2015-02-06 | 2015-05-27 | 南京传唱软件科技有限公司 | 视频播放方法、***、流媒体播放方法、装置及*** |
CN105187895A (zh) * | 2015-09-17 | 2015-12-23 | 北京暴风科技股份有限公司 | 针对移动平台硬件加速播放视频的数据缓存方法及*** |
CN105208463A (zh) * | 2015-08-31 | 2015-12-30 | 北京暴风科技股份有限公司 | 针对m3u8文件进行帧确定的方法和*** |
CN105979404A (zh) * | 2015-12-01 | 2016-09-28 | 乐视致新电子科技(天津)有限公司 | 一种流媒体的处理方法及装置 |
CN106534952A (zh) * | 2016-09-28 | 2017-03-22 | 青岛海信电器股份有限公司 | 一种源切换后片源续播方法及智能电视 |
CN107277563A (zh) * | 2017-05-12 | 2017-10-20 | 成都虚拟世界科技有限公司 | 一种生成和播放视频文件的方法、服务器及终端 |
CN108401188A (zh) * | 2018-03-05 | 2018-08-14 | 青岛海信传媒网络技术有限公司 | 一种媒体播放的方法及装置 |
CN108683943A (zh) * | 2018-03-30 | 2018-10-19 | 晨星半导体股份有限公司 | 电子设备及其定位播放音视频文件的方法 |
CN108737908A (zh) * | 2018-05-21 | 2018-11-02 | 腾讯科技(深圳)有限公司 | 一种媒体播放方法、装置及存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101247193B (zh) * | 2008-02-28 | 2010-12-08 | 华为技术有限公司 | 对等网络中发送数据的方法、***、节点和超级节点 |
US8855466B2 (en) * | 2012-05-01 | 2014-10-07 | Eldon Technology Limited | Separate video file for I-frame and non-I-frame data to improve disk performance in trick play |
CN104994340A (zh) * | 2015-06-25 | 2015-10-21 | 广东工业大学 | 一种音视频存储方式的精确定位回放方法 |
CN107979621A (zh) * | 2016-10-24 | 2018-05-01 | 杭州海康威视数字技术股份有限公司 | 一种视频文件的存储、定位播放方法及装置 |
-
2019
- 2019-01-11 CN CN201910027118.6A patent/CN111436004B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102169709A (zh) * | 2010-12-08 | 2011-08-31 | 深圳市融创天下科技发展有限公司 | 一种帧数据存储和定位的方法、***、终端设备 |
CN102264004A (zh) * | 2011-08-05 | 2011-11-30 | Tcl集团股份有限公司 | 一种防止关键帧缺失而不能seek的方法及装置 |
CN103986978A (zh) * | 2014-04-14 | 2014-08-13 | 曦威胜科技开发(深圳)有限公司 | 在HLS协议中扩展实现快进快退及精确Seek的方法 |
CN104661083A (zh) * | 2015-02-06 | 2015-05-27 | 南京传唱软件科技有限公司 | 视频播放方法、***、流媒体播放方法、装置及*** |
CN105208463A (zh) * | 2015-08-31 | 2015-12-30 | 北京暴风科技股份有限公司 | 针对m3u8文件进行帧确定的方法和*** |
CN105187895A (zh) * | 2015-09-17 | 2015-12-23 | 北京暴风科技股份有限公司 | 针对移动平台硬件加速播放视频的数据缓存方法及*** |
CN105979404A (zh) * | 2015-12-01 | 2016-09-28 | 乐视致新电子科技(天津)有限公司 | 一种流媒体的处理方法及装置 |
CN106534952A (zh) * | 2016-09-28 | 2017-03-22 | 青岛海信电器股份有限公司 | 一种源切换后片源续播方法及智能电视 |
CN107277563A (zh) * | 2017-05-12 | 2017-10-20 | 成都虚拟世界科技有限公司 | 一种生成和播放视频文件的方法、服务器及终端 |
CN108401188A (zh) * | 2018-03-05 | 2018-08-14 | 青岛海信传媒网络技术有限公司 | 一种媒体播放的方法及装置 |
CN108683943A (zh) * | 2018-03-30 | 2018-10-19 | 晨星半导体股份有限公司 | 电子设备及其定位播放音视频文件的方法 |
CN108737908A (zh) * | 2018-05-21 | 2018-11-02 | 腾讯科技(深圳)有限公司 | 一种媒体播放方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111436004A (zh) | 2020-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111436004B (zh) | 视频播放方法、装置和设备、计算机可读存储介质 | |
US9961398B2 (en) | Method and device for switching video streams | |
US10009400B2 (en) | Insertion of supplementary content into a segmented content stream | |
US10051334B2 (en) | Apparatus and method for resuming playing of media source, and smart television | |
US11490173B2 (en) | Switch of audio and video | |
US10476928B2 (en) | Network video playback method and apparatus | |
CN107426603B (zh) | 一种视频播放方法及装置 | |
US9438876B2 (en) | Method for semantics based trick mode play in video system | |
CN111107438B (zh) | 一种视频加载方法、装置及电子设备 | |
US11356739B2 (en) | Video playback method, terminal apparatus, and storage medium | |
CN107690093B (zh) | 一种视频播放方法及装置 | |
US10149000B2 (en) | Method and system for remote altering static video content in real time | |
US8391688B2 (en) | Smooth rewind media playback | |
CN111225171A (zh) | 一种视频录制方法、装置、终端设备及计算机存储介质 | |
CN116600169A (zh) | 媒体文件的预加载方法、装置、电子设备及存储介质 | |
CN112804579B (zh) | 视频播放方法、装置、计算机设备和可读存储介质 | |
CN112511897A (zh) | 视频封面设置方法、装置、设备和存储介质 | |
CN110855619B (zh) | 播放音视频数据的处理方法、装置、存储介质及终端设备 | |
JP6483850B2 (ja) | データ処理方法および装置 | |
US20200145470A1 (en) | Method and apparatus for playing media file | |
US9712859B2 (en) | Generating a playlist that includes local segment identifiers and remote segment identifiers for media content | |
US20100132005A1 (en) | Recapping media content | |
US11495265B1 (en) | Change-dependent pre-export for video editing projects | |
CN114143601A (zh) | 裁剪视频的方法、装置、电子设备、存储介质及程序产品 | |
US20200099967A1 (en) | Techniques for dynamic digital advertising |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40025936 Country of ref document: HK |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |