LINUX.ORG.RU

Захват с камеры в OpenWRT без обработки


0

2

Ищу программу для того, чтобы можно было захватывать поток с камеры и передавать его по сети на сервер. Тот, в свою очередь уже будет обрабатывать видео. Цель: уменьшение нагрузки на проц. Камера Logitech C270 HD. Даёт, само собой HD-качество. Палитра: YUYV.

`cat /dev/video0' не работает. Как я понимаю, дело в том, что на камеру нужно подавать какие-то управляющие данные или как-то правильно обрабатывать прерывания.

Для OpenWRT часто советуют mjpg_streamer, но он использует обработку видео. Без задания fps и resolution что-то получить с камеры вобще не удаётся. Самое максимальное, что потянул роутер - 320x240x10fps. Далеко от HD.

Копался в настройках motion. Но он тоже оказался с преднастройками разрешения и fps. На компе выдвал загрузку проца в 0.5%. Для моего роутера ето будет все 150%.

На компьютере пробовал захватывать поток при помощи `mencoder tv:// -ovc copy -tv noaudio -o video.dump`. В результате получался несжатый поток, который даже проигрывался Totem. Нагрузка проца чуть ли не нулевая, чего не удавалось добится другими средствами захвата. Минус в том, что нет реализации в OpenWRT.

Есть ли какие-то щё средства для того, чтобы получить необработанный raw-поток с камеры, чтобы не грузить проц?

Для OpenWRT часто советуют mjpg_streamer, но он использует обработку видео

Чиво? Ничего он не использует. Камера C270 умеет отдавать чистые жпеги, зачем тебе палитра YUYV? Я собственноручно стримил видео 720p/30fps с C270 в сеть через роутер TPLink mr3020 с нагрузкой на процессор 10%. Чистые жпеги, никакого YUYV.

blind_oracle ★★★★★ ()
Последнее исправление: blind_oracle (всего исправлений: 1)
Ответ на: комментарий от blind_oracle

Т.е. у неё аппаратное кодирование в jpeg? 0o Она ж стоит 1000 рублей, как-то сомнительно, что в такой нищебродской камере такое есть...

ktulhu666 ☆☆☆ ()
Ответ на: комментарий от ktulhu666

Да, у нее аппаратное кодирование. Практически во всех камерах, соответствующих стандарту USB Video Class оно есть. Даже в какой-то камере логитеховской, которая 640х480 только (c210 вроде) выдает, тоже есть формат жпег.

blind_oracle ★★★★★ ()
Ответ на: комментарий от blind_oracle

https://en.wikipedia.org/wiki/USB_video_device_class

Ага, супер. Спасибо, не знал. Вебки по этому стандарту просто обожаю, т.к. ни с виндой, ни с линуксом, ни с макосью у них нет проблем.
А какой софт использовать для прямого проброса потока с камеры в транслируемый клиенту поток?

ktulhu666 ☆☆☆ ()
Ответ на: комментарий от ktulhu666

А какой софт использовать для прямого проброса потока с камеры в транслируемый клиенту поток?

Тот самый mjpeg_streamer, берёт жпеги с камеры и стримит их по HTTP в MJPEG поток, проц не жрёть вообще.

blind_oracle ★★★★★ ()
Ответ на: комментарий от blind_oracle

Действительно, при установке 1280х720 загрузки проца почти нет, да и артефактов тоже. Просто при разрешении 640x360 потока вобще вобще не было или были жуткие артефакты. Поетому поставить разрешение побольше я просто не догадался.

Решено

abr_linux ()
Ответ на: комментарий от abr_linux

Действительно, при установке 1280х720 загрузки проца почти нет, да и артефактов тоже. Просто при разрешении 640x360 потока вобще вобще не было или были жуткие артефакты.

Потому что в каждом цветовом пространстве камера умеет работать в определенных разрешениях и FPS.

Когда ты выставлял 640x360, то у тебя включался YUYV и роутер давал дуба.

В 720p по дефолту выбирается MJPEG и становится счастье.

Для просмотра списка всех поддерживаемых форматов есть тулза uvcdynctrl, вот пример для камеры C910 чтоли:

# uvcdynctrl -d /dev/video0 --formats
Listing available frame formats for device /dev/video0:
Pixel format: YUYV (YUV 4:2:2 (YUYV); MIME type: video/x-raw-yuv)
  Frame size: 640x480
    Frame intervals: 1/30, 1/24, 1/20, 1/15, 1/10, 2/15, 1/5
  Frame size: 160x120
    Frame intervals: 1/30, 1/24, 1/20, 1/15, 1/10, 2/15, 1/5
  Frame size: 176x144
    Frame intervals: 1/30, 1/24, 1/20, 1/15, 1/10, 2/15, 1/5
  Frame size: 320x176
    Frame intervals: 1/30, 1/24, 1/20, 1/15, 1/10, 2/15, 1/5
  Frame size: 320x240
    Frame intervals: 1/30, 1/24, 1/20, 1/15, 1/10, 2/15, 1/5
  Frame size: 432x240
    Frame intervals: 1/30, 1/24, 1/20, 1/15, 1/10, 2/15, 1/5
  Frame size: 352x288
    Frame intervals: 1/30, 1/24, 1/20, 1/15, 1/10, 2/15, 1/5
  Frame size: 544x288
    Frame intervals: 1/30, 1/24, 1/20, 1/15, 1/10, 2/15, 1/5
  Frame size: 640x360
    Frame intervals: 1/30, 1/24, 1/20, 1/15, 1/10, 2/15, 1/5
  Frame size: 752x416
    Frame intervals: 1/24, 1/20, 1/15, 1/10, 2/15, 1/5
  Frame size: 800x448
    Frame intervals: 1/24, 1/20, 1/15, 1/10, 2/15, 1/5
  Frame size: 864x480
    Frame intervals: 1/20, 1/15, 1/10, 2/15, 1/5
  Frame size: 960x544
    Frame intervals: 1/20, 1/15, 1/10, 2/15, 1/5
  Frame size: 1024x576
    Frame intervals: 1/10, 2/15, 1/5
  Frame size: 800x600
    Frame intervals: 1/20, 1/15, 1/10, 2/15, 1/5
  Frame size: 1184x656
    Frame intervals: 1/10, 2/15, 1/5
  Frame size: 960x720
    Frame intervals: 1/15, 1/10, 2/15, 1/5
  Frame size: 1280x720
    Frame intervals: 1/10, 2/15, 1/5
  Frame size: 1392x768
    Frame intervals: 2/15, 1/5
  Frame size: 1504x832
    Frame rates: 5
  Frame size: 1600x896
    Frame rates: 5
  Frame size: 1280x960
    Frame rates: 5
  Frame size: 1712x960
    Frame rates: 5
  Frame size: 1792x1008
    Frame rates: 5
  Frame size: 1920x1080
    Frame rates: 2
  Frame size: 1600x1200
    Frame rates: 2
  Frame size: 2048x1536
    Frame rates: 2
  Frame size: 2592x1944
    Frame rates: 2
Pixel format: MJPG (MJPEG; MIME type: image/jpeg)
  Frame size: 640x480
    Frame intervals: 1/60, 1/30, 1/24, 1/20, 1/15, 1/10, 2/15, 1/5
  Frame size: 160x120
    Frame intervals: 1/30, 1/24, 1/20, 1/15, 1/10, 2/15, 1/5
  Frame size: 176x144
    Frame intervals: 1/30, 1/24, 1/20, 1/15, 1/10, 2/15, 1/5
  Frame size: 320x176
    Frame intervals: 1/30, 1/24, 1/20, 1/15, 1/10, 2/15, 1/5
  Frame size: 320x240
    Frame intervals: 1/60, 1/30, 1/24, 1/20, 1/15, 1/10, 2/15, 1/5
  Frame size: 432x240
    Frame intervals: 1/30, 1/24, 1/20, 1/15, 1/10, 2/15, 1/5
  Frame size: 352x288
    Frame intervals: 1/30, 1/24, 1/20, 1/15, 1/10, 2/15, 1/5
  Frame size: 544x288
    Frame intervals: 1/30, 1/24, 1/20, 1/15, 1/10, 2/15, 1/5
  Frame size: 640x360
    Frame intervals: 1/60, 1/30, 1/24, 1/20, 1/15, 1/10, 2/15, 1/5
  Frame size: 752x416
    Frame intervals: 1/30, 1/24, 1/20, 1/15, 1/10, 2/15, 1/5
  Frame size: 800x448
    Frame intervals: 1/30, 1/24, 1/20, 1/15, 1/10, 2/15, 1/5
  Frame size: 864x480
    Frame intervals: 1/30, 1/24, 1/20, 1/15, 1/10, 2/15, 1/5
  Frame size: 960x544
    Frame intervals: 1/30, 1/24, 1/20, 1/15, 1/10, 2/15, 1/5
  Frame size: 1024x576
    Frame intervals: 1/30, 1/24, 1/20, 1/15, 1/10, 2/15, 1/5
  Frame size: 800x600
    Frame intervals: 1/30, 1/24, 1/20, 1/15, 1/10, 2/15, 1/5
  Frame size: 1184x656
    Frame intervals: 1/30, 1/24, 1/20, 1/15, 1/10, 2/15, 1/5
  Frame size: 960x720
    Frame intervals: 1/30, 1/24, 1/20, 1/15, 1/10, 2/15, 1/5
  Frame size: 1280x720
    Frame intervals: 1/30, 1/24, 1/20, 1/15, 1/10, 2/15, 1/5
  Frame size: 1392x768
    Frame intervals: 1/15, 1/10, 2/15, 1/5
  Frame size: 1504x832
    Frame intervals: 1/15, 1/10, 2/15, 1/5
  Frame size: 1600x896
    Frame intervals: 1/15, 1/10, 2/15, 1/5
  Frame size: 1280x960
    Frame intervals: 1/15, 1/10, 2/15, 1/5
  Frame size: 1712x960
    Frame intervals: 1/15, 1/10, 2/15, 1/5
  Frame size: 1792x1008
    Frame intervals: 1/15, 1/10, 2/15, 1/5
  Frame size: 1920x1080
    Frame intervals: 1/30, 1/24, 1/20, 1/15, 1/10, 2/15, 1/5
  Frame size: 1600x1200
    Frame intervals: 1/15, 1/10, 2/15, 1/5
  Frame size: 2048x1536
    Frame intervals: 1/15, 1/10, 2/15, 1/5
  Frame size: 2592x1944
    Frame intervals: 1/10, 2/15, 1/5

blind_oracle ★★★★★ ()

А можешь рассказать как ты ее вообще туда подключил, эту камеру? У меня на dd-wrt не получилось ее запустить - нужны были какие-то библиотеки (уже не помню какие) для того, чтоб можно было по USB подключать «видео"устройства, этим библиотекам нужно было ядро свежее моего, а настолько свежего не было и в самых актуальных сборках. Заранее спасибо!

alozovskoy ★★★★★ ()
Ответ на: комментарий от blind_oracle

Классная тулза, спасибо! Воспользуюсь в будущем. Возможно, буду камеру менять ;)

abr_linux ()
Ответ на: комментарий от alozovskoy

С dd-wrt я не сталкивался. В OpenWRT она достаточно легко подцепилась. Делал всё по мануалу http://mainloop.ru/linux-os/make-lowcost-wifi-webcam.html. Там есть ссылка на прошивку для етого роутера, а в разделе downloads на том же сайте http://downloads.openwrt.org/attitude_adjustment/12.09-rc1/ar71xx/generic/ есть прошивки для кучи роутеров. На крайняк, если у тебя роутер не Tp-Link TL-MR3020, а прошивки своей ты не нашёл, то в сети я находил мануалы, как скомпилить собственное ядро на базе OpenWRT и прошить им устройство.

abr_linux ()
Последнее исправление: abr_linux (всего исправлений: 1)
Ответ на: комментарий от alozovskoy

Да, dd-wrt != OpenWRT. Первый для домохозяек, в основном. Второй - полноценный дистрибутив.

blind_oracle ★★★★★ ()
Ответ на: комментарий от abr_linux

Да, её вроде даже сам логитех пилит в рамках своих опенсурс прожектов.

blind_oracle ★★★★★ ()
Ответ на: комментарий от abr_linux

Спасибо тебе большое!! Да, как раз у меня с kmod-video-uvc проблемы:

$ opkg install kmod-video-uvc
Installing kmod-video-uvc (3.10.18-1) to root...
Downloading http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/kmod-video-uvc_3.10.18-1_ar71xx.ipk.
Collected errors:
 * satisfy_dependencies_for: Cannot satisfy the following dependencies for kmod-video-uvc:
 * 	kernel (= 3.10.18-1-d665493f28879bf4846fccb1b86bc2ed) * 	kernel (= 3.10.18-1-d665493f28879bf4846fccb1b86bc2ed) * 	kernel (= 3.10.18-1-d665493f28879bf4846fccb1b86bc2ed) * 	kernel (= 3.10.18-1-d665493f28879bf4846fccb1b86bc2ed) * 	kernel (= 3.10.18-1-d665493f28879bf4846fccb1b86bc2ed) * 	kernel (= 3.10.18-1-d665493f28879bf4846fccb1b86bc2ed) * 	kernel (= 3.10.18-1-d665493f28879bf4846fccb1b86bc2ed) * 
 * opkg_install_cmd: Cannot install package kmod-video-uvc.
$ uname -sr
Linux 3.5.7.13

Вообще у меня на Atheros AR7241, но dd-wrt от 71** похоже, подходит. Или еще поищу.

Первый для домохозяек, в основном. Второй - полноценный дистрибутив.

Так это же и не полноценный ПК =).

alozovskoy ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.