0. Video
На вебках всё реже пишут про совместимость с Linux. Но обязательно указывают все версии Windows. Даже драйверов на диске нет! Какже быть?
Подключаем
не_совместимую с Linux USB-вебку и набираем команду убедиться, что она у нас уже есть в системе:
ls /dev/video*
1. mjpg_streamer - ретранслятор
Качай с источника
mjpg-streamer-cubie или с моего
MyDrive
Может пригодится оригинал
mjpg-streamer-r63
Компиляция и запуск:
cd mjpg-streamer
sudo apt-get install libv4l-dev libv4l-0 libjpeg8-dev imagemagick
make USE_LIBV4L2=true clean all
export LD_LIBRARY_PATH=.
./mjpg_streamer -i "./input_uvc.so -f 30 -r 1280x720
" -o "./output_http.so -p 8080 -w ./www"
Ошибка...
ERROR:
Adding control for Pan (relative)
UVCIOC_CTRL_ADD - Error: Inappropriate ioctl for device
Но работает!!!
http://10.10.10.10:8080
top: CPU 3-5%
А если не работает, то, возможно, камера не поддерживает режим. Тогда в командную строку сходу добавляем "-y". Если не получилось, то смотрим режимы внимательней:
sudo apt-get install uvcdynctrl
uvcdynctrl -f
Автозапуск
Создаём файл
/etc/init.d/mjpg_streamkick
#!/bin/sh
### BEGIN INIT INFO
# /etc/init.d/mjpg_streamkick
# Provides: mjpg_streamer.sh
# Required-Start: $network
# Required-Stop: $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: mjpg_streamer for webcam
# Description: Streams /dev/video0 to http://IP/?action=stream
### END INIT INFO
ld_library_path=/home/user/mjpg-streamer
export LD_LIBRARY_PATH ld_library_path
export LD_LIBRARY_PATH=/home/user/mjpg-streamer
NAME=mjpg_streamer
DESC="M-JPEG Streamer"
DAEMON=/home/user/mjpg-streamer/mjpg_streamer
MJPG_QUALITY=85
MJPG_RESOLUTION=800x600
MJPG_FREQ=10
MJPG_VIDEO_DEVICE="/dev/video0 -y"
MJPG_OUTPUT=/home/user/mjpg-streamer/www
MJPG_OUTPUT_PORT=8080
USER_PASS=rv:rv
f_message(){
echo "[+] $1"
echo " "
}
# Carry out specific functions when asked to by the system
case "$1" in
start)
f_message "Starting $DESC..."
$DAEMON -b -i "input_uvc.so -d $MJPG_VIDEO_DEVICE -f $MJPG_FREQ -r $MJPG_RESOLUTION -q $MJPG_QUALITY " -o "output_http.so -p $MJPG_OUTPUT_PORT -w $MJPG_OUTPUT -c $USER_PASS -n "
sleep 1
echo ".."
sleep 1
f_message "$NAME Started!"
/etc/init.d/mjpg_streamkick status
;;
stop)
f_message "Stopping $DESC..."
killall mjpg_streamer
f_message "$NAME Stopped!"
;;
restart)
f_message "Restarting $DESC..."
killall $NAME
f_message "$NAME Killing!"
$DAEMON -b -i "input_uvc.so -d $MJPG_VIDEO_DEVICE -f $MJPG_FREQ -r $MJPG_RESOLUTION -q $MJPG_QUALITY " -o "output_http.so -p $MJPG_OUTPUT_PORT -w $MJPG_OUTPUT -c $USER_PASS -n "
sleep 1
echo ".."
sleep 1
f_message "$NAME Restarted!"
/etc/init.d/mjpg_streamkick status
;;
status)
pid=`ps -A | grep $NAME | grep -v "grep" | grep -v $NAME. | awk '{print $1}' | head -n 1`
if [ -n "$pid" ];
then
f_message "$DESC Status:"
f_message "$DESC is running with pid ${pid}"
f_message "$NAME was started with the following command line"
cat /proc/${pid}/cmdline ; echo ""
else
f_message "$DESC Status:"
f_message "Could not find $NAME running!"
fi
;;
*)
f_message "Usage: $0 {start|stop|status|restart}"
exit 1
;;
esac
exit 0
И... Внедряем
sudo chmod 755 /etc/init.d/mjpg_streamkick
sudo update-rc.d mjpg_streamkick defaults
2. Motion - детектор движения, юзает на входе поток из ретранслятора.
sudo apt-get install motion
Конфигурация:
/etc/motion/motion.conf
netcam_url http://10.10.10.10:8080/?action=stream
width 1280
height 720
framerate 10
webcam_port 8880
webcam_localhost off
control_port 8881
control_localhost off
locate on # рисует рамку по движению
target_dir /tmp/motion # директория для сохранения снапшотов
sudo motion
top: CPU 101-103%
Ещё почитать:
Несколько камер:
http://ubuntuforums.org/showthread.php?t=1897786
Motion, использует дополнительные, спицифичные для каждой камеры, конфиги, подключаемые в основном файле конфигурации:
thread /etc/motion/thread0.conf
thread /etc/motion/thread1.conf
thread /etc/motion/thread2.conf
thread1.conf
videodevice /dev/video1
text_left USBWebcam-1
target_dir /home/motion/images/webcam1
webcam_port 8881
Выход в люди:
Port Forwarding
DynDNS