快速业务通道

嵌入式Linux的web视频服务器的构建

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-04-04
创建线程的关键代码:

while (signalquit) //如果没有退出信号就一直运行下去

{

/* 等待客户端的连接,如果没有连接就一直阻塞下去,如果有客户连接就创建一

个线程,在新的套接口上与客户端进行数据交互 */
if ((new_sock = accept(serv_sock, (struct sockaddr *)&their_addr, &sin_size)) == -1)
{
continue;
}
pthread_create(&server_th, NULL, (void *)service, &new_sock);
}

线程函数 server()主要是读缓冲区数据,写入套接口,同时读取套接口的数据,设置下一次采集图像的属性,这里就不再给出代码.

3.嵌入式web 服务器

嵌入式 web 服务器就是把 web 服务器移植到嵌入式系统的服务器.它仍然是基于http文本协议进行通信的,具有标准的接口形式,对客户端来说,访问嵌入式 web 服务器就和访问普通的web 服务一样.Boa 是一个小巧的web 服务器,可执行代码只有70KB,占用的系统资源少,速度快安全性能高,本系统采用的就是boa服务器,下载源码解压后,需要修改makefile文件,把其中变量 CC 的值改成arm-linux-gcc,LD 改成arm-linux-ld,然后make 就可以生成boa 应用程序了,下载boa 和boa.conf 到开发板上,然后根据开发板文件系统,修改boa.conf配置文件,比如日志路径,web 根目录等,把web 页面放入根目录,boa 通过读取配置文件里的根目录内容,就可以返回用户请求的web 页面了.

本系统的Web 页面用HTML 语言设计,如果想通过该web 页面传输视频数据,需要一
个applet 小程序[7],该程序通过HTML 语言中的applet 标记引入,下面是引入applet 程序的

代码:

<applet codebase="." archive="JWebcamPlayer.jar" code="JWebcamPlayer.class"
name="JWebcamPlayer" ID="JWebcamPlayer" align="center" width="400" height="400"
MAYSCRIPT>
<param name="Color" value="#ffffff">
<param name="Server" value="">
<param name="Port" value="7000">
<PARAM NAME="scriptable" value="true">
<PARAM NAME="mayscript" value="true">
</applet>

Codebase 和code 属性给出applet 类的完整路径,align 是applet 窗口显示的位置,width和height 是applet 窗口的大小,Port 是服务器端的视频采集程序的绑定端口,Server 是服务器地址的值,不过是在JWebcamPlayer.java 程序中通过gethost()得到,这里设置为空.该applet 程序调用 JWebcamPlayer.jar 包与服务器端的视频发送线程进行数据交互,并在浏览器上显示视频.

JWebcamPlayer 程序获取端口传入的数据并解析,生成对象,输出到Frame 对象中,完成视频播放,可以达到20fps 的帧率.

该applet 小程序以及JWebcamPlayer.jar 是保存在web 服务器上的,当用户访问web 服务器观看视频时,该程序自动装载到网页里,由用户的浏览器解释执行.Applet 被调用时,自动执行JWebcamPlayer.jar 包,该包进行一些 socket 和图像显示的初始化工作,比如上段说的得到服务器IP,端口,设置颜色值等,然后调用 start()连接视频服务器,播放视频.web 服务器和客户端的交互图如图2 所示.

4.系统试验

本系统的测试在局域网内进行.客户端使用的是 Windows XP 操作系统,浏览器使用Windows XP 自带的IE 浏览器,播放程序包含java 控件,需要先安装 JRE,让浏览器支持java 控件.服务器端使用的

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号