CN103686315A - 一种音视频同步播放方法及装置 - Google Patents
一种音视频同步播放方法及装置 Download PDFInfo
- Publication number
- CN103686315A CN103686315A CN201210338406.1A CN201210338406A CN103686315A CN 103686315 A CN103686315 A CN 103686315A CN 201210338406 A CN201210338406 A CN 201210338406A CN 103686315 A CN103686315 A CN 103686315A
- Authority
- CN
- China
- Prior art keywords
- video
- data
- audio
- timestamp
- time stamp
- 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.)
- Pending
Links
Images
Landscapes
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明提供一种音视频同步播放方法及装置,该方法包括:接收来自系统的包括视频数据和音频数据的流媒体数据;读取流媒体数据,并记录读取流媒体数据的起始时间戳;分别获取并解析视频数据的数据包和音频数据的数据包;分别记录每个数据包的解析时间戳;将起始时间戳和视频解析时间戳绑定视频数据包作为视频数据样本;将起始时间戳和音频解析时间戳绑定音频数据包作为音频数据样本;根据视频数据样本和音频数据样本、以及外部时钟同步播放视频数据和音频数据。通过本发明,能够有效实现音视频的同步播放。
Description
技术领域
本发明涉及视频通信领域,具体地,涉及一种音视频同步播放方法及装置。
背景技术
音视频同步的目的是将视频帧与该帧显示时间点对应的音频数据同步输出到设备,从而实现影片的正常播放。由于音视频被分开编码,故它们的解码也是分开的,且解码后的音视频输出本是不相关的过程。为保证正常播放,编码器在编码时会以帧为单位分别为编码后的视频和音频流打上时间戳(timestamp,简称为ts),拥有相同或几近相同时间戳的音视频数据在解码后应被同时输出。
目前实现音视频同步,可以以视频ts为参考,将音频同步到视频,也可相反,以音频ts为参考,将视频同步到音频。此外也可参考外部时钟(externalclock),比如系统时钟,从而将音视频根据各自的ts同步到外部时钟。以上的同步过程,如果遇见因机器性能而解不动的情况,采用不解码相应非参考帧的策略,以期减轻系统负担,令播放尽可能流畅。
通常播放器的分离器(demuxer)后端都存在独立的音视频缓冲队列,缓冲队列内存放了由分离器解析出的待解数据包。音频解码器(audio decoder)从音频缓冲队列中(audio queue)取出音频数据包(audio packet),视频解码器(video decoder)从视频缓冲队列中(video queue)取出视频数据包(videopacket),随后各自解码并输出。由于音频/视频缓冲队列的长度都有限,因而分离器填充数据包时也就存在限制,如果缓冲队列满了,就必须等队列中的数据包被对应解码器取走以腾出空间后方可再次填充。如果分离器具备从随机位置单独解析出音频/视频数据包的能力,则该限制影响不大,因为任意一个队列的充满,都不会影响其他队列的填充。反之,如果分离器不具备此能力,就会出现问题。拿目前的视频采集、截图多媒体处理工具(ffmpeg)为例,其分离器不具备上述能力,结果是音频/视频数据包被按照数据流中出现的顺序解析出来的,当前循环解析出的如果是视频数据包,下次的数据包类型有可能是视频,也有可能是音频。这样,当填充上述缓冲队列时,如果视频缓冲队列满了,就必须让分离器的解析工作停下来,否则,随后解析出的视频数据包就无处存放,只能丢弃了。
由于上述的限制,现有的音视频同步策略存在的缺陷如下:
策略1
以视频时间戳(video ts)为参考来同步音频,该策略的思路是视频播到哪儿,对应的音频就播到哪儿。该策略有以下缺陷:
(1)视频的时间戳有很大可能存在不连续;
(2)解不动的情况下,视频缓冲队列在大部分时间是满的,会导致音频数据包无法填充;
(3)播放到文件末尾时,视频数据可能先被解完,此时剩余的音频(audio)将失去参考对象。
其中,上述缺陷(1)和(3)可以修正,但会大大提高程序复杂度,造成代码难以维护,缺陷(2)会令音频解码器无数据可解,造成严重的声音卡顿。
策略2
以音频时间戳为参考来同步视频,则音频时间戳的可靠性通常高于视频时间戳的可靠性,但上述策略1中的三个缺陷仍然存在,且缺陷(2)会造成视频失去正确的参考时间轴,造成视频长时间卡顿,较大影响用户体验。
策略3
将音频和视频都同步到同一个外部时钟上,该策略的好处是音频和视频彼此不相关联,只需要处理各自与外部时钟的同步逻辑即可,代码易读易维护,出错可能性大大降低,且可以保证选取的外部时钟是可靠和一直存在的。但该策略同样存在如下问题:
(1)同一播放定位(seek)点上,音频和视频起始时间会不一致;
(2)解不动的情况下,视频缓冲队列在大部分时间是满的,会导致音频数据包无法填充。
问题(1)造成的结果是,即使音频和视频都同步到了外部时钟,但起始点内容的偏差,导致音视频始终不同步。尽管在该策略下,问题(2)的影响已降低,但如果处理不当,仍会造成声音的卡顿,影响用户体验。
综上所述,现有技术中的音视频同步播放技术存在由于时间戳不一致而导致音视频播放时无法有效同步的问题。
发明内容
本发明实施例的主要目的在于提供一种音视频同步播放方法及装置,以解决现有技术中的音视频同步播放技术存在由于时间戳不一致而导致音视频播放时无法有效同步的问题。
为了实现上述目的,本发明提供一种音视频数据的同步播放方法,具体包括:接收来自系统的包括视频数据和音频数据的流媒体数据;读取所述流媒体数据、并记录读取所述流媒体数据的起始时间戳;分别获取并解析所述视频数据的数据包和音频数据的数据包;分别记录每个数据包的解析时间戳;将所述起始时间戳和所述视频解析时间戳绑定视频数据包作为视频数据样本;将所述起始时间戳和所述音频解析时间戳绑定音频数据包作为音频数据样本;根据所述的视频数据样本和音频数据样本、以及外部时钟同步播放所述视频数据和音频数据。
具体地,读取所述流媒体数据并记录读取所述流媒体数据的起始时间戳包括:读取所述流媒体数据;记录读取所述流媒体数据中的第一视频数据的起始时间戳。
上述将所述起始时间戳和视频解析时间戳绑定视频数据包作为视频数据样本之后,上述方法还包括:对所述视频数据样本进行解码得到视频帧数据;将所述起始时间戳和视频解析时间戳绑定所述视频帧数据作为新的视频数据样本。将所述起始时间戳和音频解析时间戳绑定音频数据包作为音频数据样本之后,所述方法还包括:对所述音频数据样本进行解码得到音频帧数据;将所述起始时间戳和音频解析时间戳绑定所述音频帧数据作为新的音频数据样本。
上述根据所述的视频数据样本和音频数据样本、以及外部时钟同步播放所述视频数据和音频数据包括:根据所述新的视频数据样本和新的音频数据样本、以及外部时钟同步播放所述视频数据和音频数据。上述根据所述新的视频数据样本和新的音频数据样本、以及外部时钟同步播放所述视频数据和音频数据包括:根据所述新的视频数据样本中的起始时间戳和视频解析时间戳获取当前视频帧流时间;当所述当前视频帧流时间大于所述外部时钟流时间时,停留预定时间后播放当前视频帧,否则,直接播放当前视频帧;根据所述新的音频数据样本中的起始时间戳和音频解析时间戳获取当前音频帧流时间;当所述当前音频帧流时间与所述外部时钟流时间的时间差大于预定阈值时,停止播放当前音频帧,否则播放当前音频帧。
为实现上述目的,本发明同时提供一种音视频数据的同步播放装置,该装置包括:流媒体数据接收单元,用于接收来自系统的包括视频数据和音频数据的流媒体数据;起始时间戳记录单元,用于读取所述流媒体数据、并记录读取所述流媒体数据的起始时间戳;流媒体数据解析单元,用于分别获取并解析所述视频数据的数据包和音频数据的数据包;解析时间戳记录单元,用于分别记录每个数据包的解析时间戳;视频数据样本获取单元,用于将所述起始时间戳和视频解析时间戳绑定视频数据包作为视频数据样本;音频数据样本获取单元,用于将所述起始时间戳和音频解析时间戳绑定音频数据包作为音频数据样本;音视频同步播放单元,用于根据所述的视频数据样本和音频数据样本、以及外部时钟同步播放所述视频数据和音频数据。
具体地,所述起始时间戳记录单元包括:流媒体数据读取模块,用于读取所述流媒体数据;起始时间戳记录模块,用于记录读取所述流媒体数据中的第一个视频数据的起始时间戳。
所述的装置还包括:视频解码单元,用于对所述视频数据样本进行解码得到视频帧数据;新视频数据样本获取单元,用于将所述起始时间戳和视频解析时间戳绑定所述视频帧数据作为新的视频数据样本。
所述的装置还包括:音频解码单元,用于对所述音频数据样本进行解码得到音频帧数据;新音频数据样本获取单元,用于将所述起始时间戳和音频解析时间戳绑定所述音频帧数据作为新的音频数据样本。
其中,所述的音视频同步播放单元具体用于:根据所述新的视频数据样本和新的音频数据样本、以及外部时钟同步所述视频数据和音频数据。
具体地,所述的音视频同步播放单元包括:当前视频帧流时间获取模块,用于根据所述新的视频数据样本中的起始时间戳和视频解析时间戳获取当前视频帧流时间;视频播放模块,用于当所述当前视频帧流时间大于所述外部时钟流时间时,停留预定时间后播放当前视频帧,否则,直接播放当前视频帧;当前音频帧流时间获取模块,用于根据所述新的音频数据样本中的起始时间戳和音频解析时间戳获取当前音频帧流时间;音频播放模块,用于当所述当前音频帧流时间与所述外部时钟流时间的时间差大于预定阈值时,停止播放当前音频帧,否则播放所述当前音频帧。
借助于上述技术特征至少之一,本发明实施例提供的技术方案可以克服现有技术中的由于时间戳不一致而导致的无法较好地实现音视频同步播放的问题,能够有效实现音视频的同步播放。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的音视频同步播放方法的流程图;
图2是根据本发明实施例的音视频播放器的系统架构图;
图3是根据本发明实施例的分离器对音视频数据的处理流程图;
图4是根据本发明实施例的视频解码器的处理流程图;
图5是根据本发明实施例的音频解码器的处理流程图;
图6是根据本发明实施例的视频渲染器的同步流程图;
图7是根据本发明实施例的音频渲染器的同步流程图;
图8是根据本发明实施例的优化CPU资源不足时的处理流程图;
图9是根据本发明实施例的音视频同步播放装置的结构框图;
图10是根据本发明实施例的起始时间戳记录单元结构图;
图11是根据本发明实施例的音视频同步播放装置的具体结构框图;
图12是根据本发明实施例的音视频同步播放装置的另一个具体结构框图;
图13是根据本发明实施例的音视频同步播放单元的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
由于现有技术中的音视频同步播放技术存在由于时间戳不一致而导致音视频播放时无法有效同步的问题,基于此,本发明实施例提供一种音视频同步播放方法及装置,以解决上述问题。以下结合附图对本发明进行详细说明。
实施例一
本发明实施例提供一种音视频同步播放方法。图1是根据本发明实施例的音视频同步播放方法的流程图,如图1所示,该方法包括:
步骤101:接收来自系统的包括视频数据和音频数据的流媒体数据;
步骤102:读取流媒体数据、并记录读取流媒体数据的起始时间戳;
步骤103:分别获取并解析视频数据的数据包和音频数据的数据包;
步骤104:分别记录每个数据包的解析时间戳;
步骤105:将起始时间戳和视频解析时间戳绑定视频数据包作为视频数据样本;
步骤106:将起始时间戳和音频解析时间戳绑定音频数据包作为音频数据样本;
步骤107:根据视频数据样本和音频数据样本、以及外部时钟同步播放视频数据和音频数据。
由以上描述可以看出,通过记录读取的流媒体数据的起始时间戳以及记录每个数据包的解析时间戳,并将起始时间戳和视频解析时间戳绑定视频数据包作为视频数据样本,将起始时间戳和音频解析时间戳绑定音频数据包作为音频数据样本,之后根据视频数据样本和音频数据样本、以及外部时钟同步播放视频数据和音频数据,相比于现有技术中的由于时间戳不一致而导致的无法较好地实现音视频同步播放的技术,本发明实施例提供的技术方案能够有效实现音视频的同步播放。
上述的外部时钟可以是一个可靠的外部时钟(external clock),该外部时钟作为参考时钟,必须是连续递增的。在实际操作中,可以选取系统时钟或系统开机后所经历的时间,时钟单位至少需要精确到毫秒级。
具体地,上述步骤102中读取流媒体数据并记录读取流媒体数据的起始时间戳包括:读取流媒体数据;记录读取流媒体数据中的第一个视频数据的起始时间戳。
上述步骤105:将起始时间戳和视频解析时间戳绑定视频数据包作为视频数据样本之后,上述方法还包括:对视频数据样本进行解码得到视频帧数据;将起始时间戳和视频解析时间戳绑定视频帧数据作为新的视频数据样本。
上述步骤106:将起始时间戳和音频解析时间戳绑定音频数据包作为音频数据样本之后,上述方法还包括:对音频数据样本进行解码得到音频帧数据;将起始时间戳和音频解析时间戳绑定音频帧数据作为新的音频数据样本。
具体地,根据上述获取的新的视频数据样本和新的音频数据样本,步骤107可以根据新的视频数据样本和新的音频数据样本、以及外部时钟同步播放视频数据和音频数据来实现。具体实现过程为:根据新的视频数据样本中的起始时间戳和视频解析时间戳获取当前视频帧流时间;当当前视频帧流时间大于外部时钟流时间时,停留预定时间后播放当前视频帧,否则,直接播放当前视频帧;根据新的音频数据样本中的起始时间戳和音频解析时间戳获取当前音频帧流时间;当当前音频帧流时间与外部时钟流时间的时间差大于预定阈值时,停止播放当前音频帧,否则播放上述当前音频帧。
在实际操作中,要实现同步音视频,首先需要选取一个可靠的外部时钟作为参考时钟,该时钟必须是连续递增的。该外部时钟可以是系统时钟或系统开机后所经历的时间,时钟单位至少需要精确到毫秒级。
在具体实施过程中,该外部时钟可以是系统时钟,直接从系统时钟获得的时间称为系统绝对时间(system time),以某个system time为起始时间,而后所经历的时间可以称为系统相对时间,也叫系统流时间(system streamtime)。
在同步音视频过程中,还存在音频流时间(audio stream time)和视频流时间(video stream time),与上述的系统时钟计算方式相同,都是用当前数据帧的ts减去之前记录下的某个起始数据帧的ts来获得。
本发明实施例中的同步原理是:在起始时间相同的情况下,将音频流时间(audio stream time)和视频流时间(video stream time)同时同步到systemstream time,对audio/video stream time来讲,这里的起始时间是指记下起始数据帧ts时的系统绝对时间。
为了更好地理解本发明实施例,以下以音视频播放器为例来详细描述本发明实施例。
首先,描述音视频播放器的系统架构,图2是根据本发明实施例的音视频播放器的系统架构图,如图2所示:
该播放器包括:分离器1(demuxer)、视频解码器2(video decoder),音频解码器4(audio decoder),视频渲染器3(video renderer)和音频渲染器5(audio renderer)。其中,Demuxer负责从流媒体中读取流数据,再将流数据中的音视频数据包分析出来,最后将分析出的音视频数据包分别存入相应的缓冲队列中,供video/audio decoder取出使用。Video decoder负责从视频缓冲队列中取出视频数据包进行视频解码,并将解码后的帧数据和该帧的ts等重要信息打包,存入视频输出队列。Video renderer负责从视频输出队列中取出包,实现同步播放,Audio decoder和audio renderer的功能与视频(video)分支类似。
Demuxer首先接收音视频数据,然后经过解码器后到达渲染器(Renderer),从而实现音视频的同步播放。
以下描述该播放器实现音视频数据的同步播放流程。
播放器在刚打开或每次进行播放定位(seek)操作后,参考时钟归零重计,Demuxer清空缓冲队列,并开始重新为解码器(decoder)提供数据。Demuxer首先需记下解析出的第一个video packet的ts,记为同步点时间戳(sync pointts),也称为起始时间戳。后面解析出的每个数据包,无论video还是audio,除绑定其自身的ts外,还需绑定之前记下的sync point ts,作为一个样本(sample)被放入对应的缓冲队列中。该sample至少包含以下几项:
1.存放数据包的缓冲区(buffer)
2.数据包的ts
3.Sync point ts
图3是根据本发明实施例的分离器对音视频数据的处理流程图,具体的流程如图3所示:
步骤301,接收来自系统或外部网络的流媒体数据,该流媒体数据包括视频数据和音频数据;
步骤302,判断当前文件位置是否为文件结尾,如果是,则退出判断,否则进行步骤S303;
步骤303,判断是否是第一次打开播放器或播放定位操作后,如果是,则进行步骤304,否则进行步骤306;
步骤304,清空缓冲队列,并进行步骤305;
步骤305:获取随后第一个视频数据包的解析时间戳,记为起始时间戳,并进行步骤306;
步骤306,读出下一个数据包的数据,并记录此时数据包的数据的解析时间戳;
步骤307:判断数据包的类型;如果数据包的类型是视频数据包,则进行步骤308和309,如果数据包的类型是音频数据包,则进行步骤310和步骤311;
步骤308,创建一个视频数据样本;
步骤309,将该视频数据样本存入到视频缓冲队列中,并返回到步骤302;
步骤310,创建一个音频数据样本;
步骤311:将该音频数据样本存入到音频缓冲队列中,并返回到步骤302。
随后,当video queue和audio queue中存在sample后,video decoder和音频audio decoder就可以从queue中取出sample,获取其中的数据包进行解码。
下面将结合附图,对解码器的处理过程进行描述。
图4是根据本发明实施例的视频解码器的处理流程图,具体的解码过程如图4所示:
步骤401:开始解码视频帧过程,并进行步骤402;
步骤402:判断视频缓冲队列是否为空,当视频缓冲队列为空时,则进行到步骤403,当视频缓冲队列不为空时,则进行步骤404;
步骤403:等待视频数据到来,并返回到步骤402;
步骤404:取出下一个视频数据样本,并进行步骤405;
步骤405:解码视频数据样本中的视频数据包,生成解码后的帧数据,并进行步骤406;
步骤406:判断视频数据样本中的解析时间戳是否连续,如果解析时间戳不连续,则进行步骤407,如果解析时间戳连续,则进行到步骤408;
步骤407:对视频数据样本中的解析时间戳做容错处理;
步骤408:绑定解码后的帧数据、帧数据的解析时间戳、起始时间戳,以创建视频输出样本,并进行步骤409;
步骤409:判断视频输出队列是否已满,当视频输出队列已满时,则进行到步骤410;当视频输出队列未满时,则进行步骤411;
步骤410:等待视频输出队列腾出空间,并返回进行步骤409;
步骤411:将视频输出样本填入视频输出队列,并进行步骤412;
步骤412:判断是否终止解码,当要终止解码时,则进行步骤413;当不终止解码时,则返回至步骤401;
步骤413:结束解码。
图5是根据本发明实施例的音频解码器的处理流程图,具体的音频解码过程如图5所示:
步骤501:开始解码音频帧过程,并进行步骤502;
步骤502:判断音频缓冲队列是否为空,当音频缓冲队列为空时,则进行到步骤503,当音频缓冲队列不为空时,则进行步骤504;
步骤503:等待音频数据到来,并返回到步骤502;
步骤504:取出下一个音频数据样本,并进行步骤505;
步骤505:解码音频数据样本中的音频数据包,生成解码后的帧数据,并进行步骤506;
步骤506:判断音频数据样本中的解析时间戳是否连续,如果解析时间戳不连续,则进行步骤507,如果解析时间戳连续,则进行到步骤508;
步骤507:对音频数据样本中的解析时间戳做容错处理;
步骤508:绑定解码后的帧数据、帧数据的解析时间戳、起始时间戳,以创建音频输出样本,并进行步骤509;
步骤509:判断音频输出队列是否已满,当音频输出队列已满时,则进行到步骤510;当音频输出队列未满时,则进行步骤511;
步骤510:等待音频输出队列腾出空间,并返回进行步骤509;
步骤511:将音频输出样本填入音频输出队列,并进行步骤512;
步骤512:判断是否终止解码,当要终止解码时,则进行步骤513;当不终止解码时,则返回至步骤501;
步骤513:直接结束解码。
上述过程中,由于视频编解码存在参考帧的解码顺序和输出顺序不同的问题,故需要对输出的ts做重排,将packet的ts重新正确地绑定到解码后的输出帧上。之后,video/audio decoder还需要根据ts的具体情况做一些容错处理,保证ts不会出现错误的巨大跳跃。之后,将解出的音视频数据连同其对应的ts再打包成相应的sample,存入到输出队列中。整个过程,第一个视频数据的解析时间戳不发生变化,但必须被复制到新的sample中。
上述容错处理是指:正常情况下,连接的时间戳是均匀递增的,但有可能出现非均匀递增的情况。这时要把它的值强行修改,使它的值尽量是均匀递增的。也就是说,在时间戳重排之后,处理个别不正常的时间戳,不是必要的操作。
由以上描述可知,通过视频或音频解码器,将解码出的音视频数据连同其对应的ts再打包成相应的sample,存入到输出队列中。整个过程,第一个视频数据的解析时间戳不发生变化,但必须被复制到新的sample中,如此便保证了音频和视频解码中,具有相同的起点(使用同一个起始时间戳,即第一个视频数据的解析时间戳)。
完成上述视频和音频的解码处理后,下一步则是根据上述过程中创建的视频和音频输出样本进行同步播放,同步播放过程里起决定作用的是renderer部分。Video renderer负责将视频同步到system stream time,audio renderer负责将音频同步到system stream time。由于音视频自身的流时间是确定的,只要用当前播放的ts减去sync point ts:
Audio/video stream time=current audio/video ts–sync point ts
并且,由于音视频的流时间具有相同的起点(使用同一个sync point ts),故可以解决开始位置音频和视频存在前后差异的问题。这样,只需要将视频流时间和音频流时间(video和audio的stream time)各自同步到system streamtime上,就很好的完成了整个同步过程。
对video renderer来说,同步的具体过程如下:
如果video stream time>system stream time,表明video数据解得较快,早于其显示时间,此时等待一段时间,等待完毕再显示当前帧,其中,该时间长度为:
等待时间(wait time)=video stream time–system stream time
如果video stream time<system stream time,表明video数据解得较慢,晚于其显示时间,此时直接显示该帧,不做任何等待。
记延迟时间(late time)=system stream time–video stream time。如果late time大于预定阈值(threshold),则发动自动化质量(auto quality)反馈机制,让video decoder只解参考帧,丢弃非参考帧。如果late time小于该threshold,则解码过程恢复常态,即解码所有帧。
其中,本发明实施例中,触发自动化质量反馈机制的预定阈值为200ms。即,如果late time大于200ms,则发动自动化质量(auto quality)反馈机制,让video decoder只解参考帧,丢弃非参考帧。如果late time小于200ms,则解码过程恢复常态,即解码所有帧。
下面将结合附图分别对视频渲染器和音频渲染器的同步过程进行说明。
图6是根据本发明实施例的视频渲染器的同步流程图,具体的同步流程如图6所示:
步骤601:计算视频帧数据的视频帧流时间,并进行步骤602;
步骤602:获取当前系统流时间,并进行到步骤603;
步骤603:判断视频帧流时间是否大于当前系统流时间,如果视频帧流时间大于当前系统流时间,则进行步骤604,如果视频帧流时间不大于当前系统流时间,则直接进行步骤605;
步骤604:等待一段时间(wait time),并进行到步骤605;
步骤605:显示当前视频帧数据,并进行步骤606;
步骤606:计算延迟时间,并进行步骤607;
步骤607:判断延迟时间是否大于预定阈值,当延迟时间大于预定阈值时,则进行步骤608,当延迟时间不大于预定阈值时,则进行步骤609;
步骤608:发动自动化质量反馈机制;
步骤609:关闭自动化质量反馈机制,并进行步骤610;
步骤610:结束同步过程。
在各种平台上,由于audio部分的数据输出表现有别于video,所以同步的策略也有一些不同。这里的不同之处在于,audio输出设备会自动根据audio的采样率(sampling rate),声道数(sound channel count)和采样精度来播放音频,播放时的速度快慢不需要人为管理,人为需要管理的仅仅是从数据段的那个位置开始将数据输入音频设备。也就是说,如果当前音频播放落后于被该播放的时间位置,则需要人为跳过落后的数据段部分,直接定位到当前应该输出的位置,从该位置将数据交给音频设备。相反,如果当前播放位置提前于实际播放位置,应该等待相应时间,期间停止发送数据给音频设备。
具体的音频同步过程如下:
1.计算时间差值(Difference time):
Difference time=audio stream time-system stream time
如果Difference time>threshold top,表明解码速度快于实际播放速度,需要等待,期间不给音频设备任何数据。这里的Difference time即是上述当前音频帧流时间与外部时钟流时间的时间差,threshold top为最大预定阈值,例如,该最大预定阈值为35ms。
如果Difference time<threshold bottom,表明解码速度低于实际播放速度,此时计算应该跳过的数据长度。计算的目的在于保证输出给音频设备的数据对应的Difference time满足如下条件:
threshold bottom<Difference time<threshold top
其中,上述threshold bottom为最小预定阈值,例如,该最小预定阈值为-65ms。
图7是根据本发明实施例的音频渲染器的同步流程图,具体的同步流程如图7所示:
步骤701:计算音频帧数据的音频帧流时间,并进行步骤702;
步骤702:获取当前系统流时间,并进行步骤703;
步骤703:计算时间差值,并进行步骤704;
步骤704:判断时间差值是否大于threshold top,当时间差值大于thresholdtop时,则进行到步骤705,当时间差值不大于threshold top时,则进行到步骤706;
步骤705:等待相邻音频帧数据的间隔时间,该间隔时间可以是小于等于23ms,完成此步骤后返回到步骤701;
步骤706:判断时间差值是否小于threshold bottom,当时间差值小于所述threshold bottom时,则进行到步骤707,当时间差值不小于threshold bottom时,则进行步骤709;
步骤707:计算跳过的数据段的长度,并进行步骤708;
步骤708:取新位置的音频帧数据,并返回到步骤701;
步骤709:输出音频帧数据,并进行步骤710;
步骤710:结束当前音频同步过程。
其中,上述内容中的threshold top和threshold bottom可凭经验给出。由于相邻音频帧数据的间隔时间均小于等于23ms,故等待时间必须匹配相邻音频帧数据的间隔时间。实际情况中,跳过的数据段长度通常等于当前音频设备需要取得数据帧的尺寸(size),该尺寸(size)只能被播放23ms以下的时间,因为很小,所以可以直接全部丢弃,直到遇见合适的位置,即Difference time满足上述条件即可。
以上便是整个音视频同步的主要流程。在CPU资源够用的时候,以上流程已可正确处理音视频同步,但当CPU资源紧张时,还需要添加额外的优化技术。
由于视频解码对CPU的资源消耗远远高于音频解码,故通常都是声音解得动而视频卡。此时,系统中与audio相关的缓冲队列通常是空的,相反,video却是满的。上文曾经提到,如果demuxer不支持随机单独提取audio或videopacket的能力,则当video queue满载时,audio queue将无法被填充,造成audiodecoder无数据可解,这样带来的后果是图像卡的同时声音也卡。
基于上述问题,本发明实施例提供如下优化方式:
首先,定期去查询当前audio decoder后端的audio输出队列是否为空;如果上述检查为空,再去检查demuxer后端的audio queue是否为空且video queue是否满载;如果demuxer检查结果为是,则通知video decoder按顺序取出videoqueue中所有的video sample,并让video decoder在随后的解码中等待关键帧的到来。其中,上述关键帧也称为I帧,是指视频编码中帧内预测编码帧,它是可以不用参考其他视频编码帧就可以重构出图像的帧。
图8是根据本发明实施例的优化CPU资源不足时的处理流程图,具体的处理流程如图8所示:
步骤801:定期查询音频输出队列是否为空,当音频输出队列为空时,则进行到步骤802,否则继续定期查询音频输出队列是否为空;
步骤802:判断分离器的音频缓冲队列是否为空且视频缓冲队列是否为满,当分离器的音频缓冲队列为空且视频缓冲队列为满时,则进行步骤803,当分离器的音频缓冲队列不为空、或视频缓冲队列不满时,则返回至步骤801;
步骤803:视频解码器按序取出视频缓冲队列中的样本,直接丢弃,并进行步骤804;
步骤804:让视频解码器等到下一个关键帧才开始解码,并进行步骤805;
步骤805:优化过程终止。
通过上述实施例可知,本发明实施例提供的技术方案能够以外部时钟external clock为同步源,解决音视频由于起始时间戳不一致造成的无法较好地实现同步播放的问题。同时,又采用了新的优化技术,较大程度缓解CPU解不动时音视频的卡顿现象,以提高用户体验。
实施例二
本发明实施例提供一种音视频同步播放装置,该装置优选地用于实现上述实施例一中的方法。图9是根据本发明实施例的音视频同步播放装置的结构框图,如图9所示,该装置包括:
流媒体数据接收单元901,用于接收来自系统的包括视频数据和音频数据的流媒体数据;
起始时间戳记录单元902,用于读取流媒体数据、并记录读取流媒体数据的起始时间戳;
流媒体数据解析单元903,用于分别获取并解析视频数据的数据包和音频数据的数据包;
解析时间戳记录单元904,用于分别记录每个数据包的解析时间戳;
视频数据样本获取单元905,用于将起始时间戳和视频解析时间戳绑定视频数据包作为视频数据样本;
音频数据样本获取单元906,用于将起始时间戳和音频解析时间戳绑定音频数据包作为音频数据样本;
音视频同步播放单元907,用于根据视频数据样本和音频数据样本、以及外部时钟同步播放视频数据和音频数据。
通过起始时间戳记录单元记录流媒体数据的起始时间戳,通过流媒体数据解析单元来获取视频或音频数据包中的解析时间戳,由视频数据样本获取单元将上述起始时间戳和视频解析时间戳以及视频数据包绑定成为视频数据样本,由音频数据样本获取单元将上述起始时间戳和音频解析时间戳以及音频数据包绑定成为音频数据样本,之后,再通过音视频同步播放单元,根据视频数据样本和音频数据样本、以及外部时钟同步播放视频数据和音频数据。由此,便完成了视频和音频的同步播放过程。
由以上描述可知,本发明实施例提供的技术方案由于时间戳不一致而导致的无法较好地实现音视频同步播放的技术,本发明实施例提供的技术方案能够有效实现音视频的同步播放。
具体地,图10是根据本发明实施例的起始时间戳记录单元结构图,如图10所示,上述起始时间戳记录单元包括:
流媒体数据读取模块9021,用于读取流媒体数据;
起始时间戳记录模块9022,用于记录读取流媒体数据中的第一个视频数据的起始时间戳。
图11是根据本发明实施例的音视频同步播放装置的具体结构框图,如图11所示,该装置还包括:
视频解码单元908,用于对视频数据样本进行解码得到视频帧数据;
新视频数据样本获取单元909,用于将起始时间戳和视频解析时间戳绑定视频帧数据作为新的视频数据样本。
图12是根据本发明实施例的音视频同步播放装置的另一个具体结构框图,如图12所示,该装置还包括:
音频解码单元910,用于对音频数据样本进行解码得到音频帧数据;
新音频数据样本获取单元911,用于将起始时间戳和音频解析时间戳绑定音频帧数据作为新的音频数据样本。
上述音视频同步播放单元具体用于:根据新的视频数据样本和新的音频数据样本、以及外部时钟同步视频数据和音频数据。
图13是根据本发明实施例的音视频同步播放单元的结构框图,如图13所示,音视频同步播放单元包括:
当前视频帧流时间获取模块9071,用于根据新的视频数据样本中的起始时间戳和视频解析时间戳获取当前视频帧流时间;
视频播放模块9072,用于当当前视频帧流时间大于外部时钟流时间时,停留预定时间后播放当前视频帧,否则,直接播放当前视频帧;
当前音频帧流时间获取模块9073,用于根据新的音频数据样本中的起始时间戳和音频解析时间戳获取当前音频帧流时间;
音频播放模块9074,用于当当前音频帧流时间与外部时钟流时间的时间差大于预定阈值时,停止播放当前音频帧,否则播放当前音频帧。
在实际操作中,该音视频同步播放装置可以是上述实施例一中的播放器。具体地,本发明实施例二中所描述的流媒体接收单元901、起始时间戳记录单元902、流媒体数据解析单元903、解析时间戳记录单元904、视频数据样本获取单元905、音频数据样本获取单元906可以具有上述播放器的分离器的功能;
视频解码单元908、新视频数据样本获取单元909可以具有上述播放器的视频解码器的功能;
音频解码单元910、新音频数据样本获取单元911可以具有上述播放器的音频解码器的功能;
音视频同步播放单元907中的当前视频帧流时间获取模块9071和视频播放模块9072可以具有上述播放器的视频渲染器的功能;
当前音频帧流时间获取模块9073和音频播放模块9074可以具有上述播放器的音频渲染器的功能。
上述各单元的具体执行过程可以参见上述实施例一中的描述,此处不再赘述。
由上述内容可知,运用本发明实施例提供的音视频同步播放装置,可以实现从影片任何位置开始播放,音视频都能较好地实现同步播放。
综上所述,通过本发明的音视频同步播放方法及装置,可以让音频和视频在播放时,以外部时钟为同步源,使得音视频的起始时间戳一致,从而克服了现有技术中无法较好地实现音视频同步播放的问题。即使音视频因码率或场景复杂度高产生不可避免的不同步现象,音频也不会卡顿,且视频播放感连续,数秒内可自动从不同步恢复到同步。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读取存储介质中,比如ROM/RAM、磁碟、光盘等。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种音视频数据的同步播放方法,其特征在于,所述的方法包括:
接收来自系统的包括视频数据和音频数据的流媒体数据;
读取所述流媒体数据、并记录读取所述流媒体数据的起始时间戳;
分别获取并解析所述视频数据的数据包和音频数据的数据包;
分别记录每个数据包的解析时间戳;
将所述起始时间戳和视频解析时间戳绑定视频数据包作为视频数据样本;
将所述起始时间戳和音频解析时间戳绑定音频数据包作为音频数据样本;
根据所述的视频数据样本和音频数据样本、以及外部时钟同步播放所述视频数据和音频数据。
2.根据权利要求1所述的方法,其特征在于,读取所述流媒体数据并记录读取所述流媒体数据的起始时间戳包括:
读取所述流媒体数据;
记录读取所述流媒体数据中的第一个视频数据的起始时间戳。
3.根据权利要求1所述的方法,其特征在于,将所述起始时间戳和视频解析时间戳绑定视频数据包作为视频数据样本之后,所述方法还包括:
对所述视频数据样本进行解码得到视频帧数据;
将所述起始时间戳和所述视频解析时间戳绑定所述视频帧数据作为新的视频数据样本。
4.根据权利要求3所述的方法,其特征在于,将所述起始时间戳和音频解析时间戳绑定音频数据包作为音频数据样本之后,所述方法还包括:
对所述音频数据样本进行解码得到音频帧数据;
将所述起始时间戳和所述音频解析时间戳绑定所述音频帧数据作为新的音频数据样本。
5.根据权利要求4所述的方法,其特征在于,根据所述的视频数据样本和音频数据样本、以及外部时钟同步播放所述视频数据和音频数据包括:
根据所述新的视频数据样本和新的音频数据样本、以及外部时钟同步播放所述视频数据和音频数据。
6.根据权利要求5所述的方法,其特征在于,根据所述新的视频数据样本和新的音频数据样本、以及外部时钟同步播放所述视频数据和音频数据包括:
根据所述新的视频数据样本中的起始时间戳和视频解析时间戳获取当前视频帧流时间;
当所述当前视频帧流时间大于所述外部时钟流时间时,停留预定时间后播放当前视频帧,否则,直接播放当前视频帧;
根据所述新的音频数据样本中的起始时间戳和音频解析时间戳获取当前音频帧流时间;
当所述当前音频帧流时间与所述外部时钟流时间的时间差大于预定阈值时,停止播放当前音频帧,否则播放当前音频帧。
7.一种音视频数据的同步播放装置,其特征在于,所述装置包括:
流媒体数据接收单元,用于接收来自系统的包括视频数据和音频数据的流媒体数据;
起始时间戳记录单元,用于读取所述流媒体数据、并记录读取所述流媒体数据的起始时间戳;
流媒体数据解析单元,用于分别获取并解析所述视频数据的数据包和音频数据的数据包;
解析时间戳记录单元,用于分别记录每个数据包的解析时间戳;
视频数据样本获取单元,用于将所述起始时间戳和视频解析时间戳绑定视频数据包作为视频数据样本;
音频数据样本获取单元,用于将所述起始时间戳和音频解析时间戳绑定音频数据包作为音频数据样本;
音视频同步播放单元,用于根据所述的视频数据样本和音频数据样本、以及外部时钟同步播放所述视频数据和音频数据。
8.根据权利要求7所述的装置,其特征在于,所述起始时间戳记录单元包括:
流媒体数据读取模块,用于读取所述流媒体数据;
起始时间戳记录模块,用于记录读取所述流媒体数据中的第一个视频数据的起始时间戳。
9.根据权利要求7所述的装置,其特征在于,所述装置还包括:
视频解码单元,用于对所述视频数据样本进行解码得到视频帧数据;
新视频数据样本获取单元,用于将所述起始时间戳和视频解析时间戳绑定所述视频帧数据作为新的视频数据样本。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
音频解码单元,用于对所述音频数据样本进行解码得到音频帧数据;
新音频数据样本获取单元,用于将所述起始时间戳和音频解析时间戳绑定所述音频帧数据作为新的音频数据样本。
11.根据权利要求10所述的装置,其特征在于,所述的音视频同步播放单元具体用于:根据所述新的视频数据样本和新的音频数据样本、以及外部时钟同步所述视频数据和音频数据。
12.根据权利要求11所述的装置,其特征在于,所述的音视频同步播放单元包括:
当前视频帧流时间获取模块,用于根据所述新的视频数据样本中的起始时间戳和视频解析时间戳获取当前视频帧流时间;
视频播放模块,用于当所述当前视频帧流时间大于所述外部时钟流时间时,停留预定时间后播放当前视频帧,否则,直接播放当前视频帧;
当前音频帧流时间获取模块,用于根据所述新的音频数据样本中的起始时间戳和音频解析时间戳获取当前音频帧流时间;
音频播放模块,用于当所述当前音频帧流时间与所述外部时钟流时间的时间差大于预定阈值时,停止播放当前音频帧,否则播放所述当前音频帧。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210338406.1A CN103686315A (zh) | 2012-09-13 | 2012-09-13 | 一种音视频同步播放方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210338406.1A CN103686315A (zh) | 2012-09-13 | 2012-09-13 | 一种音视频同步播放方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103686315A true CN103686315A (zh) | 2014-03-26 |
Family
ID=50322385
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210338406.1A Pending CN103686315A (zh) | 2012-09-13 | 2012-09-13 | 一种音视频同步播放方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103686315A (zh) |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105791939A (zh) * | 2016-03-14 | 2016-07-20 | 北京捷思锐科技股份有限公司 | 音频与视频的同步方法及装置 |
WO2016119353A1 (zh) * | 2015-01-30 | 2016-08-04 | 宇龙计算机通信科技(深圳)有限公司 | 流媒体数据共享方法、流媒体数据共享装置和终端 |
WO2017000554A1 (zh) * | 2015-06-29 | 2017-01-05 | 高翔 | 音视频文件生成方法、装置及系统 |
CN107155126A (zh) * | 2017-03-30 | 2017-09-12 | 北京奇艺世纪科技有限公司 | 一种音视频播放方法及装置 |
CN107197327A (zh) * | 2017-06-26 | 2017-09-22 | 广州天翌云信息科技有限公司 | 一种数字媒体制作方法 |
CN107277295A (zh) * | 2017-06-22 | 2017-10-20 | 北京数码视讯科技股份有限公司 | 视频同步处理装置及方法 |
CN107547891A (zh) * | 2016-06-29 | 2018-01-05 | 成都鼎桥通信技术有限公司 | 流媒体播放方法、装置和播放设备 |
CN107566890A (zh) * | 2017-09-15 | 2018-01-09 | 深圳国微技术有限公司 | 处理音频流播放异常的方法、装置、计算机装置及计算机可读存储介质 |
CN107613357A (zh) * | 2017-09-13 | 2018-01-19 | 广州酷狗计算机科技有限公司 | 声画同步优化方法、装置及可读存储介质 |
CN108614829A (zh) * | 2016-12-12 | 2018-10-02 | 中移(杭州)信息技术有限公司 | 一种播放方法及终端 |
CN108848414A (zh) * | 2018-06-26 | 2018-11-20 | 曜宇航空科技(上海)有限公司 | 一种视频的播放方法、清晰度的切换方法及播放器 |
CN109474486A (zh) * | 2018-09-30 | 2019-03-15 | 深圳市网心科技有限公司 | 流媒体数据传输欠速判定方法、系统及装置 |
CN109600665A (zh) * | 2018-08-01 | 2019-04-09 | 北京微播视界科技有限公司 | 用于处理数据的方法和装置 |
CN109862384A (zh) * | 2019-03-13 | 2019-06-07 | 北京河马能量体育科技有限公司 | 一种音视频自动同步方法及同步系统 |
CN110248233A (zh) * | 2019-07-17 | 2019-09-17 | 腾讯科技(深圳)有限公司 | 一种音视频播放方法、装置、设备及存储介质 |
CN110351592A (zh) * | 2019-07-17 | 2019-10-18 | 深圳市蓝鲸数据科技有限公司 | 动画呈现方法、装置、计算机设备和存储介质 |
CN111131917A (zh) * | 2019-12-26 | 2020-05-08 | 国微集团(深圳)有限公司 | 音频频谱实时同步方法、播放装置 |
CN111601136A (zh) * | 2020-05-11 | 2020-08-28 | 腾讯科技(深圳)有限公司 | 一种视频数据处理方法、装置、计算机设备及存储介质 |
CN111601135A (zh) * | 2020-05-09 | 2020-08-28 | 青岛海信传媒网络技术有限公司 | 一种音视频基本流同步注入的方法及显示设备 |
CN112770165A (zh) * | 2020-12-28 | 2021-05-07 | 杭州电子科技大学 | 一种音视频流分布式同步方法 |
CN114866830A (zh) * | 2022-03-30 | 2022-08-05 | 中国经济信息社有限公司 | 一种音视频同步的方法、装置及计算机可读存储介质 |
CN117596432A (zh) * | 2023-12-08 | 2024-02-23 | 广东保伦电子股份有限公司 | 音视频同步播放方法、装置、设备及存储介质 |
-
2012
- 2012-09-13 CN CN201210338406.1A patent/CN103686315A/zh active Pending
Cited By (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016119353A1 (zh) * | 2015-01-30 | 2016-08-04 | 宇龙计算机通信科技(深圳)有限公司 | 流媒体数据共享方法、流媒体数据共享装置和终端 |
WO2017000554A1 (zh) * | 2015-06-29 | 2017-01-05 | 高翔 | 音视频文件生成方法、装置及系统 |
CN105791939A (zh) * | 2016-03-14 | 2016-07-20 | 北京捷思锐科技股份有限公司 | 音频与视频的同步方法及装置 |
CN107547891B (zh) * | 2016-06-29 | 2019-05-14 | 成都鼎桥通信技术有限公司 | 流媒体播放方法、装置和播放设备 |
CN107547891A (zh) * | 2016-06-29 | 2018-01-05 | 成都鼎桥通信技术有限公司 | 流媒体播放方法、装置和播放设备 |
CN108614829A (zh) * | 2016-12-12 | 2018-10-02 | 中移(杭州)信息技术有限公司 | 一种播放方法及终端 |
CN107155126A (zh) * | 2017-03-30 | 2017-09-12 | 北京奇艺世纪科技有限公司 | 一种音视频播放方法及装置 |
CN107277295A (zh) * | 2017-06-22 | 2017-10-20 | 北京数码视讯科技股份有限公司 | 视频同步处理装置及方法 |
CN107277295B (zh) * | 2017-06-22 | 2019-10-18 | 北京数码视讯科技股份有限公司 | 视频同步处理装置及方法 |
CN107197327A (zh) * | 2017-06-26 | 2017-09-22 | 广州天翌云信息科技有限公司 | 一种数字媒体制作方法 |
CN107197327B (zh) * | 2017-06-26 | 2020-11-13 | 广州天翌云信息科技有限公司 | 一种数字媒体制作方法 |
CN107613357A (zh) * | 2017-09-13 | 2018-01-19 | 广州酷狗计算机科技有限公司 | 声画同步优化方法、装置及可读存储介质 |
CN107566890B (zh) * | 2017-09-15 | 2020-05-22 | 深圳国微技术有限公司 | 处理音频流播放异常的方法、装置、计算机装置及计算机可读存储介质 |
CN107566890A (zh) * | 2017-09-15 | 2018-01-09 | 深圳国微技术有限公司 | 处理音频流播放异常的方法、装置、计算机装置及计算机可读存储介质 |
CN108848414A (zh) * | 2018-06-26 | 2018-11-20 | 曜宇航空科技(上海)有限公司 | 一种视频的播放方法、清晰度的切换方法及播放器 |
CN109600665A (zh) * | 2018-08-01 | 2019-04-09 | 北京微播视界科技有限公司 | 用于处理数据的方法和装置 |
CN109600665B (zh) * | 2018-08-01 | 2020-06-19 | 北京微播视界科技有限公司 | 用于处理数据的方法和装置 |
CN109474486A (zh) * | 2018-09-30 | 2019-03-15 | 深圳市网心科技有限公司 | 流媒体数据传输欠速判定方法、系统及装置 |
CN109862384A (zh) * | 2019-03-13 | 2019-06-07 | 北京河马能量体育科技有限公司 | 一种音视频自动同步方法及同步系统 |
CN110351592A (zh) * | 2019-07-17 | 2019-10-18 | 深圳市蓝鲸数据科技有限公司 | 动画呈现方法、装置、计算机设备和存储介质 |
CN110248233A (zh) * | 2019-07-17 | 2019-09-17 | 腾讯科技(深圳)有限公司 | 一种音视频播放方法、装置、设备及存储介质 |
CN110351592B (zh) * | 2019-07-17 | 2021-09-10 | 深圳市蓝鲸数据科技有限公司 | 动画呈现方法、装置、计算机设备和存储介质 |
CN110248233B (zh) * | 2019-07-17 | 2021-11-16 | 腾讯科技(深圳)有限公司 | 一种音视频播放方法、装置、设备及存储介质 |
CN111131917A (zh) * | 2019-12-26 | 2020-05-08 | 国微集团(深圳)有限公司 | 音频频谱实时同步方法、播放装置 |
CN111131917B (zh) * | 2019-12-26 | 2021-12-28 | 国微集团(深圳)有限公司 | 音频频谱实时同步方法、播放装置 |
CN111601135A (zh) * | 2020-05-09 | 2020-08-28 | 青岛海信传媒网络技术有限公司 | 一种音视频基本流同步注入的方法及显示设备 |
CN111601136A (zh) * | 2020-05-11 | 2020-08-28 | 腾讯科技(深圳)有限公司 | 一种视频数据处理方法、装置、计算机设备及存储介质 |
CN111601136B (zh) * | 2020-05-11 | 2021-03-26 | 腾讯科技(深圳)有限公司 | 一种视频数据处理方法、装置、计算机设备及存储介质 |
CN112770165A (zh) * | 2020-12-28 | 2021-05-07 | 杭州电子科技大学 | 一种音视频流分布式同步方法 |
CN114866830A (zh) * | 2022-03-30 | 2022-08-05 | 中国经济信息社有限公司 | 一种音视频同步的方法、装置及计算机可读存储介质 |
CN117596432A (zh) * | 2023-12-08 | 2024-02-23 | 广东保伦电子股份有限公司 | 音视频同步播放方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103686315A (zh) | 一种音视频同步播放方法及装置 | |
US10129587B2 (en) | Fast switching of synchronized media using time-stamp management | |
JP4538908B2 (ja) | データ変換装置及び方法 | |
CN104410807B (zh) | 一种多路视频同步回放方法及装置 | |
US9179118B2 (en) | Techniques for synchronization of audio and video | |
CN103929657B (zh) | 视频复用设备和方法、复用视频解码设备和方法 | |
KR100929073B1 (ko) | 휴대 방송 시스템에서 다중 스트림 수신 장치 및 방법 | |
CN103718563B (zh) | 接收装置及其接收方法 | |
CN101076121B (zh) | 流生成装置、成像装置、数据处理装置和流生成方法 | |
CN108243350B (zh) | 一种音视频同步处理的方法和装置 | |
WO2017067489A1 (zh) | 机顶盒音视频同步的方法及装置、存储介质 | |
CN109660805B (zh) | 解码播放中音视频同步优化方法、存储介质、设备及系统 | |
KR20030012761A (ko) | 데이터 다중화 방법, 데이터 기록 매체, 데이터 기록 장치및 데이터 기록 프로그램 | |
CN103428462A (zh) | 一种多通道音视频处理方法和装置 | |
CN105916058A (zh) | 一种流媒体缓冲播放方法、装置及显示设备 | |
TW200400761A (en) | System for random access to content | |
CN105187896A (zh) | 多分段的媒体文件播放方法和系统 | |
US20160142766A1 (en) | Method And Device For Processing Multimedia Frame And Storage Medium | |
TW201528793A (zh) | 同步影音碼流的解碼器與解碼方法 | |
CN112653904A (zh) | 一种基于pts与dts修改的快速视频裁剪方法 | |
CN102223539A (zh) | 图像编码丢帧花屏的处理方法 | |
CN101808242B (zh) | 缓存控制装置和缓存控制方法 | |
JP2006190213A (ja) | メディア再生装置 | |
CN100498951C (zh) | 记录方法 | |
US9420278B2 (en) | Audiovisual content generation method for multistage high-speed reproduction |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140326 |
|
RJ01 | Rejection of invention patent application after publication |