CN111669645A - 视频的播放方法、装置、电子设备及存储介质 - Google Patents
视频的播放方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN111669645A CN111669645A CN202010533403.8A CN202010533403A CN111669645A CN 111669645 A CN111669645 A CN 111669645A CN 202010533403 A CN202010533403 A CN 202010533403A CN 111669645 A CN111669645 A CN 111669645A
- Authority
- CN
- China
- Prior art keywords
- frame
- playing
- video
- target video
- audio
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 56
- 239000000872 buffer Substances 0.000 claims abstract description 81
- 230000015654 memory Effects 0.000 claims abstract description 35
- 239000002699 waste material Substances 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 5
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- AWSBQWZZLBPUQH-UHFFFAOYSA-N mdat Chemical compound C1=C2CC(N)CCC2=CC2=C1OCO2 AWSBQWZZLBPUQH-UHFFFAOYSA-N 0.000 description 4
- 230000002159 abnormal effect Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- GNFTZDOKVXKIBK-UHFFFAOYSA-N 3-(2-methoxyethoxy)benzohydrazide Chemical compound COCCOC1=CC=CC(C(=O)NN)=C1 GNFTZDOKVXKIBK-UHFFFAOYSA-N 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 229920006395 saturated elastomer Polymers 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- FGUUSXIOTUKUDN-IBGZPJMESA-N C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 Chemical compound C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 FGUUSXIOTUKUDN-IBGZPJMESA-N 0.000 description 1
- YTAHJIFKAKIKAV-XNMGPUDCSA-N [(1R)-3-morpholin-4-yl-1-phenylpropyl] N-[(3S)-2-oxo-5-phenyl-1,3-dihydro-1,4-benzodiazepin-3-yl]carbamate Chemical compound O=C1[C@H](N=C(C2=C(N1)C=CC=C2)C1=CC=CC=C1)NC(O[C@H](CCN1CCOCC1)C1=CC=CC=C1)=O YTAHJIFKAKIKAV-XNMGPUDCSA-N 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000000007 visual effect 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/439—Processing of audio elementary streams
- H04N21/4394—Processing of audio elementary streams involving operations for analysing the audio stream, e.g. detecting features or characteristics in audio streams
-
- 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/4302—Content synchronisation processes, e.g. decoder synchronisation
- H04N21/4307—Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
-
- 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/44004—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 video buffer management, e.g. video decoder buffer or video display buffer
-
- 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/44008—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 operations for analysing video streams, e.g. detecting features or characteristics in the video stream
-
- 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/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/854—Content authoring
- H04N21/8547—Content authoring involving timestamps for synchronizing content
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Television Signal Processing For Recording (AREA)
Abstract
本发明提供了一种视频的播放方法、装置、电子设备及存储介质;方法包括:获取目标视频的音频播放参数和视频播放参数;基于所述音频播放参数和所述视频播放参数,确定在所述目标视频中,对应相同播放时间点的音频帧和视频帧之间的帧间隔数;基于确定的所述帧间隔数,确定播放所述目标视频所需的缓存容量;基于播放所述目标视频所需的缓存容量,更新所述目标视频当前的播放缓存容量;基于所述更新后的所述播放缓存容量,播放所述目标视频;通过本发明,能够避免过大缓存导致内存增长和带宽浪费、或者过小缓存无法支持视频正常播放的问题,提升用户播放体验。
Description
技术领域
本发明涉及媒体播放技术领域,尤其涉及一种视频的播放方法、装置、电子设备及存储介质。
背景技术
随着移动端观看视频的需求快速增长,视频片源的来源也日趋多元化,可以是用户自制、自拍的视频源,也可以是第三方工具转码的视频源。视频源多元化导致无法保证生成的视频文件都是标准的。标准的视频文件生成时,是按照音视频压缩包本身的时间戳,进行交错写入音视频压缩包到文件中,这样在实际播放过程中,通过网络按照文件偏移读取到相同时间点的音视频数据包都是交错并且相邻的,只需要较小的缓存,就能实现音视频解封装、解码以及同步后进行播放。
而实际上网络上很多视频文件都是非标准的,它们的音视频包有可能没有按照时间戳进行交错写入文件中,从而导致音视频数据包在文件中是分块存储的。这样就会导致,想获取到相同时间点的音视频压缩包,需要获取更多的数据才能匹配到,这样就需要更多的缓存来存储顺序读取的其他时间点的数据。相关技术中通常是设置一个较大的播放器缓存来解决,但是这种方案对于标准的视频文件来说,则会导致内存的增长以及带宽的浪费,同时如果需要缓存的数据超过设置的最大缓存时,视频将无法正常播放。
发明内容
本发明实施例提供一种视频的播放方法、装置、电子设备及存储介质,能够避免过大缓存导致内存增长和带宽浪费、或者过小缓存无法支持视频正常播放的问题,提升用户播放体验。
本发明实施例的技术方案是这样实现的:
本发明实施例提供一种视频的播放方法,包括:
获取目标视频的音频播放参数和视频播放参数;
基于所述音频播放参数和所述视频播放参数,确定在所述目标视频中,对应相同播放时间点的音频帧和视频帧之间的帧间隔数;
基于确定的所述帧间隔数,确定播放所述目标视频所需的缓存容量;
基于播放所述目标视频所需的缓存容量,更新所述目标视频当前的播放缓存容量;
基于所述更新后的所述播放缓存容量,播放所述目标视频。
本发明实施例还提供一种视频的播放装置,包括:
获取模块,用于获取目标视频的音频播放参数和视频播放参数;
第一确定模块,用于基于所述音频播放参数和所述视频播放参数,确定在所述目标视频中,对应相同播放时间点的音频帧和视频帧之间的帧间隔数;
第二确定模块,用于基于确定的所述帧间隔数,确定播放所述目标视频所需的缓存容量;
更新模块,用于基于播放所述目标视频所需的缓存容量,更新所述目标视频当前的播放缓存容量;
播放模块,用于基于所述更新后的所述播放缓存容量,播放所述目标视频。
上述方案中,所述获取模块,还用于获取所述目标视频的元数据;
基于所述元数据,获取所述目标视频中各音频帧对应的偏移量和时间戳,将各音频帧对应的偏移量和时间戳作为所述音频播放参数;并
基于所述元数据,获取所述目标视频中各视频帧对应的偏移量和时间戳,将各视频帧对应的偏移量和时间戳作为所述视频播放参数。
上述方案中,所述第一确定模块,还用于基于所述音频帧对应的偏移量、以及所述视频帧对应的偏移量,确定在所述目标视频中,对应相邻偏移位置的目标音频帧和目标视频帧;
基于所述目标音频帧的时间戳、和所述目标视频帧时间戳,确定所述目标音频帧和目标视频帧之间的帧间隔数;
将确定的所述目标音频帧和目标视频帧之间的帧间隔数,作为对应相同播放时间点的音频帧和视频帧之间的帧间隔数。
上述方案中,所述第一确定模块,还用于比较所述目标音频帧的时间戳与所述目标视频帧时间戳的大小;
当所述目标音频帧的时间戳大于所述目标视频帧时间戳时,基于所述目标音频帧的时间戳与所述目标视频帧时间戳的差值、以及每个音频帧的持续时长,确定所述目标音频帧和目标视频帧之间的帧间隔数;
当所述目标音频帧的时间戳小于所述目标视频帧时间戳时,基于所述目标音频帧的时间戳与所述目标视频帧时间戳的差值、以及每个视频帧的持续时长,确定所述目标音频帧和目标视频帧之间的帧间隔数。
上述方案中,所述第一确定模块,还用于对所述目标视频中的音频帧和视频帧进行遍历,确定对应相同播放时间点的音频帧和视频帧;
基于所述音频播放参数和所述视频播放参数,确定对应相同播放时间点的音频帧和视频帧之间的帧间隔数。
上述方案中,所述第二确定模块,还用于将所述帧间隔数与播放缓存帧数进行比较,得到第一比较结果;其中,所述播放缓存帧数与所述目标视频当前的播放缓存容量相对应;
基于所述第一比较结果,确定播放所述目标视频所需的缓存容量。
上述方案中,所述第二确定模块,还用于当所述第一比较结果表征所述帧间隔数大于所述播放缓存帧数时,获取所述帧间隔数对应的帧数据大小;
基于所述帧间隔数对应的帧数据大小,确定播放所述目标视频所需的缓存容量。
上述方案中,所述第二确定模块,还用于基于确定的所述帧间隔数,确定对应所述帧间隔数的帧数据大小;
将对应所述帧间隔数的帧数据大小与所述目标视频当前的播放缓存容量进行比较,并基于所述比较得到的第二比较结果确定播放所述目标视频所需的缓存容量。
上述方案中,所述第二确定模块,还用于获取对应所述帧间隔数的音频帧和视频帧之间帧的类型,及所述类型的帧的大小;
基于所述帧的类型、所述帧的大小及所述帧间隔数,确定对应所述帧间隔数的帧数据大小。
上述方案中,所述第二确定模块,还用于当所述目标视频中存在至少两个具备所述帧间隔数的播放时间点时,获取帧间隔数最大的播放时间点所对应的帧间隔数;
基于所述帧间隔数最大的播放时间点所对应的帧间隔数,确定播放所述目标视频所需的缓存容量。
上述方案中,所述更新模块,还用于将播放所述目标视频所需的缓存容量、与所述目标视频当前的播放缓存容量进行比较,得到第三比较结果;
当所述第三比较结果表征所述所需的缓存容量小于所述当前的播放缓存容量时,将所述目标视频当前的播放缓存容量,更新为播放所述目标视频所需的缓存容量,或者保持所述目标视频当前的播放缓存容量不变;
当所述第三比较结果表征所述所需的缓存容量大于所述当前的播放缓存容量时,将所述目标视频当前的播放缓存容量,更新为播放所述目标视频所需的缓存容量。
本发明实施例还提供一种电子设备,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本发明实施例提供的视频的播放方法。
本发明实施例还提供一种计算机可读存储介质,存储有可执行指令,所述可执行指令被处理器执行时,实现本发明实施例提供的视频的播放方法。
本发明实施例具有以下有益效果:
首先基于目标视频的音频播放参数和视频播放参数,确定在目标视频中,对应相同播放时间点的音频帧和视频帧之间的帧间隔数;进而基于该帧间隔数确定播放目标视频所需的缓存容量;以基于该缓存容量对目标视频当前的播放缓存容量进行更新,进而基于更新后的播放缓存容量,播放目标视频。
这里,由于播放缓存容量是基于目标视频中对应相同播放时间点的音频帧和视频帧之间的帧间隔数设置的,可以保证目标视频的音画同步,从而实现正常播放;同时在播放目标视频时,采用的播放缓存容量是根据播放目标视频所需的缓存容量设置,如此,能够实现播放缓存容量的动态设置,避免了过大缓存导致内存增长和带宽浪费,或者过小缓存无法支持视频正常播放的问题。
附图说明
图1A是本发明实施例提供的MP4文件的一个可选的封装结构示意图;
图1B是本发明实施例提供的容器的一个可选的结构示意图;
图1C是本发明实施例提供的视频文件中的媒体数据容器存储音视频数据的结构示意图;
图2是本发明实施例提供的视频的播放方法的实施场景示意图;
图3是本发明实施例提供的终端300的结构示意图;
图4是本发明实施例提供的异常视频文件的示意图;
图5是本发明实施例提供的视频的播放方法的流程示意图;
图6是本发明实施例提供的通过遍历音视频帧获取帧间隔数的流程示意图;
图7是本发明实施例提供的视频的播放方法的整体结构图;
图8是本发明实施例提供的视频的播放方法的流程示意图;
图9是本发明实施例提供的视频的播放装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,所描述的实施例不应视为对本发明的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本发明实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。
对本发明实施例进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。
1)响应于,用于表示所执行的操作所依赖的条件或者状态,当满足所依赖的条件或状态时,所执行的一个或多个操作可以是实时的,也可以具有设定的延迟;在没有特别说明的情况下,所执行的多个操作不存在执行先后顺序的限制。
2)目标视频的视频文件,是以容器(Box,也称为盒子)的方式存储进行编码的媒体数据(例如视频数据)的文件,其中还包括元数据,即描述媒体数据的数据,元数据中承载有确保媒体数据被正确解码的媒体信息。
以目标视频的视频文件为MP4格式的文件为例,参见图1A,图1A是本发明实施例提供的MP4文件的一个可选的封装结构示意图,主要由不同功能描述的Box结构组成。其中元数据容器(moov Box)是视频文件媒体信息的相关描述,媒体数据容器(mdat Box)是视频文件实际音视频数据结构。通过解析moov结构,就可以获取到该目标视频的视频文件的基本媒体信息。
3)容器(Box),也称为盒子,由唯一的类型标识符和长度定义的面向对象的构件,参见图1B,图1B是本发明实施例提供的容器的一个可选的结构示意图,包括容器头部(BoxHeader)和容器数据(Box Data),其中填充有用以表达各种信息的二进制数据。
容器头部包括容量(size)和类型(type),容量指明了容器所占用的存储空间的大小(本文中也称为容量或长度),类型指明了容器的类型。MP4文件中涉及的基本容器类型包括文件类型容器(ftyp box)、元数据容器(moov box)和媒体数据容器(mdat box)。
容器数据部分可以存储具体的数据,此时容器称为“数据容器”,容器数据部分也可以进一步封装其他类型的容器,此时容器称为“容器的容器”。
4)元数据容器,视频文件中用于存储元数据(即描述媒体数据容器中存储的多媒体数据的数据)的容器,在MP4文件中的元数据容器中存储的二进制数据表达的信息称为媒体信息。
元数据容器的头部采用二进制数据表示容器的类型为“moov box”,容器数据部分封装用于存储MP4文件的总体信息的mvhd容器,是独立于MP4文件的,并且与MP4文件的播放相关,包括时长、创建时间和修改时间等。
视频文件的媒体数据容器中可以包括对应多个轨道的子容器,例如音频轨道容器(audio track box)和视频轨道容器(video track box),在音频轨道容器和视频轨道容器的子容器中都包括了相应轨道的媒体数据的引用和描述,必要的子容器包括:用于描述轨道的特性和总体信息(如时长、宽高)的容器(记为tkhd box)、记录轨道的媒体信息(比如媒体类型和采样的信息)的容器(记为mdia box)。
就mdia box中封装的子容器而言,可以包括:记录轨道的相关属性和内容的容器(记为mdhd box),记录媒体的播放过程信息的容器(记为hdlr box),描述轨道中媒体数据的媒体信息的容器(记为minf box);minf box中又封装了用于解释如何定位媒体信息的子容器(记为dinf box)、以及用于记录轨道中采样的所有时间信息(解码时间/显示时间)、位置信息和编解码等信息的子容器(记为stbl box)。
参见图1C,图1C是本发明实施例提供的视频文件中的媒体数据容器存储音视频数据的结构示意图,利用从stbl box容器中二进制数据所识别出的媒体信息,可以解释采样的时间、类型、容量以及在媒体数据容器中的位置,下面说明stbl box中的各个子容器。
stsd box包含了一个采样描述(sample description)表,根据不同的编码方案和存储数据的文件数目,每个媒体文件中可以有一个或多个描述表,通过描述表可以找到每个采样的描述信息,描述信息可以保证采样的正确的解码,不同的媒体类型存储不同的描述信息,例如,视频媒体而言描述信息就是图像的结构。
5)媒体数据容器,媒体文件中用于存储多媒体数据的容器,例如,在MP4文件中媒体数据容器,如图1C所示,采样是媒体数据容器中存储的单位,比如音频sample和视频sample,存储在媒体文件的块中,块和样本的长度均可互不相同。
基于上述对本发明实施例中涉及的名词和术语的解释,下面说明本发明实施例提供的视频的播放方法的实施场景,参见图2,图2是本发明实施例提供的视频的播放方法的实施场景示意图,为实现支撑一个示例性应用,终端(包括终端300-1和终端300-2)通过网络200连接服务器100,网络200可以是广域网或者局域网,又或者是二者的组合,使用无线或有线链路实现数据传输。
终端(如终端300-1),用于响应于针对目标视频的视频播放指令,获取目标视频的音频播放参数和视频播放参数;基于音频播放参数和视频播放参数,确定在目标视频中,对应相同播放时间点的音频帧和视频帧之间的帧间隔数;基于确定的帧间隔数,确定播放目标视频所需的缓存容量;基于播放目标视频所需的缓存容量,更新目标视频当前的播放缓存容量;
终端(如终端300-1),还用于发送对应目标视频的数据获取请求至服务器100。
服务器100,用于接收到视频数据获取请求,返回目标视频的数据至终端;
终端(如终端300-1),用于接收目标视频的数据,并基于更新后的播放缓存容量,播放目标视频。
在实际应用中,服务器100既可以为单独配置的支持各种业务的一个服务器,亦可以配置为一个服务器集群,或者云服务器;终端(如终端300-1)可以为智能手机、平板电脑、笔记本电脑等各种类型的用户终端,还可以为可穿戴计算设备、个人数字助理(PDA)、台式计算机、蜂窝电话、媒体播放器、导航设备、游戏机、电视机、或者这些数据处理设备或其他数据处理设备中任意一个或多个的组合。
下面对本发明实施例提供的视频的播放方法的电子设备的硬件结构做详细说明,电子设备包括但不限于服务器或终端,例如,该电子设备可以是上述图2中的终端(如终端300-1),也可以是服务器100。以电子设备为终端为例,参见图3,图3是本发明实施例提供的终端的结构示意图,图3所示的终端300包括:至少一个处理器310、存储器350、至少一个网络接口320和用户接口330。终端300中的各个组件通过总线***340耦合在一起。可理解,总线***340用于实现这些组件之间的连接通信。总线***340除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图3中将各种总线都标为总线***340。
处理器310可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口330包括使得能够呈现媒体内容的一个或多个输出装置331,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口330还包括一个或多个输入装置332,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器350可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器350可选地包括在物理位置上远离处理器310的一个或多个存储设备。
存储器350包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Me mory),易失性存储器可以是随机存取存储器(RAM,Random Access Memor y)。本发明实施例描述的存储器350旨在包括任意适合类型的存储器。
在一些实施例中,存储器350能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作***351,包括用于处理各种基本***服务和执行硬件相关任务的***程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块352,用于经由一个或多个(有线或无线)网络接口320到达其他计算设备,示例性的网络接口320包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;
呈现模块353,用于经由一个或多个与用户接口330相关联的输出装置331(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作***设备和显示内容和信息的用户接口);
输入处理模块354,用于对一个或多个来自一个或多个输入装置332之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本发明实施例提供的视频的播放装置可以采用软件方式实现,图3示出了存储在存储器350中的视频的播放装置355,其可以是程序和插件等形式的软件,包括以下软件模块:获取模块3551、第一确定模块3552、第二确定模块3553、更新模块3554和播放模块3555,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分,将在下文中说明各个模块的功能。
在另一些实施例中,本发明实施例提供的视频的播放装置可以采用软硬件结合的方式实现,作为示例,本发明实施例提供的视频的播放装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本发明实施例提供的视频的播放方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application SpecificIntegrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,Comp lex Programmable Logic Device)、现场可编程门阵列(FPGA,Field-Programm able Gate Array)或其他电子元件。
接下来首先对异常视频文件进行示例性说明,具体如图4所示,图4是本发明实施例提供的异常视频文件的示意图。这里,An表示音频的第n个音频帧,Vn表示视频的第n个视频帧,其中,n为大于或者等于1的整数。在实际应用中,音频的一帧数据的持续时长可以是20毫秒(ms),视频的一帧数据的持续时长可以是40ms。如图4所示,文件偏移位置POS1处的音频帧A6的时间戳是120ms,此时与其相邻的视频帧V3的时间戳也是120ms,此时在播放过程中,可以依次读取音频帧A6、视频帧V3即可实现视频文件的正常播放。
但是由于该视频文件的编码特殊性,造成从V3后续的连续500个帧数据都是写入的音频帧数据,此时到达POS2位置附近的音频帧A506的时间戳是10120ms,而与其相邻的视频帧V4的时间戳是160ms,即此时对应相同播放时间点的音视频帧(V4与A8)之间相隔了500个音频帧。按照视频文件顺序读取的逻辑,这段时间内读取到的都是音频帧,而这些数据需要缓存起来等待解码、同步以及播放;如果此时设置的播放器最大缓存小于500个帧,就会导致音频队列饱和,而视频队列处于饥饿状态,即缓存的数据中不包含对应各个时间点音频帧的视频帧。此时音频帧数据不断解码、同步输出后,时间戳已经远远超过视频帧的时间戳,等待视频帧数据读取到后,再解码同步发现远远落后于音频,就会出现音画不同步的现象,即使可以通过跳帧处理来避免,但是跳帧处理会导致画面跳动,影响用户的观看体验。虽然相关技术中通常设置一个比较大的播放器缓存,但是对于标准的视频文件来说,会导致带宽的浪费以及内存的增长;并且如果某个特殊视频的相同播放时间点之间的音视频帧数据大于设定的播放器缓存,还将导致视频文件无法播放或者播放卡顿的问题。
基于此,本发明实施例提供一种视频的播放方法,以至少解决上述存在的问题。接下来基于上述对本发明实施例的视频的播放方法的实施场景及电子设备的说明,对本发明实施例提供的视频的播放方法进行说明。参见图5,图5是本发明实施例提供的视频的播放方法的流程示意图;在一些实施例中,该视频的播放方法可由服务器或终端单独实施,或由服务器及终端协同实施,以终端实施为例,本发明实施例提供的视频的播放方法包括:
步骤501:终端获取目标视频的音频播放参数和视频播放参数。
在实际应用中,终端上设置有用于视频播放的客户端,通过运行用于视频播放的客户端,实现目标视频的视频文件的获取、解码与播放。在播放目标视频时,需要获取目标视频的音频播放参数和视频播放参数,以基于获取的音频播放参数和视频播放参数,来播放目标视频。
在一些实施例中,终端可通过如下方式获取目标视频的音频播放参数和视频播放参数:获取目标视频的元数据;基于元数据,获取目标视频中各音频帧对应的偏移量和时间戳,将各音频帧对应的偏移量和时间戳作为音频播放参数;并基于元数据,获取目标视频中各视频帧对应的偏移量和时间戳,将各视频帧对应的偏移量和时间戳作为视频播放参数。
在实际应用中,播放器通过解析目标视频的视频文件,得到用于描述媒体数据的元数据。该元数据中承载有确保媒体数据被正确解码的媒体信息,通过解析该目标视频的元数据,即可以获取到目标视频的视频文件的基本媒体信息,比如,音视频编码方式、音视频帧的相关描述(时间戳、偏移量等)等。
具体地,参见图1A,图1A描述了MP4文件格式结构图,MP4视频文件主要由不同功能描述的Box结构组成。其中元数据容器(MOOV Box)是视频文件媒体信息的相关描述,媒体数据容器(MDAT Box)是视频文件实际音视频数据结构。通过解析MOOV结构,就可以获取到该目标视频的视频文件的基本媒体信息。
在获取到目标视频的元数据后,将解析得到的元数据进行进一步解析,得到目标视频中,各音频帧在目标视频的视频文件中的偏移量和时间戳,以及各视频帧在目标视频的视频文件中的偏移量和时间戳。
步骤502:基于音频播放参数和视频播放参数,确定在目标视频中,对应相同播放时间点的音频帧和视频帧之间的帧间隔数。
终端获取到目标视频的音频播放参数和视频播放参数后,基于目标视频的音频播放参数和视频播放参数,确定在目标视频中,对应相同播放时间点的音频帧和视频帧之间的帧间隔数。
在一些实施例中,终端可通过如下方式确定在目标视频中,对应相同播放时间点的音频帧和视频帧之间的帧间隔数:对目标视频中的音频帧和视频帧进行遍历,确定对应相同播放时间点的音频帧和视频帧;基于音频播放参数和视频播放参数,确定对应相同播放时间点的音频帧和视频帧之间的帧间隔数。
在实际音视频帧的遍历过程中,需要每个音频帧或者视频帧的偏移量,依次遍历目标视频中的音频帧和视频帧。在实际实施中,可以定义局部变量当前音频的时间戳a_cur_dts,用于存放输出的每个音频帧的时间戳,同时也可以定义局部变量当前视频的时间戳v_cur_dts,用于存放输出的每个视频帧的时间戳。
参见图6,图6是本发明实施例提供的通过遍历音视频帧获取帧间隔数的流程示意图。这里,首先解析目标视频的视频文件的头部,获取目标视频的音频帧序列和视频帧序列、以及相应的音频播放参数(各音频帧对应的时间戳和偏移量)、视频播放参数(各视频帧对应的时间戳和偏移量)。
然后根据各音频帧和视频帧的偏移量,依次读取目标视频中的音频帧和视频帧。比较读取的音频帧和视频帧的偏移量大小。当音频帧的偏移量小于视频帧的偏移量时,则输出音频帧的时间戳,即更新定义的当前音频的时间戳a_cur_dts为读取的音频帧的时间戳;当音频帧的偏移量大于视频帧的偏移量时,则输出视频帧的时间戳,即更新定义的当前视频的时间戳v_cur_dts为读取的视频帧的时间戳。
比较读取的音频帧和视频帧的时间戳大小,即比较更新后的a_cur_dts和v_cur_dts的大小。当音频帧的时间戳大于视频帧的时间戳时,则基于音频帧的时间戳和视频帧的时间戳的差值、以及每个音频帧的持续时长,确定读取的音频帧和视频帧之间的帧间隔数,即当前连续音频帧的个数a_sample_dif;当音频帧的时间戳小于视频帧的时间戳时,则基于音频帧的时间戳和视频帧的时间戳的差值、以及每个视频帧的持续时长,确定读取的音频帧和视频帧之间的帧间隔数,即当前连续视频帧的个数v_sample_dif。
这里,由于目标视频中可能存在多个具备帧间隔数的相同播放时间点,为保证播放器可以正常播放整个目标视频,此时则需要获取帧间隔数最大的播放时间点所对应的帧间隔数。即根据遍历过程中,输出的每个帧间隔数,去更新之前设置或者遍历统计得到的最大帧间隔数max_dif。
遍历目标视频中所有的音频帧和视频帧,最后输出遍历得到的最大帧间隔数max_dif,该最终输出的最大帧间隔数,即为目标视频中对应相同播放时间点的音频帧和视频帧之间的最大帧间隔数。在实际应用中,目标视频中帧间隔数最大的音频帧和视频帧在物理存储位置上是最接近的,即偏移量是最接近的,因此还可根据目标视频中偏移量最接近的目标音频帧和目标视频帧,来确定目标视频中的最大帧间隔数。
在一些实施例中,终端还可通过如下方式确定在目标视频中,对应相同播放时间点的音频帧和视频帧之间的帧间隔数:基于音频帧对应的偏移量、以及视频帧对应的偏移量,确定在目标视频中,对应相邻偏移位置的目标音频帧和目标视频帧;基于目标音频帧的时间戳、和目标视频帧时间戳,确定目标音频帧和目标视频帧之间的帧间隔数;将确定的目标音频帧和目标视频帧之间的帧间隔数,作为对应相同播放时间点的音频帧和视频帧之间的帧间隔数。
在实际应用中,根据音频帧对应的偏移量、以及视频帧对应的偏移量,确定在目标视频中,对应相邻偏移位置的目标音频帧和目标视频帧,这里该目标音频帧和目标视频帧的个数可能为多个;然后基于目标音频帧的时间戳、和目标视频帧时间戳,确定相应目标音频帧和目标视频帧之间的帧间隔数;最后将目标音频帧和目标视频帧之间的帧间隔数,作为对应相同播放时间点的音频帧和视频帧之间的帧间隔数。
在一些实施例中,终端可通过如下方式确定目标音频帧和目标视频帧之间的帧间隔数:比较目标音频帧的时间戳与目标视频帧时间戳的大小;当目标音频帧的时间戳大于目标视频帧时间戳时,基于目标音频帧的时间戳与目标视频帧时间戳的差值、以及每个音频帧的持续时长,确定目标音频帧和目标视频帧之间的帧间隔数;当目标音频帧的时间戳小于目标视频帧的时间戳时,基于目标音频帧的时间戳与目标视频帧的时间戳的差值、以及每个视频帧的持续时长,确定目标音频帧和目标视频帧之间的帧间隔数。
这里,示例性地,目标音频帧和目标视频帧的时间戳差值为2s,且目标音频帧的时间戳大于目标视频帧的时间戳,此时则根据时间戳差值、及每个音频帧的持续时长(如20ms),确定帧间隔数为100帧。
步骤503:基于确定的帧间隔数,确定播放目标视频所需的缓存容量。
在确定目标视频中对应相同播放时间点的音频帧和视频帧之间的帧间隔数后,由于需要在同一时刻对相同播放时间点的音频帧和视频帧进行解码播放,因此需要依次读取并缓存相同播放时间点的音频帧和视频帧之间的所有帧,以保证目标视频在播放时的音画同步。所以,在确定帧间隔数之后,需要基于确定的帧间隔数,确定播放目标视频时所需的缓存容量。该缓存容量可以是以帧的个数为基准设置的,也可以是以音频帧或者视频帧的数据量大小设置的。
在一些实施例中,终端可通过如下方式确定播放目标视频所需的缓存容量:将帧间隔数与播放缓存帧数进行比较,得到第一比较结果;其中,播放缓存帧数与目标视频当前的播放缓存容量相对应;基于第一比较结果,确定播放目标视频所需的缓存容量。
在一些实施例中,基于比较结果,终端可通过如下方式确定播放目标视频所需的缓存容量:当第一比较结果表征帧间隔数大于播放缓存帧数时,获取帧间隔数对应的帧数据大小;基于帧间隔数对应的帧数据大小,确定播放目标视频所需的缓存容量。
这里,播放器在创建时,应用层根据不同播放场景(比如直播、点播、电视剧、电影等)设置不同的播放缓存容量帧个数。为保证播放器可以正常播放该目标视频,将目标视频中对应相同播放时间点的音频帧和视频帧之间的帧间隔数,与播放器初始设置的播放缓存帧数进行比较,得到第一比较结果。这里,在比较帧间隔数和播放缓存帧数时,两者需要基于相同的帧类型进行比较,比如帧间隔数为音频帧的帧间隔数,那么则与音频帧的播放缓存帧数进行比较。
当该第一比较结果表征帧间隔数大于播放缓存帧数时,也就是说当前播放器设置的播放缓存容量不足以支持目标视频的播放,无法保证音画同步,此时则需要调整播放器的播放缓存容量为播放目标视频实际所需的缓存容量。
具体地,播放目标视频所需的缓存容量可通过如下方式得到:当该播放器初始播放缓存容量是以帧的个数为基准设置的,则可以将确定的帧间隔数作为播放目标视频所需的缓存容量;当该播放器初始播放缓存容量是以音频帧或者视频帧的数据量大小设置的,则可以根据确定的帧间隔数,获取该帧间隔数对应的帧数据大小,比如10MB、5GB等,进而将帧间隔数对应的帧数据大小作为播放目标视频所需的缓存容量。
当该第一比较结果表征帧间隔数小于播放缓存帧数时,也就是说当前播放器设置的播放缓存容量可以支持目标视频的播放,能够保证音画同步,此时则不需要调整播放器的播放缓存容量,即将播放器的播放缓存容量作为播放目标视频所需的缓存容量。在另外一些实施例中,也可以将播放器的播放缓存容量调整为目标视频实际所需的缓存容量(即较小的播放缓存容量),以减少占用的内存空间,提升带宽利用率。
在一些实施例中,终端还可通过如下方式确定播放目标视频所需的缓存容量:基于确定的帧间隔数,确定对应帧间隔数的帧数据大小;将对应帧间隔数的帧数据大小与目标视频当前的播放缓存容量进行比较,并基于比较得到的第二比较结果确定播放目标视频所需的缓存容量。
在一些实施例中,终端可通过如下方式确定对应帧间隔数的帧数据大小:获取对应帧间隔数的音频帧和视频帧之间帧的类型,及类型的帧的大小;基于帧的类型、帧的大小及帧间隔数,确定对应帧间隔数的帧数据大小。
这里,播放器在创建时,应用层还可以根据不同播放场景(比如直播、点播、电视剧、电影等)设置不同的播放缓存容量,该播放缓存容量以音视频帧的数据大小为基准设置。此时,需要将目标视频中对应相同播放时间点的音频帧和视频帧之间的帧间隔数,转换为对应的帧数据大小,然后再进行比较。具体地,可通过获取对应帧间隔数的音频帧和视频帧之间帧的类型、以及该类型帧的大小,基于帧的类型、帧的大小及帧间隔数,确定对应帧间隔数的帧数据大小。示例性地,音频帧和视频帧之间帧的类型为音频帧,每个音频帧的数据大小为320字节,帧间隔数为500,此时可以将每个音频帧的大小与帧间隔数相乘得到对应的帧数据大小。具体每个音频帧或者视频帧的数据大小可以根据音频或者视频的采样率、采样间隔、采样通道等进行计算。
在确定对应帧间隔数的帧数据大小后,将对应帧间隔数的帧数据大小与目标视频当前的播放缓存容量进行比较,得到第二比较结果。当该第二比较结果表征对应帧间隔数的帧数据大小大于当前的播放缓存容量时,则当前播放器设置的播放缓存容量不足以支持目标视频的播放,此时则需要调整播放器的播放缓存容量,具体可以将对应帧间隔数的帧数据大小作为播放目标视频所需的缓存容量。
当该第二比较结果表征对应帧间隔数的帧数据大小小于当前的播放缓存容量时,则当前播放器设置的播放缓存容量足以支持目标视频的播放,此时则不需要调整播放器的播放缓存容量,即将播放器的播放缓存容量作为播放目标视频所需的缓存容量。在另外一些实施例中,也可以将播放器的播放缓存容量调整为目标视频实际所需的缓存容量(即较小的播放缓存容量),以减少占用的内存空间,提升带宽利用率。
在一些实施例中,终端还可通过如下方式确定播放目标视频所需的缓存容量:当目标视频中存在至少两个具备帧间隔数的播放时间点时,获取帧间隔数最大的播放时间点所对应的帧间隔数;基于帧间隔数最大的播放时间点所对应的帧间隔数,确定播放目标视频所需的缓存容量。
这里,在实际应用中,目标视频中可能存在多个具备帧间隔数的相同播放时间点。为保证播放器可以正常播放整个目标视频,此时则需要获取帧间隔数最大的播放时间点所对应的帧间隔数,即目标视频所对应的最大帧间隔数;从而基于该帧间隔数最大的播放时间点所对应的帧间隔数,确定播放目标视频所需的缓存容量。
步骤504:基于播放目标视频所需的缓存容量,更新目标视频当前的播放缓存容量。
这里,缓存容量和播放缓存容量都是用来描述缓存的大小,具体是缓存的数据量的大小、或者缓存的帧数的大小等。
在一些实施例中,基于播放目标视频所需的缓存容量,终端可通过如下方式更新目标视频当前的播放缓存容量:将播放目标视频所需的缓存容量、与目标视频当前的播放缓存容量进行比较,得到第三比较结果;当第三比较结果表征所需的缓存容量小于当前的播放缓存容量时,将目标视频当前的播放缓存容量,更新为播放目标视频所需的缓存容量,或者保持目标视频当前的播放缓存容量不变;当第三比较结果表征所需的缓存容量大于当前的播放缓存容量时,将目标视频当前的播放缓存容量,更新为播放目标视频所需的缓存容量。
这里,为保证播放器可以正常播放目标视频,将播放目标视频所需的缓存容量、与目标视频当前的播放缓存容量进行比较,得到第三比较结果。
当第三比较结果表征目标视频所需的缓存容量小于播放器的播放缓存容量时,则认为当前播放器设置的播放缓存容量可以支持目标视频的播放,能够保证音画同步,此时可以保持播放器的播放缓存容量不变,以基于播放器的播放缓存容量进行目标视频的播放。在另外一些实施例中,也可以将播放器的播放缓存容量调整为目标视频所需的播放缓存容量(即较小的播放缓存容量),以减少占用的内存空间,提升带宽利用率。
当第三比较结果表征目标视频所需的缓存容量大于播放器的播放缓存容量时,则认为当前播放器设置的播放缓存容量不足以支持目标视频的播放,无法保证音画同步,此时则需要调整播放器的播放缓存容量为目标视频所需的播放缓存容量,以基于更大的播放缓存容量来播放该目标视频。
在实际实施时,更新播放器的播放缓存容量时,可以将该播放缓存容量设置得比播放目标视频所需的缓存容量稍大一些,以保证在缓存完对应间隔的帧数据后,还可以继续缓存要播放的帧数据。比如,在相同播放时间点的A10和V10之间存在500个间隔帧,那么设置的播放缓存容量需要大于500个间隔帧,以保证在缓存完500个间隔帧之后,可以继续缓存V10帧数据,从而实现A10和V10的同步播放。
步骤505:基于更新后的播放缓存容量,播放目标视频。
这里,如果播放器针对目标视频的播放缓存容量发生了更新,则基于更新后的播放缓存容量,播放目标视频;如果播放器针对目标视频的播放缓存容量未发生更新,则基于原始的播放缓存容量,播放目标视频。
应用本发明上述实施例,首先基于目标视频的音频播放参数和视频播放参数,确定在目标视频中,对应相同播放时间点的音频帧和视频帧之间的帧间隔数;进而基于该帧间隔数确定播放目标视频所需的缓存容量;以基于该缓存容量对目标视频当前的播放缓存容量进行更新,进而基于更新后的播放缓存容量,播放目标视频。
这里,由于播放缓存容量是基于目标视频中对应相同播放时间点的音频帧和视频帧之间的帧间隔数设置的,可以保证目标视频的音画同步,从而实现正常播放;同时在播放目标视频时,采用的播放缓存容量是根据播放目标视频所需的缓存容量设置,如此,能够实现播放缓存容量的动态设置,避免了过大缓存导致内存增长和带宽浪费,或者过小缓存无法支持视频正常播放的问题。
下面将说明本发明实施例在一个实际的应用场景中的示例性应用。
接下来首先对异常视频文件进行示例性说明,具体如图4所示。其中,An表示音频的第n个音频帧,Vn表示视频的第n个视频帧,其中,n为大于或者等于1的整数。在实际应用中,音频的一帧数据的持续时长可以是20ms,视频的一帧数据的持续时长可以是40ms。如图4所示,文件偏移位置POS1处的音频帧A6的时间戳是120ms,此时与其相邻的视频帧V3的时间戳也是120ms,此时在播放过程中,可以依次读取音频帧A6、视频帧V3即可实现视频文件的正常播放。
但是由于该视频文件的编码特殊性,造成从V3后续的连续500个帧数据都是写入的音频帧数据,此时到达POS2位置附近的音频帧A506的时间戳是10120ms,而与其相邻的视频帧V4的时间戳是160ms,即此时对应相同播放时间点的音视频帧(V4与A8)之间相隔了500个音频帧。按照视频文件顺序读取的逻辑,这段时间内读取到的都是音频帧,而这些数据需要缓存起来等待解码、同步以及播放;如果此时设置的播放器最大缓存小于500个帧,就会导致音频队列饱和,而视频队列处于饥饿状态,即缓存的数据中不包含对应各个时间点音频帧的视频帧。此时音频帧数据不断解码、同步输出后,时间戳已经远远超过视频帧的时间戳,等待视频帧数据读取到后,再解码同步发现远远落后于音频,就会出现音画不同步的现象,即使可以通过跳帧处理来避免,但是跳帧处理会导致画面跳动,影响用户的观看体验。
虽然相关技术中通常设置一个比较大的播放器缓存,但是对于标准的视频文件来说,会导致带宽的浪费以及内存的增长;并且如果某个特殊视频的相同播放时间点之间的音视频帧数据大于设定的播放器缓存,还将导致视频文件无法播放或者播放卡顿的问题。
基于此,本发明实施例提供一种视频的播放方法,以至少解决上述存在的问题。请参见图7,图7是本发明实施例提供的视频的播放方法的整体结构图,这里,本发明实施例提供的视频的播放方法主要包括:
(1)文件音视频交错写入检测单元,用于在每个目标视频播放之前,对目标视频的视频文件进行预处理,检测目标视频中,对应相同播放时间点的音频帧和视频帧之间的帧间隔数,以得到目标视频中对应相同播放时间点的音频帧和视频帧之间的最大帧间隔数,即目标视频中音视频交错写入的最大帧间隔数。
(2)动态设置播放器缓存单元,用于根据文件音视频交错写入检测单元获取的目标视频中对应相同播放时间点的音频帧和视频帧之间的最大帧间隔数,针对目标视频,设置对应该目标视频的播放缓存容量。
(3)播放器播放单元,用于基于上述设置的目标视频的播放缓存容量,播放目标视频。
接下来对本发明实施例提供的视频的播放方法继续进行详细说明,参见图8,图8为本发明实施例提供的视频的播放方法的流程示意图,本发明实施例提供的视频的播放方法包括:
步骤801:终端解析目标视频的视频文件,获取目标视频的元数据。
这里,终端设置有用于视频播放的客户端。
在实际应用中,终端运行视频播放客户端,通过解析目标视频的视频文件,得到用于描述媒体数据的元数据,其中承载有确保媒体数据被正确解码的媒体信息,通过解析该目标视频的元数据,即可以获取到目标视频的视频文件的基本媒体信息。
参见图1A,图1A描述了MP4文件格式结构图,主要由不同功能描述的Box结构组成。其中MOOV根Box是视频文件媒体信息的相关描述,而MDAT根Box是视频文件实际音视频数据结构。通过解析MOOV结构,就可以获取到该视频文件的基本媒体信息,比如,音视频编码方式、音视频sample相关描述等。
步骤802:解析目标视频的元数据,获取目标视频中各音频帧对应的偏移量和时间戳、以及获取目标视频中各视频帧对应的偏移量和时间戳。
这里,通过解析目标视频的元数据,获取音视频帧的相关信息,比如音频帧或者视频帧在目标视频的视频文件中的偏移量POS、对应的时间戳DTS、编码格式等。
步骤803:对目标视频中的音频帧和视频帧进行遍历。
步骤804:在遍历过程中,基于读取的各音频帧对应的偏移量和时间戳、以及各视频帧对应的偏移量和时间戳,检测目标视频中对应相同播放时间点的音频帧和视频帧之间的帧间隔数,得到目标视频中对应相同播放时间点的音频帧和视频帧之间的最大帧间隔数。
这里,目标视频中对应相同播放时间点的音频帧和视频帧之间的最大帧间隔数,即为目标视频的视频文件中音视频帧交错的最大帧个数。
在遍历过程中,根据POS位置,依次遍历目标视频中的音频帧和视频帧。在实际实施中,可以定义局部变量当前音频的时间戳a_cur_dts,用于存放输出的每个音频帧的时间戳,同时也可以定义局部变量当前视频的时间戳v_cur_dts,用于存放输出的每个视频帧的时间戳。
具体在音频帧和视频帧的遍历过程可参见图6。
步骤a:解析目标视频的视频文件的头部,获取目标视频的音频帧队列和视频帧队列;
步骤b:比较读取的音频帧和视频帧的偏移量大小,判断音频帧的偏移量是否大于视频帧的偏移量;
这里,是根据存储的POS位置(即音频帧或视频帧偏移量),依次读取目标视频中的音频帧和视频帧,然后比较读取的音频帧和视频帧的偏移量大小。
步骤c:当音频帧的偏移量小于视频帧的偏移量时,则输出音频帧的时间戳,即更新定义的当前音频的时间戳a_cur_dts为读取的音频帧的时间戳;
步骤d:当音频帧的偏移量大于视频帧的偏移量时,则输出视频帧的时间戳,即更新定义的当前视频的时间戳v_cur_dts为读取的视频帧的时间戳。
步骤e:比较读取的音频帧和视频帧的时间戳大小(即比较更新后的a_cur_dts和v_cur_dts的大小),判断当前音频的时间戳a_cur_dts是否大于当前视频的时间戳v_cur_dts;
步骤f:当音频帧的时间戳大于视频帧的时间戳时,则基于音频帧的时间戳和视频帧的时间戳的差值、以及每个音频帧的持续时长,确定读取的音频帧和视频帧之间的帧间隔数,即当前连续音频帧的个数a_sample_dif;
步骤g:判断当前连续音频帧的个数a_sample_dif是否大于最大帧间隔数max_dif;
步骤h:当音频帧的时间戳小于视频帧的时间戳时,则基于音频帧的时间戳和视频帧的时间戳的差值、以及每个视频帧的持续时长,确定读取的音频帧和视频帧之间的帧间隔数,即当前连续视频帧的个数v_sample_dif。
步骤i:判断当前连续视频帧的个数v_sample_dif是否大于最大帧间隔数max_dif;
步骤j:当前连续音频帧的个数a_sample_dif大于最大帧间隔数max_dif,或者当前连续视频帧的个数a_sample_dif大于最大帧间隔数max_dif,则更新最大帧间隔数max_dif;
需要说明的是,这里的步骤g和步骤i,所判断的是当前所读取音频帧和视频帧之间的帧间隔数是否大于之前设置或者遍历统计得到的最大帧间隔数max_dif。当确定的当前所读取音频帧和视频帧之间的帧间隔数、大于之前设置或者遍历统计得到的最大帧间隔数max_dif,则更新最大帧间隔数为确定的当前所读取音频帧和视频帧之间的帧间隔数;如果不大于,则不更新最大帧间隔数max_dif。继续遍历下一个音频帧或者视频帧。
遍历目标视频中所有的音频帧和视频帧,最后输出遍历得到的最大帧间隔数,该最终输出的最大帧间隔数,即为目标视频中对应相同播放时间点的音频帧和视频帧之间的最大帧间隔数。在实际应用中,目标视频中帧间隔数最大的音频帧和视频帧在物理存储位置上是最接近的,即偏移量是最接近的,因此还可根据目标视频中偏移量最接近的目标音频帧和目标视频帧,来确定目标视频中的最大帧间隔数。
进一步地,具体在实际播放时,客户端应用层调用播放器播放目标视频时,传入目标视频实际的播放URL地址,播放器根据目标视频的URL地址,解析目标视频源信息,以根据解析的目标视频源信息,确定目标视频中对应相同播放时间点的音频帧和视频帧之间的最大帧间隔数,从而将最大帧间隔数返回播放器引擎层。
步骤805:比较基于步骤804得到的最大帧间隔数、与播放器设置的最大缓存帧个数,如果最大帧间隔数大于最大缓存帧个数,则执行步骤806;如果大帧间隔数小于最大缓存帧个数,则执行步骤807。
这里,播放器在创建时,应用层根据不同播放场景(比如直播、点播、电视剧、电影等)设置不同的播放器最大缓存帧个数。
播放器引擎层将步骤804得到的最大帧间隔数、与应用层初始化设置的最大缓存帧个数进行比较;如果最大帧间隔数大于最大缓存帧个数,则执行步骤806;如果大帧间隔数小于最大缓存帧个数,则执行步骤807。
步骤806:更新最大缓存帧个数为最大帧间隔数,根据更新后的最大缓存帧个数,设置播放缓存容量。
这里,播放缓存容量可以根据帧的个数设置,比如可以将播放缓存容量设置为比最大缓存帧个数稍大的帧个数。
步骤807:保持最大缓存帧个数不变。
步骤808:向服务器发送目标视频的视频数据获取请求。
步骤809:服务器响应于该视频数据获取请求,返回目标视频的视频数据至播放器。
步骤810:终端基于返回的视频数据,以及更新后的播放缓存容量,播放目标视频。
这里,如果最大缓存帧个数未发生改变,则根据初始设置的播放缓存容量播放目标视频。
应用上述实施例,通过针对待播放的目标视频提前进行最大帧间隔数检测,进而根据检测结果自适应更新播放器对应目标视频的播放缓存容量,以基于更新的播放缓存容量播放目标视频,确保异常视频的正常播放,同时不影响标准视频的播放;如此不仅提高了播放器对异常视频文件的兼容性,还避免了因为个别异常文件,导致增大所有播放器最大缓存,从而造成带宽浪费以及播放体验差的问题。
下面继续说明本发明实施例提供的视频的播放装置355,在一些实施例中,视频的播放装置可采用软件模块的方式实现。参见图9,图9是本发明实施例提供的视频的播放装置355的结构示意图,本发明实施例提供的视频的播放装置355包括:
获取模块3551,用于获取目标视频的音频播放参数和视频播放参数;
第一确定模块3552,用于基于所述音频播放参数和所述视频播放参数,确定在所述目标视频中,对应相同播放时间点的音频帧和视频帧之间的帧间隔数;
第二确定模块3553,用于基于确定的所述帧间隔数,确定播放所述目标视频所需的缓存容量;
更新模块3554,用于基于播放所述目标视频所需的缓存容量,更新所述目标视频当前的播放缓存容量;
播放模块3555,用于基于所述更新后的所述播放缓存容量,播放所述目标视频。
在一些实施例中,所述获取模块3551,还用于获取所述目标视频的元数据;
基于所述元数据,获取所述目标视频中各音频帧对应的偏移量和时间戳,将各音频帧对应的偏移量和时间戳作为所述音频播放参数;并
基于所述元数据,获取所述目标视频中各视频帧对应的偏移量和时间戳,将各视频帧对应的偏移量和时间戳作为所述视频播放参数。
在一些实施例中,所述第一确定模块3552,还用于基于所述音频帧对应的偏移量、以及所述视频帧对应的偏移量,确定在所述目标视频中,对应相邻偏移位置的目标音频帧和目标视频帧;
基于所述目标音频帧的时间戳、和所述目标视频帧时间戳,确定所述目标音频帧和目标视频帧之间的帧间隔数;
将确定的所述目标音频帧和目标视频帧之间的帧间隔数,作为对应相同播放时间点的音频帧和视频帧之间的帧间隔数。
在一些实施例中,所述第一确定模块3552,还用于比较所述目标音频帧的时间戳与所述目标视频帧时间戳的大小;
当所述目标音频帧的时间戳大于所述目标视频帧时间戳时,基于所述目标音频帧的时间戳与所述目标视频帧时间戳的差值、以及每个音频帧的持续时长,确定所述目标音频帧和目标视频帧之间的帧间隔数;
当所述目标音频帧的时间戳小于所述目标视频帧时间戳时,基于所述目标音频帧的时间戳与所述目标视频帧时间戳的差值、以及每个视频帧的持续时长,确定所述目标音频帧和目标视频帧之间的帧间隔数。
在一些实施例中,所述第一确定模块3552,还用于对所述目标视频中的音频帧和视频帧进行遍历,确定对应相同播放时间点的音频帧和视频帧;
基于所述音频播放参数和所述视频播放参数,确定对应相同播放时间点的音频帧和视频帧之间的帧间隔数。
在一些实施例中,所述第二确定模块3553,还用于将所述帧间隔数与播放缓存帧数进行比较,得到第一比较结果;其中,所述播放缓存帧数与所述目标视频当前的播放缓存容量相对应;
基于所述第一比较结果,确定播放所述目标视频所需的缓存容量。
在一些实施例中,所述第二确定模块3553,还用于当所述第一比较结果表征所述帧间隔数大于所述播放缓存帧数时,获取所述帧间隔数对应的帧数据大小;
基于所述帧间隔数对应的帧数据大小,确定播放所述目标视频所需的缓存容量。
在一些实施例中,所述第二确定模块3553,还用于基于确定的所述帧间隔数,确定对应所述帧间隔数的帧数据大小;
将对应所述帧间隔数的帧数据大小与所述目标视频当前的播放缓存容量进行比较,并基于所述比较得到的第二比较结果确定播放所述目标视频所需的缓存容量。
在一些实施例中,所述第二确定模块3553,还用于获取对应所述帧间隔数的音频帧和视频帧之间帧的类型,及所述类型的帧的大小;
基于所述帧的类型、所述帧的大小及所述帧间隔数,确定对应所述帧间隔数的帧数据大小。
在一些实施例中,所述第二确定模块3553,还用于当所述目标视频中存在至少两个具备所述帧间隔数的播放时间点时,获取帧间隔数最大的播放时间点所对应的帧间隔数;
基于所述帧间隔数最大的播放时间点所对应的帧间隔数,确定播放所述目标视频所需的缓存容量。
在一些实施例中,所述更新模块3554,还用于将播放所述目标视频所需的缓存容量、与所述目标视频当前的播放缓存容量进行比较,得到第三比较结果;
当所述第三比较结果表征所述所需的缓存容量小于所述当前的播放缓存容量时,将所述目标视频当前的播放缓存容量,更新为播放所述目标视频所需的缓存容量,或者保持所述目标视频当前的播放缓存容量不变;
当所述第三比较结果表征所述所需的缓存容量大于所述当前的播放缓存容量时,将所述目标视频当前的播放缓存容量,更新为播放所述目标视频所需的缓存容量。
应用本发明上述实施例,首先基于目标视频的音频播放参数和视频播放参数,确定在目标视频中,对应相同播放时间点的音频帧和视频帧之间的帧间隔数;进而基于该帧间隔数确定播放目标视频所需的缓存容量;以基于该缓存容量对目标视频当前的播放缓存容量进行更新,进而基于更新后的播放缓存容量,播放目标视频。
这里,由于播放缓存容量是基于目标视频中对应相同播放时间点的音频帧和视频帧之间的帧间隔数设置的,可以保证目标视频的音画同步,从而实现正常播放;同时在播放目标视频时,采用的播放缓存容量是根据播放目标视频所需的缓存容量设置,如此,能够实现播放缓存容量的动态设置,避免了过大缓存导致内存增长和带宽浪费,或者过小缓存无法支持视频正常播放的问题。
本发明实施例还提供一种电子设备,电子设备包括:
存储器,用于存储可执行指令;
处理器,用于执行存储器中存储的可执行指令时,实现本发明实施例提供的视频的播放方法。
本发明实施例还提供一种计算机可读存储介质,存储有可执行指令,可执行指令被处理器执行时,实现本发明实施例提供的视频的播放方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。计算机可以是包括智能终端和服务器在内的各种计算设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件***中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
以上所述,仅为本发明的实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本发明的保护范围之内。
Claims (14)
1.一种视频的播放方法,其特征在于,所述方法包括:
获取目标视频的音频播放参数和视频播放参数;
基于所述音频播放参数和所述视频播放参数,确定在所述目标视频中,对应相同播放时间点的音频帧和视频帧之间的帧间隔数;
基于确定的所述帧间隔数,确定播放所述目标视频所需的缓存容量;
基于播放所述目标视频所需的缓存容量,更新所述目标视频当前的播放缓存容量;
基于所述更新后的所述播放缓存容量,播放所述目标视频。
2.如权利要求1所述的方法,其特征在于,所述获取目标视频的音频播放参数和视频播放参数,包括:
获取所述目标视频的元数据;
基于所述元数据,获取所述目标视频中各音频帧对应的偏移量和时间戳,将各音频帧对应的偏移量和时间戳作为所述音频播放参数;并
基于所述元数据,获取所述目标视频中各视频帧对应的偏移量和时间戳,将各视频帧对应的偏移量和时间戳作为所述视频播放参数。
3.如权利要求2所述的方法,其特征在于,所述基于所述音频播放参数和所述视频播放参数,确定在所述目标视频中,对应相同播放时间点的音频帧和视频帧之间的帧间隔数,包括:
基于所述音频帧对应的偏移量、以及所述视频帧对应的偏移量,确定在所述目标视频中,对应相邻偏移位置的目标音频帧和目标视频帧;
基于所述目标音频帧的时间戳、和所述目标视频帧时间戳,确定所述目标音频帧和目标视频帧之间的帧间隔数;
将确定的所述目标音频帧和目标视频帧之间的帧间隔数,作为对应相同播放时间点的音频帧和视频帧之间的帧间隔数。
4.如权利要求3所述的方法,其特征在于,所述基于所述目标音频帧的时间戳、和所述目标视频帧时间戳,确定所述目标音频帧和目标视频帧之间的帧间隔数,包括:
比较所述目标音频帧的时间戳与所述目标视频帧时间戳的大小;
当所述目标音频帧的时间戳大于所述目标视频帧时间戳时,基于所述目标音频帧的时间戳与所述目标视频帧的时间戳的差值、以及每个音频帧的持续时长,确定所述目标音频帧和目标视频帧之间的帧间隔数;
当所述目标音频帧的时间戳小于所述目标视频帧时间戳时,基于所述目标音频帧的时间戳与所述目标视频帧的时间戳的差值、以及每个视频帧的持续时长,确定所述目标音频帧和目标视频帧之间的帧间隔数。
5.如权利要求1所述的方法,其特征在于,所述基于所述音频播放参数和所述视频播放参数,确定在所述目标视频中,对应相同播放时间点的音频帧和视频帧之间的帧间隔数,包括:
对所述目标视频中的音频帧和视频帧进行遍历,确定对应相同播放时间点的音频帧和视频帧;
基于所述音频播放参数和所述视频播放参数,确定对应相同播放时间点的音频帧和视频帧之间的帧间隔数。
6.如权利要求1所述的方法,其特征在于,所述基于确定的所述帧间隔数,确定播放所述目标视频所需的缓存容量,包括:
将所述帧间隔数与播放缓存帧数进行比较,得到第一比较结果;其中,所述播放缓存帧数与所述目标视频当前的播放缓存容量相对应;
基于所述第一比较结果,确定播放所述目标视频所需的缓存容量。
7.如权利要求6所述的方法,其特征在于,所述基于所述第一比较结果,确定播放所述目标视频所需的缓存容量,包括:
当所述第一比较结果表征所述帧间隔数大于所述播放缓存帧数时,获取所述帧间隔数对应的帧数据大小;
基于所述帧间隔数对应的帧数据大小,确定播放所述目标视频所需的缓存容量。
8.如权利要求1所述的方法,其特征在于,所述基于确定的所述帧间隔数,确定播放所述目标视频所需的缓存容量,包括:
基于确定的所述帧间隔数,确定对应所述帧间隔数的帧数据大小;
将对应所述帧间隔数的帧数据大小与所述目标视频当前的播放缓存容量进行比较,并基于所述比较得到的第二比较结果确定播放所述目标视频所需的缓存容量。
9.如权利要求8所述的方法,其特征在于,所述基于确定的所述帧间隔数,确定对应所述帧间隔数的帧数据大小,包括:
获取对应所述帧间隔数的音频帧和视频帧之间帧的类型,及所述类型的帧的大小;
基于所述帧的类型、所述帧的大小及所述帧间隔数,确定对应所述帧间隔数的帧数据大小。
10.如权利要求1所述的方法,其特征在于,所述基于确定的所述帧间隔数,确定播放所述目标视频所需的缓存容量,包括:
当所述目标视频中存在至少两个具备所述帧间隔数的播放时间点时,获取帧间隔数最大的播放时间点所对应的帧间隔数;
基于所述帧间隔数最大的播放时间点所对应的帧间隔数,确定播放所述目标视频所需的缓存容量。
11.如权利要求1所述的方法,其特征在于,所述基于播放所述目标视频所需的缓存容量,更新所述目标视频当前的播放缓存容量,包括:
将播放所述目标视频所需的缓存容量、与所述目标视频当前的播放缓存容量进行比较,得到第三比较结果;
当所述第三比较结果表征所述所需的缓存容量小于所述当前的播放缓存容量时,将所述目标视频当前的播放缓存容量,更新为播放所述目标视频所需的缓存容量,或者保持所述目标视频当前的播放缓存容量不变;
当所述第三比较结果表征所述所需的缓存容量大于所述当前的播放缓存容量时,将所述目标视频当前的播放缓存容量,更新为播放所述目标视频所需的缓存容量。
12.一种视频的播放装置,其特征在于,所述装置包括:
获取模块,用于获取目标视频的音频播放参数和视频播放参数;
第一确定模块,用于基于所述音频播放参数和所述视频播放参数,确定在所述目标视频中,对应相同播放时间点的音频帧和视频帧之间的帧间隔数;
第二确定模块,用于基于确定的所述帧间隔数,确定播放所述目标视频所需的缓存容量;
更新模块,用于基于播放所述目标视频所需的缓存容量,更新所述目标视频当前的播放缓存容量;
播放模块,用于基于所述更新后的所述播放缓存容量,播放所述目标视频。
13.一种电子设备,其特征在于,所述电子设备包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现如权利要求1至11任一项所述的视频的播放方法。
14.一种计算机可读存储介质,其特征在于,存储有可执行指令,所述可执行指令被执行时,用于实现如权利要求1至11任一项所述的视频的播放方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010533403.8A CN111669645B (zh) | 2020-06-12 | 2020-06-12 | 视频的播放方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010533403.8A CN111669645B (zh) | 2020-06-12 | 2020-06-12 | 视频的播放方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111669645A true CN111669645A (zh) | 2020-09-15 |
CN111669645B CN111669645B (zh) | 2021-09-07 |
Family
ID=72387254
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010533403.8A Active CN111669645B (zh) | 2020-06-12 | 2020-06-12 | 视频的播放方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111669645B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113518259A (zh) * | 2021-05-25 | 2021-10-19 | 龙迅半导体(合肥)股份有限公司 | 一种数据处理方法及装置 |
CN113794813A (zh) * | 2021-11-16 | 2021-12-14 | 珠海视熙科技有限公司 | 一种控制音画同步的方法、装置及计算机存储介质 |
CN113923495A (zh) * | 2021-09-08 | 2022-01-11 | 北京奇艺世纪科技有限公司 | 一种视频播放方法、***、电子设备及存储介质 |
CN115171241A (zh) * | 2022-06-30 | 2022-10-11 | 南京领行科技股份有限公司 | 一种视频帧定位方法、装置、电子设备及存储介质 |
WO2024140069A1 (zh) * | 2022-12-29 | 2024-07-04 | 北京字跳网络技术有限公司 | 视频处理方法、装置及电子设备 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101237586A (zh) * | 2008-02-22 | 2008-08-06 | 上海华平信息技术股份有限公司 | 音视频缓存同步播放的方法 |
CN101873255A (zh) * | 2009-04-27 | 2010-10-27 | 阿瓦雅公司 | 分组网络中的相关媒体流的动态缓冲和同步 |
CN102547435A (zh) * | 2011-12-16 | 2012-07-04 | Tcl集团股份有限公司 | 一种多媒体文件播放处理***及方法 |
CN103780977A (zh) * | 2014-02-26 | 2014-05-07 | 厦门雅迅网络股份有限公司 | 一种基于帧定位技术的流媒体播放方法 |
US20140126653A1 (en) * | 2010-03-02 | 2014-05-08 | Cisco Technology, Inc. | Preserving synchronized playout of auxiliary audio transmission |
CN106331847A (zh) * | 2015-07-06 | 2017-01-11 | 成都鼎桥通信技术有限公司 | 音视频播放方法及设备 |
CN106484814A (zh) * | 2016-09-23 | 2017-03-08 | 珠海格力电器股份有限公司 | 数据搜索方法及装置 |
CN106713855A (zh) * | 2016-12-13 | 2017-05-24 | 深圳英飞拓科技股份有限公司 | 一种视频播放方法及装置 |
CN107801080A (zh) * | 2017-11-10 | 2018-03-13 | 普联技术有限公司 | 一种音视频同步方法、装置及设备 |
CN108566552A (zh) * | 2018-04-20 | 2018-09-21 | 四川长虹网络科技有限责任公司 | 适用于数字机顶盒的多媒体播放方法及*** |
CN109194974A (zh) * | 2018-09-28 | 2019-01-11 | 北京北斗方圆电子科技有限公司 | 用于网络视频直播的媒体低延迟通信方法与*** |
US20190149874A1 (en) * | 2016-09-14 | 2019-05-16 | Dts, Inc. | Multimode synchronous rendering of audio and video |
CN110545468A (zh) * | 2018-05-29 | 2019-12-06 | 北京字节跳动网络技术有限公司 | 基于参数封装的媒体文件播放方法、装置及存储介质 |
-
2020
- 2020-06-12 CN CN202010533403.8A patent/CN111669645B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101237586A (zh) * | 2008-02-22 | 2008-08-06 | 上海华平信息技术股份有限公司 | 音视频缓存同步播放的方法 |
CN101873255A (zh) * | 2009-04-27 | 2010-10-27 | 阿瓦雅公司 | 分组网络中的相关媒体流的动态缓冲和同步 |
US20140126653A1 (en) * | 2010-03-02 | 2014-05-08 | Cisco Technology, Inc. | Preserving synchronized playout of auxiliary audio transmission |
CN102547435A (zh) * | 2011-12-16 | 2012-07-04 | Tcl集团股份有限公司 | 一种多媒体文件播放处理***及方法 |
CN103780977A (zh) * | 2014-02-26 | 2014-05-07 | 厦门雅迅网络股份有限公司 | 一种基于帧定位技术的流媒体播放方法 |
CN106331847A (zh) * | 2015-07-06 | 2017-01-11 | 成都鼎桥通信技术有限公司 | 音视频播放方法及设备 |
US20190149874A1 (en) * | 2016-09-14 | 2019-05-16 | Dts, Inc. | Multimode synchronous rendering of audio and video |
CN106484814A (zh) * | 2016-09-23 | 2017-03-08 | 珠海格力电器股份有限公司 | 数据搜索方法及装置 |
CN106713855A (zh) * | 2016-12-13 | 2017-05-24 | 深圳英飞拓科技股份有限公司 | 一种视频播放方法及装置 |
CN107801080A (zh) * | 2017-11-10 | 2018-03-13 | 普联技术有限公司 | 一种音视频同步方法、装置及设备 |
CN108566552A (zh) * | 2018-04-20 | 2018-09-21 | 四川长虹网络科技有限责任公司 | 适用于数字机顶盒的多媒体播放方法及*** |
CN110545468A (zh) * | 2018-05-29 | 2019-12-06 | 北京字节跳动网络技术有限公司 | 基于参数封装的媒体文件播放方法、装置及存储介质 |
CN109194974A (zh) * | 2018-09-28 | 2019-01-11 | 北京北斗方圆电子科技有限公司 | 用于网络视频直播的媒体低延迟通信方法与*** |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113518259A (zh) * | 2021-05-25 | 2021-10-19 | 龙迅半导体(合肥)股份有限公司 | 一种数据处理方法及装置 |
US11722728B2 (en) | 2021-05-25 | 2023-08-08 | Lontium Semiconductor Corporation | Data processing method and device |
CN113923495A (zh) * | 2021-09-08 | 2022-01-11 | 北京奇艺世纪科技有限公司 | 一种视频播放方法、***、电子设备及存储介质 |
CN113923495B (zh) * | 2021-09-08 | 2024-01-12 | 北京奇艺世纪科技有限公司 | 一种视频播放方法、***、电子设备及存储介质 |
CN113794813A (zh) * | 2021-11-16 | 2021-12-14 | 珠海视熙科技有限公司 | 一种控制音画同步的方法、装置及计算机存储介质 |
CN113794813B (zh) * | 2021-11-16 | 2022-02-11 | 珠海视熙科技有限公司 | 一种控制音画同步的方法、装置及计算机存储介质 |
CN115171241A (zh) * | 2022-06-30 | 2022-10-11 | 南京领行科技股份有限公司 | 一种视频帧定位方法、装置、电子设备及存储介质 |
CN115171241B (zh) * | 2022-06-30 | 2024-02-06 | 南京领行科技股份有限公司 | 一种视频帧定位方法、装置、电子设备及存储介质 |
WO2024140069A1 (zh) * | 2022-12-29 | 2024-07-04 | 北京字跳网络技术有限公司 | 视频处理方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111669645B (zh) | 2021-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111669645B (zh) | 视频的播放方法、装置、电子设备及存储介质 | |
KR101868280B1 (ko) | 정보 처리 장치, 정보 처리 방법 및 컴퓨터 판독 가능한 기록 매체 | |
CN111277869B (zh) | 视频播放方法、装置、设备和存储介质 | |
US20140297881A1 (en) | Downloading and adaptive streaming of multimedia content to a device with cache assist | |
CN110784750B (zh) | 视频播放方法、装置及计算机设备 | |
TW201123795A (en) | System, method and apparatus for dynamic media file streaming | |
US20200388304A1 (en) | Synchronously playing method and device of media file, and storage medium | |
WO2020155964A1 (zh) | 音视频的切换方法、装置、计算机设备及可读存储介质 | |
EP4016994A1 (en) | Information processing device and information processing method | |
CN108810575B (zh) | 一种发送目标视频的方法和装置 | |
US20150189365A1 (en) | Method and apparatus for generating a recording index | |
JP2016072858A (ja) | メディアデータ生成方法、メディアデータ再生方法、メディアデータ生成装置、メディアデータ再生装置、コンピュータ読み取り可能な記録媒体、及びプログラム | |
KR20140117889A (ko) | 클라이언트 장치, 서버 장치, 멀티미디어 리디렉션 시스템 및 그 방법 | |
CN115604238A (zh) | 物联网操作***的音视频处理方法、装置、设备和介质 | |
KR20070073329A (ko) | 개선된 성능을 가지는 모바일용 미디어 플레이어 구동 방법및 그 방법을 기록한 기록 매체 | |
US20230224557A1 (en) | Auxiliary mpds for mpeg dash to support prerolls, midrolls and endrolls with stacking properties | |
US11973820B2 (en) | Method and apparatus for mpeg dash to support preroll and midroll content during media playback | |
US11882170B2 (en) | Extended W3C media extensions for processing dash and CMAF inband events | |
US11588870B2 (en) | W3C media extensions for processing DASH and CMAF inband events along with media using process@append and process@play mode | |
CN116723356A (zh) | 终端多媒体数据处理方法、装置、计算机设备、存储介质 | |
KR20230086792A (ko) | 미디어 스트리밍 및 재생 동안 프리롤 및 미드롤을 지원하기 위한 방법 및 장치 | |
CN117914834A (zh) | 一种多媒体文件的播放方法、装置和电子设备 | |
CN115329122A (zh) | 音频信息处理方法、音频信息呈现方法及装置 | |
KR20170017100A (ko) | 미디어 데이터 스트리밍 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20221205 Address after: 1402, Floor 14, Block A, Haina Baichuan Headquarters Building, No. 6, Baoxing Road, Haibin Community, Xin'an Street, Bao'an District, Shenzhen, Guangdong 518133 Patentee after: Shenzhen Yayue Technology Co.,Ltd. Address before: 518000 Tencent Building, No. 1 High-tech Zone, Nanshan District, Shenzhen City, Guangdong Province, 35 Floors Patentee before: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd. |
|
TR01 | Transfer of patent right |