本帖最后由 SUNROC1 于 2015-10-5 10:14 编辑
cubie 下sd卡ubuntu系统测试mjpg-streamer
测试系统:Download Ubuntu/Linaro image for sd card [1.8GB]
测试硬件: cubieboard
支持linux-uvc的摄像头 USB摄像头(中星微ZC301) 淘宝上卖的二手摄像头(10元左右,加运费总共20左右)
测试软件: mjpg-streamer
//---------------------------------------------------------------------------------------------------------------------------------------------------
步骤:
将ubuntu刷入sd卡
升级必要的工具 如
svn安装方法:
1、在终端中直接输入 sudo apt-get install subversion,选择安装即可
2、查看版本命令 svnserve --version(更多命令直接键入svnserve --help可查看到)
3、查看svnserver是否已启动: netstat -ntlp,可看到svn对应的端口3690(如果没有看见,则证明服务未启动,可使用svnserve -d启动svn服务,还可以通过svnserve -d -r /home/wwwwfw/mobile来指定启动目录)
参考:http://www.cnblogs.com/macula/archive/2012/02/12/2347637.html
安装mjpg-streamer:
终端输入:
svn co https://svn.code.sf.net/p/mjpg-streamer/code/ mjpg-streamer (20140404 update)
等待安装完毕
进入mjpg-streamer 目录:终端输入: cd /home/cubie/mjpg-streamer/mjpg-streamer
编译:make
如果提示make 未知命令,则需要安装gcc
如果是cb1 并且安装了lubuntu-desktop-12.10-v1.05 或者 Ubuntu 13.03 server v1.03
安装前先备份/sbin 目录
sudo mkdir /sbin_bak
sudo cp -r /sbin /sbin_bak
sudo apt-get install build-essential
安装完成后f覆盖sbin
sudo cp -r /sbin_bak/* /sbin
sudo rm -rf /sbin_bak
原因:安装gcc等一系列安装依赖后,会导致reboot、shutdown脚本丢失,导致重启后cb1挂掉,只能重新刷系统
安装如果遇到:
sudo apt-get install 报错:
dpkg: error processing package libpango1.0-0:armhf (--configure):
dependency problems - leaving unconfigured
Errors were encountered while processing:
fontconfig
libpango-1.0-0:armhf
libpangoft2-1.0-0:armhf
libpangocairo-1.0-0:armhf
chromium-browser
libpangoxft-1.0-0:armhf
libpangox-1.0-0:armhf
dbus
libpango1.0-0:armhf
E: Sub-process /usr/bin/dpkg returned an error code (1)
解决办法如下:
sudo mv /var/lib/dpkg/info /var/lib/dpkg/info_old //现将info文件夹更名
sudo mkdir /var/lib/dpkg/info //再新建一个新的info文件夹
sudo apt-get update, sudo apt-get -f install //不用解释了吧
sudo mv /var/lib/dpkg/info/* /var/lib/dpkg/info_old //执行完上一步操作后会在新的info文件夹下生成一些文件,现将这些文件全部移到info_old文件夹下
sudo rm -rf /var/lib/dpkg/info //把自己新建的info文件夹删掉
sudo mv /var/lib/dpkg/info_old /var/lib/dpkg/info //把以前的info文件夹重新改回名字
到此问题顺利解决,哈哈
新系统会报错:找不到jpeglib.h。装libjpeg-dev包可以解决
sudo apt-get install libjpeg-dev
然后可能会报convert:not found,这个是因为没有装imagemagick包。
编译通过后,还不能运行,还要继续编译UVC-streamer
参考http://blog.sina.com.cn/s/blog_569eb8d7010181kt.html
编译完后输入:nano start.sh
再输入:./start.sh
如果显示没有驱动,需要下载驱动:
http://download.csdn.net/download/zizhuyu1006/3974253
如果显示:
MJPG Streamer Version: svn rev: 3:172M
i: Using V4L2 device.: /dev/video0
i: Desired Resolution: 640 x 480
i: Frames Per Second.: 5
i: Format............: MJPEG
Adding control for Pan (relative)
UVCIOC_CTRL_ADD - Error: Invalid argument
Adding control for Tilt (relative)
UVCIOC_CTRL_ADD - Error: Invalid argument
Adding control for Pan Reset
UVCIOC_CTRL_ADD - Error: Invalid argument
Adding control for Tilt Reset
UVCIOC_CTRL_ADD - Error: Invalid argument
Adding control for Pan/tilt Reset
UVCIOC_CTRL_ADD - Error: Invalid argument
Adding control for Focus (absolute)
UVCIOC_CTRL_ADD - Error: Invalid argument
mapping control for Pan (relative)
UVCIOC_CTRL_MAP - Error: Invalid argument
mapping control for Tilt (relative)
UVCIOC_CTRL_MAP - Error: Invalid argument
mapping control for Pan Reset
UVCIOC_CTRL_MAP - Error: Invalid argument
mapping control for Tilt Reset
UVCIOC_CTRL_MAP - Error: Invalid argument
mapping control for Pan/tilt Reset
UVCIOC_CTRL_MAP - Error: Invalid argument
mapping control for Focus (absolute)
UVCIOC_CTRL_MAP - Error: Invalid argument
mapping control for LED1 Mode
UVCIOC_CTRL_MAP - Error: Invalid argument
mapping control for LED1 Frequency
UVCIOC_CTRL_MAP - Error: Invalid argument
mapping control for Disable video processing
UVCIOC_CTRL_MAP - Error: Invalid argument
mapping control for Raw bits per pixel
UVCIOC_CTRL_MAP - Error: Invalid argument
o: www-folder-path...: ./www/
o: HTTP TCP port.....: 8080
o: username:password.: disabled
o: commands..........: enabled
不用理中间的错误。
参考:http://blog.sina.com.cn/s/blog_6933011901010ub8.html
如果出现:
MJPG Streamer Version: svn rev: 3:172
i: Using V4L2 device.: /dev/video0
i: Desired Resolution: 640 x 480
i: Frames Per Second.: 5
i: Format............: MJPEG
ERROR opening V4L interface: No such file or directory
Init v4L2 failed !! exit fatal
i: init_VideoIn failed
解决办法:
重新插拔摄像头,看看效果
没插摄像头会出现这种错误,摄像头没驱动也会出现这种错误。
参考:
http://cn.cubieboard.org/forum.php?mod=viewthread&tid=324&highlight=mjpg
http://www.linuxidc.com/Linux/2012-05/59449.htm
http://blog.csdn.net/firefoxbug/article/details/7524697
错误内容:
root@fire:~/mjpg-streamer/mjpg-streamer-experimental# ./start.shMJPG Streamer Version: svn rev: 3:160 i: Using V4L2 device.: /dev/video0 i: Desired Resolution: 640 x 480 i: Frames Per Second.: -1 i: Format............: JPEGUnable to set format: 1196444237 res: 640x480 Init v4L2 failed !! exit fatal i: init_VideoIn failed
错误原因:
市面上大部分摄像头都是支持YUV的,而不是JPEG的。mjpg-stream支持JPEG和YUV两种格式。 [fire@fire mjpg-streamer]$ cd mjpg-streamer-experimental/plugins/input_uvc/
[fire@fire input_uvc]$ vim input_uvc.c int input_init(input_parameter *param, int id){ char *dev = "/dev/video0", *s; int width = 640, height = 480, fps = -1, format = V4L2_PIX_FMT_MJPEG, i; /* initialize the mutes variable */ if(pthread_mutex_init(&cams[id].controls_mutex, NULL) != 0) { IPRINT("could not initialize mutex variable\n"); exit(EXIT_FAILURE); }......................
查看效果:
本机查看视频输入 : http://localhost:8080/ 其它电脑查看输入: http://本机ip地址:8080/
再来一个参考:http://www.cnblogs.com/hnrainll/archive/2011/06/08/2074909.html
2. 使用
在firefox浏览器里面输入 http://192.168.1.1:8080/?action=stream ,应该能看到摄像头抓取的视频。
这个视频的帧数很低,显得摄像头反应很慢。可以修改/etc/config/mjpg-streamer里面的fps参数。
如果想在公司访问家里的摄像头,还应该修改防火墙,接受8080端口的外网请求。
添加下面配置到 /etc/config/firewall
config rule
option src wan
option proto tcp
option dest_port 8080
option target ACCEPT
然后重启防火墙 /etc/init.d/firewall restart,就可以了。
外网访问摄像头的时候,如果看视频可能速度会跟不上,可以只看截屏。
http://192.168.1.1:8080/?action=snapshot
需要将192.168.1.1替换成路由器说使用的公网IP地址
3. 配置用户名和密码
mjpg-streamer 还可以使用用户名和密码来**访问。
修改 /etc/init.d/mjpg-streamer 中的
[ $enabled -gt 0 -a -c $device ] && sleep 3 && $SSD -S -m -p $PIDF -q -x $PROG -- --input "input_uvc.so --device $device --fps $fps --resolution $resolution" --output "output_http.so --port $port" &
为
[ $enabled -gt 0 -a -c $device ] && sleep 3 && $SSD -S -m -p $PIDF -q -x $PROG -- --input "input_uvc.so --device $device --fps $fps --resolution $resolution" --output "output_http.so --port $port -c user:pass" &
最后添加的部分就是用户名和密码,中间用冒号分割。重新启动mjpg-streamer,保证配置生效。
/etc/init.d/mjpg-streamer restart
欢迎访问俺的网站:{:soso_e157:}{:soso_e121:}{:soso_e157:}http://www.heartiot.com/ {:soso_e157:}{:soso_e182:}{:soso_e157:}
|