直播时的音视频同步方法、存储介质、电子设备及系统与流程

文档序号:16315373发布日期:2018-12-19 05:27阅读:2420来源:国知局
直播时的音视频同步方法、存储介质、电子设备及系统与流程

本发明涉及视频流的音视频同步领域,具体涉及一种直播时的音视频同步方法、存储介质、电子设备及系统。

背景技术

随着直播行业的快速发展,观看直播的用户越来越多,直播时视频的音视频同步(即声音和视频影像同步)是衡量直播质量的重要标准。下面分别对视频、音频做出解释。

视频包括视频文件和视频流:

视频文件:视频文件为利用相关的视频编码器和音频编码器,对原始的视频影像和声音按照相关的参数(视频的分辨率、帧率、比特率;音频的采样率、声道数)进行编码后,将编码后的数据按照相关的文件格式(mp4格式、flv格式等)存储的文件。

视频流:视频流类似视频文件,同样是利用编码器对原始的视频影像和声音进行编码;只不过视频流不是将编码后数据存储为文件,而是通过网络协议将编码后的数据进行打包,形成符合传输格式的数据后,通过网络进行传输。网络协议为rtmp(realtimemessagingprotocol,实时消息传输协议)、rtsp(realtimestreamingprotocol,实时流传输协议)等。

音频:

音频是计算机可识别的一种数字信号,音频最重要的几个属性包括采样率、声道和采样格式。采样率表示每秒中有多少个采样数据,通常有44100hz、48000hz的采样率;声道表示一个采样数据中有几个样本数据,通常有单声道(一个采样就只有一个样本数据)、双声道(一个采样中有两个样本数据)和多声道(一个采样中有多个样本数据);采样格式表示为每个采样数据的大小,通常有16bits的两字节格式以及4字节的浮点格式。那个一个44100hz,单声道,16bits格式的音频,一秒钟内的音频字节数就是44100*1*2也就是88200个字节;一个44100hz,双声道,16bits格式的音频,一秒钟内的音频字节数就是44100*2*2也就是176400个字节。

目前,直播时进行音视频同步的方法一般为:开始直播时,捕获视频影像和音频后编码形成视频,在编码时对视频影像设置视频影像时间戳,对音频和视频影像设置相同的时间戳(例如均为3s)。通过视频解码器和音频解码器对视频进行解码,得到编码之前的原始视频影像和音频、以及时间戳,在时间戳过后分别播放解码后的视频影像和音频。在时间戳过后播放视频的目的为:为捕获视频影像和音频的预留缓冲时间,进而保证视频播放的流畅。

但是,捕获音频时,因为直播时的音频来源为直播设备(例如电脑、移动终端等)的声卡和直播麦克风的声音数据,所以捕获音频时必然会存在延时,也就是音频从产生(直播设备和麦克风产生的声音数据)到捕获的时间。因此,在捕获音频存在延时、但捕获视频影像为即时捕获(即不存在延时)时,音频和视频影像无法同步捕获(存在延时的音频比视频慢),进而使得根据捕获的音频和视频影像形成的视频,为音视频不同步的视频,该视频采用相同的时间戳播放,必然会出现音视频不同步(先播放视频影像,后播放音频)的情形。



技术实现要素:

针对现有技术中存在的缺陷,本发明解决的技术问题为:如何在直播时保持音视频同步,本发明能够在直播过程中始终保持音频和视频影像同步播放,显著提高了直播质量,非常适于推广。

为达到以上目的,本发明提供的直播时的音视频同步方法,包括以下步骤:

s1:客户端在直播时,捕获视频影像和音频,转到s2;

s2:客户端记录捕获到视频影像的时间tv、以及捕获音频的时间ta,ta>tv,转到s3;

s3:客户端对视频影像和音频进行编码,形成视频,在编码过程中设置视频影像时间戳tvi和音频时间戳tai:tvi=t-tv,tai=t-ta;其中t为自定义时间,转到s4;

s4:客户端根据视频影像时间戳tvi播放视频影像,根据音频时间戳tai播放音频。

在上述技术方案的基础上,s3中所述t为s1中所述捕获视频影像和音频之前的时间。

本发明提供的存储介质,该存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述直播时的音视频同步方法。

本发明提供的电子设备,包括存储器和处理器,存储器上储存有在处理器上运行的计算机程序,处理器执行计算机程序时实现上述直播时的音视频同步方法。

本发明提供的直播时的音视频同步系统,包括设置于客户端上的视频捕获模块、视频捕获时间监测模块、视频编码模块和视频播放模块;

视频捕获模块用于:客户端在直播时,捕获视频影像和音频,向视频捕获时间监测模块发送视频捕获时间监测信号;

视频捕获时间监测模块用于:收到视频捕获时间监测信号后,记录捕获到视频影像的时间tv、以及捕获音频的时间ta,ta>tv,向视频编码模块发送视频编码信号;

视频编码模块用于:收到视频编码信号后,对视频影像和音频进行编码,形成视频,在编码过程中设置视频影像时间戳tvi和音频时间戳tai:tvi=t-tv,tai=t-ta;其中t为自定义时间,向视频播放模块发送视频播放信号;

视频播放模块用于:收到视频播放信号后,根据视频影像时间戳tvi播放视频影像,根据音频时间戳tai播放音频。

与现有技术相比,本发明的优点在于:

(1)本发明在设置时间戳时,充分考虑了捕获音频的延迟时间:编码后的视频在播放时,视频影像和音频的不同步时间(音频比视频影像慢)。参见s1至s4可知,本发明播放视频时,视频影像时间戳tvi比音频时间戳tai长(tvi-tai=t-tv-t+ta=ta-tv,ta>tv),而且视频影像时间戳tvi和音频时间戳tai的差值(ta-tv)刚好等于捕获音频的延迟时间。

因此,本发明能够通过不同的时间戳先播放音频,后播放视频影像,进而抵消捕获音频的延迟时间,最终将音频比视频影像慢变为音频和视频影像同步播放。故,本发明能够在直播过程中始终保持音频和视频影像同步播放,显著提高了直播质量,非常适于推广。

(2)本发明设置视频影像时间戳和音频时间戳的原因在于:为捕获视频影像和音频的预留缓冲时间;在此基础上,本发明将时间戳的计算因素t,设置为捕获需要直播的视频影像和音频之前的时间,进而使得视频影像时间戳和音频时间戳,要比捕获视频影像和音频的时长要大。因此,本发明能够绝对保证视频播放时能够顺利缓冲,进一步提升了直播质量。

附图说明

图1为本发明实施例中直播时的音视频同步方法的流程图;

图2为本发明实施例中电子设备的连接框图。

具体实施方式

以下结合附图及实施例对本发明作进一步详细说明。

参见图1所示,本发明实施例中的直播时的音视频同步方法,包括以下步骤:

s1:客户端在直播时,捕获需要直播的视频影像和音频,音频包括客户端声卡和传声器(例如麦克风)产生的声音数据,转到s2;

s2:客户端记录捕获到视频影像的时间tv、以及捕获音频的时间ta,由于捕获声音会存在延迟,因此ta必然大于tv,转到s3;

s3:客户端对视频影像和音频进行编码,形成视频,在编码过程中设置视频影像时间戳tvi和音频时间戳tai:tvi=t-tv,tai=t-ta;其中t为自定义时间,转到s4。

s3中tai-tvi=700ms,700ms即为捕捉音频的延迟时间,该时间也是本发明需要抵消的时间,抵消后才能实现音视频同步。

s4:客户端根据视频影像时间戳tvi播放视频影像,根据音频时间戳tai播放音频。

s4的具体流程为:客户端分别对视频中的视频影像和音频进行解码;客户端在视频影像时间戳tvi过后播放解码得到的视频影像,在音频时间戳tai过后播放解码得到的音频。

本发明实施例在设置时间戳时,充分考虑了捕获音频的延迟时间ty:编码后的视频在播放时,视频影像和音频的不同步时间(音频比视频影像慢)。参见s1至s4可知,本发明实施例播放视频时,视频影像时间戳tvi比音频时间戳tai长(tvi-tai=t-tv-t+ta=ta-tv,ta>tv),而且视频影像时间戳tvi和音频时间戳tai的差值(ta-tv)刚好等于捕获音频的延迟时间。因此,本发明实施例能够通过不同的时间戳先播放音频,后播放视频影像,进而抵消捕获音频的延迟时间,最终将音频比视频影像慢变为音频和视频影像同步播放。

进一步,由于设置视频影像时间戳和音频时间戳的原因在于:为捕获视频影像和音频的预留缓冲时间,本发明实施例将t,设置为捕获需要直播的视频影像和音频之前的时间,进而使得视频影像时间戳和音频时间戳,要比捕获视频影像和音频的时长要大。因此,本发明能够绝对保证视频播放时能够顺利缓冲,进一步提升了直播质量。

本发明实施例还提供一种存储介质,存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述直播时的音视频同步方法。需要说明的是,所述存储介质包括u盘、移动硬盘、rom(read-onlymemory,只读存储器)、ram(randomaccessmemory,随机存取存储器)、磁碟或者光盘等各种可以存储程序代码的介质。

参见图2所示,本发明实施例还提供一种电子设备,包括存储器和处理器,存储器上储存有在处理器上运行的计算机程序,处理器执行计算机程序时实现上述直播时的音视频同步方法。

本发明实施例中的直播时的音视频同步系统,包括设置于客户端上的视频捕获模块、视频捕获时间监测模块、视频编码模块和视频播放模块。

视频捕获模块用于:客户端在直播时,捕获视频影像和音频,音频包括客户端声卡和传声器(例如麦克风)产生的声音数据,向视频捕获时间监测模块发送视频捕获时间监测信号。

视频捕获时间监测模块用于:收到视频捕获时间监测信号后,记录捕获到视频影像的时间tv、以及捕获音频的时间ta,ta>tv,向视频编码模块发送视频编码信号。

视频编码模块用于:收到视频编码信号后,对视频影像和音频进行编码,形成视频,在编码过程中设置视频影像时间戳tvi和音频时间戳tai:tvi=t-tv,tai=t-ta;其中t为自定义时间(本实施例中t为视频捕获模块捕获视频影像和音频之前的时间),向视频播放模块发送视频播放信号。

视频播放模块用于:收到视频播放信号后,根据视频影像时间戳tvi播放视频影像,根据音频时间戳tai播放音频;具体工作流程为:分别对视频中的视频影像和音频进行解码,得到视频影像时间戳tvi和音频时间戳tai;在视频影像时间戳tvi过后播放解码得到的视频影像,在音频时间戳tai过后播放解码得到的音频。

需要说明的是:本发明实施例提供的系统在进行模块间通信时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将系统的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。

进一步,本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1