一种软件实现的音视频通信系统

时间:2022-06-20 12:14:59

一种软件实现的音视频通信系统

摘 要:文章介绍了一套基于软件的实时音视频通信系统。通过该系统可以以软件的方式实现灵活、高效的音视频采集、压缩和传输。

关键词:软件;音频;视频;采集;压缩;传输

中图分类号:TN919.8

本文阐述了一种基于软件的IP音视频通信系统解决方案。本系统优点:音视频采集设备简单,投资小;采用软件压缩,便于升级,可按需定制;纯C语言开发,效率高,易于集成和移植,可以在Windows和Linux操作系统上运行;传输与采集模块分离,便于维护;采用标准网络协议栈设计,扩展性好;可以支持多种音视频采集和播放架构;不需要架设服务器,无中心,抗毁性强;支持多种音视频编解码标准,可扩展;可以根据网络状况限制视频编解码器码率,减轻对网络的压力,适于在低带宽条件下使用;可支持点到点音视频通信,同时支持音频组播通信;基于PC平台开发,架设简单,无需额外硬件支持;不需要SIP协议握手,网络开销低。

1 系统描述

本系统可以支持的音频采集与播放架构包括:mme(Windows)、alsa(Linux)、oss(Linux)和arts(Linux)等。可以支持的视频采集与播放架构包括:v4w(Windows)、directshow(Windows)、v4l(Linux)、v4l2(Linux)和SDL(Linux)等。

本系统可以支持的视频编解码标准包括H264、H263、theora、mp4v和x-snow等。本系统可支持的音频编解码标准细节如表1。

RTP协议(Real-time Transport Protocol)提供具有实时特征的、端到端的数据传送服务,可用来传送声音和运动图像数据。在这项数据传送服务中包含了装载数据的标识符、序列计数、时戳和传送监视。通常RTP的协议元是用UDP协议元来装载的,并利用UDP的复用和校验和来实现RTP的复用。RTP包括两个关系十分密切的子协议:实时传输协议(RTP),用于传输实时数据;实时控制协议(RTCP),用于监视网络的服务质量[2]。RTP包协议格式如图2所示。

图2 RTP协议格式

语音组播基于组播成员管理协议IGMP(Internet Group Management Protocol)。IGMP协议作用在主机和与主机直接相连的组播路由器之中,主机使用IGMP协议通知本地边缘组播路由器,告知其想加入的组播组,组播路由器通过IGMP协议来维护组播组成员列表,并定期发送询问信息询问组播成员是否在线[3]。

图3 IGMPv2协议格式

2 模块实现

图4 系统软件模块结构图

本系统软件模块结构图如图4所示。oRTP库主要实现RTP协议栈,尊从开源LGPL许可证。ffmpeg是一个开源免费跨平台的视频和音频流解决方案,属于自由软件,依据你选择的组件尊从开源LGPL(GNU Library General Public License)或开源GPL(GNU General Public License)许可证。speex是一套主要针对语音的开源免费,无专利保护的音频压缩格式库。mediastreamer2库主要负责音视频编解码、采集、播放和回音消除,尊从开源GPL许可证。

msx264库是一个H264视频编码器插件,尊从开源GPL许可证。msilbc库是iLBC语音编解码器插件,尊从开源GPL许可证。msbcg729是Sipro实验室开发的基于G729A标准的专利语音编解码器插件。msamr库是AMR窄带专利语音编解码器插件。mssilk库是软电话Skype专用的专利语音编解码器插件。mediastreamer2可以以插件的形式扩展msx264、msilbc、msbcg729、msamr和mssilk。笔者主要开发了图4中上层API调用部分。

3 应用效果

为了验证通信效果,笔者搭建了3台笔记本电脑组成的演示系统,分别安装Windows XP、Windows 7和ubuntu Linux操作系统,笔记本之间通过WiFi互联,演示系统没有中心服务器,每个笔记本的地位是平等的,任何一台笔记本关机不会影响其他笔记本的正常音视频通信,如图5所示。

图5 演示系统结构图

任意2台笔记本之间可以进行点到点音视频通信,在采用H264视频编解码标准的情况下,限制视频通信占用带宽上限100kbps,PC1和PC2之间的视频通信效果如图6所示,视频分辨率352×288。左侧大窗口是PC2传给PC1的视频,右下方的小窗口是PC1本地摄像头采集的视频。右侧大窗口是PC1传给PC2的视频,右下方的小窗口是PC2本地摄像头采集的视频。

图6 视频通信效果图

如图6,在限制msx264编码器码率100kbps条件下,PC1和PC2之间的视频通信效果比较清晰。

3台笔记本可以实现点到点或者组播(1发2收)语音通信,音质清晰。算上IP/UDP头等协议栈开销,iLBC占用带宽约30kbps,speex占用带宽约18kbps,宽带speex占用带宽约26kbps。

4 结束语

本系统是一套完整的音视频通信解决方案,扩展性好,通用性强,可跨平台移植,架设简单,抗毁性强,可以在较低带宽条件下进行清晰、实时的点到点/组播音视频通信。

参考文献:

[1]Comparison of audio formats[EB/OL].http:///wiki/Comparison_of_audio_formats.

[2]Zourzouvillys,T.Rescorla,E.An Introduction to Standards-Based VoIP:SIP,RTP,and rnet Computing,IEEE Journal gazines, lume:14,Issue:2,Publication Year:2010,Page(s):69-73.

[3]Tian Yonghui;Hu,R.A Resolution for IGMP V3 Protocol Using Finite State Machine.2012 International Conference on Computer Science and Electronics Engineering(ICCSEE).IEEE Conference Publications.Volume:2,Publication Year:2012,Page(s):517-520.

作者简介:谢佳(1982-),男,北京人,工程师,硕士,从事通信应用软件总体设计;徐山峰(1981-),男,北京人,工程师,硕士,从事大型电子信息系统总体设计;梁静(1991-),女,北京人,助理工程师,学士,从事通信应用软件开发。

作者单位:中国电子科学研究院,北京 100041

上一篇:八分钟,我的爱情交给 下一篇:提高计算机网络的可靠性的方法研究