мне очень нравится данная камера. Где только я ее не использовал, устанавливал на квадрокоптер, использовал как видео регистратор, скрытое наблюдение на дачи и т.п. Плюс данной камеры является её компактность, легкость, приемлимая видеопередача, автономная работа и цена =) в данной статье рассмотрю, как сделать вэб камеру из sq 12 и raspberry pi 4, подключив её только по USB
Делаем вэб камеру из raspberry pi и quelima sq 12
На первый взгдяд, кажется, что данная задача невозможна, но это не так. У шнура кабеля есть rca-выход, чтобы можно было подключать его через телевизор, что я только не делал, в какие старые телевизоры не засовывал кабель, ничего не получалось. Наткнулся на форуме raspberry, что это возможно, но плохо работает и через VLC не получается его подключить. Давайте попробуем это сделатью.
Первым делом посмотрим, видит ли малинка наше устройство, командой dmesg
[ 331.438995] usb 1-1.3: New USB device found, idVendor=1b3f, idProduct=2202, bcdDevice= 1.00
[ 331.439012] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 331.439028] usb 1-1.3: Product: GENERAL - UVC
[ 331.439043] usb 1-1.3: Manufacturer: GENERAL
[ 331.509607] uvcvideo: Found UVC 1.00 device GENERAL - UVC (1b3f:2202)
[ 331.509622] uvcvideo: Forcing device quirks to 0x2 by module parameter for testing purpose.
[ 331.509634] uvcvideo: Please report required quirks to the linux-uvc-devel mailing list.
[ 331.511075] uvcvideo: UVC non compliance - GET_DEF(PROBE) not supported. Enabling workaround.
[ 331.511714] uvcvideo 1-1.3:1.0: Entity type for entity Processing 5 was not initialized!
[ 331.511733] uvcvideo 1-1.3:1.0: Entity type for entity Selector 4 was not initialized!
[ 331.511751] uvcvideo 1-1.3:1.0: Entity type for entity Camera 1 was not initialized!
[ 331.512131] input: GENERAL - UVC : GENERAL - UVC as /devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.3/1-1.3:1.0/input/input0
[ 331.512374] usbcore: registered new interface driver uvcvideo
[ 331.512386] USB Video Class driver (1.1.1)
[ 336.569062] usbcore: registered new interface driver snd-usb-audio
[ 345.928195] Voltage normalised (0x00000000)
если видим строчки:
[ 331.511714] uvcvideo 1-1.3:1.0: Entity type for entity Processing 5 was not initialized!
[ 331.511733] uvcvideo 1-1.3:1.0: Entity type for entity Selector 4 was not initialized!
[ 331.511751] uvcvideo 1-1.3:1.0: Entity type for entity Camera 1 was not initialized!
то всё хорошо, если нет, то нажимаем на кнопку ON, и смотрим вывод
Далее нужно узнать, какое устройство получила наша камера
pi@raspberrypi:~ $ v4l2-ctl --list-devices
bcm2835-codec-decode (platform:bcm2835-codec):
/dev/video10
/dev/video11
/dev/video12
bcm2835-isp (platform:bcm2835-isp):
/dev/video13
/dev/video14
/dev/video15
/dev/video16
GENERAL - UVC : GENERAL - UVC (usb-0000:01:00.0-1.3):
/dev/video0
/dev/video1
нас интересуют строчки про UVC, откуда мы узнаем, что камера заняла /de/video0 и /dev/video1 устройство. Скорее всего 0 - это камера, а 1 - микрофон
Добавленно:
Бывают случаи, что устройство есть, а к камере невозможно достучаться, тогда делаем:
sudo modprobe uvcvideo -r
sudo modprobe uvcvideo quirks=2
echo 'options uvcvideo quirks=2' | sudo tee /etc/modprobe.d/uvcvideo.conf
sudo reboot
Дальше попробуем, например, сделать скриншот для таймлапс видео:
pi@raspberrypi:~ $ sudo fswebcam -i 0 -d v4l2:/dev/video0 --no-banner --jpeg 95 --save test1.jpg
--- Opening v4l2:/dev/video0...
/dev/video0 opened.
Adjusting resolution from 384x288 to 1280x720.
--- Capturing frame...
Captured frame in 0.00 seconds.
--- Processing captured image...
Disabling banner.
Setting output format to JPEG, quality 95
Writing JPEG image to 'test1.jpg'.
Видим, что скиншот сохранился.
Теперь попробуем стримить с камеры:
pi@raspberrypi:~ $ sudo raspivid -o - -t 0 -hf -w 800 -h 400 -fps 24 |cvlc -vvv v4l2:///dev/video0 --sout '#standard{access=http,mux=ts,dst=:8160}' :demux=h264
Если вывод, примерно такой, то всё нормально:
[b2600858] main stream output debug: adding a new sout input for `MJPG` (sout_input: 0xae0005b8)
[b2602a18] main mux debug: adding a new input
[b2602a18] mux_ts mux debug: adding input codec=MJPG pid=100
[b2602a18] mux_ts mux debug: new PCR PID is 100
[b262a440] main demux meta debug: no meta reader modules matched
[b3500668] main input debug: `v4l2:///dev/video0' successfully opened
[b3500668] main input debug: Stream buffering done (384 ms in 35 ms)
[b3500668] main input debug: Decoder wait done in 0 ms
теперь идем на комп, где есть VLC, переходим в ИСТОЧНИК -> СЕТЬ и прописываем http://192.168.1.67:8160
Так же на самой малинке можно зайти в VLC, перейти в УСТРОЙСТВА ЗАХВАТА -> РЕЖИМ ЗАХВАТА video camera, НАЗВАНИЕ ВИДЕОУСТРОЙСТВА /dev/video0