MediaMTX (ранее rtsp-simple-server) - это готовый к использованию и не зависящий от пользователя медиа-сервер реального времени и медиа-прокси, который позволяет публиковать, читать, проксировать и записывать видео- и аудиопотоки. Он задуман как "медиамаршрутизатор", который направляет медиапотоки с одного конца на другой.
1. Живые потоки могут быть опубликованы на сервере с:
2. И может быть прочитан с сервера с помощью:
3. И может быть записана с помощью:
Особенности
Публикация прямых трансляций на сервер
Чтение прямых потоков с сервера
Потоки автоматически преобразуются из одного протокола в другой
Одновременная передача нескольких потоков по отдельным путям
Запись потоков на диск
Воспроизведение записей
Аутентификация пользователей; используйте внутреннюю или внешнюю аутентификацию
Перенаправлять читателей на другие RTSP-серверы (балансировка нагрузки)
Запрос и управление сервером через API
Перезагрузка конфигурации без отключения существующих клиентов (горячая перезагрузка)
Считывать метрики, совместимые с Prometheus
Выполнять хуки (внешние команды) при подключении, отключении, чтении или публикации потоков клиентами.
Совместим с Linux, Windows и macOS, не требует никаких зависимостей или интерпретаторов, это один исполняемый файл
Примечание о rtsp-simple-server
rtsp-simple-server был переименован в MediaMTX. Причина довольно очевидна: этот проект начинался как RTSP-сервер, но превратился в гораздо более универсальный продукт, который больше не привязан к протоколу RTSP. Ничего не изменится в отношении лицензии, возможностей и обратной совместимости.
Оглавление
Установка
Существует несколько способов установки: отдельный двоичный файл, образ Docker, пакет Arch Linux и двоичный файл OpenWrt.
Автономный двоичный файл
Загрузите и извлеките автономный бинарный файл со страницы релиза, соответствующий вашей операционной системе и архитектуре.
Запустите сервер:
./mediamtx
Основные способы использования
Публикация потока. Например, вы можете опубликовать видео/аудиофайл с помощью FFmpeg:
Код: Выделить всё
ffmpeg -re -stream_loop -1 -i file.ts -c copy -f rtsp rtsp://localhost:8554/mystream
или GStreamer:
Код: Выделить всё
gst-launch-1.0 rtspclientsink name=s location=rtsp://localhost:8554/mystream filesrc location=file.mp4 \
! qtdemux name=d d.video_0 ! queue ! s.sink_0 d.audio_0 ! queue ! s.sink_1
Откройте поток. Например, вы можете открыть поток с помощью VLC:
Код: Выделить всё
vLC --network-caching=50 rtsp://localhost:8554/mystream
или GStreamer:
Код: Выделить всё
gst-play-1.0 rtsp://localhost:8554/mystream
или FFmpeg:
Код: Выделить всё
ffmpeg -i rtsp://localhost:8554/mystream -c copy output.mp4