最新消息:本站访问过程中有任何问题请与我联系……

RG100a-aa路由器刷OpenWrt固件后挂载摄像头及mjpg-streamer的密码设置

技术教程 xx2008 6565浏览 0评论

一、openwrt挂载摄像头

我的RG100a-aa路由器刷的OpenWrt版本是OpenWrt Attitude Adjustment 12.09 / LuCI 0.11.1 Release (0.11.1) ,这个固件自带mjpg-streamer及相应的luci-app-webcam。(据说版本号为20121127dreambox的固件也可以。型号为db120的路由器同理)


挂载的摄像头需要硬件支持mjpg格式。查看是否支持mjpg可用AMCap软件,从选项里面的视频捕捉接口中可查看是否有mjpg,没有就是不支持了。


二、启动webcam

RG100a-aa路由器刷OpenWrt固件后,进入“服务”-“webcam”后可以,看到摄像头的设置,这里注意:直接打开http://路由器IP:8080,会显示找不到页面,我们需要先把网络摄像头开启选项改为关闭,然后保存并应用,然后再次修改网络摄像头关闭状态为开启,保存并应用。这是打开http://路由器IP:8080就可以看到摄像头的画面了。

三、mjpg-streamer密码设置

我的RG100a-aa路由器刷的固件中mjpg-streamer有个问题,就是在luci的设置中开启摄像头登录密码始终没用,重启也无法打开。


处理方法是:


Bitvise Tunnelier连上RG100a-aa路由器执行

vi /etc/init.d/mjpg-streamer

修改以下内容

 --output "output_http.so --www $www --port $port"

在–www前面加上用户名密码,位置一定要在–www前面,修改后如下:

--output "output_http.so -c xxorg:xxorg --www $www --port $port"

然后重启mjpg-streamer服务

/etc/init.d/mjpg-streamer restart

这时候RG100a-aa的摄像头用户名和密码就起作用了,输入xxorg就可以了。




以下内容为解决密码在web界面输入无效的过程,可以略过。

用Bitvise Tunnelier连上路由器进/etc/config/mjpg-streamer看如下:

config 'mjpg-streamer' 'core'
    option 'device' '/dev/video0'
    option 'resolution' '640x480'
    option 'port' '8080'
    option 'fps' '5'
    option 'username' 'test'
    option 'PassWordLogin' '1'
    option 'enabled' 'true'
    option 'password' '123'
device--设备,resolution--分辨率,port--http访问端口,fps--帧率,username--登录账号,passworelogin--是否开启密码,enabled--是否开启mjpg-streamer,password--登录密码

根据config文件显示确实是打开了登录密码的,这里找不到原因再进/etc/init.d/mjpg-streamer中查看如下:

 

#!/bin/sh /etc/rc.common
# Copyright (C) 2009 OpenWrt.org
START=50
  
SSD=start-stop-daemon
NAME=mjpg_streamer
PIDF=/var/run/$NAME.pid
PROG=/usr/bin/$NAME
 
start() {
    config_load mjpg-streamer
    config_get device core device
    config_get resolution core resolution
    config_get fps core fps
    config_get port core port
    config_get_bool enabled core enabled
    [ $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 -w /www/camwww" &
}
 
stop() {
    $SSD -K -p $PIDF
    kill -9 $(cat /tmp/run/mjpg_streamer


在start函数中,看到config_get应该和config是一一对应的,所以根据config文件先加上了

config_get_bool PassWordLogin core PassWordLogin
config_get username core username
config_get password core password

执行/etc/init.d/mjpg-streamer restart后发现还是没有出现登录密码。再接着分析第17行代码,注意到

--output "output_http.so --port $port -w /www/camwww" &

这里是mjpg-streamer的输出设置,http访问的端口和文件夹,根据经验,应该是在这里设置登录的密码,google了一番后,发现只需要加上

-c username:password
就可以使用密码来登录,所以修改后的第17行代码变为

[ $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  -w /www/camwww -c username:password" &

本以为重启服务后就可以了,结果还是不行,在打开   路由器ip:8080 后,发现还是直接进入了摄像头的监控画面,并没有弹出登陆框。看来问题总是没那么简单。经过多次试验,发现是代码的顺序问题,需要把-c放到-w之前,将17行代码修改为

[ $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 username:password -w /www/camwww" &

在打开  路由器ip:8080  后,成功的看到了登陆框。当然,事情到这里还没完,在这个登陆框中输入test和123始终显示验证失败。按道理有了config_get username core username和config_get password core password这两行代码,登录的账号和密码应该是从配置文件中读取的test和123。

好吧,在我输入username和password这组账号和密码后,成功的进入了摄像头的监控界面。再次修改17行代码为

[ $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 test:123 -w /www/camwww" &

打开地址,看到登陆框,输入username和password验证失败,输入test和123验证成功,进入监控界面。

结果就是这版固件mjpg-streamer的config文件中设置账号密码无效,账号和密码要直接写在init.d的文件中。

转载请注明:服务器VPS折腾 » RG100a-aa路由器刷OpenWrt固件后挂载摄像头及mjpg-streamer的密码设置

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址