Видео-аудиопоток с Raspberry Pi через VPS с мин. задержкой

Цена договорная • наличный расчёт, безналичный расчёт, электронные деньги
16 декабря 2015, 19:26 • 2 отклика • 67 просмотров
Имеется малина со штатной ("малиновской") камерой, а также USB-адаптер захвата аудио (микрофон).
Возможно поставить чистую raspbian на нее.
Предоставим выделенный сервер с любой популярной и удобной ОСью.

На момент настройки к малине есть доступ по белому IP-адресу.
Однако в готовом решении белого IP не будет (малина будет подключена к 3G/4G интернету), поэтому малина при подаче питания должна сама начинать стримить на VPS.

Необходимо также настроить LAMP-стек на малине и VPS.
На сервере он нужен, чтобы можно было организовать авторизацию по логину-паролю к трансляции, сделать какую-то верстку интерфейса доступа-регистрации (это можем сами залить)
На малине LAMP нужен для приема команд управления с сервера.
Команды управления приходят как обычные HTTP-запросы, PHP на малине управляет последовательным портом, выплевывая в него нужные команды (проверено, работает, скрипты есть).
Т.к. IP-шник малины будет серым, то скорее всего малине придется также автоматически при подаче питания организовывать VPN-туннель с сервером для того, чтобы команды управления проксировались с сервера на малину. Хотя если можно сделать проще, на уровне PHP-websockets - то мы не против.

Сейчас основная проблема - в наличии задержки видеопотока. Необходимо подвергать поток как можно меньшим трансформациям. Возможно, свою лепту вносит процессор raspberry (хотя камера умеет сама энкодить в h264 и можно отдавать поток "как есть" в сеть). Также какие-то задержки вносит VPS (видимо, кеширует) и сам плеер в HTML-странице браузера добавляет около секунды. Вторая проблема с отдачей потока "как есть" с камеры малины - это большой трафик. Для работы малины в 3G-4G сетях это создает проблему. Возможно, есть какая-то регулировка битрейта у малиновской стандартной камеры.

Скорее всего, лучшим решением на малине будет gstreamer (в сети пишут про его минимальные задержки, почти реалтайм), а также возможно есть способ как-то вещать напрямую в браузер, чтобы VPS выступал только "дирижером", связующим звеном между нодами в момент, когда точный IP малины браузеру не известен. Правда, с серым IP скорее всего так не получится. Ведь он недоступен извне (NAT у 4G итп)

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