0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于新型的音视频同步方案的设计和实现方法

电子设计 来源:数字社区&智能家居 作者:朱邦兵;吕杨;王友 2021-03-29 11:55 次阅读

本文介绍了一种基于新型的音视频同步解决方案。阐述了方案的构思,设计和实现方法。该方案已在一种新型的数字化智能家居门禁系统中得到了应用,并取得良好的效果。

一、引言

目前,成熟的智能家居系统的室外机、门禁可视对讲和门禁控制几乎全部采用模拟信号,安装时需要架设专用网络,布线复杂,不可扩展,灵活性差,传输距离短,投资大,维护成本高。随着市场需求的增长、消费者消费观念的提高以及模拟系统沉重的工程维护代价,结合以太网技术的全数字室外机和门禁产品成为研发的热点。但是在诸多因素影响下,当前的数字门禁产品不成熟、不稳定、价格高昂,特别是门禁对讲中的音视频同步问题,一直以来都是数字可视对讲的短板。

二、音视频同步问题概述

音视频同步问题是可视对讲中的重点需要解决的问题之一,也是一直以来被模拟门禁产品厂商攻击的一个弱点,因为模拟可视对讲产品都采用专线传输,不存在这个问题。解决同步问题的方法有很多种,其中时间戳是最成熟最完美也是最复杂的解决办法,可以解决任何多媒体领域的音视频同步问题;其原理是选择一个参考时间,在生成数据流时依据参考时间上的时间给每个数据块都打上时间戳;在播放时,读取数据块上的时间戳,同时参考当前时钟上的时间来安排播放,让快于这个参考时间的包等待,丢弃慢于这个参考时间的包。在基于时间戳的同步机制中,仅仅对不同步的数据进行处理是不完备的,还需要反馈机制,如基于Windows平台的DirectShow就提供这样一个反馈机制,它的质量控制(QualityControl)可以将播放的状态反馈给源,让源端加快或者放慢数据流的速度。

在多媒体文件采集,播放及对同步的要求都非常严格,如果从多媒体文件中分离出音视频数据的数据不同步,音视频的时间差则会越来越大,这是无法忍受的,所以在多媒体文件中,不但要求有同步机制,还要求有反馈机制。

三、数字可视对讲中的音视频同步方案

在数字可视对讲中,可以考虑的音视频同步方案有两种:一是发送端解决;二是接收端解决。

发送端解决方法比较简单,具体措施是在发送端先将一段时间内采集到音视频数据打包。比如采集到一帧视频图像,将这帧图像与采集这帧视频的时间内采集到的视频数据打成一个包,接收端接收到这个包之后解包分别播放就可以了。发送端解决的控制方法比较简单,但是在高清要求清晰度比较高的情况下就不是很理想,清晰度高,意味着每个音视频包数据量就大,能保证同步,却难以保证连续。我们在同一个线程中按照先后顺序发送PCM音频和H.264视频,测试结果表明这种方法确实存在连续问题。

接收端解决方案绕不开的问题是时间戳,接收端根据接收到的音视频数据的时间戳安排播放。时间戳需要一个参考时间,而采集过程中视频的时间是不定的,数字摄像头采集图像的帧率是一个平均值,不宜用来做参考时间,所以只能用音频时间作为参考时间。

四、声卡编程和声卡驱动的时间机制

门禁可视对讲中音频是双向的。本文的门禁可视对讲方案中,音频的采用PCM(PulseCodeModulation——脉码调制录音)采集,在网络中传送的也是原始数据,之所以没有对音频数据进行编码处理是基于以下原因:一是S3C6410没有提供对音频的硬编解码,如果使用软件实现编解码,在有限的系统资源条件下难以实现;二是音频数据量较小:采用8000采样率和量化位数为8位的电话语音标准,一秒的音频数据是8K字节,只相当于视频1帧数据的两倍,这对普遍拥有百兆网卡的局域网来说,数据量很小。实验的结果表明,这种简单的处理方式被证明是有效的。

Linux操作系统音频接口有/dev/dsp,/dev/audio,/dev/Mixer三种。前两种的属性基本相同,DSP是数字信号处理器(DigitalSignalProcessor)的简称,是用于数字采样(sampling)和数字录音(recording)的设备文件,它对于Linux下的音频编程来讲非常重要。向该设备写数据即意味着激活声卡上的D/A转换器进行放音,而向该设备读数据则意味着激活声卡上的A/D转换器进行录音。目前许多声卡都提供有多个数字采样设备。/dev/audio属性与dsp类似,但更多的用于sun的工作站中,为兼容性考虑,应用中一般使用/dev/dsp作为音频接口。mixer为混音器,也是声卡设备中相当重要的一部分,它的作用是将多个信号组合或者叠加到一起,但对应用程序来说,这些都无需考虑,但可以通过这个接口调节声卡播放时声音的大小等参数

无论是Linux下还是Windows下,声卡的编程接口都是由声卡驱动提供的,而驱动都是会考虑到时间机制的,其表现形式就是当声卡驱动没有装好时,使用播放器播放多媒体文件时声音以极快的速度过去了,但是声卡驱动装好之后就很正常了,本文的音视频同步解决方案即以此为基础。

五、基于音频时间机制的音视频同步解决方案

与文件形式的多媒体不同的是,可视对讲中音视频流的源端是永远同步的。所以一种简单的解决方案是发送端启用独立的音频和视频线程,进行音视频采集,采集后只管往外发送数据,接收端接到数据就分别解码播放,从表面看,这种采用无同步机制多线程解决方案是可行的,但是忽略了一个问题,即音频数据包和视频数据包的大小。包的大小会影响网络传输的速度。这种差别在网络条件好的情况下显示不出来,一旦遇到网络拥塞或者其他情况就会变得很明显。

根据对音频采集和处理的叙述,我们知道,音频的采集是有时间机制的。比如采样率是8000,采样位数是8,我们就可以算出采8K字节的数据所用的时间是1s,这样音频就可以按照自己的速度播放;而摄像头每秒采集的帧数是相对固定的,如OV9650采集速度为平均每秒30帧,这样即可以算出1/30秒(约为0.03333,具体精度可以根据要求决定)刷新一帧图片,这种方式中只要保证源端音频视频的采集是同步的就可以,而门禁对讲过程中,这种同步是原生的。

接收端接收到音频数据,直接交给声卡播放,当前播放的音频包的时间戳时间传送给视频线程;接收到视频帧,则将其时间戳时间与当前播放的音频时间戳进行比较,若未达到参考时间,则解码播放;若达到参考时间,则说明该视频帧滞后,丢弃该视频帧,接收下一个视频帧,循环往复,直到线程接收到结束命令停止;以上述音频采样率和采样位数为例,视频参考时间的计算方法为(以C语言格式的?号表达式表示):

音频时间戳时间+1/30>视频时间戳时间?丢弃:播放;

在编程实现时,采集端和播放端的音频和视频可采用独立的线程,并利用Qt的信号槽机制实现音视频线程时间戳的传递,此处不再赘述。

六、方案测试

本同步方案在科技部中小型企业产业化创新基金项目“智能家居系统与控制器”中得到应用,应用结果表明,这种音视频同步解决方案可以实现数字门禁可视对讲的音视频同步。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 门禁系统
    +关注

    关注

    17

    文章

    382

    浏览量

    44700
  • 多媒体
    +关注

    关注

    0

    文章

    480

    浏览量

    36662
  • 智能家居
    +关注

    关注

    1908

    文章

    9107

    浏览量

    178834
收藏 人收藏

    评论

    相关推荐

    音视频同步的原理及实现方案

    音视频同步是我们观看视频的一个基本体验,尤其对于视频画面中能看到声源动作(如:嘴型)的场景,音视频同步
    发表于 04-20 14:32 8846次阅读

    音视频测量方案

     求音视频测量方案
    发表于 03-20 01:13

    dm8168 dvrrdk 16路音视频是怎么同步的呢?

    dm8168 dvrrdk 16路音视频是怎么同步的呢? dvrrdk2.80 支持音频的采集压缩吧? 有没有介绍dvrrdk 音视频同步方面的资料呢?
    发表于 06-21 06:20

    dm8168 音视频同步问题

    我在8168上用dvrrdk 4.0.03做音视频,我的视频和音频都来自网络,经过解码处理后,再编码,但是编码后的视频音频数据有同步的问题,rdk里面有没有什么接口或者API能让
    发表于 06-23 04:51

    基于ARM Linux的无线音视频对讲系统

    开源的Speex算法消除了回音。具体做法:将该算法编译成库文件,加入到Linux内核,即可以使用Speex 的API函数,实现音频的回音消除。  3.3嵌入式音视频同步  本文的基本思想是以
    发表于 07-24 13:48

    什么是音视频同步音视频同步的影响因素有哪些?

    什么是音视频同步?有什么要求?音视频同步的影响因素有哪些?音视频同步的常见技术有哪些?
    发表于 06-15 08:48

    音视频边缘计算

    今天读到一篇关于音视频边缘计算的帖子音视频合成的云边缘计算实现文章里有两个要点1)边缘计算 具体功能有:流合成 录像 水印 送审等功能 这些多数设计到需要对媒体数据做处理2)作者再部署的部署
    发表于 10-29 08:34

    FFMPEG如何进行音视频同步

    自己百度吧!  1、帧率控制  帧率控制的方法有千万种,最2的方法无非是每解码/显示一帧就进行延时,为了方便我们在进行帧率控制的同时能够理解音视频同步,我在此采用PCR
    发表于 08-23 16:27

    音视频

    音视频技术都喜欢深究内部最核心的原理和机制,尤其是ffmpeg这个编解码库,可以说是音视频领域事实上的标准。语音智能算法,语言语义分析和理解,流媒体服务器等高端技术也都基于它而构建。希望有幸获得本书,深度学习ffmpeg核心技术,和作者一起在技术海洋中探索和进步。
    发表于 11-23 08:51

    常用音视频芯片集

    常用音视频芯片集:视频同步信号分离器应用:NTSC,PAL,SECAM 制式,幅度0.5V~2Vp-p 之间的视频同步信号分离。型号封装形式
    发表于 09-26 16:52 52次下载

    MPEG4音视频编码卡的设计与实现

    摘 要:本文介绍了一块基于PCI总线的单路MPEG4音视频编码卡的设计与实现。该卡实现音视频流的实时MPEG4编码压缩,并通过通用PC平台可以
    发表于 03-11 13:18 1672次阅读
    MPEG4<b class='flag-5'>音视频</b>编码卡的设计与<b class='flag-5'>实现</b>

    根据互联网音视频的手机视频监控幼儿园应用方案

    根据互联网音视频的手机视频监控幼儿园应用方案 宙斯眼手机视频监控系统是一种基于互联网音视频应用的新型
    发表于 03-29 08:53 1160次阅读
    根据互联网<b class='flag-5'>音视频</b>的手机<b class='flag-5'>视频</b>监控幼儿园应用<b class='flag-5'>方案</b>

    基于RTP 的H.323视频会议系统音视频同步

    本文针对H.323 视频会议系统设计了一种基于RTP 的音视频同步方法,该方法在严格遵守RTP 协议的前提下,将
    发表于 09-21 15:27 4174次阅读
    基于RTP 的H.323<b class='flag-5'>视频</b>会议系统<b class='flag-5'>音视频</b><b class='flag-5'>同步</b>

    基于i.MX6车载音视频系统的设计和实现

    车载音视频系统的硬件模块和软件流程图,驱动初始化状态机实现方法。系统测试结果表明本文提出的音视频系统实现
    发表于 12-31 09:20 35次下载

    音视频集成是什么 音视频视频有什么区别

    音视频集成是将音频和视频设备、系统和技术进行整合,以实现全面的音视频功能和体验的过程。
    发表于 06-19 17:14 1592次阅读