Использование ffmpeg для потоковой передачи живого видео с Raspberry Pi на веб-сервер для распространения - PullRequest
0 голосов
/ 07 марта 2019

Я пытаюсь создать устройство, которое будет кодировать видео h.264 на raspberrypi и передавать его на отдельный веб-сервер в облаке. Основная проблема, с которой я сталкиваюсь, - это большинство реализаций, которые я ищу: либо веб-сервер подключен непосредственно к pi, либо встроенный проигрыватель воспроизводит видео прямо с устройства.

Я бы хотел, чтобы он был подключен к сети независимо от того, в какой сети я нахожусь, т.е. никакой переадресации портов, все, что мне нужно, это подключить устройство к сети, и поток будет виден на веб-странице.

Одним из возможных решений проблемы является простое кодирование кадров в base 64 в формате jpegs и отправка их в конечную точку на веб-сервере, однако это огромная трата пропускной способности и не учитывает частоту кадров, которую мог бы использовать h.264.

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

Я чувствую, что это можно сделать с помощью некоторых веб-сокетов или zmq и ffmpeg, но я не уверен.

1 Ответ

0 голосов
/ 07 марта 2019

Было бы полезно, если бы вы могли предоставить более подробное описание архитектуры устройства.Поскольку это RPI, он, вероятно, также используется для захвата видео через порт расширения камеры.В этом случае вы можете получить доступ к видеоустройству и сделать немало в отношении потоковой передачи, используя комбинацию доступных инструментов командной строки.

Что-то вроде следующего создаст поток RTMP с хоста видеокамеры.

raspivid [preferred options] -o - | ffmpeg -i - [preferred options] rtmp://[IP ADDR]/[location]

Оттуда, FFmpeg сделает для вас много тяжелой работы.

Теперь удаленные хосты получат доступ к потоку RTMP.

Другими инструментами, которые дополняют эту архитектуру, могут быть ffserver, где можно получить поток rtmp с хоста rpi и затем сделать его доступным для различных клиентов, таких как проигрыватель на веб-странице.Быстрый просмотр показывает, что ffserver может быть устаревшим, но есть аналогичные компоненты.

...