小R科技-WIFI机器人网·机器人创意工作室

 找回密码
 立即注册
查看: 15532|回复: 6

mjpeg-streamer启动脚本,支持启动JPG格式和YUYV格式的摄像头

[复制链接]
发表于 2012-8-29 10:55:00 | 显示全部楼层 |阅读模式

OpenWrt中mjpg-streamer支持JPG格式和YUYV格式的摄像头。对于只支持YUYV格式的摄像头,运行mjpg-streamer的命令需要添加‘-y’(或‘--yuv')参数。
手上刚好两个摄像头,有一个支持JPG格式,另一个不支持。为了避免切换摄像头时更改mjpg-streamer启动脚本,对默认的启动脚本/etc/init.d/mjpg-streamer做了少许更改,以支持那两种摄像头,更改如下:
  1. #!/bin/sh /etc/rc.common
  2. # Copyright (C) 2009 OpenWrt.org
  3. # Modified by Yihui Xiong(xiongyihui3@gmail.com), Aug 27, 2012

  4. START=50

  5. NAME=mjpg_streamer
  6. PROG=/usr/bin/$NAME

  7. start() {
  8.     config_load mjpg-streamer
  9.     config_get device core device
  10.     config_get resolution core resolution
  11.     config_get fps core fps
  12.     config_get port core port
  13.     config_get www core www
  14.     config_get_bool enabled core enabled
  15.     if [ $enabled -eq 0 ]; then
  16.         exit -1
  17.     fi

  18.     # wait for device's initialization
  19.     # sleep 3
  20.     if [ -e $device ]; then
  21.         $PROG -i "input_uvc.so -d $device -n -f $fps -r $resolution" \
  22.               -o "output_http.so -p $port -w $www" &
  23.     else
  24.         # not find device
  25.         exit -2
  26.     fi

  27.     sleep 3
  28.     # check if mjpeg streamer is running
  29.     pgrep $NAME
  30.     if [ $? -ne 0 ]; then
  31.         # mjpeg streamer exited, perhaps the camera doesn't support JPG format
  32.         # try to start mjpg streamer with YUYV format
  33.         $PROG -i "input_uvc.so -d $device -n -y -f $fps -r $resolution" \
  34.               -o "output_http.so -p $port -w $www" &
  35.     fi
  36. }

  37. stop() {
  38.     killall -9 $NAME   
  39. }
复制代码
注:此脚本依赖于busybox中的pgrep
此脚本利用busybox中的pgrep检查mjpg-streamer第一次是否正常启动,如果参数错误,则第一次启动会失败,然后第二次启动mjpg-streamer。两次启动mjpg-streamer的差异在于,后一次启动时添加了参数‘-y’。
另外,附上配置文件,添加网页路径配置选项,/etc/config/mjpg-streamer内容如下:
  1. config mjpg-streamer core
  2.         option device       "/dev/video0"
  3.         option resolution   "640x480"
  4.         option fps          "12"
  5.         option port         "8080"
  6.         option www          "/www/camera"
  7.         option enabled      "true"
复制代码


评分

参与人数 1威望 +2 金钱 +3 贡献 +1 收起 理由
liuviking + 2 + 3 + 1 赞一个!

查看全部评分

回复

使用道具 举报

发表于 2012-8-30 18:22:50 | 显示全部楼层
学习了。。。。顶上
回复 支持 反对

使用道具 举报

发表于 2013-1-25 11:22:55 | 显示全部楼层
学习,我有个思路,就是通过启动无线模块的时候,判断这个SSID是否有信号,如果无信号,更换有信号的连接
回复 支持 反对

使用道具 举报

发表于 2013-3-30 20:47:23 | 显示全部楼层
这个厉害了,新手备用下,谢谢
回复 支持 反对

使用道具 举报

发表于 2013-4-20 21:20:51 | 显示全部楼层
这个方法成功启动了天敏301(估计是JPG格式的),但就是显示不了视频只能显示很卡的图片,但楼主能深入到这种程度让本菜鸟佩服!!
回复 支持 反对

使用道具 举报

发表于 2013-4-28 01:18:41 | 显示全部楼层
不错  学习了
回复 支持 反对

使用道具 举报

发表于 2015-7-2 16:19:50 | 显示全部楼层
留着,以后备用
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

新品特惠推荐上一条 /2 下一条

QQ|QQ技术咨询1|QQ技术咨询2|商务合作微信1:xiaorgeek001|商务合作微信2:XiaoRGEEK|诚聘英才|Archiver|手机版|小R科技-WIFI机器人网·机器人创意工作室 ( 粤ICP备15000788号-6 )

GMT+8, 2024-11-22 23:58 , Processed in 1.105625 second(s), 20 queries .

Powered by XiaoR GEEK X3.4

© 2014-2021 XiaoR GEEK

快速回复 返回顶部 返回列表