Скрипт (полностью исправный и работающий, сам проверял) для mjpg-streamer
#!/bin/sh
SYS=/media/DISK_A1/system
PROG=$SYS/usr/bin/mjpg_streamer
MODDIR=$SYS/lib/modules/2.6.23-rt
DEV=/dev/video0
YUV=true #define if your cam supports ONLY yuv
WWW=$SYS/www/webcam
FPS=5
RESOLUTION='640x480'
PORT=9000
DRIVER=uvcvideo #define uvcvideo, pwc (philips cams) ,sn9c102, cpia2
DELAY=10 #seconds. using if "waitrestart" defined
insmods () {
echo Loading video drivers
logger Loading video drivers
insmod "$MODDIR/v4l1-compat.ko"
insmod "$MODDIR/v4l2-common.ko"
insmod "$MODDIR/compat_ioctl32.ko"
insmod "$MODDIR/videodev.ko"
insmod "$MODDIR/$DRIVER.ko"
}
rmmods () {
echo Unloading video drivers
logger Unloading video drivers
rmmod $DRIVER
rmmod videodev
rmmod compat_ioctl32
rmmod v4l2-common
rmmod v4l1-compat
}
start () {
insmods
if $YUV; then
YARG='-y'
else
YARG=''
fi
$PROG -b -i "$SYS/usr/lib/input_uvc.so $YARG -d $DEV -f $FPS -r $RESOLUTION" -o "$SYS/usr/lib/output_http.so --www $WWW --port $PORT"
}
stop () {
killall -9 mjpg_streamer
sleep 5 #без этого драйверы не выгружались
rmmods
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
link_up)
;;
ppp_up)
;;
link_down)
;;
ppp_down)
;;
waitrestart)
stop
sleep $DELAY
start
;;
*)
echo "Usage: $0 {start|stop|restart|link_up|link_down|ppp_up|ppp_down|waitrestart}"
;;
esac
Для motion
#!/bin/sh
SYS=/media/DISK_A1/system
MODDIR=$SYS/lib/modules/2.6.23-rt
MOTION=$SYS/usr/bin/motion
CONFIG=$SYS/etc/motion.conf
DRIVER=uvcvideo #define uvcvideo, pwc (philips cams) ,sn9c102, cpia2
DELAY=10 #seconds. using if "waitrestart" defined
insmods () {
echo Loading video drivers
logger Loading video drivers
insmod "$MODDIR/v4l1-compat.ko"
insmod "$MODDIR/v4l2-common.ko"
insmod "$MODDIR/compat_ioctl32.ko"
insmod "$MODDIR/videodev.ko"
insmod "$MODDIR/$DRIVER.ko"
}
rmmods () {
echo Unloading video drivers
logger Unloading video drivers
rmmod $DRIVER
rmmod videodev
rmmod compat_ioctl32
rmmod v4l2-common
rmmod v4l1-compat
}
start () {
insmods
$MOTION -c $CONFIG
}
stop () {
killall motion
sleep 5 #без этого драйверы не выгружались
rmmods
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
link_up)
;;
ppp_up)
;;
link_down)
;;
ppp_down)
;;
waitrestart)
stop
sleep $DELAY
start
;;
*)
echo "Usage: $0 {start|stop|restart|link_up|link_down|ppp_up|ppp_down|waitrestart}"
;;
esac
При подключении камеры, если модули подгружены и она определилась правильно, в лог выдается примерно то же самое, что я привел на 1-ой странице (vid:pid, имя производителя, формат выдаваемого потока, разрешения и т.п.), и не важно, в каком порядке дейстовать (подгружать модули, подключать камеру). Если используете mjpg-streamer, то настоятельно рекомендую закрыть порты из интернета, ниже скрипт для firewall.d
#!/bin/sh
iptables -I INPUT -i ppp0 -p tcp --dport PORT -j REJECT
iptables -I INPUT -i eth2.2 -p tcp --dport PORT -j REJECT
значение PORT заменить на то, которое указано в скрипте запуска; организуйте защищенный туннель до кинетика (openvpn,ssh). Связано это с тем, что данная ревизия mjpg-streamer не поддерживает авторизацию по логину/паролю.
Отредактировано xakep666 (2012-11-03 15:39:31)