CN106412662B - 时间戳分配方法及装置 - Google Patents
时间戳分配方法及装置 Download PDFInfo
- Publication number
- CN106412662B CN106412662B CN201610835244.0A CN201610835244A CN106412662B CN 106412662 B CN106412662 B CN 106412662B CN 201610835244 A CN201610835244 A CN 201610835244A CN 106412662 B CN106412662 B CN 106412662B
- Authority
- CN
- China
- Prior art keywords
- audio
- timestamp
- component
- data
- request
- 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
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/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/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)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明公开了一种时间戳分配方法及装置,属于视频直播领域。所述时间戳分配方法包括:接收时间戳获取请求,该时间戳获取请求是音频采集组件或视频采集组件采集到数据时发送的;检测音频采集组件和视频采集组件是否均完成启动;当音频采集组件和视频采集组件均完成启动时,为发送该时间戳获取请求的组件所采集的数据分配时间戳。本发明实施例中,采用请求式的时间戳分配方式,在音频采集组件或视频采集组件请求为采集到数据分配时间戳时,确定音频采集组件和视频采集组件是否均完成启动,并在两者均完成启动的情况下为采集到的数据分配时间戳,确保了音/视频数据对应时间戳的连续性和同步性,有利于后续进行音视频同步。
Description
技术领域
本发明实施例涉及视频直播领域,特别涉及一种时间戳分配方法及装置。
背景技术
随着互联网技术的不断发展以及移动终端数据处理能力的不断增强,越来越多的用户开始使用移动终端进行视频直播。
在视频直播过程中,移动终端通过音频采集组件和视频采集组件进行音频数据和视频数据的采集,并利用编码器对采集到的音频数据和视频数据进行编码,从而将经过编码的音频视频数据上传至直播服务器。由于移动终端中音频采集组件和视频采集组件的启动速度存在较大差异,导致音频数据和视频数据的时间戳(Presentation Time Stamp,PTS)存在较大差异,不利于音视频同步。因此,在对音频数据和视频数据进行编码前,移动终端需要通过时间戳预估的方式对音频数据和视频数据的时间戳进行预处理,并以此确保音频数据和视频数据时间戳的连续性。
在实现本发明实施例的过程中,发明人发现上述技术至少存在以下问题:
由于音频采集组件和视频采集组件的启动速度具有不确定性,导致利用时间戳预估的方式对时间戳进行预处理的准确性较差。
发明内容
为了解决现有技术中由于音频采集组件和视频采集组件的启动速度具有不确定性,导致利用时间戳预估的方式对时间戳进行预处理的准确性较差的问题,本发明实施例提供了一种时间戳分配方法及装置。所述技术方案如下:
根据本发明实施例的第一方面,提供一种时间戳分配方法,该方法包括:
接收时间戳获取请求,该时间戳获取请求是音频采集组件或视频采集组件采集到数据时发送的;
检测音频采集组件和视频采集组件是否均完成启动;
当音频采集组件和视频采集组件均完成启动时,为发送该时间戳获取请求的组件所采集的数据分配时间戳。
根据本发明实施例的第二方面,提供一种时间戳分配装置,该装置包括:
接收模块,用于接收时间戳获取请求,该时间戳获取请求是音频采集组件或视频采集组件采集到数据时发送的;
检测模块,用于检测音频采集组件和视频采集组件是否均完成启动;
第一分配模块,用于当音频采集组件和视频采集组件均完成启动时,为发送该时间戳获取请求的组件所采集的数据分配时间戳。
本发明实施例提供的技术方案带来的有益效果是:
采用请求式的时间戳分配方式,在音频采集组件或视频采集组件请求为采集到数据分配时间戳时,确定音频采集组件和视频采集组件是否均完成启动,并在两者均完成启动的情况下为采集到的数据分配时间戳,从而缩小音/视频数据对应时间戳的差距,实现了从采集侧对音视频组件进行时间戳同步,确保了音/视频数据对应时间戳的连续性和同步性,有利于后续进行音视频同步;避免了因音/视频采集组件启动速度存在较大差异,导致音/视频数据对应时间戳差异较大,不利于音视频同步的问题。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本发明一个实施例提供的视频直播系统的示意图;
图2示出了本发明一个实施例提供的时间戳分配方法的流程图;
图3A示出了本发明另一个实施例提供的时间戳分配方法的流程图;
图3B是图3A所示时间戳分配方法中时间戳分配流程的实施示意图;
图3C是图3A所示时间戳分配方法所涉及的视频数据时间戳分配过程的流程图;
图3D是图3A所示时间戳分配方法所涉及的音频数据时间戳分配过程的流程图;
图3E示出了本发明再一个实施例提供的时间戳分配方法的流程图;
图3F是图3E所示时间戳分配方法的实施示意图;
图4示出了本发明一个实施例提供的时间戳分配装置的结构方框图;
图5示出了本发明一个实施例提供的移动终端的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
在本文提及的“模块”是指存储在存储器中的能够实现某些功能的程序或指令;在本文中提及的“单元”是指按照逻辑划分的功能性结构,该“单元”可以由纯硬件实现,或者,软硬件的结合实现。
在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
用户使用移动终端进行视频直播时,移动终端以系统时间为基准,主动为移动终端中音/视频采集组件所采集的音/视频数据分配时间戳。但是通常情况下,移动终端中音频采集组件的启动速度远快于视频采集组件的启动速度,导致开启直播后的一段时间内,移动终端仅获取到音频采集组件采集的音频数据,并根据系统时间为音频数据分配时间戳。比如,移动终端中的音频采集组件在开启直播后0.5秒完成启动并开始采集音频数据,而视频采集组件在开启直播后2.5秒才完成启动并开始采集视频数据;相应的,移动终端从0.5秒开始为音频数据分配时间戳,从2.5秒开始为视频数据分配时间戳。显然,若不对音/视频数据的时间戳进行处理,两者时间戳的差距较大,不利于后续的音视频同步。
现有技术中,为了解决音/视频数据时间戳差距较大,不利于音视频同步的问题,移动终端通常采用时间戳预估的方式减小音/视频数据时间戳的差距。比如,在对采集到的音/视频数据进行编码前,移动终端根据预估的音视频组件启动时间差(比如1.5s)对音/视频数据的时间戳进行预处理,从而缩小两者时间戳的差距,方便后续进行音视频同步。但是移动终端中音/视频采集组件的启动速度受到系统性能和硬件性能的影响,导致其启动速度不确定,即音/视频采集组件启动时间差不确定,因此采用时间戳预估的方式对时间戳进行处理的效果不佳。
与现有技术中移动终端主动为采集到的音/视频数据分配时间戳不同,本发明各个实施例提供的时间戳分配方法中,移动终端采用请求式的时间戳分配方式,在音视频组件发送时间戳获取请求且音/视频采集组件均完成启动的情况下为采集到的音/视频数据分配时间戳,从而缩小音/视频数据对应时间戳的差距,方便后续的音视频同步。下面采用示意性的实施例进行说明。
请参考图1,其示出了本发明一个实施例提供的视频直播系统的示意图。该视频直播系统中包括第一终端110、直播服务器120和第二终端130。
第一终端110是进行直播的用户所使用的移动终端,该移动终端中安装有视频直播应用程序,该移动终端可以是智能手机、平板电脑或便携式个人计算机等等。图1中以第一终端110为智能手机为例进行说明。
移动终端中配置有音频和视频采集组件,在直播过程中,音/视频采集组件即进行音/视频数据的采集,其中,音频采集组件可以为麦克风,视频采集组件可以为摄像头。同时,移动终端还具有音视频编码以及数据传输功能。对于音视频组件采集到的音/视频数据,移动终端即利用该音视频编码功能对其进行编码,并借助数据传输功能将编码后的音/视频数据传输至直播服务器120。
第一终端110与直播服务器120之间通过无线网络相连。
直播服务器120是视频直播应用程序对应的后台服务器。该后台服务器可以是单台服务器,也可以是由多台服务器组成的服务器集群或云计算中心。
直播服务器120具有视频推流功能,用于在接收到第一终端110发送的音视频直播数据后,采用推流的方式将该音视频直播数据推送至安装有直播观看应用程序的第二终端130。
直播服务器120与第二终端130之间通过有线或无线网络相连。
第二终端130是观看直播的用户所使用的终端,该终端中安装有直播观看应用程序,该终端可以是智能手机、平板电脑、个人计算机或便捷式个人计算机等等。第二终端130接收到直播服务器120推流的音视频直播数据后,通过解码器对该音视频直播数据进行解码,并借助直播观看应用程序进行播放,从而实现直播观看。
本发明各个实施例提供的时间戳分配方法即应用于图1所示的第一终端110。
请参考图2,其示出了本发明一个实施例提供的时间戳分配方法的流程图,本实施例以该时间戳分配方法用于图1所示第一终端110为例进行说明,该方法包括:
步骤201,接收时间戳获取请求,该时间戳获取请求是音频采集组件或视频采集组件采集到数据时发送的。
与现有技术不同的是,音/视频采集组件采集到相应数据后,采用发送时间戳获取请求的方式请求移动终端为其数据分配时间戳。相应的,移动终端在直播过程中接收各个组件发送的时间戳获取请求。可选的,该时间戳获取请求中包含发送方的标识,用于指示发送该时间戳获取求的组件。
比如,移动终端接收到的时间戳获取请求中包含标识“A”,指示该时间戳获取请求是音频(Audio)采集组件采集到音频数据时发送的;又比如,移动终端接收到的时间戳获取请求中包含标识“V”,指示该时间戳获取请求是视频(Video)采集组件采集到视频数据时发送的。
步骤202,检测音频采集组件和视频采集组件是否均完成启动。
可选的,移动终端接收到时间戳获取请求后,即确定该时间戳获取请求的发送方已完成启动,并对已启动的组件进行记录。后续接收到时间戳获取请求时,即根据记录的已启动的组件确定音频采集组件和视频采集组件是否均完成启动。
步骤203,当音频采集组件和视频采集组件均完成启动时,为发送该时间戳获取请求的组件所采集的数据分配时间戳。
当检测到音频采集组件和视频采集组件均完成启动时(即移动终端已接收到音频采集组件和视频采集组件发送的时间戳获取请求),移动终端即根据该时间戳获取请求为相应的数据分配时间戳。
需要说明的是,在确定音频采集组件和视频采集组件均完成启动后,对于后续接收到的时间戳获取请求,移动终端跳过上述步骤202的检测过程,直接为采集到的数据分配时间戳。
综上所述,本实施例提供的时间戳分配方法中,移动终端采用请求式的时间戳分配方式,在音频采集组件或视频采集组件请求为采集到数据分配时间戳时,确定音频采集组件和视频采集组件是否均完成启动,并在两者均完成启动的情况下为采集到的数据分配时间戳,从而缩小音/视频数据对应时间戳的差距,实现了从采集侧对音视频组件进行时间戳同步,确保了音/视频数据对应时间戳的连续性和同步性,有利于后续进行音视频同步;避免了因音/视频采集组件启动速度存在较大差异,导致音/视频数据对应时间戳差异较大,不利于音视频同步的问题。
通常情况下,移动终端中音频采集组件的启动速度远快于视频采集组件的启动速度,因此在直播初始阶段,移动终端只能接收到音频采集组件发送的时间戳获取请求。由于此时视频采集组件尚未完成启动,因此对于音频采集组件发送的时间戳获取请求,移动终端并不会为其采集到的音频数据分配有效时间戳,而是指示其对采集的音频数据进行丢弃,并重新进行下一次音频数据采集。下面采用示意性实施例进行说明。
请参考图3A,其示出了本发明一个实施例提供的时间戳分配方法的流程图,本实施例以该时间戳分配方法用于图1所示第一终端110为例进行说明,该方法包括:
步骤301,接收音频采集组件发送的时间戳获取请求,该时间戳获取请求是音频采集组件采集到数据时发送的。
移动终端中设置有时间戳预处理器(PTSHelper),该时间戳预处理器用于接收直播过程中音视频组件发送时间戳分配请求。可选的,该时间戳预处理器通过视频直播应用程序中的一段程序代码实现。
开启直播时,时间戳预处理器与音/视频采集组件同时启动,并等待接收音视频组件启动完成后发送的时间戳获取请求。当接收到时间戳获取请求后,时间戳预处理器即确定该时间戳获取请求的发送方已完成启动。
在一种可能的实施方式中,由于音频采集组件的启动速度通常快于视频采集组件的启动速度,因此,音频采集组件在完成启动并采集到数据后,即率先向该时间戳预处理器发送时间戳获取请求。相应的,时间戳预处理器接收到音频采集组件发送的时间戳获取请求后,即确定音频采集组件已完成启动,并记录音频采集组件处于已启动状态。
步骤302,检测音频采集组件和视频采集组件是否均完成启动。
接收到时间戳获取请求后,时间戳预处理器即检测音频采集组件和视频采集组件是否均完成启动。
可选的,时间戳预处理器记录有音频采集组件和视频采集组件各自所处的状态,该状态包括关闭、启动中和已启动。开启直播时,时间戳预处理器即将音/视频采集组件的状态由关闭修改为启动中。当接收到时间戳获取请求时,时间戳预处理器即将时间戳获取请求对应发送方的状态由启动中修改为已启动。
由于音频采集组件的启动速度较快,即时间戳预处理器首先接收到音频采集组件发送的时间戳获取请求,因此时间戳预处理器通过检测是否接收到视频采集组件发送的时间戳获取请求来确定音频采集组件和视频采集组件是否均完成启动。
步骤303,当音频采集组件或视频采集组件未完成启动时,为发送时间戳获取请求的组件分配无效时间戳,无效时间戳用于指示发送时间戳获取请求的组件丢弃采集到的数据。
当检测到音频采集组件或视频采集组件未完成启动时(通常情况是音频采集组件已启动,视频采集组件未完成启动),时间戳预处理器即向发送时间戳获取请求的组件分配无效时间戳。比如,时间戳预处理器可以向发送时间戳获取请求的组件分配一个小于0的时间戳(即无效时间戳)。
接收到无效时间戳后,发送时间戳获取请求的组件即采集到的数据进行丢弃,并重新进入下一次数据采集。
比如,如图3B所示,移动终端在t0时刻开启直播,即时间戳预处理器、音频采集组件和视频采集组件均在t0时刻开始启动。音频采集组件在t1时刻完成启动并采集到音频数据时,向时间戳预处理器发送时间戳获取请求;由于此时视频采集组件并未完成启动,因此时间戳预处理器为音频采集组件此次采集的音频数据分配一个小于0的无效时间戳;相应的,接收到该时间戳后,音频采集组件即丢弃音频数据,并进行下一次音频数据采集。可见,在音频采集组件完成启动但视频采集组件未完成启动这段时间内,音频采集组件采集到的音频数据都将被丢弃,且无法交由编码器进行编码。
步骤304,当音频采集组件和视频采集组件均完成启动时,为发送该时间戳获取请求的组件所采集的数据分配时间戳。
当检测到音频采集组件和视频采集组件均完成启动时,时间戳预处理器即为发送时间戳获取请求的组件所采集的数据分配有效时间戳。相应的,分配到有效时间戳的数据将交由编码器进行编码。
比如,如图3B所示,在视频采集组件在t2时刻完成启动并向时间戳预处理器发送时间戳获取请求,时间戳预处理器接收到该请求后,确定音频采集组件和视频采集组件均完成启动,并为视频采集组件此次采集的视频数据分配时间戳,视频采集组件即可将分配到时间戳的视频数据交由编码器进行编码。当在t3时刻接收到音频采集组件发送时间戳获取请求时,由于视频采集组件已完成启动,因此时间戳预处理器为音频采集组件采集到的音频数据分配时间戳,音频采集组件即可将分配到时间戳的音频数据交由编码器进行编码。
需要说明的是,由于音频采集组件进行音频采集的频率较高,因此在t1至t2这段时间内,音频采集组件发送了多次时间戳获取请求(图中未示出),相应的时间戳预处理器在这段时间内为采集到的音频数据均分配无效时间戳。并且,时间戳预处理器为视频数据分配的首个时间戳(t2)与为音频数据分配的首个时间戳(t3)十分接近,有利于后续音视频同步。
综上所述,本实施例提供的时间戳分配方法中,移动终端采用请求式的时间戳分配方式,在音频采集组件或视频采集组件请求为采集到数据分配时间戳时,确定音频采集组件和视频采集组件是否均完成启动,并在两者均完成启动的情况下为采集到的数据分配时间戳,从而缩小音/视频数据对应时间戳的差距,实现了从采集侧对音视频组件进行时间戳同步,确保了音/视频数据对应时间戳的连续性和同步性,有利于后续进行音视频同步;避免了因音/视频采集组件启动速度存在较大差异,导致音/视频数据对应时间戳差异较大,不利于音视频同步的问题。
由于音/视频采集组件采集数据的方式不同,导致移动终端为音/视频数据分配时间戳的方式也不同。下面就移动终端为音频数据和视频数据分配时间戳的详细过程进行说明。如图3C所示,当移动终端为视频采集组件采集的视频图像分配时间戳时,上述步骤304包括如下步骤。
步骤304A,获取时间戳获取请求的请求发送时刻。
视频采集组件完成启动,并采集到单位帧数的图像数据时,即向时间戳预处理器发送时间戳获取请求。比如,视频采集组件每采集到一帧图像数据,即向时间戳预处理器发送时间戳获取请求,请求时间戳预处理器为这帧图像数据分配时间戳。
相应的,时间戳预处理器接收到该时间戳获取请求后,获取该时间戳获取请求的请求发送时刻。
步骤304B,将该请求发送时刻确定为视频采集组件当前采集的视频数据的时间戳。
获取到该请求发送时刻后,时间戳预处理器即将该请求发送时刻确定为当前视频数据对应的时间戳。
比如,如图3B所示,视频采集组件在t2时刻采集到一帧图像数据并向时间戳预处理器发送时间戳获取请求,时间戳预处理器获取该请求后,即将t2确定为该帧图像数据的时间戳,并返回给视频采集组件。
可选的,时间戳预处理器还可以将视频采集组件首次发送时间戳获取请求的时刻视为0时刻(即将t2视为0时刻),后续为视频采集组件采集的视频数据分配时间戳时,时间戳预处理器即将请求发送时刻与t2(视频初始时间戳)的时间间隔作为视频数据的时间戳,并返回给视频采集组件,本发明实施例并不对此进行限定。
当移动终端为音频采集组件采集的音频图像分配时间戳时,如图3D所示,上述步骤304包括如下步骤。
步骤304C,获取音频数据对应的音频时长。
与视频采集组件按帧采集视频数据不同,音频采集组件每采集预定数据量的音频数据时向时间戳预处理器发送时间戳获取请求。相应的,时间戳预处理器确定该预定数据量的音频数据对应的音频时长,从而根据该音频时长为音频数据分配时间戳。
在一种可能的实施方式中,时间戳预处理器获取音频数据对应音频时长的过程包括如下步骤。
一、获取音频数据的音频参数,音频参数包括采样率、样本数据量和采样通道数。
音频采集组件按照预定的音频参数进行音频数据采集,该音频参数用于指示音频采集质量。音频参数指示音频采集质量越高,预定数据量音频数据对应的音频时长越短,音频参数指示音频采集质量越低,预定数据量音频数据对应的音频时长越长。因此,接收到时间戳获取请求后,时间戳预处理器即获取音频数据的音频参数。
可选的,该音频参数包括采样率、样本数据量和采样通道数,其中,采样率指单位时间内的采样次数,比如,采样率44.1khz表示每秒内进行44100次采样;样本数据量指每次采集样本的数据量,比如,样本数据量2字节表示每次采样时采集样本的数据量为2字节;采样通道数指进行采样的音频通道的数量,比如,当采用双声道进行音频采样时,该采样通道数即为2。
二、根据预定数据量和音频参数计算预定数据量的音频数据对应的音频时长。
获取到音频参数后,时间戳预处理器进一步根据预定数据量和音频参数计算预定数据量的音频数据对应的音频时长。
可选的,当音频参数包括采样率、样本数据量和采样通道数时,音频时长=预定数据量/(采样率×样本数据量×采样通道数)。
步骤304D,根据音频时长和音频采集次数计算音频累计时长。
由于直播过程中音频参数保持不变,因此音频采集组件每次采集的音频数据对应的音频时长也不变。时间戳预处理器即根据获取到的音频时长和音频采集次数(即为音频数据分配有效时间戳的次数),计算直播过程中音频数据的音频累计时长。
比如,时间戳预处理器获取音频数据的音频时长为20ms,且音频采集次数为5次,则音频数据的音频累计时长为20×5=100ms。
步骤304E,根据音频累计时长和音频初始时间戳确定音频采集组件当前采集的音频数据的时间戳,音频初始时间戳指首次为音频数据分配的时间戳。
时间戳预处理器根据计算得到的音频累计时长以及音频初始时间戳,确定当前采集的音频数据的时间戳。
比如,音频初始时间戳为t3,且音频累计时长为100ms,则为当前音频数据分配的时间戳为t3+100。
本实施例中,对于音频数据和视频数据,移动终端采用不同的时间戳确定方式为其分配时间戳,确保音/视频数据各自对应时间戳的准确性,避免因时间戳错误导致的音视频不同步。
与传统直播方式不同,用户在使用移动终端进行直播时,由于电话呼入或按键误触等原因,直播会发生中断(音/视频采集组件关闭);当从中断中恢复并继续进行直播时,音/视频采集组件又需要重新启动并进行数据采集。为了避免从中断恢复直播后音视频不同步,在图3A的基础上,如图3E所示,上述步骤304之后还包括如下步骤。
步骤305,检测是否发生中断,发生中断时音频采集组件和视频采集组件均停止。
可选的,该中断由电话呼入、锁屏或按键误触等事件触发。
步骤306,当检测到发生中断时,记录中断时刻并停止分配时间戳。
检测到直播发生中断时,时间戳预处理器即对中断时刻进行记录,并在中断过程中停止分配时间戳。比如,时间戳预处理器记录下中断时刻为t11,并从t11开始停止分配时间戳。
需要说明的是,由于音/视频采集组件由已启动状态转为停止状态需要一段缓冲时间,在这段缓冲时间内音/视频采集组件仍会采集音/视频数据并请求时间戳。因此当检测到发生中断时,时间戳预处理器即返回无效时间戳,避免直播中断时出现异常。
如图3F所示,在正常直播过程中,音/视频采集组件向时间戳预处理器发送时间戳获取请求,时间戳预处理器即返回相应的时间戳;当直播过程中发生中断时,时间戳预处理器即停止分配时间戳(或返回无效时间戳)。
步骤307,当从中断中恢复且音频采集组件和视频采集组件完成重启时,基于中断时刻为音频采集组件和视频采集组件采集到数据分配时间戳。
如图3F所示,在中断恢复过程中,由于音/视频采集组件需要重新启动,因此时间戳预处理器在接收到音/视频采集组件发送的时间戳获取请求时,需要检测音/视频采集设备是否均完全启动,并在两者均完全启动的情况下进行时间戳分配(即重新执行上述步骤302至304),从而避免中断恢复后音/视频数据对应时间戳存在较大差异的问题。
可选的,时间戳预处理器以记录的中断时刻为时间原点进行时间戳分配,避免中断恢复前后数据对应时间戳发生跳变(时间戳不连续),导致音视频不同步的问题。
比如,直播在t11时刻发生中断,并在t40时刻恢复,时间戳预处理即基于t11为后续的音视频数据分配时间戳,而非基于t40分配时间戳。
本实施例中,当直播从中断中恢复时,移动终端需要重新检测音频采集组件和视频采集组件是否均完成启动,并在两者均完成启动时,基于中断时刻为采集的音/视频数据分配时间戳,避免了中断恢复后音/视频数据对应时间戳存在较大差异的问题,确保了中断恢复前后音/视频数据的连续性和同步性。
下述为本发明装置实施例,对于装置实施例中未详尽描述的细节,可以参考上述一一对应的方法实施例。
请参考图4,其示出了本发明一个实施例提供的时间戳分配装置的结构方框图。该时间戳分配装置通过硬件或者软硬件的结合实现成为图1中第一终端110的全部或者一部分。该时间戳分配装置包括接收模块410、检测模块420和第一分配模块430。
接收模块410,用于实现上述步骤201或301的功能;
检测模块420,用于实现上述步骤202或302的功能;
第一分配模块430,用于实现上述步骤203或304的功能。
综上所述,本实施例提供的时间戳分配装置中,移动终端采用请求式的时间戳分配方式,在音频采集组件或视频采集组件请求为采集到数据分配时间戳时,确定音频采集组件和视频采集组件是否均完成启动,并在两者均完成启动的情况下为采集到的数据分配时间戳,从而缩小音/视频数据对应时间戳的差距,实现了从采集侧对音视频组件进行时间戳同步,确保了音/视频数据对应时间戳的连续性和同步性,有利于后续进行音视频同步;避免了因音/视频采集组件启动速度存在较大差异,导致音/视频数据对应时间戳差异较大,不利于音视频同步的问题。
可选的,该装置,还包括第二分配模块;
第二分配模块,用于实现上述步骤303的功能;
可选的,所述时间戳获取请求是所述音频采集组件每采集预定数据量的音频数据时发送的;
所述第一分配模块430,包括第一获取单元、计算单元和第一确定单元;
第一获取单元,用于实现上述步骤304C的功能;获取所述音频数据对应的音频时长;
计算单元,用于实现上述步骤304D的功能;
第一确定单元,用于实现上述步骤304E的功能。
可选的,所述第一获取单元,包括:
第一获取子单元,用于获取所述音频数据的音频参数,所述音频参数包括采样率、样本数据量和采样通道数;
计算子单元,用于根据所述预定数据量和所述音频参数计算所述预定数据量的音频数据对应的音频时长;
其中,所述音频时长=所述预定数据量/(所述采样率×所述样本数据量×所述采样通道数),所述采样率指单位时间内的采样次数,所述样本数据量指每次采集样本的数据量,所述采样通道数指进行采样的音频通道的数量。
可选的,所述时间戳获取请求是所述视频采集组件每采集单位帧数的图像数据时发送的;
所述第一分配模块430包括第二获取单元和第二确定单元:
第二获取单元,用于实现上述步骤304A的功能;
第二确定单元,用于实现上述步骤304B的功能。
可选的,该装置,还包括中断检测模块、记录模块和第三分配模块;
中断检测模块,用于实现上述步骤305的功能;
记录模块,用于实现上述步骤306的功能;
第三分配模块,用于实现上述步骤307的功能。
本实施例中,对于音频数据和视频数据,移动终端采用不同的时间戳确定方式为其分配时间戳,确保音/视频数据各自对应时间戳的准确性,避免因时间戳错误导致的音视频不同步。
本实施例中,当直播从中断中恢复时,移动终端需要重新检测音频采集组件和视频采集组件是否均完成启动,并在两者均完成启动时,基于中断时刻为采集的音/视频数据分配时间戳,避免了中断恢复后音/视频数据对应时间戳存在较大差异的问题,确保了中断恢复前后音/视频数据的连续性和同步性。
请参考图5,其示出了本发明一个实施例提供的移动终端的结构示意图。该移动终端为图1中的第一终端110。具体来讲:
移动终端500可以包括RF(Radio Frequency,射频)电路510、包括有一个或一个以上计算机可读存储介质的存储器520、输入单元530、显示单元540、传感器550、音频电路560、近场通信模块570、包括有一个或者一个以上处理核心的处理器580、以及电源590等部件。本领域技术人员可以理解,图5中示出的移动终端结构并不构成对移动终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
RF电路510可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器580处理;另外,将涉及上行的数据发送给基站。通常,RF电路510包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、LNA(Low Noise Amplifier,低噪声放大器)、双工器等。此外,RF电路510还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于GSM(Global System of Mobile communication,全球移动通讯系统)、GPRS(General Packet Radio Service,通用分组无线服务)、CDMA(CodeDivision Multiple Access,码分多址)、WCDMA(Wideband Code Division MultipleAccess,宽带码分多址)、LTE(Long Term Evolution,长期演进)、电子邮件、SMS(ShortMessaging Service,短消息服务)等。
存储器520可用于存储软件程序以及模块,处理器580通过运行存储在存储器520的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器520可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据移动终端500的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器520可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器520还可以包括存储器控制器,以提供处理器580和输入单元530对存储器520的访问。
输入单元530可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,输入单元530可包括图像输入设备531以及其他输入设备532。图像输入设备531可以是摄像头,也可以是光电扫描设备。除了图像输入设备531,输入单元530还可以包括其他输入设备532。具体地,其他输入设备532可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元540可用于显示由用户输入的信息或提供给用户的信息以及移动终端500的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元540可包括显示面板541,可选的,可以采用LCD(Liquid Crystal Display,液晶显示器)、OLED(Organic Light-Emitting Diode,有机发光二极管)等形式来配置显示面板541。
移动终端500还可包括至少一种传感器550,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板541的亮度,接近传感器可在移动终端500移动到耳边时,关闭显示面板541和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于移动终端500还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路560、扬声器561,传声器562可提供用户与移动终端500之间的音频接口。音频电路560可将接收到的音频数据转换后的电信号,传输到扬声器561,由扬声器561转换为声音信号输出;另一方面,传声器562将收集的声音信号转换为电信号,由音频电路560接收后转换为音频数据,再将音频数据输出处理器580处理后,经RF电路510以发送给比如另一电子设备,或者将音频数据输出至存储器520以便进一步处理。音频电路560还可能包括耳塞插孔,以提供外设耳机与移动终端500的通信。
移动终端500通过近场通信模块570与外部设备建立近场通信连接,并通过该近场通信连接进行数据交互。本实施例中,该近场通信模块570具体包括蓝牙模块和/或WiFi模块。
处理器580是移动终端500的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器520内的软件程序和/或模块,以及调用存储在存储器520内的数据,执行移动终端500的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器580可包括一个或多个处理核心;优选的,处理器580可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器580中。
移动终端500还包括给各个部件供电的电源590(比如电池),优选的,电源可以通过电源管理系统与处理器580逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源590还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管未示出,移动终端500还可以包括蓝牙模块等,在此不再赘述。
具体在本实施例中,移动终端500还包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行以实现上述时间戳分配方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种时间戳分配方法,其特征在于,所述方法包括:
接收时间戳获取请求,所述时间戳获取请求是音频采集组件或视频采集组件采集到数据时发送的;
检测所述音频采集组件和所述视频采集组件是否均完成启动;
当所述音频采集组件和所述视频采集组件均完成启动时,为发送所述时间戳获取请求的组件所采集的数据分配时间戳。
2.根据权利要求1所述的方法,其特征在于,所述检测所述音频采集组件和所述视频采集组件是否均完成启动之后,还包括:
当所述音频采集组件或所述视频采集组件未完成启动时,为发送所述时间戳获取请求的组件分配无效时间戳,所述无效时间戳用于指示发送所述时间戳获取请求的组件丢弃采集到的数据。
3.根据权利要求1所述的方法,其特征在于,所述时间戳获取请求是所述音频采集组件每采集预定数据量的音频数据时发送的;
所述当所述音频采集组件和所述视频采集组件均完成启动时,为发送所述时间戳获取请求的组件所采集的数据分配时间戳,包括:
获取所述音频数据对应的音频时长;
根据所述音频时长和音频采集次数计算音频累计时长;
根据所述音频累计时长和音频初始时间戳确定所述音频采集组件当前采集的音频数据的时间戳,所述音频初始时间戳指首次为音频数据分配的时间戳。
4.根据权利要求3所述的方法,其特征在于,所述获取所述音频数据对应的音频时长,包括
获取所述音频数据的音频参数,所述音频参数包括采样率、样本数据量和采样通道数;
根据所述预定数据量和所述音频参数计算所述预定数据量的音频数据对应的音频时长;
其中,所述音频时长=所述预定数据量/(所述采样率×所述样本数据量×所述采样通道数),所述采样率指单位时间内的采样次数,所述样本数据量指每次采集样本的数据量,所述采样通道数指进行采样的音频通道的数量。
5.根据权利要求1所述的方法,其特征在于,所述时间戳获取请求是所述视频采集组件每采集单位帧数的图像数据时发送的;
所述当所述音频采集组件和所述视频采集组件均完成启动时,为发送所述时间戳获取请求的组件所采集的数据分配时间戳,包括:
获取所述时间戳获取请求的请求发送时刻;
将所述请求发送时刻确定为所述视频采集组件当前采集的视频数据的时间戳。
6.根据权利要求1至5任一所述的方法,其特征在于,所述当所述音频采集组件和所述视频采集组件均完成启动时,为发送所述时间戳获取请求的组件所采集的数据分配时间戳之后,还包括:
检测是否发生中断,发生中断时所述音频采集组件和所述视频采集组件均停止;
当检测到发生中断时,记录中断时刻并停止分配时间戳;
当从中断中恢复且所述音频采集组件和所述视频采集组件完成重启时,基于所述中断时刻为所述音频采集组件和所述视频采集组件采集到数据分配时间戳。
7.一种时间戳分配装置,其特征在于,所述装置包括:
接收模块,用于接收时间戳获取请求,所述时间戳获取请求是音频采集组件或视频采集组件采集到数据时发送的;
检测模块,用于检测所述音频采集组件和所述视频采集组件是否均完成启动;
第一分配模块,用于当所述音频采集组件和所述视频采集组件均完成启动时,为发送所述时间戳获取请求的组件所采集的数据分配时间戳。
8.根据权利要求7所述的装置,其特征在于,所述装置,还包括:
第二分配模块,用于当所述音频采集组件或所述视频采集组件未完成启动时,为发送所述时间戳获取请求的组件分配无效时间戳,所述无效时间戳用于指示发送所述时间戳获取请求的组件丢弃采集到的数据。
9.根据权利要求7所述的装置,其特征在于,所述时间戳获取请求是所述音频采集组件每采集预定数据量的音频数据时发送的;
所述第一分配模块,包括:
第一获取单元,用于获取所述音频数据对应的音频时长;
计算单元,用于根据所述音频时长和音频采集次数计算音频累计时长;
第一确定单元,用于根据所述音频累计时长和音频初始时间戳确定所述音频采集组件当前采集的音频数据的时间戳,所述音频初始时间戳指首次为音频数据分配的时间戳。
10.根据权利要求9所述的装置,其特征在于,所述第一获取单元,包括:
第一获取子单元,用于获取所述音频数据的音频参数,所述音频参数包括采样率、样本数据量和采样通道数;
计算子单元,用于根据所述预定数据量和所述音频参数计算所述预定数据量的音频数据对应的音频时长;
其中,所述音频时长=所述预定数据量/(所述采样率×所述样本数据量×所述采样通道数),所述采样率指单位时间内的采样次数,所述样本数据量指每次采集样本的数据量,所述采样通道数指进行采样的音频通道的数量。
11.根据权利要求7所述的装置,其特征在于,所述时间戳获取请求是所述视频采集组件每采集单位帧数的图像数据时发送的;
所述第一分配模块,包括:
第二获取单元,用于获取所述时间戳获取请求的请求发送时刻;
第二确定单元,用于将所述请求发送时刻确定为所述视频采集组件当前采集的视频数据的时间戳。
12.根据权利要求7至11任一所述的装置,其特征在于,所述装置,还包括:
中断检测模块,用于检测是否发生中断,发生中断时所述音频采集组件和所述视频采集组件均停止;
记录模块,用于当检测到发生中断时,记录中断时刻并停止分配时间戳;
第三分配模块,用于当从中断中恢复且所述音频采集组件和所述视频采集组件完成重启时,基于所述中断时刻为所述音频采集组件和所述视频采集组件采集到数据分配时间戳。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610835244.0A CN106412662B (zh) | 2016-09-20 | 2016-09-20 | 时间戳分配方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610835244.0A CN106412662B (zh) | 2016-09-20 | 2016-09-20 | 时间戳分配方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106412662A CN106412662A (zh) | 2017-02-15 |
CN106412662B true CN106412662B (zh) | 2018-10-19 |
Family
ID=57997965
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610835244.0A Active CN106412662B (zh) | 2016-09-20 | 2016-09-20 | 时间戳分配方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106412662B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108512874A (zh) * | 2017-02-27 | 2018-09-07 | 上海谦问万答吧云计算科技有限公司 | 一种在线答疑数据的同步方法及装置 |
CN106803997B (zh) * | 2017-03-14 | 2019-12-17 | 广州视源电子科技股份有限公司 | 一种音视频直播中检测客户端播放状态的系统及方法 |
CN107566794B (zh) * | 2017-08-31 | 2020-03-24 | 深圳英飞拓科技股份有限公司 | 一种视频数据的处理方法、系统及终端设备 |
CN108810559A (zh) * | 2018-05-31 | 2018-11-13 | 北京达佳互联信息技术有限公司 | 视角模式切换方法、装置及直播数据的传输方法、装置 |
CN109600563B (zh) * | 2018-08-01 | 2020-05-15 | 北京微播视界科技有限公司 | 用于确定时间戳的方法和装置 |
CN109600649A (zh) * | 2018-08-01 | 2019-04-09 | 北京微播视界科技有限公司 | 用于处理数据的方法和装置 |
CN109600665B (zh) * | 2018-08-01 | 2020-06-19 | 北京微播视界科技有限公司 | 用于处理数据的方法和装置 |
CN109348247B (zh) * | 2018-11-23 | 2021-03-30 | 广州酷狗计算机科技有限公司 | 确定音视频播放时间戳的方法、装置及存储介质 |
CN110459233B (zh) * | 2019-03-19 | 2022-02-11 | 深圳壹秘科技有限公司 | 语音的处理方法、装置和计算机可读存储介质 |
CN112218115B (zh) * | 2020-09-25 | 2022-07-29 | 深圳市捷视飞通科技股份有限公司 | 流媒体音视频同步的控制方法、装置、计算机设备 |
CN115225917B (zh) * | 2021-04-15 | 2024-08-27 | 北京字节跳动网络技术有限公司 | 一种录音推流方法、装置、设备及介质 |
CN114095621B (zh) * | 2021-11-18 | 2023-07-25 | 浙江博采传媒有限公司 | 4d照扫音频同步方法、装置及存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8379735B2 (en) * | 2006-05-15 | 2013-02-19 | Microsoft Corporation | Automatic video glitch detection and audio-video synchronization assessment |
CN101547360B (zh) * | 2009-05-08 | 2010-11-10 | 南京师范大学 | 可定位视频文件格式及该格式文件数据的采集方法 |
CN101931775A (zh) * | 2010-09-01 | 2010-12-29 | 中兴通讯股份有限公司 | 一种录像方法及装置 |
CN104092920A (zh) * | 2014-07-16 | 2014-10-08 | 浙江航天长峰科技发展有限公司 | 一种音视频同步方法 |
-
2016
- 2016-09-20 CN CN201610835244.0A patent/CN106412662B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN106412662A (zh) | 2017-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106412662B (zh) | 时间戳分配方法及装置 | |
US10165309B2 (en) | Method and apparatus for live broadcast of streaming media | |
US10635449B2 (en) | Method and apparatus for running game client | |
CN106791892B (zh) | 一种轮麦直播的方法、装置和系统 | |
US10516640B2 (en) | Group message updating and displaying method, apparatus, and terminal | |
US9924205B2 (en) | Video remote-commentary synchronization method and system, and terminal device | |
CN103488939B (zh) | 一种提示用户的方法、装置及终端 | |
WO2017020663A1 (zh) | 弹幕视频直播方法、装置、视频源设备及网络接入设备 | |
CN106973330B (zh) | 一种屏幕直播方法、装置和系统 | |
CN106302996B (zh) | 消息显示方法及装置 | |
CN109151494B (zh) | 多媒体数据传输方法、多媒体采集设备及服务器 | |
CN103391473B (zh) | 一种提供及获取音视频的方法和装置 | |
CN107333162B (zh) | 一种播放直播视频的方法和装置 | |
CN106791955B (zh) | 一种确定直播时长的方法和系统 | |
CN103559731B (zh) | 一种锁屏状态下歌词显示的方法及终端 | |
CN104036536B (zh) | 一种定格动画的生成方法和装置 | |
CN106504303B (zh) | 一种播放帧动画的方法和装置 | |
CN106653068B (zh) | 一种音频数据的播放方法、装置及终端 | |
CN106101764A (zh) | 一种显示视频数据的方法、装置和系统 | |
CN109495769B (zh) | 视频通信方法、终端、智能电视、服务器及存储介质 | |
CN110636337B (zh) | 视频图像的截取方法、装置及系统 | |
CN115278139A (zh) | 一种视频处理方法、装置、电子设备及存储介质 | |
CN109429076B (zh) | 多媒体数据的播放卡顿处理方法以及装置 | |
CN104967770B (zh) | 视频拍摄方法及装置 | |
CN105282628B (zh) | 一种视频播放的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |