
MediaMTX 快速上手完整安装与配置指南一条命令跑通多协议直播流【免费下载链接】mediamtxReady-to-use Media-over-QUIC / SRT / WebRTC / RTSP / RTMP / LL-HLS / MPEG-TS / RTP live media server and media proxy that allows to read, publish, proxy, record and playback real-time video and audio streams.项目地址: https://gitcode.com/GitHub_Trending/me/mediamtxMediaMTX 是一个零依赖、单可执行文件的直播媒体服务器它能发布、读取、代理、录制和回放音视频流内置支持 RTSP、RTMP、SRT、WebRTC、LL-HLS、MPEG-TS、RTP 和 MoQMedia-over-QUIC等主流协议流进来后会自动转换成其它协议对外提供。你可以把它理解成一台媒体路由器摄像头或推流端从一边接入播放器、录制系统从另一边取出适合直播分发、安防监控、视频中转等场景。开始之前先花 30 秒自检环境不用装数据库、不用装运行时MediaMTX 本身就是单个可执行文件准备工作非常轻检查项说明操作系统Linux、Windows、macOS 均可Docker 方式需要 Linux 或 Docker Desktop硬件普通服务器或 NAS 级别即可瓶颈通常在网络而非 CPU端口本地跑通至少需要 8554(RTSP)、1935(RTMP)、8888(HLS)、8889(WebRTC)、8890/8189(SRT)、8892/8893(MoQ)完整清单见 docs/2-features/05-configuration.md网络RTSP 的媒体传输默认走 UDP在 Docker 或 NAT 后建议改用 TCP 传输或整体改用--networkhost方式避免媒体包握手成功、画面不出到这里你已经确认了环境没有硬伤可以进入安装。挑一种方式把服务装好 选型一句话想要隔离好、可复现 → Docker想要一个文件长期自管 → 官方发布包想改代码、跑最新功能 → 源码构建。方式适合谁特点Docker 镜像生产/长期运行环境隔离官方推荐的生产方式官方发布包Windows/macOS/普通服务器单可执行文件 配置文件零依赖源码构建开发者需要 Go 环境跑 main 分支用 Docker 一条命令装好并映射端口docker run --rm -it \ -p 8554:8554 -p 1935:1935 -p 8888:8888 -p 8889:8889 \ -p 8890:8890 -p 8890:8890/udp -p 8893:8893/udp \ bluenviron/mediamtx:1看到滚动日志即代表服务已在容器里运行。镜像有四种变体1基础、1-ffmpeg内置 FFmpeg、1-rpi树莓派摄像头、1-ffmpeg-rpi两者都含。注意若外部设备要通过 WebRTC 连接还要用环境变量MTX_WEBRTCADDITIONALHOSTS告诉它你对外暴露的 IP。你现在已经拥有一个正在监听多个端口、随时可收流的媒体服务器。下载官方发布包单文件跑起来到官方 Releases 页面下载与你系统匹配的压缩包例如mediamtx_linux_amd64.tar.gz解压后得到mediamtx可执行文件和mediamtx.yml配置文件。在解压目录里直接启动./mediamtxWindows 上双击mediamtx.exe效果相同。执行完这一步服务已用内置默认配置在本地跑起来你现在已经完成了最简安装。源码构建Go 开发者专属git clone https://gitcode.com/GitHub_Trending/me/mediamtx cd mediamtx go run .需要本地装有 Go 工具链。命令开始输出监听日志后你跑的已经是最新开发版了。写最小配置只改 2 处就够用 配置文件mediamtx.yml每个字段都有中文级注释默认值几乎可以直接生产使用。这里只改两处。第一处把api: false改成api: true开启 Control API一个默认监听 9997 端口的 HTTP 接口用它验证服务状态最方便。第二处在文件末尾的paths:段注册一条流路径camtest是路径名之后任何推流端往这个路径推流都会生效paths: camtest:保存文件即可——MediaMTX 支持热加载改动会被立即检测到并应用不会断开已有客户端你现在已经完成了最小配置。启动并 5 秒确认服务正常工作启动方式与安装方式一致二进制为./mediamtxDocker 直接看容器日志。启动成功的标志是每个协议各一条监听日志例如RTSP: listening on :8554 RTMP: listening on :1935 HLS: listening on :8888 WebRTC: listening on :8889 SRT: listening on :8890接着做两件事整个链路就验证完了。第一件事用 FFmpeg 往camtest推一路测试图案流testsrc是 FFmpeg 内置的测试信号源画面是移动的彩色方块和计数秒表ffmpeg -re -f lavfi -i testsrc -f lavfi -i sine \ -c:v libx264 -preset ultrafast -c:a aac \ -f rtsp rtsp://127.0.0.1:8554/camtest第二件事另开终端探测这条流ffprobe rtsp://127.0.0.1:8554/camtestffprobe列出 H.264/AAC 轨道 → 推流、转发全链路打通验证成功。ffprobe提示 not connected 或超时 → 只是还没有人在推这条路径属正常现象先确认 ffmpeg 那条命令还活着。curl 127.0.0.1:9997返回api: not enabled→ 你漏改了api: true连接被拒绝 → 服务没在运行。常见现象原因处理bind: address already in use端口被别的程序占用在mediamtx.yml里改对应*Address后保存热加载生效ffmpeg 报 Connection refused服务未启动或防火墙拦了 8554先确认监听日志再放行端口浏览器/WebRTC 连不上本地 RTSP 正常服务端不知道自己的公网 IP设webrtcAdditionalHostsDocker 用-e MTX_WEBRTCADDITIONALHOSTS你的IPRTSP 在 Docker 里无画面UDP 媒体包被容器网络改写加-e MTX_RTSPTRANSPORTStcp或改用--networkhost排错到这一步你已经能独立完成日常运维了。快速回顾 ✅准备单可执行文件、零依赖确认系统支持和端口空闲。安装Docker 一条docker run映射端口或下载官方发布包直接./mediamtx。配置mediamtx.yml改两处——api: true 在paths:下注册路径保存即热加载。启动看到各协议 listening 日志即代表启动成功。验证ffmpeg 推testsrc测试流 ffprobe回读5 秒闭环。下一步深入配置参考 docs/5-references/1-configuration-file.md、Control API 手册 docs/5-references/2-control-api.md常见扩展方向是开启record录制到磁盘、用source把上游流代理进来、以及给路径加鉴权。【免费下载链接】mediamtxReady-to-use Media-over-QUIC / SRT / WebRTC / RTSP / RTMP / LL-HLS / MPEG-TS / RTP live media server and media proxy that allows to read, publish, proxy, record and playback real-time video and audio streams.项目地址: https://gitcode.com/GitHub_Trending/me/mediamtx创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考