Media MTX 介绍
Media MTX
是一个高性能的开源媒体服务器,用于处理实时音视频流。它支持多种协议,包括 RTSP、RTMP 和 WebRTC,适合用作直播、视频监控(如 IPCAM)、和流媒体中继的解决方案。Media MTX 轻量、灵活,并具有广泛的协议兼容性,非常适合嵌入式设备和云环境。
官方地址:Media MTX GitHub 项目
Media MTX 的功能特点
- 支持多种协议:
- 输入协议:RTSP、RTMP、WebRTC。
- 输出协议:RTSP、RTMP、WebRTC、HLS。
- 高性能:
- 支持高并发客户端和数据传输。
- 消耗资源少,非常适合嵌入式设备或云计算平台。
- 简单的配置和易用性:
- 使用一个易读的 YAML 配置文件进行配置。
- 跨平台支持:
- 可运行在 Windows、Linux 和 macOS 上,也支持 Docker 容器化运行。
Media MTX 安装教程
以下是 Media MTX 的安装与基本使用教程,基于 Linux 系统(如 Ubuntu 或树莓派)。其他平台可参考类似步骤。
方法 1:通过预编译二进制文件安装
-
下载 Media MTX 二进制文件 从 GitHub Releases 页面获取最新版本:
wget https://github.com/bluenviron/mediamtx/releases/latest/download/mediamtx-linux-amd64.tar.gz
-
解压文件
tar -xvzf mediamtx-linux-amd64.tar.gz cd mediamtx-linux-amd64
-
运行 Media MTX
./mediamtx
程序默认读取
mediamtx.yml
作为配置文件,并启动服务。
方法 2:通过源码编译安装
适用于需要定制功能或支持非官方平台的情况。
-
安装依赖 安装 Go 编译器(需要 Go 1.19 或更高版本):
sudo apt update sudo apt install -y golang
-
下载源码 克隆 Media MTX 源代码:
git clone https://github.com/bluenviron/mediamtx.git cd mediamtx
-
编译项目 使用
make
工具编译:make
成功后,生成的可执行文件位于
./mediamtx
。 -
运行 Media MTX
./mediamtx
方法 3:通过 Docker 安装
Media MTX 提供了官方的 Docker 镜像,适合快速部署。
-
安装 Docker 如果尚未安装 Docker,可按以下步骤安装:
sudo apt update sudo apt install -y docker.io
-
运行 Media MTX Docker 容器 使用默认配置运行容器:
docker run -it --rm -p 8554:8554 -p 1935:1935 -p 8888:8888 bluenviron/mediamtx
8554
:RTSP 服务端口。1935
:RTMP 服务端口。8888
:HTTP 服务端口(用于 WebRTC)。
-
挂载自定义配置文件 如果需要使用自定义配置文件,可将其挂载到容器内:
docker run -it --rm -p 8554:8554 -p 1935:1935 -p 8888:8888 \ -v $(pwd)/mediamtx.yml:/mediamtx.yml bluenviron/mediamtx
Media MTX 配置说明
Media MTX 使用 YAML
格式的配置文件,名为 mediamtx.yml
,提供了灵活的设置选项。以下是基本的配置示例:
默认配置文件示例
# RTSP 服务配置
rtsp:
enabled: yes
address: :8554
# RTMP 服务配置
rtmp:
enabled: yes
address: :1935
# WebRTC 服务配置
webrtc:
enabled: yes
address: :8888
# 源流(输入)配置
paths:
all:
source: publisher # 允许外部推流到此路径
sourceOnDemand: no
典型用例配置
-
使用网络摄像头(RTSP 输入)
paths: cam1: source: rtsp://192.168.1.100:554/stream
-
设置访问认证
paths: all: source: publisher publishUser: myuser publishPass: mypassword
-
开启 HLS 输出
hls: enabled: yes address: :8889
配置完成后,保存为 mediamtx.yml
,然后重启服务。
测试和验证
测试 RTSP 推流
使用 ffmpeg 推送本地视频到 Media MTX:
ffmpeg -re -i video.mp4 -c:v copy -f rtsp rtsp://127.0.0.1:8554/stream
测试 RTSP 播放
使用 VLC 或 ffplay 播放推送的视频流:
vlc rtsp://127.0.0.1:8554/stream
# 或者
ffplay rtsp://127.0.0.1:8554/stream
测试 WebRTC 播放
- 打开浏览器访问
http://<服务器IP>:8888/stream
。 - 播放器会加载 WebRTC 流。
总结
Media MTX 是一个功能强大的流媒体服务器,支持多种协议和灵活配置,适用于直播、视频监控等多种场景。本教程提供了多种安装方法和基本配置示例,用户可以根据实际需求进一步扩展和定制 Media MTX 的功能。