CN102811380A - 多媒体文件中音视频数据的解复用方法及装置 - Google Patents
多媒体文件中音视频数据的解复用方法及装置 Download PDFInfo
- Publication number
- CN102811380A CN102811380A CN2011101577440A CN201110157744A CN102811380A CN 102811380 A CN102811380 A CN 102811380A CN 2011101577440 A CN2011101577440 A CN 2011101577440A CN 201110157744 A CN201110157744 A CN 201110157744A CN 102811380 A CN102811380 A CN 102811380A
- Authority
- CN
- China
- Prior art keywords
- frame
- data frame
- multimedia file
- circuit
- longest
- 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
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/434—Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
- H04N21/4341—Demultiplexing of audio and video 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
-
- 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)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Television Signal Processing For Recording (AREA)
Abstract
本发明公开了一种多媒体文件中音视频数据的解复用方法及装置,其中,该方法包括:根据设置的最长同步时间,设置并更新最长同步时间点根据多媒体文件中每一路数据帧中当前帧的解码时间戳与最长同步时间点的比较结果,结合每一路数据帧中当前帧的字节偏移位置值的先后顺序,选择可输出数据帧;根据所选择的可输出数据帧的字节偏移位置值在多媒体文件中进行搜索定位,读取该输出数据帧,得到原始流音视频帧队列。本发明提高了多媒体文件的解复用效率。
Description
技术领域
本发明涉及多媒体文件中音视频数据的处理技术,特点涉及一种多媒体文件中音视频数据的解复用方法及装置。
背景技术
随着播放技术的提高,出现了多线程媒体播放器,图1为现有技术提供的多线程媒体播放器结构示意图,包括解复用线程模块、视频解码线程模块、视频播放线程模块、音频解码线程模块、音频播放线程模块及共享控制模块,其中,共享控制模块分别与其他线程模块交互,控制其他线程模块对多媒体文件整个的解复用、解码及播放过程。
当解复用线程模块接收到多媒体文件时,这个多媒体文件的格式可以为AVI、MP4、3GP、WMV或MKV,这个多媒体文件缓存多个数据帧,这些数据帧可以为音频数据帧,也可以为视频数据帧,这些音频数据帧或视频数据帧的缓存顺序与解码顺序并相同,所以需要进行解复用,使得解复用后的多媒体文件中数据帧的缓存顺序与解码顺序相同。因此,在共享控制模块的控制下对多媒体文件进行解复用,输出原始流音视频帧队列,其中包括按照音视解码顺序重新顺序排列的音频数据帧和视频数据帧。在共享控制模块的控制下由视频解码线程模块对原始流音视频帧队列中的音频数据帧进行解码得到诸如格式为YUV或RGB等的视频帧播放队列,发送给视频播放线程模块,视频播放线程模块在共享控制模块的控制下,将视频帧播放队列进行视频播放。在共享控制模块的控制下由音频解码线程模块对原始流音视频帧队列中的视频数据帧进行解码得到诸如PCM格式的音频帧播放队列,发送给音频播放线程模块。音频播放线程模块在共享控制模块的控制下将该音频帧播放队列播放。
在上述过程中,解复用线程模块的作用就是根据多媒体文件中的音频数据帧或视频数据帧的解码时间戳对多媒体文件中的音频数据帧或时频数据帧重新顺序排列,得到原始流音视频帧队列用于后续的音视频数据解码及播放,保证解码及播放的同步性。
对于解复用线程模块接收到的多媒体文件,可以以交织的形式或非交织的形式缓存音频数据帧和视频数据帧,所缓存的音频数据帧和视频数据帧都标识有解码时间戳。在多媒体文件中,还可以携带或不携带索引,该索引标识了每个数据帧的字节偏移位置及大小,用于在多媒体文件中定位每个数据帧。
当多媒体文件不携带索引时,则无论多媒体文件中的音频数据帧或视频数据帧是否交织,完全按照每一音频数据帧或每一视频数据帧在多媒体文件中的缓存顺序由前至后进行解复用,得到原始流音视频帧队列。
当多媒体文件携带有索引时,根据索引确定每一音频数据帧或每一视频数据帧在多媒体文件中的位置,按照解码时间戳从小到大顺序,对多媒体文件中的音频数据帧或视频数据帧的缓存位置进行跳转,得到按照解码时间戳从小到大顺序排列的原始流音视频帧队列。
图2为现有技术在多媒体文件携带有索引时,将多媒体文件解复用为原始流音视频帧队列的过程示意图,如图2的最上一行所示,多媒体文件缓存的音频数据帧或视频数据帧的顺序为:视频数据帧V1、视频数据帧V2、视频数据帧V3、....、音频数据帧A1、音频数据帧A2、音频数据帧A3、...,也就是没有将音频数据帧与视频数据帧交织缓存,并且每一视频数据帧的持续时间为40毫秒,每一音频数据帧的持续时间为20毫秒,则视频数据帧的解码时间戳依次为0、40、80、120、...,音频数据帧的解码时间戳依次为0、20、40、60、...。。这时,在复用时,就需要根据索引,按照解码时间戳从小到大顺序,对多媒体文件中的音频数据帧或视频数据帧的缓存位置进行跳转,得到按照解码时间戳从小到大顺序排列的原始流音视频帧队列,如图2中第二行所示。得到的原始流音视频帧队列为:视频数据帧V1、音频数据帧A1、音频数据帧A2、视频数据帧V2、音频数据帧A3、音频数据帧A4、视频数据帧V3、音频数据帧A5、音频数据帧A6、视频数据帧V4、音频数据帧A7、音频数据帧A8、...。在图2中,还标识了为得到原始流音视频帧队列而在多媒体文件中发生的跳转,可以看出,对于非交织缓存数据帧的多媒体文件,或者交织缓存数据帧,但没有按照解码时间戳缓存数据帧的多媒体文件,经过很多次跳转才解复用得到原始流音视频帧队列。
在对多媒体文件的解复用过程中,这种过多的索引定位及跳转操作,尤其是频繁地前后移动多媒体文件的读指针进行索引定位,会造成解复用速度变慢,效率下降。特别对远程的多媒体文件解复用时,会造成多线程媒体播放器所在客户端的网络负荷,甚至会影响后续对原始流音视频帧队列的解码及后续正常播放。
发明内容
有鉴于此,本发明提供一种多媒体文件中音视频数据的解复用方法,该方法能够提高多媒体文件的解复用效率。
本发明还提供一种多媒体文件中音视频数据的解复用装置,该装置能够提高多媒体文件的解复用效率。
本发明的技术方案是这样实现的:
一种多媒体文件中音视频数据的解复用方法,该方法包括:
根据设置的最长同步时间,设置并更新最长同步时间点;
根据多媒体文件中每一路数据帧中当前帧的解码时间戳与最长同步时间点的比较结果,结合每一路数据帧中当前帧的字节偏移位置值的先后顺序,选择可输出数据帧;
根据所选择的可输出数据帧的字节偏移位置值在多媒体文件中进行搜索定位,读取该输出数据帧,得到原始流音视频帧队列。
所述最长同步时间的设定依据解复用后得到的原始流音视频帧队列所缓存的数据帧最大个数大于所设置的最长同步时间内所包含的数据帧个数的原则设置。
设置并更新最长同步时间点的过程为:
a1,将多媒体文件中的第一数据帧的解码时间戳设置为当前同步时间点,将该当前同步时间点与最长同步时间之和作为最长同步时间点;
b1,按照多媒体文件中数据帧的缓存顺序,比较每一路数据帧中当前数据帧的解码时间戳与最长同步时间点;
c1,如果所有路数据帧中当前数据帧的解码时间戳都大于等于该最长同步时间点,则更新最长同步时间点,更新为当前所有路数据帧中当前数据帧中字节位置最靠前的数据帧的解码时间戳,将该当前同步时间点与最长同步时间之和作为最长同步时间点,转入步骤b1继续执行;
所述每一路数据帧中当前数据帧在初始时为每一路数据帧中第一数据帧,后续如果一路数据帧中有当前据帧被作为输出数据帧输出,则当前数据帧修改为下一数据帧。
所述选择可输出数据帧的过程为:
a2、按照多媒体文件中数据帧的缓存顺序,比较每一路数据帧中当前数据帧的解码时间戳与最长同步时间点,如果小于,将该数据帧标识为该路数据帧的待选帧;如果大于等于,该路数据帧的待选帧为空;
b2、判断多媒体文件中的所有路数据帧中的待选帧是否为空,如果否,比较多媒体文件中所有路数据帧的待选帧的字节偏移位置值,将最小所在的待选帧作为输出数据帧输出;如果是,比较多媒体文件中所有路数据帧中当前数据帧的字节偏移位置值,将最小一帧作为输出数据帧输出;
c2、将输出数据帧所在的一路数据帧当前数据帧更新为下一数据帧,转入a2~c2继续执行,得到选择的可输出数据帧。
所述读取该输出数据帧,得到原始流音视频帧队列的过程为:
a3、获取该输出数据帧在多媒体文件中的字节偏移位置值,所述字节偏移位置值包括字节偏移位置和所包含的字节数;
b3、比较上一次输出数据帧的字节偏移位置与所包含的字节数之和是否等于当前输出数据帧的字节偏移位置与所包含的字节数之和,如果是,则不移动多媒体文件的读指针;如果否,则进行多媒体文件的搜索定位,将多媒体文件的读指针移动到当前输出数据帧的字节偏移位置;
c3、从多媒体文件的读指针所在位置读取当前输出数据帧,读取数据的大小为当前输出数据帧所包含的字节数,然后输出;
d3、记录当前输出数据帧的字节偏移位置及所包含的字节数,作为上一次输出数据帧,将下一输出数据帧作为当前输出数据帧,转入步骤a3~b3继续执行,得到原始流音视频帧队列。
一种多媒体文件中音视频数据的解复用装置,该装置包括:
设置单元、比较单元及输出单元,其中,
设置单元,用于根据设置的最长同步时间,设置并更新最长同步时间点;
比较单元,用于根据多媒体文件中每一路数据帧中当前帧的解码时间戳与从设置单元所获取的最长同步时间点的比较结果,结合每一路数据帧中当前帧的字节偏移位置值的先后顺序,选择可输出数据帧,发送给输出单元;
输出单元,用于根据从比较单元接收的可输出数据帧的字节偏移位置值在多媒体文件中进行搜索定位,读取该输出数据帧,得到原始流音视频帧队列。
从上述方案可以看出,本发明利用解复用的多媒体文件在解码时采用先进先出的方式缓存多个数据帧的技术特征,在解复用多媒体文件时得到的数据帧的缓存顺序与解码顺序可以不相同,保证在当前缓存的数据帧中的最后一数据帧的时间戳小于等于第一数据帧的时间戳与所设定缓存多个数据帧的缓存时间之和,这样,就可以保证在后续解码过程中,从当前所缓存的数据帧中找到要解码的音频数据帧或视频数据帧了,保证解码的同步性能。基于此原理,本发明设置最长同步时间,该最长同步时间内所缓存的数据帧个数小于等于解复用所缓存数据帧个数,根据所设置的最长同步时间及多媒体文件中各路数据帧中当前数据帧的解码时间戳实时更新最长同步时间点,根据多媒体文件各路数据帧中当前数据帧的解码时间戳与该最长同步时间点比较的结果,结合索引中的字节偏移位置值,选择得到输出当前数据帧,根据输当前数据帧,按照索引中该数据帧在多媒体文件中的偏移值进行跳转,最终得到原始流音视频帧队列。这样,就减少了多媒体文件在转换为原始流音视频帧队列时的索引定位及跳转次数。因此,本发明提供的方法及装置可以提高多媒体文件的解复用效率。
附图说明
图1为现有技术提供的多线程媒体播放器;
图2为现有技术在多媒体文件携带有索引时,将多媒体文件解复用为原始流音视频帧队列的过程示意图;
图3为本发明提供的多媒体文件中音视频数据的解复用方法流程图;
图4为本发明提供的多媒体文件中音视频数据的解复用装置结构示意图;
图5为本发明提供的多媒体文件中音视频数据的解复用方法实施例一流程图;
图6为本发明在多媒体文件携带有索引时,将多媒体文件解复用为原始流音视频帧队列的过程示意图;
图7为本发明在多媒体文件携带有索引时,将多媒体文件解复用为原始流音视频帧队列二的过程示意图;
图8为采用本发明提供的方法与采用现有技术的方法对多媒体文件进行解复用的效率对比示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明作进一步详细说明。
从现有技术可以看出,对于非交织缓存数据帧的多媒体文件,或者交织缓存数据帧,但没有按照解码时间戳缓存数据帧的多媒体文件,经过很多次跳转才解复用得到原始流音视频帧队列的原因为:要按照解码时间戳从小到大顺序排列多媒体文件中的数据帧,得到原始流音视频帧队列,这样得到的原始流音视频帧队列与没有复用的多媒体文件相比,会进行过多次的索引定位及跳转操作,这就会造成解复用速度变慢,效率下降。
为了克服上述问题,本发明利用解复用的多媒体文件在解码时采用先进先出的方式缓存多个数据帧的技术特征,在解复用多媒体文件时得到的数据帧的缓存顺序与解码顺序可以不相同,保证在当前缓存的数据帧中的最后一数据帧的时间戳小于等于第一数据帧的时间戳与所设定缓存多个数据帧的缓存时间之和,这样,就可以保证在后续解码过程中,从当前所缓存的数据帧中找到要解码的音频数据帧或视频数据帧了,保证解码的同步性能。
在多媒体文件中所缓存的数据帧包括音频数据帧和视频数据帧,缓存方式常常为几个视频数据帧后,再缓存几个音频数据帧,然后依次进行,或者先缓存几个音频数据帧后,再缓存几个视频数据帧。为了便于描述,这里将缓存在一起的音频数据帧或视频数据帧称为一路数据帧,比如一路音频数据帧或一路视频数据帧,在多媒体文件中存在多路音频数据帧和多路视频数据帧,这里通称为多路数据帧。
图3为本发明提供的多媒体文件中音视频数据的解复用方法流程图,其具体步骤为:
步骤301、根据设置的最长同步时间,设置并更新最长同步时间点;
在该步骤中,所设置的最长同步时间为所设定的从多媒体文件中可顺序读取数据帧的最长同步时间,该最长同步时间根据多线程媒体播放器的配置而配置,设置原则为解复用后得到的原始流音视频帧队列所缓存的数据帧最大个数大于所设置的最长同步时间内所包含的数据帧个数;
实时更新所设置的最长同步时间点的过程为:
步骤一,将多媒体文件中的第一数据帧的解码时间戳设置为当前同步时间点,将该当前同步时间点与最长同步时间之和作为最长同步时间点;
步骤二,按照多媒体文件中数据帧的缓存顺序,比较每一路数据帧中当前数据帧的解码时间戳与最长同步时间点;
步骤三,如果所有路数据帧中当前数据帧的解码时间戳都大于等于该最长同步时间点,则更新最长同步时间点,更新为当前所有路数据帧中当前数据帧中字节位置最靠前的数据帧的解码时间戳,将该当前同步时间点与最长同步时间之和作为最长同步时间点,转入步骤二继续执行。
在初始时,每一路数据帧中当前数据帧为每一路数据帧中第一数据帧,如果一路数据帧中有当前据帧被作为输出数据帧输出,则当前数据帧修改为下一数据帧。
步骤302、根据多媒体文件中每一路数据帧中当前帧的解码时间戳与最长同步时间点的比较结果,结合每一路数据帧中当前帧的字节偏移位置值的先后顺序,选择可输出数据帧。
步骤303、根据所选择的可输出数据帧的字节偏移位置值在多媒体文件中进行搜索定位,读取该输出数据帧,得到原始流音视频帧队列。
在图3的过程中,所述步骤302的具体过程为:
步骤3021、按照多媒体文件中数据帧的缓存顺序,比较每一路数据帧中当前数据帧的解码时间戳与最长同步时间点,如果小于,则转入步骤3022执行;如果大于等于,则转入步骤3023执行;
步骤3022、将该数据帧标识为该路数据帧的待选帧,转入步骤3024执行;
步骤3023、该路数据帧的待选帧为空,转入步骤3024执行;
步骤3024、判断多媒体文件中的所有路数据帧中的待选帧是否为空,如果否,则执行步骤3025;如果是,则执行步骤3026;
步骤3025、比较多媒体文件中所有路数据帧的待选帧的字节偏移位置值,将最小所在的待选帧作为输出数据帧输出,执行步骤3027;
步骤3026、比较多媒体文件中所有路数据帧中当前数据帧的字节偏移位置值,将最小一帧作为输出数据帧输出,执行步骤3027;
步骤3027、将输出数据帧所在的一路数据帧当前数据帧更新为下一数据帧,也就是将输出数据帧所在的一路数据帧当前数据帧的帧号递加1,转入步骤3021~步骤3027继续执行。
在图3中,所述步骤303的具体过程为:
步骤3031、获取当前输出数据帧在多媒体文件中的字节偏移位置值;
在该步骤中,多媒体文件携带有索引,在索引中指出了多媒体文件中每一数据帧的字节偏移位置及所包含的字节数,称为字节偏移位置值,根据索引就可以得到;
步骤3032、比较上一次输出数据帧的字节偏移位置与所包含的字节数之和是否等于当前输出数据帧的字节偏移位置与所包含的字节数之和,如果是,则不移动多媒体文件的读指针;如果否,则进行多媒体文件的搜索定位,将多媒体文件的读指针移动到当前输出数据帧的字节偏移位置;
步骤3033、从多媒体文件的读指针所在位置读取当前输出数据帧,读取数据的大小为当前输出数据帧所包含的字节数,然后输出;
步骤3034、记录当前输出数据帧的字节偏移位置及所包含的字节数,作为上一次输出数据帧,将下一输出数据帧作为当前输出数据帧,转入步骤3031~3034继续执行,最终得到原始流音视频帧队列。
图4为本发明提供的多媒体文件中音视频数据的解复用装置结构示意图,包括:设置单元、比较单元及输出单元,其中,
设置单元,用于根据设置的最长同步时间,设置并更新最长同步时间点;
比较单元,用于根据多媒体文件中每一路数据帧中当前帧的解码时间戳与从设置单元所获取的最长同步时间点的比较结果,结合每一路数据帧中当前帧的字节偏移位置值的先后顺序,选择可输出数据帧,发送给输出单元;
输出单元,用于根据从比较单元接收的可输出数据帧的字节偏移位置值在多媒体文件中进行搜索定位,读取该输出数据帧,得到原始流音视频帧队列。
举一个具体实例对本发明提供的方法进行详细说明:
图5为本发明提供的多媒体文件中音视频数据的解复用方法实施例一流程图,其具体步骤为:
步骤501、多线程媒体播放器读取多媒体文件,解析其中的索引及每一路数据帧的头信息,初始化所有变量;
步骤502、多线程媒体播放器设置最长同步时间Tsync;
步骤503、设置每路数据帧中的当前数据帧为各路数据帧的第一数据帧;
在该步骤中,采用用i表示所有路数据帧中第i路数据帧,i=1,2,3...;
步骤504、设置当前同步时间点Tcur为所有路数据帧的当前数据帧中字节偏移位置最小一帧的解码时间戳DTS;
步骤505、计算当前最长同步时间点Tmax=Tsync+Tcur;
步骤506、将每一路数据帧中当前数据帧的解码时间戳DTSi cur与当前最长同步时间点Tmax进行比较,若DTSi cur≤Tmax,则将该数据帧标识为第i路数据帧的待选数据帧;否则,第i路数据帧的待选数据帧为空;
步骤507、比较所有路数据帧中不为空的待选数据帧的字节偏移位置值,最小者所在的一数据帧为当前输出数据帧;
步骤508、如果每一路数据帧的待选数据帧均为空,则比较所有路数据帧中当前数据帧的字节偏移位置Li cur(i=1,2,3...),其最小者记为第k路数据帧的字节偏移位置Lk cur;将当前同步时间点Tcur更新为第k路数据帧当前数据帧的解码时间戳,即Tcur=DTSk cur,并重新计算当前最长同步时间点为该当前同步时间点与最长同步时间之和,即Tmax=Tsync+Tcur;并将第k路数据帧当前数据帧设为输出数据帧;
步骤509、将输出数据帧所在的一路数据帧(第k路数据帧)的当前数据帧更新为下一数据帧,并且该路数据帧的当前数据帧帧号递加1;
步骤510、比较上一次输出数据帧的字节偏移位置Lprev与其所包含的字节数Sprev之和与当前输出数据帧的字节偏移位置Lcur,若Lprev+Sprev≠Lcur,则进行多媒体文件的搜索定位,即将多媒体文件的读指针移动到当前输出数据帧的字节偏移位置Lcur;否则,不移动多媒体文件的读指针,即相邻两数据帧之间不进行搜索;
步骤511、从多媒体文件读指针所在的位置读取当前可输出数据帧,所读取数据的大小为当前可输出数据帧所包含的字节数Scur;将所读取的数据作为当前输出数据帧输出;
步骤512、记录当前输出数据帧的字节偏移位置及其所包含的字节数,并更新Lprev=Lcur以及Sprev=Scur;
步骤513、按照步骤506~步骤511的过程,解复用剩余每一数据帧,直到得到原始流音视频帧队列。
背景技术中的图2第二行所示的原始流音视频帧队列,是按照解码时间戳从小到大顺序,对多媒体文件中的音频数据帧或视频数据帧的缓存位置进行跳转得到的,其没有考虑原始流音视频帧队列的缓存机制特性,由于在后续解码过程中,可以缓存一定数量的数据帧,因此,本发明就没有严格按照解码时间戳从小到大顺序读取,而是连续读取N(可按照本发明设定的最长同步时间与该例中每视频数据帧持续时间相除计算得到,在本例中N=200/40=5)视频帧之后再连续读取2N帧音频,而不会影响解码原始流音视频帧队列的同步性能。
图6为本发明在多媒体文件携带有索引时,将多媒体文件解复用为原始流音视频帧队列一的过程示意图,图中各部分所代表的意义与图2相同。在图6中,使用了200毫秒作为最长同步时间,因此在每顺序读取5帧的视频数帧之后就会跳转并读取10帧音频数据帧,之后再跳转并读取后续的5帧视频数据帧,如此往复,本发明得到的原始流音视频帧队列如图6第三行所示。从图6可以看出,在此种多媒体文件包含大量的视频数据帧和音频数据帧的实例中,本发明完成解复用多媒体文件时,需要进行跳转的频率近似为每15数据帧2次,而现有完成解复用多媒体文件时,需要进行跳转的频率近似为每15数据帧10次,从而节省了约80%的跳转次数,极大地提高了多线程媒体播放器的解复用效率。
需要说明的是,本发明的自适应交织性提醒在并不是从多媒体文件中固定选取连续读取音频数据帧或视频数据帧的个数,而是结合多媒体文件中音频数据帧或视频数据帧的缓存位置顺序与其解码时间戳,和最长同步时间点的比较结果自适应的进行判断。因此,本发明提供的方法适用于交织、非交织以及非正确交织多媒体文件的解复用过程。如图7所示,图7为本发明在多媒体文件携带有索引时,将多媒体文件解复用为原始流音视频帧队列二的过程示意图,该多媒体文件为非正确交织的多媒体文件,采用本发明提供的方案对其进行解复用,根本不需要任何跳转,节省了100%的跳转次数。
图8为采用本发明提供的方法与采用现有技术的方法对多媒体文件进行解复用的效率对比示意图,如图所示,选取了5个电影作为多媒体文件分别采用本发明提供的方法和采用现有技术提供的方法进行解复用时,进行多媒体文件的跳转次数比较结果柱形图,其详细数据采用表一进行说明。该实施例中,使用200毫秒为最长同步时间,其中电影1的AVI文件与电影2的MP4文件均为非交织的多媒体文件,其他电影为非正确交织的多媒体文件。从结果可以看出,本发明能够节省65%~100%的多媒体文件的跳转次数,从而极大提高多线程媒体播放器的解复用效率。
表一
从本发明可以看出,本发明对于多线程媒体播放器所产生的主要效果是极大地减少了多线程媒体播放器在利用索引解复用多媒体文件时要进行的搜索定位及跳转次数,所减少的跳转次数减少了65%以上,最高减少100%的跳转次数,因此,使用本发明可以提高解复用多媒体文件的速度与效率。尤其是播放特定网络环境(如DLNA)中或者CD-ROM中包含索引的非交织多媒体文件时,采用现有技术的方案,由于解复用速度比较慢,所以后续无法正常流畅播放,而使用本发明的方案,则可以正常流畅播放。另外,本发明的方案还具有高适应性,可适用于各种包含索引的多媒体文件格式,比如AVI、MP4、MOV、3GP、ASF和MKV等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (6)
1.一种多媒体文件中音视频数据的解复用方法,其特征在于,该方法包括:
根据设置的最长同步时间,设置并更新最长同步时间点;
根据多媒体文件中每一路数据帧中当前帧的解码时间戳与最长同步时间点的比较结果,结合每一路数据帧中当前帧的字节偏移位置值的先后顺序,选择可输出数据帧;
根据所选择的可输出数据帧的字节偏移位置值在多媒体文件中进行搜索定位,读取该输出数据帧,得到原始流音视频帧队列。
2.如权利要求1所述的方法,其特征在于,所述最长同步时间的设定依据解复用后得到的原始流音视频帧队列所缓存的数据帧最大个数大于所设置的最长同步时间内所包含的数据帧个数的原则设置。
3.如权利要求1或2所述的方法,其特征在于,设置并更新最长同步时间点的过程为:
a1,将多媒体文件中的第一数据帧的解码时间戳设置为当前同步时间点,将该当前同步时间点与最长同步时间之和作为最长同步时间点;
b1,按照多媒体文件中数据帧的缓存顺序,比较每一路数据帧中当前数据帧的解码时间戳与最长同步时间点;
c1,如果所有路数据帧中当前数据帧的解码时间戳都大于等于该最长同步时间点,则更新最长同步时间点,更新为当前所有路数据帧中当前数据帧中字节位置最靠前的数据帧的解码时间戳,将该当前同步时间点与最长同步时间之和作为最长同步时间点,转入步骤b1继续执行;
所述每一路数据帧中当前数据帧在初始时为每一路数据帧中第一数据帧,后续如果一路数据帧中有当前据帧被作为输出数据帧输出,则当前数据帧修改为下一数据帧。
4.如权利要求3所述的方法,其特征在于,所述选择可输出数据帧的过程为:
a2、按照多媒体文件中数据帧的缓存顺序,比较每一路数据帧中当前数据帧的解码时间戳与最长同步时间点,如果小于,将该数据帧标识为该路数据帧的待选帧;如果大于等于,该路数据帧的待选帧为空;
b2、判断多媒体文件中的所有路数据帧中的待选帧是否为空,如果否,比较多媒体文件中所有路数据帧的待选帧的字节偏移位置值,将最小所在的待选帧作为输出数据帧输出;如果是,比较多媒体文件中所有路数据帧中当前数据帧的字节偏移位置值,将最小一帧作为输出数据帧输出;
c2、将输出数据帧所在的一路数据帧当前数据帧更新为下一数据帧,转入a2~c2继续执行,得到选择的可输出数据帧。
5.如权利要求4所述的方法,其特征在于,所述读取该输出数据帧,得到原始流音视频帧队列的过程为:
a3、获取该输出数据帧在多媒体文件中的字节偏移位置值,所述字节偏移位置值包括字节偏移位置和所包含的字节数;
b3、比较上一次输出数据帧的字节偏移位置与所包含的字节数之和是否等于当前输出数据帧的字节偏移位置与所包含的字节数之和,如果是,则不移动多媒体文件的读指针;如果否,则进行多媒体文件的搜索定位,将多媒体文件的读指针移动到当前输出数据帧的字节偏移位置;
c3、从多媒体文件的读指针所在位置读取当前输出数据帧,读取数据的大小为当前输出数据帧所包含的字节数,然后输出;
d3、记录当前输出数据帧的字节偏移位置及所包含的字节数,作为上一次输出数据帧,将下一输出数据帧作为当前输出数据帧,转入步骤a3~b3继续执行,得到原始流音视频帧队列。
6.一种多媒体文件中音视频数据的解复用装置,其特征在于,该装置包括:
设置单元、比较单元及输出单元,其中,
设置单元,用于根据设置的最长同步时间,设置并更新最长同步时间点;
比较单元,用于根据多媒体文件中每一路数据帧中当前帧的解码时间戳与从设置单元所获取的最长同步时间点的比较结果,结合每一路数据帧中当前帧的字节偏移位置值的先后顺序,选择可输出数据帧,发送给输出单元;
输出单元,用于根据从比较单元接收的可输出数据帧的字节偏移位置值在多媒体文件中进行搜索定位,读取该输出数据帧,得到原始流音视频帧队列。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110157744.0A CN102811380B (zh) | 2011-06-03 | 2011-06-03 | 多媒体文件中音视频数据的解复用方法及装置 |
KR1020120033995A KR20120135024A (ko) | 2011-06-03 | 2012-04-02 | 멀티미디어 파일의 오디오 및 비디오 데이터를 디멀티플렉싱하기 위한 방법 및 장치 |
EP12170290A EP2530948A1 (en) | 2011-06-03 | 2012-05-31 | Method and device for demultiplexing audio & video data of multimedia file |
US13/487,874 US20120307148A1 (en) | 2011-06-03 | 2012-06-04 | Method and device for demultiplexing audio & video data of multimedia file |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110157744.0A CN102811380B (zh) | 2011-06-03 | 2011-06-03 | 多媒体文件中音视频数据的解复用方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102811380A true CN102811380A (zh) | 2012-12-05 |
CN102811380B CN102811380B (zh) | 2015-02-18 |
Family
ID=47234937
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110157744.0A Active CN102811380B (zh) | 2011-06-03 | 2011-06-03 | 多媒体文件中音视频数据的解复用方法及装置 |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR20120135024A (zh) |
CN (1) | CN102811380B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103929656A (zh) * | 2013-01-15 | 2014-07-16 | 晨星软件研发(深圳)有限公司 | 多媒体数据流格式、元数据产生器、编码及解码方法与系统 |
CN106060074A (zh) * | 2016-07-08 | 2016-10-26 | 江苏耐维思通科技股份有限公司 | 一种数据断点续传技术方法 |
CN112532991A (zh) * | 2020-10-28 | 2021-03-19 | 惠州华阳通用电子有限公司 | 一种作用于rmff格式文件的硬件解码方法 |
CN113055312A (zh) * | 2019-12-26 | 2021-06-29 | 浙江蓝鸽科技有限公司 | 基于同步以太网的多路音频拾音方法和系统 |
CN114579596A (zh) * | 2022-05-06 | 2022-06-03 | 达而观数据(成都)有限公司 | 一种实时更新搜索引擎索引数据的方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6643449B1 (en) * | 1998-11-10 | 2003-11-04 | Kabushiki Kaisha Toshiba | Recording/reproducing apparatus, video data recording apparatus, recording method, reproducing method |
US20090116814A1 (en) * | 2006-02-27 | 2009-05-07 | Morohashi Takaharu | Reproducer, portable telephone, and reproducing method |
-
2011
- 2011-06-03 CN CN201110157744.0A patent/CN102811380B/zh active Active
-
2012
- 2012-04-02 KR KR1020120033995A patent/KR20120135024A/ko not_active Application Discontinuation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6643449B1 (en) * | 1998-11-10 | 2003-11-04 | Kabushiki Kaisha Toshiba | Recording/reproducing apparatus, video data recording apparatus, recording method, reproducing method |
US20090116814A1 (en) * | 2006-02-27 | 2009-05-07 | Morohashi Takaharu | Reproducer, portable telephone, and reproducing method |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103929656A (zh) * | 2013-01-15 | 2014-07-16 | 晨星软件研发(深圳)有限公司 | 多媒体数据流格式、元数据产生器、编码及解码方法与系统 |
CN103929656B (zh) * | 2013-01-15 | 2017-10-20 | 晨星软件研发(深圳)有限公司 | 多媒体数据流格式、元数据产生器、编码及解码方法与系统 |
CN106060074A (zh) * | 2016-07-08 | 2016-10-26 | 江苏耐维思通科技股份有限公司 | 一种数据断点续传技术方法 |
CN113055312A (zh) * | 2019-12-26 | 2021-06-29 | 浙江蓝鸽科技有限公司 | 基于同步以太网的多路音频拾音方法和系统 |
CN113055312B (zh) * | 2019-12-26 | 2022-06-24 | 浙江蓝鸽科技有限公司 | 基于同步以太网的多路音频拾音方法和系统 |
CN112532991A (zh) * | 2020-10-28 | 2021-03-19 | 惠州华阳通用电子有限公司 | 一种作用于rmff格式文件的硬件解码方法 |
CN114579596A (zh) * | 2022-05-06 | 2022-06-03 | 达而观数据(成都)有限公司 | 一种实时更新搜索引擎索引数据的方法及系统 |
CN114579596B (zh) * | 2022-05-06 | 2022-09-06 | 达而观数据(成都)有限公司 | 一种实时更新搜索引擎索引数据的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
KR20120135024A (ko) | 2012-12-12 |
CN102811380B (zh) | 2015-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104253999B (zh) | 用于发送内容的设备和方法 | |
US10129587B2 (en) | Fast switching of synchronized media using time-stamp management | |
US10856018B2 (en) | Clock synchronization techniques including modification of sample rate conversion | |
CN104410807A (zh) | 一种多路视频同步回放方法及装置 | |
CN103475927B (zh) | 在线视频实时变速播放方法及系统 | |
EP2530948A1 (en) | Method and device for demultiplexing audio & video data of multimedia file | |
CN103024603B (zh) | 一种用于解决播放网络视频时短时停顿的装置及方法 | |
JP2003114845A (ja) | メディア変換方法およびメディア変換装置 | |
CN102811380A (zh) | 多媒体文件中音视频数据的解复用方法及装置 | |
US8407565B2 (en) | System and method for producing importance rate-based rich media, and server applied to the same | |
CN101118776B (zh) | 实现音、视频数据同步的方法、系统及装置 | |
US11356739B2 (en) | Video playback method, terminal apparatus, and storage medium | |
US9928876B2 (en) | Recording medium recorded with multi-track media file, method for editing multi-track media file, and apparatus for editing multi-track media file | |
CN1893383A (zh) | 提供根据剩余存储器容量的可记录时间的方法及其终端 | |
EP1997109A1 (en) | Converting a still image in a slide show to a plurality of video frame images | |
CN102123281A (zh) | 视频播放时快进快退处理方法、装置以及移动终端 | |
CN101232611A (zh) | 图像处理设备及其方法 | |
CN111669645A (zh) | 视频的播放方法、装置、电子设备及存储介质 | |
JP6258168B2 (ja) | 配信装置、再生装置および配信システム | |
CN101794607B (zh) | 存储多角度数据的信息存储介质和记录方法及其再现设备 | |
CN106878807A (zh) | 一种视频切换方法和装置 | |
US20070154164A1 (en) | Converting a still image in a slide show to a plurality of video frame images | |
CN105898320A (zh) | 基于安卓平台的全景视频的解码方法、装置及终端设备 | |
US8655139B2 (en) | Video recording and reproducing system and reading method of video data | |
US20140369422A1 (en) | Remultiplexing Bitstreams of Encoded Video for Video Playback |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |