Оглавление
Задача
Необходимо было организовать трансляцию видео с камер наблюдения на сайт. Камеры передают видеопоток в формате RTSP, и нужно было вывести этот поток на веб-страницу в формате HLS для удобства пользователей.
Подход к решению
Для выполнения задачи был использован следующий подход:
- Создание Docker контейнера с FFmpeg:
Для обработки видеопотоков был создан Docker контейнер, в котором используется FFmpeg для конвертации RTSP потока в RTMP. Docker-образ был взят с Docker Hub:alekseykrivoshein/mediamtx-rtsp
. - Настройка MediaMTX:
MediaMTX (Media Transfer eXchange) был настроен для приёма RTMP потока от FFmpeg и конвертации его в HLS формат. MediaMTX предоставляет удобный способ обработки и трансляции видеопотоков в различных форматах. - Вывод видеопотока на веб-страницу:
Для отображения видеопотоков на веб-странице был использован HLS. С помощью специального плеера, поддерживающего HLS (например, Bradmax Player), видеопоток был интегрирован на веб-страницу через M3U8 плейлист.
Пошаговая реализация
- Запуск Docker контейнера:
Сначала был создан и запущен Docker контейнер с FFmpeg. Команда для запуска:
docker pull alekseykrivoshein/mediamtx-rtsp docker run -d --name=ffmpeg-rtsp-to-rtmp alekseykrivoshein/mediamtx-rtsp
- Настройка MediaMTX:
MediaMTX был настроен для приёма RTMP потока от Docker контейнера и конвертации его в HLS. Конфигурация MediaMTX включала в себя настройку RTMP входа и HLS выхода. - Интеграция 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 Комментарии