Оглавление

Задача

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

Подход к решению

Для выполнения задачи был использован следующий подход:

  1. Создание Docker контейнера с FFmpeg:
    Для обработки видеопотоков был создан Docker контейнер, в котором используется FFmpeg для конвертации RTSP потока в RTMP. Docker-образ был взят с Docker Hub: alekseykrivoshein/mediamtx-rtsp.
  2. Настройка MediaMTX:
    MediaMTX (Media Transfer eXchange) был настроен для приёма RTMP потока от FFmpeg и конвертации его в HLS формат. MediaMTX предоставляет удобный способ обработки и трансляции видеопотоков в различных форматах.
  3. Вывод видеопотока на веб-страницу:
    Для отображения видеопотоков на веб-странице был использован HLS. С помощью специального плеера, поддерживающего HLS (например, Bradmax Player), видеопоток был интегрирован на веб-страницу через M3U8 плейлист.

Пошаговая реализация

  1. Запуск Docker контейнера:
    Сначала был создан и запущен Docker контейнер с FFmpeg. Команда для запуска:
   docker pull alekseykrivoshein/mediamtx-rtsp
   docker run -d --name=ffmpeg-rtsp-to-rtmp alekseykrivoshein/mediamtx-rtsp
  1. Настройка MediaMTX:
    MediaMTX был настроен для приёма RTMP потока от Docker контейнера и конвертации его в HLS. Конфигурация MediaMTX включала в себя настройку RTMP входа и HLS выхода.
  2. Интеграция HLS на веб-страницу:
    Веб-страница была настроена для отображения видеопотока через HLS. С помощью Bradmax Player, который поддерживает HLS, на страницу был добавлен код для воспроизведения видео. Пример кода для интеграции:
   <video id="videoPlayer" controls>
      <source src="https://yourserver.com/path/to/playlist.m3u8" type="application/x-mpegURL">
   </video>

Результаты

Данное решение позволило успешно интегрировать видеопотоки с камер наблюдения на веб-страницу, обеспечив стабильное и качественное воспроизведение в формате HLS. Использование Docker контейнера с FFmpeg и MediaMTX упростило процесс конвертации и трансляции видеопотоков, обеспечив гибкость и масштабируемость системы.

0 Комментарии

Добавить комментарий