音视频及家电
关键词: 视频 , 通信 , 网络
作者:缐晓林 游向东 潘力 北京邮电大学信息与通信工程学院 2009-09-08 来源:电子产品世界
2009-9-23 14:25:44 上传
前言
随着因特网的发展成熟、用户需求的增长以及宏观环境变暖等条件的刺激,基于网络的音视频通信行业迅速发展起来。本文介绍基于Freescale公司i.MX27硬件平台,基于SIP(初始会话协议)协议的网络视传机的设计与实现。
视传机的软硬件技术基础
i.MX27
将视频编解码功能嵌入到多媒体应用处理器中已经成为一个趋势。Freescale DragonBall家族最新成员i.MX27多媒体应用处理器,片内集成H.264/MPEG4全双工硬件编解码视频处理单元,是嵌入式多媒体应用处理器的一颗新星,可广泛应用于多种产品中。i.MX27处理器内部的硬件编解码模块性能强劲,可以达到H.264/MPEG4编解码D1分辨率:720×576@25fps;720×480@30fps;全双工编解码同时进行可以达到VGA分辨率:640×480@30fps。
SIP协议
SIP是由IETF(国际互联网标准制定组织)制定的面向 Internet 会议和电话的信令协议。SIP是一个应用层的协议,可以建立,修改或者中止多媒体会话或者呼叫。它是一个基于ASCII的端到端的协议,它实际上是在因特网上提供“约会”服务。用来实现VoIP的开放协议,最常用的有三种,SIP、MGCP(Media Gateway Control Protocol)和H.323。
SIP协议是专门为IP 电话,尤其是结合Internet设计的协议,同传统的H.323协议相比,SIP 拥有明显的优越性:优异的可扩展性,大大提高了系统的处理能力;与 Internet 紧密结合,使通讯更加轻松便捷的;卓越的开放性,不仅能够对手机、 PDA 等移动设备提供良好的支持,对于在线即时交流、语音和视频数据传输等多媒体应用也能够很好地完成。
SIP协议支持5方面的能力:用户定位、用户可用性、用户能力、会话建立、会话管理。SIP协议本身不提供业务,但是它提供业务支持的基础。SIP协议本身也不提供会议控制,但是SIP协议可以与任何一个会议控制的协议绑定。
Linphone
Linphone是基于WEB的IP电话工具,运行于Linux和Windows Xp下。通过Linphone可以在互联网上和其他人自由地进行声音、视频通信,也可以进行及时文本信息传送。Linphone是遵从SIP协议开发的,它需要和支持SIP协议的电话或者代理服务器进行相互操作。如果把基于Linphone开发的VoIP设备通过PSTN帐号注册到电信服务器上,就可以通过它和普通电话进行通话了。但是这些通话不是免费的,因为PSTN是收费服务。Linphone是开源免费软件,可以自由下载和重新发布。
MiniGUI
MiniGUI是面向实时嵌入式系统的轻量级图形用户界面支持系统。目前,MiniGUI已成为跨操作系统的图形用户界面支持系统,可在Linux/uClinux、eCos、uC/OS-II、VxWorks等操作系统上运行。
MiniGUI为实时嵌入式操作系统提供了完善的图形及图形用户界面支持。可移植性设计使得它不论在哪个硬件平台、哪种操作系统上运行,均能为上层应用程序提供一致的应用程序编程接口(API)。MiniGUI的技术优势:轻型、占用资源少,高性能、高可靠性,可配置,可伸缩性强,跨操作系统支持等。
视传机的实现
视传机的最主要功能包括:通过IP或者向服务器注册的ID号呼叫另一台接在网络上的设备,进行视频流实时双向收发(1帧-25帧/s),最高分辨率可达640×480(广播级图像质量/D1),可设置音频流格式,G.711/GSM/SPEEX,此功能适用于高网络带宽的应用环境。另外视传机还可以实现电影播放,音视频单向传输(远程监控),音视频录制播放,图片单双向收发,音视频邮件收发等功能。
视传机实现这些功能基本原理就是用MiniGUI制作图形界面进行人机交互[1],用户通过键盘或者遥控器进行指令输入,MiniGUI接收用户指令,并传给操作系统(这里我们使用Linux 2.6.19),操作系统根据指令的不同进行不同的操作,例如若用户想进行视频呼叫,操作系统就将指令发给Linphone,Linphone就在SIP协议的基础上发起视频呼叫,根据对方不同的状态给出不同的响应,对方不在线、对方忙、对方正常应答等,在正常应答的情况下双方协商音频视频通信编解码方式,建立呼叫,进行音视频通信[2],然后任意一方挂机,退出,完成一次通信,期间还可以进行音视频录制等操作。再如若用户想进行电影播放,则操作系统会调出播放程序,播放用户指定的电影文件。
视频流的流程如下:由摄像头(支持自带插针式和TV输出两种)采集图像数据,交给操作系统[3],操作系统根据用户需要,将视频数据进行本地显示、编码录制或者发送到对端,对端收到视频数据送入VPU单元进行解码,然后显示或者录制等。通话过程中音频流的流程为:通过mic采集音频数据,交给操作系统,操作系统将数据送给Linphone,Linphone进行一定格式的编码[4],然后发送到对端,对端再进行相应的解码,再将数据输出到音箱或者耳机。
视传机主要软件Linphone的移植
Linphone有很多个版本,可以通过免费下载。我们这里使用带视频功能的linphone1.6.0版本,要将这个Linphone使用在开发板上,需要做3个方面的工作:添加H264硬件视频编解码器(使用i.MX27的VPU单元进行视频编解码),修改程序使之与操作系统和其他应用程序进行通信,最后交叉编译Linphone至开发板。
Linphone功能结构
Linphone1.6.0版本的功能结构如图1。
2009-9-23 14:25:44 上传
下载附件 (32.94 KB)
2009-9-23 14:25:44 上传
下载附件 (13.76 KB)全部0条评论
快来发表一下你的评论吧 !