Найти тему
Алексей Кретов

Потоковое видео с Raspberry Pi

Оглавление

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

будем пользоваться встроенной утилитой raspivid

VLC media player

Самый простой способ организовать трансляцию видео с камеры Raspberry Pi — использование VLC media player на компьютере и на «малинке». Медиапроигрыватель по умолчанию уже установлен, если нет, то делается это командой:

sudo apt-get install vlc -y

После этого запускаем запись видео и его трансляцию. На примере ниже видео размером 800 на 400 пикселей и частотой 24fps будет транслироваться в формате h264 через порт номер 8160:

raspivid -o - -t 0 -hf -w 800 -h 400 -fps 24 |cvlc -vvv stream:///dev/stdin --sout '#standard{access=http,mux=ts,dst=:8060}' :demux=h264

Запускаем на компьютере VLC, выбираем в меню «Открыть URL» и вписываем http://192.168.1.139:8060 (замените 192.168.1.139 на ваш IP-адрес своего Raspberry Pi). Если установить VLC на Android-устройство, то этот способ тоже работает.

Воспроизведение потока видео VLC через компьютер
Воспроизведение потока видео VLC через компьютер
VLC с телефона. задержка не отличается
VLC с телефона. задержка не отличается

Как видим задержка около 5 секунд.

Отправка по tcp h264

Протокол TCP отправляет пакеты, с подтверждением приёма. H264 протокол сжатия видеопотока.

На Raspberry запускаем команду:

raspivid -l -t 0 -w 640 -h 480 -o tcp://0.0.0.0:8060

Заходим в проигрыватель VLC и запускаем воспроизведение по URL:

tcp/h264://192.168.1.139:8060

Задержка доходит до 1 минуты

Это пара простейших способов для контроля происходящего с камерой. Полученные мной задержки вещания связаны с большой нагрузкой на роутер, но тем не менее порядок значений просматривается.

Послесловие

в последствии будет рассказано, как передавать видео с очень маленькими задержками, и отображать его в собственной программе