Мне нужно передавать потоковое видео в кодировке h.264 с IP-камеры в браузер, поддерживая при этом все распространенные браузеры и мобильные устройства (например, Android, Firefox, Chrome, IE, Safari (Mac OS и iOS)) ипри минимальных требованиях к пропускной способности и задержке.
Для MPEG-DASH требуется поддержка браузера для расширений Media Source, которые НЕ поддерживаются iOS .Так что это не так.
HLS поддерживается только Safari и Edge .
Также, похоже, DASH налагает задержку в несколько секунд, что не является предпочтительным.
Я бы хотел иметь возможность группировать входящие данные h.264 (т.е. фрагментированный MP4 ), передавать данные в браузер через веб-сокеты, а затем выгружать фрагменты в проигрыватель определенного типа, когда они
Broadway и его вилки - это javascript-декодер h.264, и существует проект Broadway-stream , который поддерживает потоки вместо файлов, но документыбедны, и я могу найти примеры потоковой передачи только тогда, когда источник не работает.
Самый неотложный вопрос: как передать «фрагментированные данные» игроку или элементу HTML видео по мере их поступления в браузер?
Я думаю, чтоидеальная настройка:
- Используйте ffmpeg для перекодирования исходного видео в формат чанка (fMP4)
- Передайте чанк-вывод на узелПриложение JS , которое отправляет каждый чанк через Websocket всем подключенным зрителям
- Браузеры зрителей сбрасывают каждый входящий чанк в своего рода декодер, который воспроизводит видео.
IЯ дошел до момента передачи полученных кусков в видеодекодер.Как это можно сделать без зависимости от расширений Media Source и предоставления зрителям возможности присоединяться к потоку в случайное время?