- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数字视频音频实时同步传输探索与实现
摘 要:开发视频和音频的实时传输和回放,同时对如何才能真正的实现数字视频音频的实时同步传输进行了深入的研究和探讨。
关键词:数字视频音频;实时同步传输;策略及算法
随着我国科学技术水平的快速发展,我国的信息技术也取得了较大的进步,而人们对视频音频多媒体通信也提出了更高的需求,因此,实现视频音频的实时同步传输对于提高人们的工作效率以及保证人们的生活质量都有着重要的意义,而在此过程中我们重点解决的就是视频音频信号的同步采集、同步传输、压缩、信息的接收以及同步播放等问题,这样就能保证客户端的声音和图像与采集现场的声音和图像是同步的,视频和音频的实时就是要降低声音和信息播放端与采集端的延时,而视频和音频的同步则是要减小用户所听到的声音和看到的图像的时间差,从而保证人们的视听感受。
1 音频视频信号的采集
通常情况下,在采集声音信号时,我们选择的设备为麦克风连声卡,而在采集视频信号时,我们采用的设备则为摄像头连视频采集卡,另外,如果对于视频的采集工作没有过高的要求,那么在计算机的USB接口上直接连上USB摄像头也是可以的。
2 视频音频同步方案的选择
在系统对音频视频系统采集完成后,系统会将它们的数据流放入到不同的缓冲区之中,而当其中任何一个缓冲区的数据流采满后,那么系统就会调用回调函数,此时就会读取音频数据或是视频数据,而如果视频的数据太大导致无法有效的读取时,就应先将其压缩,在此过程中,要想保证客户端的音频和视频实现同步,我们可以采取以下两种方案:
2.1 我们可以将视频数据和音频数据打包成一个文件一起发送给客户端,这种方案实现起来是相对容易的,但是在实际操作的过程中却也存在着一定的问题:在采集音频数据和视频数据时,如果将视频作为基点并且在采集到1帧视频数据的过程中将音频数据依次追加到已经准备好的缓冲区中,在采集1帧视频数据完成后将视频数据和音频数据同时发送出去,这样就能够实现在客户端的音频和视频的同步显示,这种实现方案的数据实时性好,并且音频采集的速度也得到了很大提升,然而却也由于音频采集的较快的速度,就降低了每1帧视频数据之间的间隔,当进入到缓冲区中读取音频数据时,下1帧视频数据就可能将上1帧视频数据覆盖,那么所得到的数据就是错误的,在实际调试的过程中如果出现了此类问题,那么在回放音频数据时就会感受到明显的刺耳的声音;而如果将音频作为基点并将视频数据放入到已经准备好的缓冲区中,在存放完成1帧视频数据后将视频数据和音频数据同时发送出去,达到客户端后也能实现音频和视频的同步显示,然而因为视频的数据太大,通常如果352×288×24是我们采集视频的格式,那么1帧的视频数据就要接近300k,将其压缩后也有8k左右,而音频数据就要小很多,一般情况下8位单声道是我们采集的音频格式,1s的数据量就在11k左右,而每1s采集到的音频为10帧,那么每1帧的数据就是1.1k,而每1s采集到的视频为20帧,在一个发送包中就会有2帧视频和1帧音频,这样每次传输的数据量就是很大的,就有可能导致无法传输的问题出现,并且当采集完成1帧音频数据后,这2帧视频数据可能还没有采集完成,那么在发送包中的视频数据就不够准确,客户端也很难编程,而如果将音频的采集速度设定为每s10帧,速度过慢就降低采集到数据的实时性。
2.2 这种方案为分别传送视频数据和音频数据,表面上看起来并没有实现视频和音频的同步,但是如果可以进一步的提高音频的采集速度,保证每1帧音频的数据都是很小的,就是可以实现视频数据和音频数据的同步传输的。比如我们采集的音频数据为每s25帧,音频格式仍采用8位单声道,这样1帧的音频数据为441个字节,数据不但具有较高的实时性,同时进行网络传输也是十分方便的,将缓冲区中的音频数据流直接转变成为音频数据发送给客户端,而在采集填满缓冲区中的视频数据流后,系统就会立即调用视频数据回调函数,在该函数中压缩数据源的地址参数就是缓冲区中视频数据流的首地址,并且应在填入了数据的长度等参数后调用数据压缩线程,此时就将原本为BMP格式的视频数据帧转换成JPEG格式的视频数据帧,之后便可以将视频数据帧变成视频数据包发送给客户端了。
在数字视频音频实时同步传输的探索和实现过程中,为了更好的区别视频数据包和音频数据包,我们通常都会在包头进行标识,而在实际研究的过程中我们发现视频数据包和音频数据包的长度是有着较大的区别的,根据包的大小也能轻松的区分视频数据包和音频数据包,在系统采满1帧后,就会立即将音频视频发送出去,客户端接收到的视频数据包不需要与音频数据包协调而立即进行解压显示,同时客户端接收到的音频数据包也不需要与视频数据包协调而立即进行播放,对两者的回放就能实现同步,在传输的过程中如果
原创力文档


文档评论(0)