一种音视频自动同步方法及同步系统与流程

文档序号:17844872发布日期:2019-06-11 21:37阅读:170来源:国知局

本发明涉及网络直播技术领域,尤其涉及一种音视频自动同步方法及同步系统。



背景技术:

每一帧音频或视频都有一个持续时间,采样频率是指将模拟声音波形进行数字化时,每秒钟抽取声波幅度样本的次数。正常人听觉的频率范围大约在20hz~20khz之间,根据奈奎斯特采样理论,为了保证声音不失真,采样频率应该在40khz左右。常用的音频采样频率有8khz、11.025khz、22.05khz、16khz、37.8khz、44.1khz、48khz等,如果采用更高的采样频率,还可以达到dvd的音质对采样率为44.1khz的aac(advancedaudiocoding,高级音频编码)音频进行解码时,一帧的解码时间须控制在23.22毫秒内。一个aac原始帧包含一段时间内1024个采样及相关数据。

音频帧的播放时间=一个aac帧对应的采样样本的个数/采样频率,单位为s,一帧1024个样本。采样率44100hz,每秒44100个样本,所以根据公式:音频帧的播放时间=一个aac帧对应的采样样本的个数/采样频率,当前aac一帧的播放时间是=1024*1000000/44100=22.32ms(单位为ms)。

h264,视频的播放时间跟帧率有关frame_duration=1000/fps,例如:fps=25.00,计算出来的时常为40ms,这就是同行所说的40ms一帧视频数据。理论上的音视频(播放)同步是这样的:

由此得到了每一帧数据的持续时间,音视频交叉存储在容器中:一个时间轴:

时间轴:

022.324044.6266.968089.16111.48120......

音频:

022.3244.6266.9689.16111.48......

视频:

04080120......

即视频的持续时间相加和音频的持续时间相加作比较,谁小写入哪个。

但实际情况(播放)是不成立的。

1.首先解决一个问题

为什么不音频播音频的视频播视频的,即上面的到第22.32ms播一帧音频,到40ms播一帧视频。

因为这个22.32ms或40ms是算不准的或者说和声卡播的时间是不一样的。这里就需要知道声卡播一帧/或者说播放一个音频需要多长时间。

2.声卡每次播一个采样点而不是一帧。声音当一个采样点丢失了都可以听出来,视频则不然。

3.音视频同步方式:第一,回调方式;第二,阻塞方式。

然而,音视频在实际编码过程中是一个比较复杂的过程,不仅要指定什么时候编码,还要指定什么时候播放,只有音视频编码时间戳一致且播放时间戳一致,音视频才会同步,以上处理方法虽然在理论状态下能保证微小音视频播放差异,但在网络状态稍有一点不稳定的状态下会产生不同步。当视频帧出现差错时,而音频帧没有问题时,会音频先于视频,这就是有时声音先于视频的原因。

另外,视频画面太依赖于关键帧,而关键帧一般比较少,摄像头启动向设备传送画面需要一个时间差,会导致第一个关键帧丢失,所以第二个关键帧之前的所有数据都是无效的,但音频的数据确全部有效,这里处理不好会导致整个过程中音频先于视频。

在传统音视频传送过程中,音视频不同步的可能性比较小,就算出现差异也是比较小的,但在网络直播兴起后,视频中各种特效处理,音频变声处理,甚至有使用机器人语音包识别文字生成声音等情况,音视频时间差距很大,并且有很大不固定性,有时视频处理快,有时音频处理快,人工手动调整无法使音视频同步,以上音视频同步方法也不适用这些情况。

因此,提供一种音视频自动同步方法及自动同步系统。



技术实现要素:

鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的音视频自动同步方法及自动同步系统,能够在网络状态不稳定时确保音视频的同步。

根据本发明的一个方面,提供一种音视频自动同步方法,用于网络直播,包括以下步骤:

接收音频流和视频流,其中,音频流包括多个带有时间戳的音频帧,视频流包括多个带有时间戳的视频帧,视频帧包括关键帧和非关键帧;

从视频流中提取关键帧;

对关键帧进行编码,判断该关键帧是否编码成功,若是,则选取该关键帧作为初始帧;

以初始帧为音视频同步起点,根据时间戳使视频帧与音频帧自动一一对应;

对一一对应的视频帧与音频帧进行编码,以对视频帧与音频帧进行同步推流。

进一步地,在以初始帧为音视频同步起点,根据时间戳使视频帧与音频帧自动一一对应之后,还包括:丢弃初始帧时间戳前的音频流和视频流。

进一步地,上述音视频自动同步方法,还包括:若从视频流中提取的关键帧编码不成功,则重新从视频流中提取关键帧,直到关键帧编码成功,才选取该关键帧作为初始帧。

进一步地,上述音视频自动同步方法,还包括:当对一一对应的视频帧与音频帧进行编码,以对视频帧与音频帧进行同步推流时,若视频帧编码不成功,则直接丢弃该视频帧,并丢弃与该视频帧对应的音频帧。

进一步地,上述音视频自动同步方法,还包括:对一一对应的视频帧与音频帧进行编码,以对视频帧与音频帧进行同步推流时,若音频帧编码不成功,则丢弃该音频帧,仅对与该音频帧对应的视频帧进行推流。

进一步地,上述音视频自动同步方法,还包括:当推流时间延长时,对音频帧和视频帧的时间戳加延时值,使音频帧和视频帧的时间戳与推流时间一致。

进一步地,上述音视频自动同步方法,还包括:当对音频帧和视频帧进行处理时,时间戳不变。

根据本发明的另一方面,提供一种音视频自动同步系统,用于网络直播,包括:

音视频流接收模块,用于接收音频流和视频流,其中,音频流包括多个带有时间戳的音频帧,视频流包括多个视频帧,视频帧包括带有时间戳的关键帧和带有时间戳的非关键帧;

关键帧提取模块,用于从视频流中提取关键帧;

初始帧选取模块,用于对关键帧进行编码,判断该关键帧是否编码成功,若是,则选取该关键帧作为初始帧;

音视频同步模块,用于以初始帧为音视频同步起点,根据时间戳使视频帧与音频帧自动一一对应,

音视频编码模块,用于对一一对应的视频帧与音频帧进行编码,以对视频帧与音频帧进行同步推流。

进一步地,上述音视频自动同步系统,还包括:音视频同步模块,还用于在以初始帧为音视频同步起点,根据时间戳使视频帧与音频帧自动一一对应之后,丢弃初始帧时间戳前的音频流和视频流。

进一步地,关键帧提取模块,还用于若从视频流中提取的关键帧编码不成功,则重新从视频流中提取关键帧,直到关键帧编码成功,才选取该关键帧作为初始帧。

本发明与现有技术相比具有以下的优点:

1.本发明的音视频自动同步方法及同步系统选取初始帧并以初始帧为音视频同步起点,根据时间戳使视频帧与音频帧自动一一对应,通过初始帧进行音视频同步,简单快速;

2.本发明的音视频自动同步方法及同步系统以视频帧为基础,一帧视频对应一段音频,若视频帧丢失,则相应的音频帧也会丢弃,保证绝对同步,防止出现尖叫、没有视频有声音、声音正常播放视频画面慢动作等异常情况出现。

附图说明

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

图1是本发明的音视频自动同步方法步骤图;

图2是本发明的音视频自动同步系统框图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。

本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非被特定定义,否则不会用理想化或过于正式的含义来解释。

图1是本发明的音视频自动同步方法步骤图,参见图1,本发明提供的音视频自动同步方法,用于网络直播,包括以下步骤:

s110,接收音频流和视频流,其中,音频流包括多个带有时间戳的音频帧,视频流包括多个带有时间戳的视频帧,视频帧包括关键帧和非关键帧。

具体地,音频采集装置将采集到的音频帧放到音频帧队列里并缓存一段音频帧,视频采集装置将采集到的视频帧放到视频帧队列里并缓存一段视频帧,其中,对音频帧和视频帧的采集过程中,记录下音频帧和视频帧的时间戳作为每一帧的原始数据;

在实际应用中,与现实中声音动作不同,在音频帧和视频帧的采集中,视频是画面,声音是声波,声音通过打点采样,在对应频率下保存点的数据即可画出波形图,波形图的精确程度随采样多少而定,采点占用空间少,保存快,数量多。相应视频的每一秒动作都24帧以上的画面组成,画面数量不多但每张画面很大,占用的内存多,保存成文件就大,传输到网络上占用的带宽就多,以原画的数据传到网络上,传送速度是绝对不够的,便对这些数据进行整理,即编码,视频的一张完整画面可做关键帧,后面的帧只记录这张画面改变的地方,因此编码后的视频数据会极大缩小空间,且很小失真。问题在于视频编码中若关键帧丢失,则在下一关键帧之前的数据都是无用的,因此需要在一段时间内,音视频的数据时间戳统一,还要确保视频数据可用。

视频帧数量少,音频帧数量多,以视频帧为基础单位,一帧视频对应多帧音频,有画面就有声音,没有画面就没有声音,避免声音追画面而产生的尖叫,多帧声音数据在短时间内播放会产生尖叫噪音,播放了也听不懂,播放无益,或者有声音没画面也没有太大意义,同一时间段内,音频数据不到视频数据容量的万分之一,且音频丢了一些数据仍能播放,视频丢半帧,半秒甚至一秒的数据就没了,因此,要针对音视频同步,要在开始读取数据时和因网络波动或者硬件设备出现短暂异常而丢帧时处理好,音视频同步就没问题了。

本发明旨在处理好音视频最初时的同步和推流过程中的丢帧同步,以视频帧为基础单位,在实际网络直播中要比其他非网络直播过程中复杂的多,比如监控和安防,基本上就是一个局域网,甚至有些监控摄像头之间连接显示器,都不使用服务器。在直播中,原始数据经过网线和服务器处理在经过网络传送出来,原始的数据已有很大变化,此时要捕获视频帧,以视频帧为基础,一帧视频对应一段声音,若视频帧丢失,则音频也会丢弃,保证绝对同步,防止出现尖叫、没有视频有声音有、声音正常播放视频画面慢动作等异常情况出现。

s120,从视频流中提取关键帧。

具体地,从视频流中提取第一个完整图像,即关键帧,并记录下相应的时间戳。

s130,对关键帧进行编码,判断该关键帧是否编码成功,若是,则选取该关键帧作为初始帧。

具体地,若从视频流中提取的关键帧编码不成功,则重新从视频流中提取关键帧,直到关键帧编码成功,才选取该关键帧作为初始帧。仅对关键帧进行编码,编码成功后则推流,编码失败则丢弃编码错误后生成的错误数据,无论编码成功与否,都进入下一帧的处理。

s140,以初始帧为音视频同步起点,根据时间戳使视频帧与音频帧自动一一对应。

具体地,以视频帧为基础单位,一个视频帧对应多个音频帧,以便视频帧无法播放时,直接删除该视频帧,并删除对应的多个音频帧。

s150,对一一对应的视频帧与音频帧进行编码,以对视频帧与音频帧进行同步推流。

具体地,对一一对应的视频帧与音频帧进行编码,以对视频帧与音频帧进行同步推流时,若视频帧编码不成功,则直接丢弃该视频帧,并丢弃与该视频帧对应的音频帧;对一一对应的视频帧与音频帧进行编码,以对视频帧与音频帧进行同步推流时,若音频帧编码不成功,则丢弃该音频帧,仅对与该音频帧对应的视频帧进行推流。

本发明的音视频自动同步方法选取初始帧并以初始帧为音视频同步起点,根据时间戳使视频帧与音频帧自动一一对应,通过初始帧进行音视频同步,简单快速。

本发明的音视频自动同步方法以视频帧为基础,一帧视频对应一段音频,若视频帧丢失,则相应的音频帧也会丢弃,保证绝对同步,防止出现尖叫、没有视频有声音、声音正常播放视频画面慢动作等异常情况出现。

在以初始帧为音视频同步起点,根据时间戳使视频帧与音频帧自动一一对应之后,还包括:丢弃初始帧时间戳前的音频流和视频流。

具体地,视频流队列里的初始帧时间戳之前的数据均丢弃,并且音频流队列里初始帧时间戳之前的数据也均丢弃,这会让初始帧的画面没有声音,一帧画面没有声音基本没有影响,这样使得音视频一开始就同步,否则会让初始帧画面对应数秒前的声音。

进一步地,上述音视频自动同步方法,还包括:当推流时间延长时,对音频帧和视频帧的时间戳加延时值,使音频帧和视频帧的时间戳与推流时间一致。

理论上,音频帧和视频帧在时间戳这一时间点接收,本应该在时间戳这一时间点播放,在所有音频帧和视频帧延时的情况下,在所有音频帧和视频帧的时间戳上加一个延时值。

进一步地,上述音视频自动同步方法,还包括:当对音频帧和视频帧进行处理时,时间戳不变。

具体地,音视频处理后,即对音视频施加各种特效后,时间戳不变,如果改变时间戳,则对视频流程度同步造成影响,也会音视频同步造成影响。

对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。

图2是本发明的音视频自动同步系统框图,参见图2,本发明提供的音视频自动同步系统,用于网络直播,包括:

音视频流接收模块,用于接收音频流和视频流,其中,音频流包括多个带有时间戳的音频帧,视频流包括多个视频帧,视频帧包括带有时间戳的关键帧和带有时间戳的非关键帧;

关键帧提取模块,用于从视频流中提取关键帧;

初始帧选取模块,用于对关键帧进行编码,判断该关键帧是否编码成功,若是,则选取该关键帧作为初始帧;

音视频同步模块,用于以初始帧为音视频同步起点,根据时间戳使视频帧与音频帧自动一一对应,

音视频编码模块,用于对一一对应的视频帧与音频帧进行编码,以对视频帧与音频帧进行同步推流。

本发明的音视频自动同步系统选取初始帧并以初始帧为音视频同步起点,根据时间戳使视频帧与音频帧自动一一对应,通过初始帧进行音视频同步,简单快速。

进一步地,上述音视频自动同步系统,还包括:音视频同步模块,还用于在以初始帧为音视频同步起点,根据时间戳使视频帧与音频帧自动一一对应之后,丢弃初始帧时间戳前的音频流和视频流。

进一步地,关键帧提取模块,还用于若从视频流中提取的关键帧编码不成功,则重新从视频流中提取关键帧,直到关键帧编码成功,才选取该关键帧作为初始帧。

进一步地,在音视频编码模块中,当对一一对应的视频帧与音频帧进行编码,以对视频帧与音频帧进行同步推流时,若视频帧编码不成功,则直接丢弃该视频帧,并丢弃与该视频帧对应的音频帧;对一一对应的视频帧与音频帧进行编码,以对视频帧与音频帧进行同步推流时,若音频帧编码不成功,则丢弃该音频帧,仅对与该音频帧对应的视频帧进行推流。

本发明的音视频自动同步系统以视频帧为基础,一帧视频对应一段音频,若视频帧丢失,则相应的音频帧也会丢弃,保证绝对同步,防止出现尖叫、没有视频有声音、声音正常播放视频画面慢动作等异常情况出现。

进一步地,上述音视频自动同步系统,还包括:时间戳计算模块,用于在推流时间延长时,对音频帧和视频帧的时间戳加延时值,使音频帧和视频帧的时间戳与推流时间一致;在对音频帧和视频帧进行处理时,时间戳不变。

对于系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本发明针对音视频处理后的音频流和视频流不在同一时间上做的处理,在传统的音视频传送中一般不会对音视频进行处理,同步也比较简单,甚至有人手动调整至大体能接受的情况。本发明为处理直播过程中,音频滤波后,视频只能检测识别后,音视频不同步而做的处理,经过测试,不仅对音视频处理后的流自动同步,更能兼容传统的音视频推流,而且还能适应网络波动。

通过大量的拔插网线、连接断开网络、视频音频不同时打开等多种情况,音视频均能自动同步,人口型和声音一致,秒表报时和时间一致,理论和实践结果均能够证明本发明的可靠性与稳定性。

以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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