Онлайн видеостриминг с платы Orange Pi One

в 12:51, , рубрики: multimedia python vlc, Анализ и проектирование систем, обработка изображений, метки:

Онлайн видеостриминг с платы Orange Pi One - 1

В данном посте будет приведён пример реализации онлайн видеостриминга с помощью вебкамеры и одноплатника Orange Pi One.

Ну начнём с того, что здесь используется:

1) Платка с картинки
2) Вебкамера

А это 810+155 = 965р.- т.е. это может себе позволить даже школьник.

Итак стриминг это вещание контента в сеть. Т.е. нужен сервер который будет раздавать информационный поток. Раздавать можно широковещательно либо по запросу. В нашем случае будет по запросу.

Сперва нужно проверить- поднимается ли драйвер камеры:

opigaz@orangepione:~$ lsusb
...
Bus 002 Device 002: ID 1908:2311 GEMBIRD
...

Камера подхватилась. Теперь попробуем сделать снимок камеры. Я пошёл лёгким путём и поставил библиотеку OpenCV:

opigaz@orangepione:~$ sudo apt install python-opencv

Нашёл в интернете пример:

import cv2
import numpy

cap = cv2.VideoCapture(0)  #ignore the errors
cap.set(3, 960)        #Set the width important because the default will timeout
                       #ignore the error or false response
cap.set(4, 544)        #Set the height ignore the errors
r, frame = cap.read()
cv2.imwrite("photo.jpg", frame)

И сделал первый снимок:

opigaz@orangepione:~$ python cam.py

Онлайн видеостриминг с платы Orange Pi One - 2

Не очень картинка получилась, но котакт есть! Также можно использовать напрямую API «video for Linux» для получения изображения с камеры.

Для стриминга нужно организовать раздающий сервер. Для этого потребуется существенно больше времени, т.к. помимо всего прочего нужно имплементировать поддержку какого-либо формата раздачи (а лучше нескольких). И, тем более, есть готовые решения. Я поставил ffmpeg и vlc, соответственно.

Чтобы запустить сервер можно использовать эту комманду:

cvlc v4l2:///dev/video0 :v4l2-standard=mpeg2 :input-slave=alsa://hw:0,0 :live-caching=300 :sout="#transcode{vcodec=WMV2,vb=800,scale=1,acodec=wma2,ab=128,channels=2,samplerate=44100}:http{dst=:8080/stream.wmv}"

А чтобы проверить видеопоток на клиенте можно сделать вот так:

vlc -vvv http://192.168.100.10:8080/stream.wmv

Железная часть выглядит так:

Онлайн видеостриминг с платы Orange Pi One - 3

А результат таков:

Онлайн видеостриминг с платы Orange Pi One - 4

Также к этому потоку можно подключаться и с мобильных устройств. Я пробовал со своего смартфона с установленным на нём vlc.

PS: Для меня самым удивительным было, что и камера и платка работают. Причём загрузка платы примерно такова во время вещания:

Онлайн видеостриминг с платы Orange Pi One - 5

PPS: Жаль, что мою прошлую публикацию выпилили. Хотел донести народу, что даже студент может себе позволить взять дешманскую железку и она будет работать.

Автор: gazpar

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js