Подключение WEB камеры к роутеру

Материал из First-Leon
Перейти к навигации Перейти к поиску

Устанавливаем поддержку камер UVC:

opkg install kmod-video-uvc

Устанавливаем ПО для трансляции видео и создания фото:

opkg install mjpg-streamer

Запускаем трансляцию:

mjpg_streamer -i "input_uvc.so -d /dev/video0 -y -r 640x480 -f 1 -q 50" -o "output_http.so -w /www/webcam -p 8080" # Для Cubeternet GL-UPC822
mjpg_streamer --input "input_uvc.so --device /dev/video1 --fps 1 --resolution 1280x960" --output "output_http.so --port 8080 --www /www/webcam" #Для Logitech c270

Для просмотра трансляции открываем в браузере:

http://ip:8080/stream.html

Создание фото:

wget http://localhost:8080/?action=snapshot -O "/var/fswebcam/`date '+%Y-%m-%d %H:%M.jpg'`"

Компиляция видео из отдельных кадров

Компиляцию проводим на компьютере (это довольно тяжелая операция).

Устанавливаем дополнительное ПО:

apt-get install imagemagick

Все изображения должны иметь одинаковую ширину и высоту. Если это не так, то приводим все изображения к одному размеру:

mogrify -resize 800x800  temp/*.JPG

По необходимости приводим имена файлов к виду понятному avconv. Сделать это можно с помощью скрипта:

a=1
for i in *.jpg; do
  new=$(printf "%06d.jpg" ${a}) #04 pad to length of 4
  mv "${i}" ${new}
  let a=a+1
done

Накладываем название файла на изображение (я использую в качестве имени файла - дату и время)

for i in *.jpg; do
  convert "$i" -gravity Southwest -stroke black -strokewidth 1 -pointsize 40 -quality 70 -fill "rgba(255,255,255,0.6)" -annotate +0+0 "`echo $i | sed 's/\..*//'`" "$i"
done

Если хотим ускорить видео в два раза, то удаляем каждый второй файл (после этого опять необходимо выполнить скрипт переименования файлов изображений):

ls | grep '[1,3,5,7,9].jpg$' | xargs rm

Компилируем видео из изображений:

avconv -i %6d.jpg -c:v libx264 -threads 16 -r 24 -crf 1 test.mkv

Опция -threads указывает, сколько у вас на компьютере вычислительных ядер.

После компиляции, необходимо перекодировать видео в нужный вам формат (в данном виде оно занимает слишком много места)

Можно создать GIF анимацию:

convert -delay 50 -loop 0 *.jpg myimage.gif

Ссылки