宋庆席,王克钊,李雪松,郑玉明,刘 乾,方 伟,纪建飞
(南京创维信息技术研究院有限公司,江苏 南京 210000)
基于智能电视机的音视频通信研究与实现
宋庆席,王克钊,李雪松,郑玉明,刘乾,方伟,纪建飞
(南京创维信息技术研究院有限公司,江苏 南京 210000)
摘要:在研究SIP协议、音视频编解码的基础上,提出了一种基于智能电视机平台的音视频通信解决方案。基于此方案开发的软件可实现Android系统的智能电视机和手机之间进行音视频通信。通过移植实现跨平台开发,完成Android系统和IOS系统的智能设备之间音视频通信。软件安装应用在创维智能电视机上,实践证明该方案高效、可行。
关键词:拥塞控制;网络穿透;编解码;点对点
谷歌的Android系统正向全新的智能电视领域发展,智能电视将成为继计算机、手机之后的又一个重要的智能终端。网络音视频通信在Internet商业化之后,以其近乎免费的优势在全世界,特别是发达国家迅速发展起来。国内也有很多音视频通信软件,但是智能电视目前还处于起步阶段,音视频通信软件无法直接在智能电视上应用。
目前国内电视机厂商采用的芯片有Mstar,RTK,MTK,Amlogic,Hisi等,各芯片厂家提供的芯片方案差异非常大,使得软件开发难度较高,且开发效率较低。如何在诸多电视芯片方案上实现音视频通信,实现智能电视和智能手机、平板等智能终端之间音视频通话急需研究和突破。在智能电视上实现音视频通话,向用户提供优质的内容与服务可以吸引用户,有效地利用网络资源,提升产品竞争力,促进技术升级和产业的发展。
1通信协议
通信协议主要有两种:SIP协议和RTP协议。SIP协议用来进行信令的交互,RTP协议用来传输音视频数据流。只要有一台Android系统的智能电视机和一个普通摄像头,连上网络后,即可安装、使用基于本文解决方案开发的音视频通信软件。
1.1SIP协议
会话发起协议(SessionInitiationProtocol,SIP)[1]协议是IETF制定的多媒体通信协议,它是一个基于文本的应用层控制协议,独立于底层协议,用于建立、修改和终止IP网上的双方或多方的多媒体会话。SIP协议支持代理、重定向、登记定位用户等功能,支持用户移动,与RTP/RTCP、SDP、RTSP、DNS等协议配合,可支持和应用于语音、视频、数据等多媒体业务。
1.2RTP协议
RTP称为Real-timeTransportProtocol(实时传输协议)。它是IETF提出的一个标准,对应的RFC文档为RFC3550。RTP用来为端到端的实时传输提供时间信息和流同步,但并不保证服务质量。服务质量由RTCP来提供。
主叫端摄像头采集到音视频数据后,先经过编码,然后封装成RTP数据包,经网络发送到被叫端。被叫端接收到主叫端发送来的RTP数据包后,从网卡读取RTP数据包,并进行解包,然后进行解码,再将解码后的数据播放出来,从而完成完整的音视频通话流程。
2标准化
智能电视机硬件平台繁多,差异比较高。必须在各平台上进行标准化工作,主要包括:音视频采集、编解码、音频播放和视频渲染。在软件构架的时候,将软件进行层次划分、模块抽象、高内聚低偶合。
首先将协议栈标准化,然后将音视频通信功能模块标准化,并集成到Android系统的智能电视操作系统中,使之成为系统服务。
2.1音频数据标准化
G.729协议是基于共轭结构代数码激励线性预测的语音压缩编码技术。G.729系列主要包括:G.729标准协议,G.729A,G.729B,G.729AB。开发过程中选择G.729A[2]作为音频编码标准。首先,摄像头采集原始PCM音频数据,然后采用G729A作为语音压缩编码,采样率8kHz,采样位数16bit。编码后的音频数据封装为RTP数据包发送到接收端。接收端接收到音频数据后,先拆包,然后采用G.729A解码音频数据,最后播放音频数据。
2.2视频数据标准化
H.264[3]是由ITU-T视频编码专家组(VCEG)和ISO/IEC动态图像专家组(MPEG)联合组成的联合视频组提出的高度压缩数字视频编解码器标准。视频数据编解码流程,如图1所示。
图1 视频数据编解码流程
摄像头采集到的视频数据格式为YUV420P, 然后将采集到的数据发送给编码器编码,编出来的H.264码流经由RTP封包后发送到接收到端。接收端接收到RTP视频数据后进行解码,最终以YUV420P格式输出显示视频画面。
2.3硬件编解码标准化
软件工作过程中通过单独的硬件编解码库调用Android系统的OpenMax层接口执行视频的编解码,如图2所示。
图2 编解码调用流程
首先通过OMXCodec的Create函数创建编解码器,然后创建两个线程,其中的一个线程负责将待编解码数据发送给编解码器,另外一个线程负责将编解码器输出的数据发送给上层接口。
2.4音视频通信模块标准化
智能电视功能越来越多,主要包括:网络服务、多媒体服务、电视服务、人机互动服务等。通过将音视频通信标准化、模块化后,集成到电视机操作系统中,使之成为系统服务模块之一。用户只要购买创维电视即可享受到免费的音视频通信服务。智能电视功能模块化、标准化后,软件架构如图3所示。
图3 智能电视功能模块标准化
最底层的硬件层主要提供驱动、数据注入等服务;第二层的SkySDK主要是利用标准化技术,将系统底层服务进行统一封装,提供基础软件接口;第三层是服务层,主要是智能电视提供的各类服务,可灵活扩展。将音视频通信制定成标准化的功能模块,集成到操作系统中;最上层是应用层,主要是各类服务和应用界面的展示、操控。
标准化工作完成后,基于本方案开发的软件可快速的在其他操作系统设备上实现,比如IOS系统、Windows系统、Linux系统。从而实现不同智能终端之间音视频通信。
3音视频通信实现
音视频通信模块主要提供音频通话、视频通话、通信录、通话记录四大功能。通信录除了提供常规的添加好友、删除好友、编辑好友和搜索好友之外,还支持对通信录中的好友进行分组,每个分组可设置不同的组名,便于通信录管理。
开发所用设备为Android系统智能电视一台、摄像头一个。
3.1音视频通信模块软件架构
开发过程中,协议栈使用C语言开发,封装成动态库,然后通过JNI封装,供应用层调用、显示。软件架构如图4所示。
图4 音视频通信模块
为了保障音视频通信质量,针对音视频数据还需要进行流媒体处理,主要措施包括:丢包处理、抖动平滑等。
3.2丢包处理
在Internet上用分组传送话音质量不够好的一个重要原因是丢包率比较高。尤其在广域网中,这个问题相当突出。特别是实时多媒体业务对于延时的要求相当严格,因此不大可能通过重传来解决丢包的问题。正是出于这个原因,本文选择前向纠错(ForwardErrorCorrection,FEC)机制用于丢包处理,同时也可以用于关键帧的保护来解决丢包问题。
发送端从媒体数据流中取出若干个数据包,并对它们整个施以异或操作,包括RTP头,然后得到一个包含FEC信息的RTP包。这个包可以被接收端用来恢复任何一个用来产生它的包。发送端需要告诉接收端哪些媒体包被用来产生了一个FEC包,这些信息都包含在荷载信息中。每个FEC包中包含一个24bit的mask,如果mask的第i个比特为1,序号为N+i的媒体包就参与了这个FEC包的生成。N称作基序号,也在FEC包中传送。通过此方案就可实现FEC纠错方案,恢复丢失的数据包。
3.3抖动平滑
该设计通过改良Webrtc中的JitterBuffer算法实现抖动平滑功能。JitterBuffer作为抖动缓冲区,它是一个共享的数据区域,接收端用于平滑网络抖动、拥塞造成的数据波动,降低恶劣的网络环境对音频流的影响,使得终端用户感受到一个清晰的,没有失真声音。缓冲是以牺牲一定的网络时延为代价的,时延越大,对抖动的过滤越好。
JitterBuffer使用到的模块有FrameBuffer,用来维护数据元素列表。SessionInfo用于包的拼接,根据数据包的的序列号对顺序或非顺序增长的包进行排列。如果是重传包,SessionInfo会负责将数据包插入到正确的位置上。
4服务器部署
项目采用客户端/服务器和点对点(C/S+P2P)相结合的技术架构。点对点(P2P)方面,实现了IETF标准STUN、TURN和ICE用于处理NAT穿越问题,可以在未知网络拓扑结构中实现设备互连。
当主叫或被叫有一方的NAT无法穿透时,音视频数据必须通过服务器转发。当主叫和被叫用户所处的NAT均可穿透时,采用P2P策略,数据不经服务器转发,减轻服务端压力。服务器端主要由媒体转发服务器和信令服务器构成。
4.1媒体转发服务器
媒体转发服务器包括MediaDispatcher和MediaRelay两个部分,主要负责音视频数据转发。由于NAT类型复杂,NAT穿越[4]是需要重点解决的问题。当用户所处NAT类型无法穿透时,利用媒体服务器转发音视频数据,保障正常的通信。当主叫或被叫有一方的NAT无法穿透时,音视频数据必须通过服务器转发。
MediaDispatcher负责为呼叫指派一个用于媒体转发的Relay。在简单的情况下,MediaDispatcher只需要为呼叫指派一个Relay,然后客户端的所有媒体数据都通过该Relay来进行转发。但在跨运营商的情况下,为了能够取得较好的通话质量,需要两个Relay,保障通话质量。
MediaRelay帮助转发媒体数据。在跨运营商的情况下,MediaRelay能够保证双方的通话质量不受运营商的策略影响。目前,创维针对电信、联通、广电3个运营商都部署了双线的Relay。
4.2SIP信令服务器
SIP服务器负责所有SIP消息的处理。系统中有多台SIP服务器同时工作,SIP消息会根据负载情况发送到一台SIP服务器。这些SIP服务器通过缓存设施得到相同的数据,因此所有会话的状态和其他注册相关的信息都会在各台SIP服务器之间共享。SIP消息不需要根据历史信息路由到特定的SIP服务器处理,提高系统的处理能力和可靠性。
基于本方案开发的客户端软件安装用MSTAR、RTK、HiSi平台的智能电视机进行实际测试。视频通话支持320×240、640×480、1 280×720三种分辨率,依据网络带宽及设备处理能力进行分辨率切换。网络带宽要求高于4Mbit/s。智能电视机之间、智能手机与智能电视之间音视频通信延迟在1s以内,音视频通信流畅、清晰。目前基于本文的解决方案开发的电视机软件已经在创维智能电视机上实现量产,手机、平板端软件可到应用市场下载。
5总结
基于本方案开发的软件可稳定运行在Android系统的智能电视机上,从而实现智能电视之间的音视频通信。软件还可在其他操作系统的手机、平板等智能终端上,实现音视频通信。音视频通信服务应用到智能电视行业,即丰富了产品形态、提升产品竞争力,又促进了产业技术的进步。
参考文献:
[1]SPARKSR,DONOVANS,CAMPBELLB.SIP[M]. [S.l.]:Oreilly&AssociatesInc.,2001.
[2]谢代华.利用DM642的G729A音频压缩研究与实现[J].电子科技大学学报,2008,37(6):86-88.
[3]陈靖,刘京,曹喜信.深入理解视频编解码技术-基于H.264标准及参考模型[M]. 北京:北京航空航天大学出版社, 2012.
[4]朱光,张云华,卢娟.基于ICE的VOIP穿越NAT方案的研究[J].计算机应用与软件,2011,10(10):232-234.
AudioandvideocommunicationresearchandimplementationofsmartTV
SONGQingxi,WANGKezhao,LIXuesong,ZHENGYuming,LIUQian,FANGWei,JIJianfei
(Skyworth Group Nanjing Skyworth IT Institute,Nanjing 210000,China)
Abstract:Based on the research of the SIP protocol,audio codec and video codec, a new solution for audio and video communication based on smart TV platform is proposed in this paper. Based on this scheme software development can be realized between Android smart TV and mobile phone for audio and video communications. Through the transplant to realize cross-platform development, complete the Android and IOS audio&video communication between intelligent terminal equipment. The software installation is applied in the smart TV set of SKYWORTH. The practice proves that the scheme is efficient and feasible.
Key words:congestion control;network address translation;coding/decoding; point to point
中图分类号:TN949
文献标志码:B
DOI:10.16280/j.videoe.2016.03.010
作者简介:
宋庆席(1983— ),硕士,南京创维信息技术研究院产品经理,主要从事智能电视、智能家居方面的研究和开发。
责任编辑:时雯
收稿日期:2015-09-09
文献引用格式:宋庆席,王克钊,李雪松,等.基于智能电视机的音视频通信研究与实现[J].电视技术,2016,40(3):44-47.
SONGQX,WANGKZ,LIXS,etal.AudioandvideocommunicationresearchandimplementationofsmartTV[J].Videoengineering,2016,40(3):44-47.