arm开发板6410/2440上mjpg-streamer网络视频服务器移植
摄像头移植
一、环境
主机环境 :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个so文件}
将mjpeg_streamer-r63目录下的/www目录拷贝到文件系统中
cp /www/ -a /source/rootfs/ -rf
4 运行
在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
在96行 函数 void *worker_thread(void *arg) 体中加入以下代码:
int flags = 0; //拍照标志,1:表示11张照片,2:表示1张照片
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);
perror (“open the file webcom error”);
在while( ok >= 0 && !pglobal->stop){ 后加入
reade(fd_com,buf,sizeof(buf));
if (strncmp(buf,”danger”,6) == 0) //拍11张照片
if (strncmp(buf,”one”,3) == 0) //拍1张照片
所以只要向有名管道/tmp/webcom写入danger就能连拍11张照片,写入one就拍一张照片。
./bin/mjpg_streamer –i “/mjpeg/input_uvc.so –d /dev/video0” -o “/mjpeg/output_file.so –f /pice -d 15000 ” &echo danger > /dev/video0
转载于:https://www.cnblogs.com/alan666/p/8312305.html
arm开发板6410/2440上mjpg-streamer网络视频服务器移植相关推荐
- 基于ARM开发板搭建物联网服务器
基于ARM开发板搭建物联网服务器 一.项目需求 1.1设备需求 1.2知识需求 1.3项目介绍 二.开发环境搭建 2.1阿里云服务器配置 2.2虚拟机交叉编译环境搭建 2.3下载相关应用压缩文件 三. ...
- 【linux】ARM开发板上设置RTC时间,断电重启后,设置失效的原因分析
问题描述 linux中使用date设置时间后用hwclock -w同步到RTC,断电重启后,有时会失效 原因分析 保存时间戳 1.使用命令关机(halt)会调用rc0.d中的脚本: 2.使用命令重启( ...
- 如何在ARM开发板上从源码编译安装OpenCV和OpenCV contrib
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 本文主要介绍如何在ARM开发板上从源码编译安装OpenCV和OpenCV contrib. OpenC ...
- ARM开发板上iconv_open(utf-8, gb2312) 调用失败的解决方法(转)
ARM开发板上iconv_open("utf-8", "gb2312") 调用失败的解决方法 应用程序代码如下: static int code_convert ...
- 将linux内核烧进arm板,ARM开发板上uClinux内核移植
<ARM开发板上uClinux内核移植>由会员分享,可在线阅读,更多相关<ARM开发板上uClinux内核移植(19页珍藏版)>请在人人文库网上搜索. 1.纷傲掌秀悸篷益哑檀扬 ...
- arm开发板通过网线连接笔记本电脑上外网
需要工具:arm开发板,网线,一台双网卡的win7笔记本电脑(笔记本电脑一般都是双网卡) 一.笔记本电脑需要先连上外网,可以连上家里的WIFI,或者手机开热点(本人未测试过连接手机的热点,但是理论上应 ...
- 在ARM开发板上实现LCD+USB键盘
一.LCD驱动 这个地方先留着 二.USB键盘驱动 在linux内核里边提供了usbkbd.c可以直接借助这个模块,编译生成驱动模块加载进内核,其实对于驱动程序,这里还不是重点,最后想要实现的是直接在 ...
- 摄像头在liunx上的QT显示和OK6410 ARM开发板上的使用
摄像头在liunx上的QT显示和OK6410 ARM开发板上的使用 发布者:旺旺雪饼 时间:2013-01-05 16:56:09 环境: Ubuntu10.04 arm linux OS: 3. ...
- arm开发板上4G网络转为以太网口供其他设备使用
一个设备和ARM开发板的以太网口连接使用4G模块实现上网 最后做完发现只要思路对,没什么特别难的东西要做,开始我一直以为是路由表.arp的问题,其实都不是,只是IP地址转换的问题,其他都不需要动.之前 ...
最新文章
- 【小白学PyTorch】12.SENet详解及PyTorch实现
- Android ListView 的优化
- php文件夹重命名,php文件下载并重命名
- 更改windows2003远程最大连接数
- Install/Remove of the Service Denied错误解决
- 搭建用友开发环境(基于碧桂园的nchome)
- 【10.1】python中的GIL
- python从入门到放弃表情图-[python从入门到放弃]基于百度OCR的文字识别
- Longhorn的糟糕体验!
- 统计项目代码行数的工具——SLOCCount
- UI设计师必备技能——点击进入的网页设计全攻略
- Javascript 专项练习
- 接上一篇appium安装碰到的问题ANDROID_HOME is NOT set! ,JAVA_HOME is NOT set!
- 瑞星千万巨款贿赂官员 制造冤狱铲除竞争对手图片
- python进行邮件文件.eml.pst.msg信息提取(包括附件)
- win10安装sshpass_Win10自带的ssh客户端key权限设置
- sx126x 与 sx127x 的区别
- 可变步长最小均方 (VSS-LMS) 算法附matlab代码
- 哈工大+讯飞推出:高效预训练模型压缩方案GRAIN
- LKJ基础数据源文件固定径路编制软件