Добрый день всем!
Передо мной стоит задача организации стриминга видео+аудио в RPi через Wi-Fi AP, с возможностью параллельной записи видео на SD карту (в идеале эти 2 процесса вообще не должны быть связаны).
Требования к стриму:
- Задержка < 500 ms (это самое главное требование, так как это будет камера заднего вида) - 720p 25fps со звуком (звук видимо пойдет с USB микрофона) - Видео должно нативно пониматься браузерами (включая safari). Так как для просмотра стрима используется Ionic 2 приложение (ios, android, chrome browser (another one RPi as viewer) ).
Требования к записи видео:
- 720p 25fps со звуком (либо лучше)
-----
За последние 5 дней я попробовал:
UV4L - пробовал его с USB камерой (в планах попробовать с Camera module), WebRTC с ней работать не стал. Зато стал работать MJPEG стрим, работал он плохо, отключался после 10 секунд и не работал в Safari вообще.
mjpeg-streamer - Круто работает, практически отсутствует задержка (не мерил но на глаз неощутима), при этом MJPEG успешно встроился в Ionic 2 приложения и отлично работает на iPhone и во всех браузерах.
В случае с MJPEG непонятно как передавать звук, пробовал настроить и оптимизировать darkice, не удалось побороть задержку (6 секунд!).
-----
Я понимаю что я только «капнул», и наверняка есть какие-то более продвинутые и простые решения, о чем и хотел у вас спросить.
В особенности интересует как распараллелить одновременную запись и стриминг с одной физической камеры (да еще и потенциально в разных разрешениях).
----
Еще, насколько я понимаю что Camera module умеет кодировать в H264 аппаратно (без CPU затрат), тогда мне видится решение с ffmpeg / ffserver, только удастся ли добиться отсутствию задержки с ними? (раньше их пробовал, была задержка в несколько секунд при стриминге (опять же речь и USB камере без аппаратного кодирования)).