一种多通道音视频同步播放处理方法
【专利摘要】本发明涉及视频监控领域,提供一种可快速处理多通道音视频流、实现多通道音视频同步播放控制的多通道音视频同步播放处理方法,包括以下步骤:建立以共同的参考时间戳T为相对起点的时间戳标记轴T1-Tn秒;建立由双向帧链表与数据流缓存队列构成的帧通道处理视频通道数据;建立由双向帧链表与数据流缓存队列构成的帧通道处理音频通道数据;多通道音视频同步播放控制,计算所有帧通道相对起始播放时间T1和结束时间Tn,调整所有帧通道参考时间和帧编号,填充空帧,使每个帧通道的数据从同一个参考时间时间点T1开始到参考时间Tn结束,当所有帧通道中的当前帧均有数据时即可播放当前帧,并移动到下一个帧等待播放,依此控制逐帧同步播放。
【专利说明】一种多通道音视频同步播放处理方法
【技术领域】
[0001] 本发明涉及视频监控领域,特别涉及一种多通道音视频同步播放处理方法。
【背景技术】
[0002] 目前,在传统远程车载视频终端中,音频采集和视频采集是由不同的硬件设备完 成的,因此音频数据和视频数据在存储和传输上是分离的。这就要求监控中心进行视频监 控展现时必须进行音视频播放的同步控制。现有技术使用的方法是给每个视频和音频数据 包打上时间戳,通过时间戳匹控制音视频的播放时间和播放速度,实现时间上的同步。这种 方法是最常用的方法,在单通道视频和音频的情况下,完全能够满足日常需要。但是随着无 线网络带宽和传输速率的不断升级,以及人们对车辆运输安全意识的不断提高,一辆车动 辄4路,甚至8路、16路音视频通道。通过多路摄像头和音频的同步播放,实现对车辆周围 环境多个视野角度的同步实时视频监控和视频录像回放成为了最基本的要求。但是由于每 路音视频通道的工作状态、数据采集时间间隔、网络传输延迟等因素影响,导致音视频时间 分布各异,可以说从数据源头上音视频数据就是不同步的。对此,简单基于时间戳实现的音 视频同步控制方法,随着通道数的增加,不仅实现复杂,而且难度也越来越高,同时性能和 播放效果也差强人意,更不用说实现多通道音视频同步快进快退和同步跳转播放这些难度 更大的功能了。因而如何实现多通道音视频不同步数据源的同步播放是现有技术急需解决 的难题。
【发明内容】
[0003] 因此,针对上述的问题,本发明提出一种结构简单、可快速处理多通道音视频流、 实现多通道音视频的同步播放控制、技术成本不受音视频通道数量的影响、播放效果好、具 有良好的可扩展性以及有效减少后续的研发和维护成本的多通道音视频同步播放处理方 法。
[0004] 为解决此技术问题,本发明采取以下方案:一种多通道音视频同步播放处理方法, 多通道音视频数据同步处理包括以下步骤:
[0005] (1)、设定各个音频、视频通道对应的音频、视频数据基于同一个参考时钟的时间 戳T标记轴T 1-Tn秒,η为自然数;
[0006] (2)、一个以上视频通道数据处理,其处理包括,a、为每个视频通道建立一个基于 时间戳T标记轴T 1-Tn秒排列的双向帧链表T1' -Tn',n为自然数,该双向帧链表T1' -Tn' 的每一个结点V代表相对起始时间第Tn秒时间周期的结点,每个结点V根据每秒视频 帧率F等量分割成F个帧A-fV,F为自然数,每个结点V内的每个帧f F包含帧地址A、帧 长度L、帧编号N和关键帧编号K,帧地址A表示当前帧在视频数据流缓存队列中的偏移地 址;帧长度L表示当前帧的大小;帧编号N表示帧在当前双向帧链表中的唯一编号,即从第 1秒V的第一个帧从1开始累加;关键帧编号K表示当前帧之前距离当前帧最近的一 个关键帧的帧编号;根据双向帧链表中的帧编号N建立视频数据流缓存队列A-f;,该视频 数据流缓存队列fi-f;用于缓存连续的视频数据裸流;b、将各个视频通道接收的视频数据 流分别接收、逐帧解析并将各视频帧数据存储至各个视频数据流缓存队列frf;中,同时将 存储在视频数据流缓存队列fi-f;中的视频帧数据根据时间戳将视频帧数据的帧地址A、帧 长度L、帧编号N和关键帧编号K映射至对应时间戳的双向帧链表的对应帧结构,即对接收 到的视频流数据进行逐帧解析,每解出一个视频帧数据,则按照如下步骤进行处理:①、将 视频帧数据保存到对应视频流数据缓存队列fi-f;中,同时记录该视频帧数据的偏移地址A 和帧长度L,并累加当前帧编号N ;②、如果该视频帧数据是关键帧则更新最新关键帧编号 K为当前帧编号N ;③、根据每一视频帧数据的时间戳T映射并保存到双向帧链表对应帧结 构,填充属性值帧地址A、帧长度L、帧编号N和关键帧编号K ;
[0007] (3)、一个以上音频通道数据处理,其处理包括,a、为每个音频通道建立一个基于 时间戳T标记轴T 1-Tn秒排列的双向帧链表T1" -Tn",η为自然数,该双向帧链表T1" -Tn" 的每一个结点Tn"代表相对起始时间第Tn秒时间周期的结点,每个结点T n"根据每秒视频 帧率F等量分割成F个帧f/ -f/,F为自然数,每个结点Tn"内的每个帧f/包含帧地址 、帧长度L'、帧编号N'和关键帧编号Γ,帧地址A'表示当前帧在音频数据流缓存队 列中的偏移地址;帧长度U表示当前帧的大小;帧编号K表示帧在当前双向帧链表中的 唯一编号,即从第1秒的第一个帧从1开始累加;关键帧编号Γ表示当前帧之前距离当前 帧最近的一个关键帧的帧编号;根据双向帧链表中的帧编号N'建立音频数据流缓存队列 f/ -f/,该音频数据流缓存队列f/ -f/用于缓存连续的音频数据裸流;b、根据音频采 样频率P Hz、采样值B bit、采样周期T毫秒和视频帧率F fps,通过公式:
【权利要求】
1. 一种多通道音视频同步播放处理方法,其特征在于:多通道音视频数据同步处理包 括以下步骤: (1) 、设定各个音频、视频通道对应的音频、视频数据基于同一个参考时钟的时间戳T 标记轴T1-Tn秒,η为自然数; (2) 、一个以上视频通道数据处理,其处理包括,a、为每个视频通道建立一个基于时间 戳T标记轴T1-T n秒排列的双向帧链表T1' -Tn',η为自然数,该双向帧链表T1' -Tn'的 每一个结点V代表相对起始时间第Tn秒时间周期的结点,每个结点V根据每秒视频帧 率F等量分割成F个帧A-fV,F为自然数,每个结点V内的每个帧f F包含帧地址Α、帧长 度L、帧编号N和关键帧编号K,帧地址A表示当前帧在视频数据流缓存队列中的偏移地址; 帧长度L表示当前帧的大小;帧编号N表示帧在当前双向帧链表中的唯一编号,即从第1秒 V的第一个帧从1开始累加;关键帧编号K表示当前帧之前距离当前帧最近的一个关 键帧的帧编号;根据双向帧链表中的帧编号N建立视频数据流缓存队列A-f;,该视频数据 流缓存队列fi-f;用于缓存连续的视频数据裸流;b、将各个视频通道接收的视频数据流分 别接收、逐帧解析并将各视频帧数据存储至各个视频数据流缓存队列fi-f N中,同时将存储 在视频数据流缓存队列fi-f;中的视频帧数据根据时间戳将视频帧数据的帧地址A、帧长度 L、帧编号N和关键帧编号K映射至对应时间戳的双向帧链表的对应帧结构,即对接收到的 视频流数据进行逐帧解析,每解出一个视频帧数据,则按照如下步骤进行处理:①、将视频 帧数据保存到对应视频流数据缓存队列A-f;中,同时记录该视频帧数据的偏移地址A和帧 长度L,并累加当前帧编号N ;②、如果该视频帧数据是关键帧则更新最新关键帧编号K为当 前帧编号N ;③、根据每一视频帧数据的时间戳T映射并保存到双向帧链表对应帧结构,填 充属性值帧地址A、帧长度L、帧编号N和关键帧编号K ; (3) 、一个以上音频通道数据处理,其处理包括,a、为每个音频通道建立一个基于时间 戳T标记轴T1-T n秒排列的双向帧链表T1" -Tn",η为自然数,该双向帧链表T1" -Tn"的 每一个结点Tn"代表相对起始时间第Tn秒时间周期的结点,每个结点T n"根据每秒视频帧 率F等量分割成F个帧f/ -f/,F为自然数,每个结点Tn"内的每个帧f/包含帧地址 、帧长度L'、帧编号N'和关键帧编号Γ,帧地址A'表示当前帧在音频数据流缓存队 列中的偏移地址;帧长度U表示当前帧的大小;帧编号K表示帧在当前双向帧链表中的 唯一编号,即从第1秒的第一个帧从1开始累加;关键帧编号Γ表示当前帧之前距离当前 帧最近的一个关键帧的帧编号;根据双向帧链表中的帧编号N'建立音频数据流缓存队列 f/ -f/,该音频数据流缓存队列f/ -f/用于缓存连续的音频数据裸流;b、根据音频采 样频率P Hz、采样值Bbit、采样周期T毫秒和视频帧率F fps,通过公式计 Γ*8 F 算出音频帧固定值L Byte ;c、接收并解码音频流数据进行处理,按照上一步b中计算出的 音频帧大小L对解码后的音频流数据进行等量分割,每次取L长度的音频流数据为一个音 频帧,并按照如下步骤进行处理:①、将音频帧数据保存到音频数据流缓存队列中,记录偏 移地址A'和帧长度L',并累加当前帧编号N';②、根据每一音频帧数据的时间戳T映射 并保存到双向帧链表对应帧结构,填充属性值帧地址A'、帧长度L'、帧编号N'和关键帧 编号K',其中音频帧的关键帧编号Γ等同自身帧编号N'; (4) 、多通道音视频同步播放控制,定义各个音频、视频通道上的双向帧链表与数据流 缓存队列构成的一个帧通道,从而基于时间戳标记轴与各个帧通道进行同步播放控制,同 步控制步骤:a、计算所有帧通道的相对起始参考时间,通过构建各个帧通道得出每个帧通 道的起始参考时间TK,定义所有帧通道中最小起始参考时间T k为所有帧通道的最大相对起 始播放时间TK_MIN ;b、以上一步啊中得出的Tmin作为公有参考时间,调整所有帧通道的参考 时间和帧编号,在每个帧通道的双向帧链表的头部依次填充T K*F-TK_MIN*F个空帧,保证每个 帧通道的数据从同一个时间点开始播放,之后对各个帧通道的所有帧编号N通过调整公式 N = N+Tk*F-Tk_min*F进行调整;c、实现同步播放控制,即当所有帧通道中的当前帧均有数据 时即可开始同步播放,当某个帧通道数据已经接受完毕但其他通道还有数据时,则播放到 大于该帧通道最大帧编号的帧时,对该帧通道后续默认填充空帧,以保证其他帧通道的帧 正常播放,同时保证所有帧通道的长度相等。
2. 根据权利要求1所述的一种多通道音视频同步播放处理方法,其特征在于:步骤(2) 和(3)中时间戳T与双向帧链表的映射规则如下:如果是该视频或音频通道收到的第一视 频或音频帧数据,则将该视频或音频帧数据对应到T 1中的,同时记录该视频或音频通道 的初始参考时间Tk ;否则,根据公式 T = t-TK (单位:秒)计算出该视频或音频帧数据在t秒时时间戳T对应映射的双向帧 链表结点Tt,在Tt中按照时间戳T先后顺序依次填充到双向链表帧结点Tt的f中,如果双 向链表帧结点T t中的f已占满,则顺延到下一个双向链表帧结点Tt+1中。
3. 根据权利要求1所述的一种多通道音视频同步播放处理方法,其特征在于:所述步 骤(4)中实现同步播放控制时,可设定缓冲等待时间进行缓冲,即当开始播放或者播放到 某一个帧时发现其中某个帧通道的该帧为空时,可等待该通道缓冲一部分帧后继续同步播 放。
4. 根据权利要求1所述的一种多通道音视频同步播放处理方法,其特征在于:所述双 向帧链表可进行结点的双向遍历。
5. 根据权利要求1所述的一种多通道音视频同步播放处理方法,其特征在于:所述多 通道音视频数据可以是多个音频通道或多个视频通道或多个音频通道和多个视频通道结 合的任一种。
6. 根据权利要求1所述的一种多通道音视频同步播放处理方法,其特征在于:所述步 骤(4)中,当某个帧通道对应的时间戳内没有数据时,填充空帧,保证各个帧通道之间长度 相等。
7. 根据权利要求1所述的一种多通道音视频同步播放处理方法,其特征在于:所述步 骤(4)中,所述所有帧通道中的当前帧均有数据时是指当前帧编号对应的位置有帧数据, 其中的帧数据是指真实的音视频帧数据或者空帧。
8. 根据权利要求1所述的一种多通道音视频同步播放处理方法,其特征在于:所述步 骤(4)中对于空帧的播放处理是,重复播放离空帧最近的前一个非空帧数据,直到下一个 非空帧数据。
9. 根据权利要求1所述的一种多通道音视频同步播放处理方法,其特征在于:所述视 频数据流缓存队列缓存的是解码前的视频帧数据,所述音频数据流缓存队列缓存的是解码 后的音频数据流。
【文档编号】H04N21/8547GK104378675SQ201410741040
【公开日】2015年2月25日 申请日期:2014年12月8日 优先权日:2014年12月8日
【发明者】王国清, 林文山, 陈辉, 夏欢 申请人:厦门雅迅网络股份有限公司