APP下载

基于WebRTC的家用远程视频监控软件

2017-04-08袁智

电脑知识与技术 2017年5期
关键词:客户端服务器

袁智

摘要:基于Google开源WebRTC视频传输架构,设计了一种基于WebRTC的远程视频监控软件。首先,设计了该软件的基本功能,其次,搭建了视频传输的信令服务器和穿网服务器并实现了Web客户端。实验表明,该软件可以支持跨平台的视频传输,支持多客户端,且可以穿越NAT的限制。

关键词:WebRTC;远程视频监控软件;服务器;客户端

中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2017)05-0168-02

随着社会的发展,安全问题受到人们更多的关注。远程视频监控可以为人们提供实时、清晰的画面,有利于年轻人对家庭、老人和小孩的安全的实时掌握,近年来受到广泛的关注。

2011年,Google公司开源了WebRTC[1](Web Real-Time Communication)技术,目的是为了实现基于浏览器提供P2P的视频通话。目前WebRTC已经成为HTML5的标准,微软、苹果、火狐等浏览器提供商已支持WebRTC技术。基于WebRTC技术视频监控的研究,尤其在家庭场景下具有重要的意义。WebRTC技术可以在低带宽下实现流畅的视频传输,且其P2P的传输设计使得个人信息得到很好的保护。

本文,基于WebRTC设计一种家用远程视频监控软件。基于WebRTC视频传输架构,设计了并实现了视频传输的服务器和客户端,并搭建了视频传输穿网服务器,实现了视频的P2P传输。

1 WebRTC简介

WebRTC是Google开源的一项支持浏览器进行P2P视频通话的项目。其将音视频处理功能内嵌到浏览器中,是浏览器可以在不使用任何插件的情况下,直接对音视频数据进行处理。

1.1 WebRTC的系统架构

WebRTC使用了世界上公认的最好的音视频处理引擎是,其NAT穿透方案的成功率达到83%[2],为开发各种音视频媒体客户端提供便利。WebRTC的系统架构[3]如图1所示。

图1中,Web API是面向第三方音视频开发者的JavaScript API,主要有Network API、RTC PeerConncetion API和RTC Data API;WebRTC Native C++ API是面向浏览器厂商,用于浏览器的底层开发;信令管理部分主要负责基于Web应用的信令控制部分;音频引擎是WebRTC的音频采集和音频通话质量保证的核心部分;视频引擎是WebRTC的视频采集和视频通话质量保证的核心部分;网络传输模块儿负责音视频数据的传输和网络中NAT和防火墙的穿透。

1.2 WebRTC的优点

WebRTC支持跨平台浏览器进行实时的音视频通信,目前已被W3C作为HTML5的标准。利用WebRTC不仅可以开发实时的音视频通信Web应用,其核心模块也可以单独作为音视频软件的组成部分。

WebRTC主要有以下优点:(1)WebRTC技術目前已成为HTML5的标准,主流的浏览器都提供了丰富的Web API方便开发;(2)WebRTC的音、视频处理技术免费、开源,且能够提供高质量的通信质量;(3)WebRTC技术可以和其他音、视频通信技术融合,如VoIP(Voice Over IP)[4]、IMS(IP Multimedia Subsystem) [5]等。

2基于WebRTC的远程视频监控软件

2.1基于WebRTC的远程视频监控软件功能设计

图2中,通过家中的摄像头实时采集室内的视频数据,并保存在本地;视频传输服务器为远程的视频客户端提供建立视频传输链接的服务;远程视频客户端可以通过视频服务器请求查看视频。

2.2 基于WebRTC的远程视频监控软件服务器的实现

图3中,服务器开启后处于监听状态接收远程视频链接建立请求消息;收到远程连接请求消息后,服务器根据消息的内容向指定的视频采集端广播视频链接请求消息;视频采集端接收到链接请求消息后发送链接建立应答消息给服务器,服务器接收到链接应答消息后,广播给远程视频客户端;视频采集端和远程客户端完成链接建立请求和应答消息的交互后完成视频传输链路的建立。

通常视频采集端和远程客户端处于不同的网络环境中,要完成视频的传输还需要穿越NAT(Network Address Translators)和防火墙的限制。WebRTC采用ICE(Interactive Connectivity Establishment )[6]协议完成NAT和防火墙的穿越,ICE需要STUN[7]和TURN(Traversal Using Relays around NAT )[8]服务器的支持,本文搭建来了开源的STUN和TURN服务器来完成NAT和防火墙的穿透。

2.3 基于WebRTC的远程视频监控软件客户端的实现

客户端分为视频采集端和远程视频监控端。视频采集端有两个核心功能:远程视频传输和本地视频录制。远程视频监控端接收视频采集端的视频流,进行解码,并通过缓冲等技术保证视频的质量。

视频采集端采用WebRTC的getUserMedia API函数获取本地视频流,获取视频流后显示在本地的Web界面上;调用WenRTC的PeerConnction API创建视频传输链接,并将本地视频流添加到PeerConnection中传输。

远程视频监控端,调用PeerConnction API函数与视频采集端建立视频传输链接,链接建立后实时接收视频采集端的视频流,并解码显示。

基于WebRTC的远程视频监控软件客户端框架图如4所示。

3 实验与分析

如图5中所示,视频采集端和远程视频监控端分别连接在两个路由器,路由器开启NAT功能,路由器和服务器主机连接在同一个交换机。

开启Web服务器,关闭穿网服务器,启动视频视频采集端,然后视频监控端请求远程视频链接,视频传输效果如图6和图7所示。

关闭穿网服务器时视频采集端和视频监控端只能显示本地视频,无法正常传输视频;开启穿网服务器后视频采集端和监控端可以正常传输视频。这说明本文的设计的信令服务器、穿网服务器、客户端可以正常工作,且视频传输可以穿越NAT和防火墙的限制。

4 总结

本文基于Google开源视频通话架构WebRTC,设计并实现了一种家用远程视频监控软件。首先,设计了软件的服务器和客户端的各部分功能;其次,搭建了视频传输的信令服务器和穿网服务器,并实现了视频采集客户端和是哦监控客户端。实验表明,本文设计的服务器和客户端可正常运行,且视频传输可以穿越NAT和防火墙的限制。

参考文献:

[1] 屈振华, 李慧云, 张海涛,等. WebRTC技术初探[J]. 电信科学, 2012, 28(10):106-110.

[2] 严琦, 安岗, 杜杏兰,等. WebRTC技术漫谈和对运营商的影响[J]. 邮电设计技术, 2015(8):73-77.

[3] 付斌, 杨鑫, 王松,等. WebRTC技术研究及其应用[J]. 电信科学, 2013, 29(9):108-112.

[4] 王跃军. VoIP电话中基于WebRTC的回声消除算法的开发与实现[D]. 复旦大学, 2013.

[5] 唐洪飞. 基于IMS的云视讯平台方案应用研究[J]. 邮电设计技术, 2016(4):48-51.

[6] 胡勋, 周渊平. 基于WebRTC的Android移动端无线视频传输[J]. 微型机与应用, 2015(19):83-85.

[7] 罗治情, 陈娉婷, 官波,等. 基于HTML5+WebRTC的农业专家在线教学系统的设计与实现[J]. 农业网络信息, 2016(3).

[8] 李香菊, 谢修娟, 郑英. 基于WebRTC的实时视频教学系统的设计与实现[J]. 现代电子技术, 2016, 39(6):114-116.

猜你喜欢

客户端服务器
通信控制服务器(CCS)维护终端的设计与实现
如何看待传统媒体新闻客户端的“断舍离”?
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
基于Vanconnect的智能家居瘦客户端的设计与实现
大枢纽 云平台 客户端——中央人民广播电台的探索之路
中国服务器市场份额出炉
得形忘意的服务器标准
计算机网络安全服务器入侵与防御
服务器操作系统可信加固技术研究