Современный способ отображения потока RTSP H264 в браузере (HTML5)JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Современный способ отображения потока RTSP H264 в браузере (HTML5)

Сообщение Anonymous »

Да, эта тема время от времени возникает и здесь, на SO.

Я много читал об этой теме, а также пробовал некоторые решения, но у меня есть некоторые ограничения:
  • независимость от браузера (должно работать большинство браузеров)
  • независимость от платформы (должны поддерживаться основные платформы)
  • работа готовый вариант (без плагинов!)
  • низкая задержка (предпочтительно менее 1 секунды)
  • пропускная способность ограничена (MJPEG не вариант)
  • нет транскодирования!
Итак, в дальнейшем: поток H264 кажется идеальным для ограничений 1 и 2.

Кроме того, мой источник создает живой H264 (точнее: MPEG-4 AVC, часть 10) в контейнер RTSP.

Но RTSP по-прежнему не поддерживается в браузере.

Что я проверил:
  • Как встроить потоковое мультимедиа rtsp в html5 страница
  • Как отобразить видеопоток RTSP на веб-странице?
  • потоковое RTSP на веб-сайт HTML
  • Отображение RTSP на веб-сайте
  • потоковое RTSP на веб-сайт HTML
  • Как получить поток RTSP через веб-приложение
  • Решение RTSP для JavaScript/HTML5
  • Потоковая передача через RTSP или RTP в HTML5
Все сообщения выше связаны с этим вопросом, и там было много ценной информации.

Также я прочитал очень хорошую статью 2014 года (!), которая подробная и весьма перспективная.

Итак, на сегодняшний день лучшим решением будет следующее:
  • анализируем RTSP и извлекаем поток h264
  • реструктурируем поток (преобразовываем его во фрагментированный MP4)
  • websocket (см. ниже)
  • fMP4 можно легко воспроизводить видео HTML5, если в браузере есть MSE (альтернатива — использовать Broadway.js, что круто, но требует большого количества ресурсов процессора)
Существуют решения, в которых шаги 1 и 2 выполняются на стороне сервера, а затем fMP4 передается в веб-сокет. Клиент получает данные из веб-сокета и передает их компонентам MSE для отображения.

В статье 2014 года показано, что шаг 2 также может выполняться на стороне клиента. В этом случае на сервере происходит только шаг 1, затем h264 передается в веб-сокет, а на стороне клиента, конечно, происходит реструктуризация и отображение.

Streamedian показался хорошим решением на первый взгляд, но они не публикуют свои серверные коды, а их сайт в течение дня возвращался с ошибкой 502.

Я не хочу использовать GStreamer или ffmpeg, они оба слишком тяжелые.

Однако есть несколько полезных вещей, которые могут помочь:
  • MP4Box.js — сегментирует файл MP4 для использования с Media Source Extension API.
  • mux.js — инструменты проверки и манипулирования видеофайлами.
Вернувшись к моему списку, шаг 2 можно выполнить с помощью MP4Box - по крайней мере, я верю/надеюсь.

Шаг 3 и шаг 4 просты, по ним есть масса инструкций.

Однако я немного озадачен шагом 1. Это должно быть сделано на стороне сервера, желательно на языке, который может легко взаимодействовать с веб-сокетами (например, Java).

В этом и суть моего вопроса: мне нужно извлечь поток h264 из RTSP в Java, как это сделать просто, но без вызова внешних программ?

Подробнее здесь: https://stackoverflow.com/questions/596 ... wser-html5
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»