基于WEB的视频通讯系统设计

2016-04-07 06:11龚主前张小生广东机电职业技术学院广东广州510550
电子制作 2016年2期
关键词:名称客户端界面

龚主前 张小生 广东机电职业技术学院 广东广州 510550



基于WEB的视频通讯系统设计

龚主前 张小生 广东机电职业技术学院 广东广州 510550

【文章摘要】

本文基于Flash 视频声频获取和数据传输方式,结合RTMPS和HTTP协议,实现视频和音频的数据传输。首先构建合适的WEB服务器和数据库服务器,为远程访问WEB页面提供基础。再通过浏览器中Flash PLAYER播放器插件,获取视频数据和音频数据。同时分析点对点通信的原理,对系统进行优化设计,提高通话质量和减少数据传输时延,获得更好的用户体验,并设计好合适的数据库,以更好地保存用户数据。

【关键词】

终端;Web;Flash Player;视频

0 前言

视频通讯发展由开始的C/S (Client/ Server)结构变成现在的 B/S(Browser/ Server)结构。在C/S架构下,视频聊天平台是软件而不是网站。网站会员通过下载网站提供的客户端登陆,然后在统一的软件平台里进行视频交流。软件则以常规软件模式的P2P技术进行开发,其开发成本极高、开发周期长。

B/S结构对服务器性能以及带宽要求比较高。但开发成本低、周期短。由于FMS等视频服务器通过不断的改版对视频以及音频的压缩都是非常优秀,而且不需要做任何开发,大大节约了开发成本和时间。也不存在跨越防火墙以及NAT穿透等高成本网络功能开发费用。通过Flash开发工具,在界面开发以及功能开发上所花费的时间远远小于开发软件或插件需要花费的时间。

基于WEB的视频通讯系统的开发需要有以下技能和知识:HTTP知识,HTML语言知识,FLEX开发工具的使用,Action Script 语言知识,PHP编程语言知识,SQL数据库标准数据查询语言。

1 系统环境构建

1.1Flash的安装

这里使用的是Flash Builder 4。到官方主页下载该软件,然后安装并注册后就可以开发 Flash 应用了。依次点击:文件 –> 新建–> FLEX 工程,就可以建立一个新的工程。

1.2WEB服务器搭建

Web 服务器的搭建分两个部分,一个是 HTTP 服务器搭建,另一个是PHP 脚本程序的安装和MYSQL安装。这里选择ApacheHTTP服务器。

Apache是最流行的HTTP服务器软件之一。快速、可靠、可通过简单的API扩展,Perl/Python解释器可被编译到服务器中,完全免费,完全源代码开放。

MySQL是一个小型关系型数据库管理系统,目前被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小网站为了降低成本而选择了MySQL作为网站数据库。

1)到APACHE的网络站下载APACHE WEB SERVER http://www.apache.org/

2)到php的网络站下载php解析器http://www.php.net/

3)到mysql的网站下载 mysql http:// sourceforge.net/projects/mysql/

将安装文件打开后安装即可,然后配置Apache的http.conf文件。可以把网站的根目录自定义你想要的目录。

加入PHP块可以让其执行PHP脚本:AddType application/x-httpd-php.php,AddType application/x-httpd-php .php3

PHP安装目录中有个配置文件php.ini,在里面添加MYSQL执行块可以让其与MYSQL互通:extension=php_mysql.dll 。

修改完后重启 HTTP服务和MYSQL服务器,就可以完成刚才的配置。

2 系统设计

2.1整体工作流程

基于 WEB 的视频通讯整体流程如下:首先从客户端浏览器的Flash Player 插件中输入你的注册名称或者呼叫人的名称,点击“连接”或者“呼叫”后,Flash Player会向网络发送HTTP请求服务器接受其数据,Apache服务器接收到其请求分析请求来源后,如果是合法请求将交由PHP脚本处理其请求数据,PHP验证数据的合法性后就向MYSQL数据库申请处理数据,MYSQL数据库将处理结果交由PHP再次处理,PHP将处理的结果(XML格式)进一步交由Apache服务器处理并交由输出控制端进行输出,输出后根据其来路地址经过网络返回给客户端Flash Player,Flash Player通过Action Script 语言处理好结果后将结果以界面的形式呈现给用户看。

2.2客户端设计

图1 客户端初始界面

图2 客户端连通服务器后的界面

客户端是Flash的界面设计,包含注册用户,呼叫用户,显示对方视频,显示本地视频等。图1是客户端初始界面。输入名称后点击“连接”按钮,即可通过内部的注册URL向服务器申请并注册输入的用户名称。注册成功后才可以让网络上的其他用户找到你,界面变成图2那样。

在图2中 编号2的用户名称输入框输入对方的用户名称后点击“呼叫”按钮即可呼叫对方。对方接到你的呼叫申请后点击接受后即可以互相看到对方的视频和听到对方的声音。图3为互相连通后的显示界面,编号3和4分别为对方视频显示区域和本地视频显示区域。

点击图中“挂断”可以断开和对方的视频连接。点击图中“断开连接”后可以断开自己和服务器的连接,同时网络上的用户也找不到你了。

2.3服务端设计

服务端只要有 APACHE 提供的 HTTP 服务,PHP脚本程序处理客户端请求,以及MYSQL 数据库存储用户的注册数据。

Apache配置:

设置Apache根目录下的video 为本研究的工作目录。Apache根目录下的flex/ Reg. video. ison.php 文件为PHP 处理客户端请求文件。

MYSQL 下的 test 数据库为工作数据库,regs 数据表为工作表。

当客户端向服务器申请注册时会向服务器发送2个参数数据:

Identity:为每个请求的标识,由2个MD5 加密随机字符串组成的64位字符,这样有利于服务器拒绝处理非法的请求,保证通讯的安全性。

Username:为需要注册的用户名称,此参数将作为您的用户名写入数据库。

当某一用户呼叫另一用户时也发送两个参数:

Friends:告诉服务器你将要呼叫的用户名称,服务器根据PHP脚本查询数据库判断该用户是否在线以及是否空闲来处理是否需要连接。

Time:为你向对方发送请求的时间戳。数据库设计:

需要设置4个字段,分别是 id, username, startusid, updatetime。分别记录数据的条目,用户名称,注册的STARTUS号,最近更新时间。

代码如下:

PHP设计:

核心逻辑PHP执行文件名称Reg.video. ison.php,主要包括四个部分:

加载和初始化数据库连接类:

加载数据库连接类文件:require_once 'include/DBconnect.php';

初始化数据库连接类:$db = new DBconnect();

获取URL请求数据:3个外部请求数据。

获取用户名称:$user = isset($_ GET['username']) ? $_GET['username'] : null;

获取网络标识:$stratusid = isset($_ GET['identity'])?$_GET['identity']:null;

获取呼叫人名称:$friends=isset($_ GET['friends'])? $_GET['friends'] :null;

处理用户注册请求:如果数据库中已经存在用户注册名称,则只需更新时间状态字段updatetime,否则向数据库中新增一条记录。

图3 客户端呼叫成功后的界面

处理用户呼叫数据:如果用户呼叫的名称存在,则判断其最后更新时间是否超时,如果未超时则进行呼叫,否则呼叫失败。

其输出的内容都是标准的XML格式,Flash客户端能够读懂其返回的XML数据包内容。

3 系统分析与优化

3.1客户端的改进

本研究只是一个测试版本,客户端设计可以更细腻一点,可以增加用户操作日志,网络流量监控日志,视频设备和麦克风设备监控等功能,还可以添加一些选项,比如是否接受对方的声音或者视频,是否把我的视频或者声音传输到对方。还有可以增加调节音量,调节视频的清晰度等额外功能。

3.2服务端的改进

服务端改进主要在Apache并发性和PHP语言代码优化,数据库优化等方面。

Apache的并发性主要是服务器配置由服务器的硬件还有网络接入带宽决定,Apache的并发数只需修改httpd.conf 文件即可以达到。并发数过大,容易消耗很大的CPU和带宽。

PHP语言代码优化方面主要是在算法的高效性和代码的安全性。

数据库优化方面:索引能提高访问表中一条或多条记录的特定查询效率。因此,适当的索引调优是很重要的。使用存储过程大有益处,可以把用于完成相同任务的S Q L语句和逻辑在一个地方进行设计、编码、测试,还可以节省因执行大块S Q L脚本而增大的网络通信量,从而提高服务器效率。

4 结论

本文首先分析比较当下的视频通讯技术,然后重点介绍了基于WEB的视频通讯系统开发和设计过程,包括系统环境构建、系统客户端和服务端的设计。然后进行了系统的分析和优化。

本文还有很多地方需要进一步改进和完善。比如功能方面,可以做成一对多电视广播或多对多的视频会议等。结构方面,可以将各个功能独立化,比如视频和声音相互独立,还可以增加文字发送功能等。PHP脚本语言方面则可考虑使用缓存技术或优化内存增加其抗压能力。

【参考文献】

[1]孙晗波.Adobe Flex 3程序设计指南[M].北京:电子工业出版社,2009年

[2]Nicj Kew著,张立强等译. Apache模块开发指南[M].北京:电子工业出版社,2008年

[3]刘明伟,任永攀,黄兴.Flash与后台:ASP/ ASP.NET/PHP/Java Script/Delphi总动员[M].北京:清华大学出版社,2007

龚主前(1971-),男,广东机电职业技术学院副教授、博士。研究方向:无线通信。

【作者简介】

猜你喜欢
名称客户端界面
你的手机安装了多少个客户端
你的手机安装了多少个客户端
“人民网+客户端”推出数据新闻
——稳就业、惠民生,“数”读十年成绩单
微重力下两相控温型储液器内气液界面仿真分析
国企党委前置研究的“四个界面”
一种可用于潮湿界面碳纤维加固配套用底胶的研究
扁平化设计在手机界面中的发展趋势
沪港通一周成交概况
沪港通一周成交概况
沪港通一周成交概况