吃阿德,病毒下降了可以吃舍曲林突然停药后果吗

1635人阅读
ubuntu(12)
mjpg-streamer(3)
前几天自己没事玩了一下mjpg-streamer,感觉还不错,这里结合网上的一些资料和自己的心得把主要步骤贴出来供大家参考一下:
ps:我在ubuntu11.10和12.04里面都是过,按照以下步骤都没什么问题,我的内核版本是3.2.0的,摄像头使用的是ZC0301PL,开发板是杂牌的,ARM11,核心芯片是S3C6410。PC上也是可以运行的,并不一定非要使用开发板,根据需要修改一下Makefile就可以了。
Linux内核采用Linux 2.6.32版本,运行make menuconfig配置万能驱动USB摄像头,在Device Drivers下,选择Multimedia device,选择Video Capture adapters,选择V4L USB devices,选择GSPA based webcams,即可选择万能驱动USB摄像头。
&&&&系统采用Yaffs文件系统,Yaffs是专为嵌入式系统使用NAND型闪存而设计的一种日志型文件系统。它减少了一些功能,速度更快,挂载时间很短,对内存的占用较小,所以系统采用Yaffs文件系统。
&&&&MJPG-streamer是一款免费基于IP地址的视频流服务器,它的输入插件从摄像头读取视频数据,这个输入插件产生视频数据并将视频数据复制到内存中,它有多个输出插件将这些视频数据经过处理,其中最重要的输出插件是网站服务器插件,它将视频数据传送到用户浏览器中,MJPG-streamer的工作就是将其中的一个输入插件和多个输出插件绑定在一起,所有的工作都是通过它的各个插件完成的。MJPG-stream er源码包可从SourceForge网站下载使用。各个文件如下:
&&&&(1)input_testpicture.so。这是一个图像测试插件,它将预设好的图像编译成一个头文件,可以在没有摄像头的情况下传输图像,从而方便调试程序。
&&&&(2)input_uvc.so。此文件调用USB摄像头驱动程序V4L2,从摄像头读取视频数据。
&&&&(3)input_control.so。这个文件实现对摄像头转动的控制接口。
&&&&(4)output_http.so。这是一个功能齐全的网站服务器,它不仅可以从单一文件夹中处理文件,还可以执行一定的命令,它可以从输入插件中处理一幅图像,也可以将输入插件的视频文件根据现有M-JPEG标准以HTTP视频数据服务流形式输出。
(5)output_file.so。这个插件的功能是将输入插件的JPEG图像存储到特定的文件夹下,它可以用来抓取图像。
将MJPG-streamer视频流服务器移植到目标板上运行,从而可以实现网络视频数据的采集,具体移植过程:
&&&&(1)首先移植MJPG-streamer依赖的jpeg库。在/usr/local目录下解压源码包tar xvzf jpegsrc.v8b.tar.gz。
&&&&(2)修改配置文件./configure--prefix=/usr/video/jpeg--host=arm-linux-gnueabi,编译:make,安装:make install,最后将/usr/local/video/jpeg/lib目录下的libjpeg.so.8文件拷贝到文件系统中的lib目录下。
&&&&(3)解压源码包:tar zxvf mjpg-streamer.tar.
&&&&(4)修改源码:修改顶层Makefile及plugins目录中的各级Makefile将所有CC=gcc修改为CC=arm-linux-gcc。修改/usr/local/mjpg-streamer-r63/plugins/input_uvc目录下的Makfile文件,在CFLAGS+=-O2-DLINUX-D_GNU_SOURCE-Wall-shared-fPIC后加上I//usr/loc
al/video/jpeg//include,把$(CC)$(CFLAGS)-ljpeg-o$@input_uvc.c v412uvc.lo jpeg_utils.lodynctrl.lo代码修改为$(CC)$(CFLAGS)-ljpeg-L/usr/local/video/jpeg/lib-o$@input_uvc.c v412uvc.lojpeg_utils.lo dynctrl.lo,从而加载前面编译安装的jpeg库文件,使得MJPG-streamer能够调用到jpeg库。
&&&&(5)交叉编译:make CC=arm-linux-gcc,交叉编译器为arm-linux-gcc4.3.2,生成arm板可执行的二进制文件。
将应用程序通过超级终端工具传输到arm板上,设置视频服务器应用程序start_uvc.sh开机启动,将交换机引出的双绞线通过RJ-45接口连接到ARM板,在超级终端下进入ARM板,用ifconfig命令配置服务器相应网段的IP地址,将板子上电之后即可执行视频采集程序。从客户端浏览器输入arm板IP地址发出访问请求,服务器接收到请求后与客户端建立连接,将视频数据发送到客户端监听端口,客户端就可以得到连续的现场现场画面,从而实现网络视频采集功能。
&&&&随着互联网的不断发展,视频信息采集进入到一个新的时代,本系统设计基于S3C2440的高速信息处理能力和丰富的硬件接口,在网络功能强大的Linux操作系统平台下,移植MJPG-streamer视频流服务器,模块结构清晰,易于管理,利用现有网络资源,很容易实现远程的网络视频采集,克服了现有视频采集的距离问题,开发简单,可移植性高,并且系统运行稳定。
&&&&系统改进思路:无线局域网WLAN成为无线通信使用热点,通过移植WIFI模块可以实现无线网络视频采集,从而摆脱网线的限制,更加方便使用,在MJPG-streamer软件中有一个input_control.so的输入插件没有用到,加上该插件可以实现摄像头的位置的控制,比如自动跟踪的功能,另外可以加入智能模式识别算法,从摄像头读取的视频信息识别物体,辨别出人、动物、汽车等物体,从而是系统功能更加强大。
最新版本的配合最新的libjpeg使用,较老版本的如股票运行的时候报错invalid argument说明libjpeg的版本不对,需要下载62版本的jpeg库文件,不过好像这个错误并不影响运行。建议使用最新的mjpg-streamer和jpeg库文件配合使用。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:44946次
排名:千里之外
原创:15篇
转载:30篇
评论:14条
(1)(2)(3)(1)(2)(1)(3)(1)(1)(1)(6)(1)(3)(4)(20)匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。&摄像头移植
主机环境&:ubuntu&10.10&&&&&&&&&目标板&:FS-S5PC100
&主机工具链&:gcc-4.4.5&&&&&&&&&交叉工具链&:arm-unknown-linux-gnueabi-gcc
&&摄像头&:ZC301
注意事项:
自己制作文件系时,需要将交叉编译工具链中的库文件拷贝到文件系统中。
2&&调试时使用nfs挂载,调试完成后,将zImage和yaffs文件系统(yaffs可读写)烧入开发板。
二、移植过程
1、配置内核使内核支持芯片为ZC301的摄像头
&&&Make&menuconfig
&&&Device&Drivers&---&&
&&&&&&&&&&&*&&Multimedia&support&---&
&&&&&&&&&&&&&&&&&&&&*&&Video&For&Linux&
&&&&&&&&&&&&&&&&&&&[*]&Enable&Video&For&Linux&API&1&(DEPRECATED)&(NEW)
&&&&&&&&&&&&&&&&&&&&[*]&Video&capture&adapters&(NEW)&---&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&[*]&V4L&USB&devices&(NEW)&---&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*&&USB&Video&Class&(UVC)
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&[*]&UVC&input&events&device&support&(NEW)
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*&&USB&ZC0301[P]&webcam&support&(DEPRECATED)
2、重新编译内核&make&zImage
3、mjpg-streamer的移植
关于mjpg-streamer的资料可以在下面这个网址查看:http://sourceforge.net/apps/mediawiki/mjpg-streamer/index.php?title=Main_Page
mjpg-streamer的移植需要jpeg的库,所以我们先移植jpeg的库
(1)jpeg库的移植
&1)jpeg源码包通过下面这个网址下载&&&&&&&&&&http://download.csdn.net/detail/colwer/4531343&
&2)解压源码包在/home/linux/&目录下解压:&&&&&&&&&&&&tar&xvf&jpegsrc.v8b.tar.gz
&3)配置源码,在/home/linux/目录下创建jpeg目录mkdir&jpeg
&&&&&&&&&&&&&&&&cd&&jpeg-8b
&&&&&&&&&&&执行&&&&./configure&&--prefix=/home/linux/jpeg&&--host=arm-unknwn-linux-gnueabi
&&4)编译&&&&&&&&&&&&&&&make
&&5)安装&&&&&&&&&&&&&&&make&install
&&6)拷贝库到文件系统中&&&&&&&&cp&&/home/linux/jpeg/lib/libjpeg.so.8&&&/source/rootfs/lib
(2)mjpg-streamer的移植
&&&&&&&& 1)mjpg-stream源码包通过下面这个网址下载&&http://download.csdn.net/detail/colwer/4531434&&&&&&&&
&&&&&&&& 2)解压源码&&&&&&&&&&&&&&&&tar&xvf&mjpg-streamer-r63.tar.gz
&&&&&&&&&3)修改源码&&&&&&&&&&&&&&&&cd&mjpg-streamer-r63
&&&&&&&&&&&&&&&&修改顶层makefile及plugins目录中的各级makefile,将所有
&&&&&&&&&&&&&&&&CC=gcc
&&&&&&&&&&&&&&&&修改为&&&&&&&&&&&&&&&CC=arm-unknown-linux-gnueabi-gcc
&&&&&&&&修改plugins/input_uvc/Makfile
&&&&&&&&&&&&&&&&修改&&&&&&&&&&&&&&&&CFLAGS&+=&-O2&-DLINUX&-D_GNU_SOURCE&-Wall&-shared&&fPIC
&&&&&&&&&&&&&&&&为&&&&&&&&&&&&&&&&CFLAGS&+=&-O2&-DLINUX&-D_GNU_SOURCE&-Wall&-shared&-fPIC&-I/home/linux/jpeg/include
&&&&&&&&&&&&&&&&修改
&&&&&&&&&&&&&&&&$(CC)&$(CFLAGS)&-ljpeg&-o&$@&input_uvc.c&v4l2uvc.lo&jpeg_utils.lo&dynctrl.lo
&&&&&&&&&&&&&&&&为
&&&&&&&&&&&&&&&&$(CC)&$(CFLAGS)&-ljpeg&-L/home/linux/jpeg/lib&-o&$@&input_uvc.c&v4l2uvc.lo&jpeg_utils.lo&dynctrl.lo
&&&&&&&4)编译&&&&&&&&&&&&&&&&make
&&&&&&&5)将mjpeg可执行文件拷贝到文件系统的/bin目录下&&&cp&mjpg-streamer&&/source/rootfs/bin
在文件系统中创建mjpg目录,将所有的动态库拷贝到该目录下
&&&&&&&&&&&&&&mkdir&/source/rootfs/mjpg
&&&&&&&&&&&&&&&&cp&*.so&/source/rootfs/mjpg&&{6个文件
将mjpeg_streamer-r63目录下的/www目录拷贝到文件系统中
cp&&/www/&-a&&&/source/rootfs/&&-rf
在WINDOWS下&运行viewer.exe或运行解压文件中的www目录下的所有文件复制到你当前的BOA服务器指定的目录下。
同时要将www目录下的cambozla.jar&bodybg.gif&,favicon.ico,&&favicon.png,&&sidebarbg.gif拷贝到你的BOA服务器下。
打开开开发板将boa服务器运行起来
&&&&./etc/boa/boa&&
输入下面一行命令:
./bin/mjpg_streamer&&-i&&&/mjpg/input_uvc.so&-d&/dev/video0&&&-o&&&/mjpg/output_http.so&-w&&/www/&&&
&在linux系统的浏览器中,输入如下地址:&&
&http://192.168.1.200:8080
显示界面如下图所示:
&&&&&&&&&&&
5&拍照功能的实现
mjpg_stream中output-file.so能实现连续拍照的功能,不能实现单拍或连拍几张的功能所以需要对output_file原码进行修改。
#&&cd&mjpg-streamer-rc63/plugins/output_file
#&&vim&output_file.c
在96行&函数&void&*worker_thread(void&*arg)&体中加入以下代码:
char&buf[10];&&&//
int&flags&=&0;&&&//拍照标志,1:表示11张照片,2:表示1张照片
int&fd_com&=&0;&//打开管道的文件描述符
&&&stop_num&=&0;&//拍照计数
&&if&(&access(&/tmp/webcom&,F_OK)&&&0&)&&&&//创建有名管道用于接收拍照命令
&&&if&(&mkfifo(&/tmp/webcom&,0666&)&&&0)
Printf(&&photo&fifo&create&failed\n&);
&&fd_com&=&open&(&/tmp/webcom&,O_RDONLY,0666);
&&if&(fd&&&0)
perror&(&open&the&file&webcom&error&);
在while(&ok&&=&0&&&&!pglobal-&stop){&后加入
&&if&(flags&==&0)
reade(fd_com,buf,sizeof(buf));
if&(strncmp(buf,&danger&,6)&==&0)&&&&//拍11张照片
flags&=&1;
&&&&bzero(buf,sizeof(buf));
if&(strncmp(buf,&one&,3)&==&0)&&&//拍张照片
flags&=&2;
&&&&bzero(buf,sizeof(buf));
&&&usleep(1000*delay);
stop_num++
if&(flags&==&1)&&&&&&&&//判断拍照的数量
if&&(&stop_num&&&9)
stop_num&=&0;
flsgs&=&0;
else&if&(flags&==&2)
stop_num&=&0;
flags&=&0;
所以只要向有名管道写入就能连拍张照片,写入就拍一张照片。
注拍照功能实现:
./bin/mjpg_streamer&&&i&&&/mjpeg/input_uvc.so&&&d&&/dev/video0&&-o&&/mjpeg/output_file.so&&&&f&&/pice&&-d&&15000&&&&&&&&
旗下网站:
与非门科技(北京)有限公司 All Rights Reserved.
京ICP证:070212号
北京市公安局备案编号: 京ICP备:号

我要回帖

更多关于 病毒转阴可以停药吗 的文章

 

随机推荐