苹果电脑上启动一个 RTSP 推流,用来做测试

在开发 视频播放器、RTSP 客户端或流媒体相关功能 时,最常见的一个问题就是:

👉 手上没有稳定的 RTSP 推流源,没法反复测试播放器行为。

其实在 macOS(苹果电脑) 上,用现成工具就可以 快速启动一个 RTSP 推流服务 ,用于本地或局域网测试。

本文将从 准备工作 → 启动 RTSP 服务 → 推流 → 播放验证,一步一步带你完整跑通。


一、准备工作

1️⃣ 操作系统

  • macOS(Intel / Apple Silicon 均可)

  • 已安装 Homebrew(macOS 包管理工具)

如果还没装 Homebrew,可参考官方方式:

复制代码
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

2️⃣ 安装 FFmpeg(用于推流)

复制代码
brew install ffmpeg

安装完成后确认:

复制代码
ffmpeg -version

我的是 7.1.1的版本


3️⃣ 安装 MediaMTX(RTSP 服务端)

MediaMTX 是一个 轻量级、多协议的流媒体服务器,原名 rtsp-simple-server,非常适合本地测试。

复制代码
brew install mediamtx

确认安装成功:

复制代码
mediamtx --version

我的版本是 v1.15.6


二、准备一个测试视频文件

准备一个本地视频文件,例如:

复制代码
test.mp4

要求不高,常见的 H.264 + AAC 即可。

示例路径:

复制代码
/Users/yourname/Videos/test.mp4

三、配置并启动 RTSP 服务

1️⃣ 创建配置文件

在任意目录创建一个 mediamtx.yml:

复制代码
paths:
  live: {}

说明:

  • paths:RTSP 的"挂载点"配置

  • live:RTSP 路径名,对应 rtsp://host:8554/live

  • {}:使用默认配置,允许推流和播放


2️⃣ 启动 MediaMTX

在配置文件所在目录执行:

复制代码
mediamtx mediamtx.yml

看到类似日志说明启动成功:

复制代码
INF [RTSP] listener opened on :8554 (TCP)

⚠️ 如果提示端口被占用(如 8888),请先关闭对应进程或修改配置。


四、使用 FFmpeg 推送 RTSP 流

在另一个终端窗口执行推流命令:

复制代码
ffmpeg -re -stream_loop -1 -i test.mp4 \
  -c:v copy -c:a aac \
  -f rtsp -rtsp_transport tcp \
  rtsp://127.0.0.1:8554/live

参数说明:

参数 说明
-re 按真实时间推流
-stream_loop -1 无限循环播放
-c:v copy 视频不转码
-c:a aac 音频使用 AAC
-rtsp_transport tcp 使用 TCP 推流(更稳定)
/live 对应 MediaMTX 配置的路径

如果看到 FFmpeg 持续输出帧信息,说明推流成功。


五、使用播放器进行验证

1️⃣ 使用 VLC 播放

打开 VLC → 打开网络串流 → 输入:

复制代码
rtsp://127.0.0.1:8554/live

如果能正常播放,说明 RTSP 推流 + 服务端一切正常。


2️⃣ 用于 Flutter / App / 设备测试

此时你已经拥有了一个:

  • ✅ 稳定

  • ✅ 可循环

  • ✅ 可随时启停

的 RTSP 流,可直接用于:

  • Flutter 播放器调试

  • RTSP 连接生命周期测试

  • 服务端行为验证

  • 网络异常测试

至此, 就可以打开VLC播放器来读这个流了。


六、常见问题总结

❓ 推流时报 Connection refused

  • MediaMTX 未启动

  • 端口不一致(默认 RTSP 是 8554)

  • 路径未配置(如 /live 不存在)


❓ 提示 path 'live' is not configured

  • 检查 mediamtx.yml 是否包含:

    paths:
    live: {}


❓ 关闭播放器,服务端没有收到 TEARDOWN?

这是正常现象:

  • RTSP 协议中 TEARDOWN 是 可选

  • 很多播放器(包括 ffmpeg / fvp / 移动端)不会发送

  • 服务端应依赖 连接断开或超时


七、总结

通过 FFmpeg + MediaMTX,我们可以在 macOS 上:

  • 快速搭建 RTSP 推流环境

  • 不依赖真实摄像头或设备

  • 高效调试播放器和流媒体逻辑

这是一个 强烈推荐给所有音视频 / IoT / 客户端开发者的基础测试方案。


如果你愿意,我还可以帮你补一篇进阶的,比如:

  • 《RTSP 推流常见问题与排错清单》

  • 《用 FFmpeg 模拟不稳定 RTSP 网络环境》

  • 《RTSP 在移动端播放器中的真实行为分析》

你想往 测试 还是 协议原理 再深入一步?

相关推荐
可乐鸡翅yeah_18 小时前
HLS 业务 Referer‑Policy 网页元标签引发播放异常排错
前端·javascript·网络·ffmpeg·php·音视频
开开心心就好2 天前
本地文件搜索工具推荐,占用小速度还快
智能手机·ffmpeg·ocr·word·音视频·网络攻击模型·安全架构
我科绝伦(Huanhuan Zhou)2 天前
oracle坏块导致备份不了
数据库·oracle·ffmpeg
RS迷途小书童2 天前
Python+FFmpeg提取大疆无人机MP4内嵌mov_text遥测SRT字幕并做完整性校验
python·ffmpeg·大疆·srt字幕·dji
开开心心就好2 天前
视频压缩工具推荐,画质效果很能打
智能手机·ffmpeg·ocr·word·排序算法·音视频·散列表
可乐鸡翅yeah_2 天前
业务中 M3U8 水印相关坑,硬水印和动态水印区别
前端·网络·数据库·ffmpeg·m3u8在线
redfred3 天前
HyperFrames 部署教程:5.6 万 Star 开源「写 HTML 出视频」框架,Windows 从零上手(CLI 三条命令 + 7 个避坑)
ffmpeg·开源·自动化·html·音视频
Arcai10243 天前
PostgreSQL数据备份和恢复完全指南
数据库·postgresql·ffmpeg·备份一体机·备份软件·smartstor·智备科技
可乐鸡翅yeah_3 天前
FFmpeg 生成 HLS 独立分片 independent‑segments 参数到底有什么用
javascript·ffmpeg·音视频·safari·m3u8
企业数字化笔记4 天前
视觉处理为什么会慢?解码、预处理、模型推理、后处理和编码的性能拆解
ffmpeg·gpu算力