本文介绍了一种采用Qt5.0的Multimedia多媒体技术实现音视频采集和本地播放,采用FFmepg开源库把所采集的原始视频数据进行编码成H.264压缩格式,采用G.711编码方式把所采集的原始音频数据编码,再把编码之后的音视频压缩数据进行网络传输的技术。
利用QT技术开发而成的即时通讯demo,可参考下载AnyChat 音视频SDK包中的源代码,anychatcoresdk_linux_x86_r4238\src\client\Qt5\helloAnyChat,更多相关技术可登陆技术论坛共同讨论bbs.anychat.cn
Qt是一个跨平台的C++图形用户界面应用程序框架,凭借其优良的跨平台特性、良好的封装机制、丰富的API、大量的开发文档等优点,得到了很多软件开发者的青睐。Qt的多媒体技术发展到现在,使用简单、功能灵活,已经支持跨平台开发,支持QML以获得更多资源,它为开发者提供了一系列丰富的接口,使开发者能够轻松便利的使用平台的、媒体回放以及操作摄像机和收音机设备的多媒体技术。
一、音视频编码
音视频编码技术就是采用特定的压缩技术,将某个音频或视频格式的文件转换成另一种音频或视频格式文件的方式。
视频的编码方式有很多,目前最为常用的是MPEG系列和H.26X系列。其中MPEG系列是由ISO所制定而发布的视频、音频、数据的压缩标准。H.26X系列是由国际电信联盟(ITU-T)开发的视频压缩编解码标准,包括H.261、H.262、H.263、H.263+、H.263++、H.264,其中H.264标准是由国际电信联盟电信标准化部门(ITU-T)和ISO/IEC共同研究发布。与MPEG相比,H.264具有更高的数据压缩比,在同等图像质量下,H.264的数据压缩率比MPEG-2高2倍~3倍,比MPEG-4提高了近30%。经过H.264压缩的视频数据,提高了存储性能,在网络传输过程中占用的宽带更少更经济,极大地抑制了由于摄像机噪声导致的图像失真,背景流动现象,使图像质量更加清晰。
G.711是由国际电信联盟(ITU-T)制定的音频编码方式,又称ITU-TG.711,目前有两种编码方式:A-law以及Mu-law,Mu-law主要运用于北美和日本,A-law主要用于欧洲和世界其他地区。