news 2026/4/28 17:11:07

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
苹果电脑上启动一个 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 在移动端播放器中的真实行为分析》

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/21 16:54:27

Python计算器代码示例

示例代码实现以下是一个Python代码示例,用于实现一个简单的计算器功能:def calculator():print("欢迎使用简单计算器")num1 float(input("请输入第一个数字: "))operator input("请输入运算符 (, -, *, /): ")num2 flo…

作者头像 李华
网站建设 2026/4/15 19:01:37

JavaScript条码识别技术深度解析:从原理到实战的完整指南

JavaScript条码识别技术深度解析:从原理到实战的完整指南 【免费下载链接】library Multi-format 1D/2D barcode image processing library, usable in JavaScript ecosystem. 项目地址: https://gitcode.com/gh_mirrors/lib/library 在现代数字化浪潮中&…

作者头像 李华
网站建设 2026/4/18 5:20:46

抖音视频批量下载神器:轻松保存你喜欢的短视频内容

抖音视频批量下载神器:轻松保存你喜欢的短视频内容 【免费下载链接】douyinhelper 抖音批量下载助手 项目地址: https://gitcode.com/gh_mirrors/do/douyinhelper 在短视频盛行的今天,你是否经常遇到心仪的抖音视频想要保存却无从下手&#xff1f…

作者头像 李华
网站建设 2026/4/19 22:11:56

家电故障自诊:用户上传内部图像获取维修建议

家电故障自诊:用户上传内部图像获取维修建议 引言:让家电“说话”的视觉智能时代 现代家庭中,家电设备的复杂性日益提升,从洗衣机到空调,再到冰箱和微波炉,其内部结构和电子元件高度集成。当设备出现异常时…

作者头像 李华
网站建设 2026/4/25 9:49:21

Cactus基因组比对工具终极指南:从快速安装到实战应用

Cactus基因组比对工具终极指南:从快速安装到实战应用 【免费下载链接】cactus Official home of genome aligner based upon notion of Cactus graphs 项目地址: https://gitcode.com/gh_mirrors/cact/cactus 在基因组学研究领域,高效的比对工具是…

作者头像 李华
网站建设 2026/4/28 16:31:45

WarcraftHelper插件:5大核心功能全面解锁魔兽争霸III现代化体验

WarcraftHelper插件:5大核心功能全面解锁魔兽争霸III现代化体验 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为经典魔兽争霸III在现…

作者头像 李华