OBS Multi RTMP 多平台同时推流插件快速上手:如何一次向多个 RTMP 平台推流
【免费下载链接】obs-multi-rtmpOBS複数サイト同時配信プラグイン项目地址: https://gitcode.com/gh_mirrors/ob/obs-multi-rtmp
两个 OBS 实例同时推 YouTube 和 B 站,CPU 直接吃满?OBS Multi RTMP 是免费的 OBS 插件,从单个 OBS 实例同时向多个 RTMP 平台推流,每个平台还能用独立的编码器预设。
🚀 快速上手:3 步完成安装
插件免费,源码拿过来把文件放对位置就行。
- 获取插件文件:
git clone https://gitcode.com/gh_mirrors/ob/obs-multi-rtmp- 把插件文件复制到 OBS 安装目录。标准安装放在
C:\Program Files\obs-studio\下,保持插件目录结构不变;使用安装器的话直接安装,不要改安装路径。 - 重启 OBS Studio。插件以 Dock 停靠窗口的形式存在,主界面看不到时,去「视图」→「Docks」里勾选「多路推流」。
首次打开的界面很简单:上方是「新增目标」按钮,中间是「开始所有」和「停止所有」,下面是所有已配置推流目标的列表,第一次打开时列表为空。
🎯 核心工作流:第一次多平台同时推流的 5 个步骤
- 打开插件界面。OBS 菜单栏「视图」→「Docks」→ 勾选「多路推流」。预期看到:插件停靠窗口,内含「新增目标」「开始所有」「停止所有」按钮。
- 添加推流目标。点「新增目标」,弹出编辑对话框。填平台名称(如 YouTube、Bilibili),选协议,填 RTMP 服务器地址和推流密钥。预期看到:对话框提供 RTMP、SRT/RIST、WebRTC (WHIP) 三种协议可选,填完密钥即可保存。
- 创建视频编码器预设。在编码区选编码器(x264、NVENC、AMD 等),设分辨率、帧率、比特率、关键帧间隔。主平台建 1080p60 高质量预设,副平台单独建一个 720p 低码率预设。预期看到:每个预设都有唯一
id,供推流目标引用。 - 创建音频编码器预设。选音频编码器;需要复杂路由时,用音频轨道映射把 OBS 的不同音频轨道送到不同推流目标。
- 开始推流。点「开始所有」全部启动,或点单个目标右侧的按钮只推一路;「停止所有」或单目标按钮结束。预期看到:各目标状态变为推流中,OBS 统计栏能看到每路码率。
🧩 功能拆解:各平台独立编码器预设怎么实现
源码在src/下,结构如下:
src/ ├── obs-multi-rtmp.cpp # 插件入口与主停靠窗口界面 ├── push-widget.cpp # 单个推流目标的控制组件 ├── edit-widget.cpp # 推流目标编辑对话框 ├── output-config.cpp # 配置结构体定义与保存/加载 ├── protocols.cpp # 协议表(RTMP / SRT / WHIP) ├── obs-properties-widget.cpp # 基于 OBS 属性系统的参数编辑 └── helpers.cpp # 工具函数每目标独立编码器预设:主平台高清、副平台低码率
做什么:每个推流目标独立引用视频、音频编码器预设,还能按目标覆盖分辨率。这是插件的核心价值——主平台 1080p60,副平台 720p,一次编码配置多处复用。
怎么配:预设定义在src/output-config.h,目标按id引用:
struct VideoEncoderConfig { std::string id; std::string encoderId; // x264 / NVENC 等 int fpsDenumerator = 1; nlohmann::json encoderParams; // 编码器参数 std::optional<std::string> outputScene; std::optional<std::string> resolution; // 可被目标单独覆盖 }; struct OutputTargetConfig { std::string id; std::string name; std::string protocol; // RTMP / SRT_RIST / WHIP bool syncStart = false; bool syncStop = false; nlohmann::json serviceParam; // 服务参数(地址、密钥) nlohmann::json outputParam; // 输出参数(码率等) std::optional<std::string> videoConfig; std::optional<std::string> audioConfig; };适合谁:多平台同时直播、想让副平台降码率省带宽的创作者。
三种协议:RTMP / SRT / WHIP 怎么切换
做什么:除标准 RTMP 外,支持 SRT/RIST(抗丢包、更稳)和 WebRTC (WHIP)(低延迟),分别对应不同的 OBS 输出模块。
怎么配:协议表在src/protocols.cpp,把协议映射到对应的输出与服务模块,编辑对话框里选协议即可,表单字段自动跟随:
{ "RTMP", "RTMP", "rtmp_output", "rtmp_custom" }, { "SRT_RIST", "SRT/RIST", "ffmpeg_mpegts_muxer", "rtmp_custom" }, { "WHIP", "WebRTC (WHIP)","whip_output", "whip_custom" }适合谁:线路不稳用 SRT,追求低延迟用 WHIP,其余场景直接用 RTMP。
批量启动与同步控制:多平台同开播
做什么:「开始所有」「停止所有」批量控制全部目标;单个目标带syncStart/syncStop标志,勾选后手动推某一路时,同步目标会跟随启动或停止。
怎么配:编辑目标时勾选同步项即可,无需脚本。
适合谁:要求多平台同一秒开播、同一秒下播的直播。
配置自动保存:换电脑怎么迁移
做什么:所有目标和预设存于 OBS 用户数据目录的obs-multi-rtmp配置节(%appdata%\obs-studio\下),OBS 退出时自动保存,切换 Profile 时自动重载。
怎么配:零配置。迁移时整体备份 OBS 用户数据目录即可。
适合谁:换机、重装系统前想保留全部推流配置的人。
⚖️ 调优与对比:带宽和编码器怎么分配
调优建议:
- 先算带宽。总上传需求 = 各目标码率之和 × 1.2。3 个平台各 8000kbps 需要约 29Mbps 上传,不够就先压副平台码率。
- 编码器分配:主平台用硬件,副平台用软件。主平台指 NVENC/QSV/AMF 保画质,副平台给 x264 降到 720p 并把 preset 调快,避免多个 x264 把 CPU 吃满。
- 用分辨率覆盖省预设。预设里的
resolution是可选字段,同一个编码器预设服务多个目标、按目标覆盖分辨率,不用复制一堆预设。 - WHIP 别用于超长直播。延迟低但连接维持成本高,长时间开播用 RTMP 或 SRT 更稳。
- 开播前看统计栏。观察各路码率是否稳定,某路持续掉帧先降它的码率,再查网络。
和本插件常见的替代方案对比:
| 维度 | OBS Multi RTMP | 多 OBS 实例方案 |
|---|---|---|
| 编码资源 | 单实例共享场景,按目标独立编码 | 每平台一个实例,场景重复搭建 |
| 同步精度 | 同实例启停,毫秒级 | 手动操作,秒级偏差常见 |
| 配置复杂度 | 统一界面管理预设与目标 | 每个实例分别配置 |
| 带宽占用 | 相同(由总码率决定) | 相同 |
| 维护成本 | 更新一个插件 | 多个实例分别维护 |
推荐用本插件,因为多实例方案的场景搭建、配置维护和同步误差都是线性增长的。
❓ 问题速查:6 个高频故障
Q: 重启后看不到「多路推流」窗口?A: 先查「视图」→「Docks」是否被取消勾选。还不行就切到工作室模式试试;仍无窗口则退出 OBS,打开%appdata%\obs-studio\global.ini,删掉DockState=那一行再重启。
Q: 怎么确认插件文件放对了?A: 看 OBS 日志(帮助 → 日志文件)里有没有插件加载记录。没有就检查文件是否放在C:\Program Files\obs-studio\下,以及插件构建对应的 OBS 版本(项目基于 31.0.0)与本机是否匹配。
Q: 部分平台推流失败?A: 先核对该平台的推流密钥和地址,再降这一路的码率,最后查 OBS 日志里的具体报错。
Q: 不想用 RTMP 怎么办?A: 插件支持 SRT/RIST 和 WebRTC (WHIP),在编辑对话框里切换协议后按新协议填参数即可。
Q: 界面语言显示不对?A: 插件在data/locale/下带完整多语言文件,切换 OBS 界面语言后插件会跟随。
Q: 重装后推流配置怎么恢复?A: 配置在 OBS 用户数据目录的obs-multi-rtmp配置节里,重装前把该配置文件备份一份即可。
🛠️ 给开发者的延伸:编译与扩展
编译依赖:CMake 3.28+、libobs(项目基于 obs-studio 31.0.0)、Qt6 Widgets;dep/目录已内置 nlohmann-json,不用额外装。源码入口是src/obs-multi-rtmp.cpp的obs_module_load()。要加新协议:在src/protocols.cpp的s_infoList里加一行,指向对应输出与服务模块 id,再补 UI 参数项,编辑对话框会自动适配。
插件把「一个实例一路流」变成「一个实例多平台」,独立编码器预设加批量启停是它的核心价值。最实用的落地建议:正式开播前用两个目标做一遍低码率推流测试,把密钥和带宽都验一遍,开播时才不会翻车。
【免费下载链接】obs-multi-rtmpOBS複数サイト同時配信プラグイン项目地址: https://gitcode.com/gh_mirrors/ob/obs-multi-rtmp
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考