Monibuca流别名(Stream Alias)实战:1行配置实现多路径访问同一视频流
Monibuca流别名Stream Alias实战1行配置实现多路径访问同一视频流【免费下载链接】monibucaMonibuca简称 m7s是一款纯 Go 开发的开源流媒体服务器开发框架。项目地址: https://gitcode.com/langhuihui/monibucaMonibuca简称 m7s是一款纯 Go 开发的开源流媒体服务器开发框架其内置的**流别名Stream Alias**功能堪称流路径管理神器只需 1 行 YAML 配置或一条 HTTP 请求就能让同一路视频流被多个不同路径访问还能实现直播中无缝切换广告、导播台式的流内容替换全程观众无感知。 流别名能解决什么痛点在直播、视频监控、导播等业务中你经常会遇到这些场景路径太长内部流路径是live/camera-10086/2026-10-03想给客户端一个短路径live/main路径要变前端域名或业务目录调整客户端地址不能动希望服务端悄悄把流搬到新路径无缝插播直播中插入广告希望观众停留在固定地址上内容在直播流 ↔ 广告流之间无缝切换不黑屏、不卡顿、无需刷新播放器。Monibuca 的流别名功能就是为此设计的它为同一路上行流建立别名映射所有拉流RTMP、RTSP、HTTP-FLV、HLS、WebRTC 等协议统一按别名解析一次配置多路径直达。 方式一1 行配置正则别名开箱即用在 Monibuca 的全局配置中StreamAlias字段是一个正则表达式 → 目标流路径的映射见 server.go 中的ServerConfig定义global: streamAlias: ^cam/(\d)$: live/camera-$1就这 1 行它的含义是任何人拉流cam/101时服务器自动将其解析为真实流live/camera-101$1等分组引用让一条规则覆盖整个系列流无需为每路流单独配置。其核心逻辑在 alias.go 的processAliasOnStart中订阅路径未命中普通流时依次匹配StreamAlias中的正则规则命中后动态生成别名并建立持久化映射。配置机制说明可参考 doc_CN/arch/config.md。 提示正则别名在第一次有客户端访问时被物化为一条真实的别名记录之后便与 API 创建的别名享受完全相同的能力。 方式二HTTP API 动态管理别名不想改配置文件重启Monibuca 提供了标准 REST API接口定义见 pb/global.proto① 创建/修改别名——POST /api/stream/aliascurl -X POST http://localhost:8080/api/stream/alias \ -H Content-Type: application/json \ -d {streamPath: live/camera-101, alias: live/main, autoRemove: false}② 查询别名列表——GET /api/stream/alias/list{ code: 0, data: [ {streamPath: live/camera-101, alias: live/main, autoRemove: false, status: 1} ] }③ 删除别名—— 只传alias、不传streamPath即可curl -X POST http://localhost:8080/api/stream/alias \ -H Content-Type: application/json \ -d {alias: live/main}其中status字段表示别名当前状态1表示已关联到正在推流的 Publisher2表示存在同名原始流见 alias.go 中的GetStreamAlias实现。 实战直播无缝插播广告导播级玩法这是流别名最杀手级的应用——固定观众地址后端随时换内容创建别名指向主直播流alias: live/show→streamPath: live/main需要插播广告时同一个别名改指向广告流streamPath: ads/ad1广告播完再把别名切回live/main。# 插入广告同一别名秒级改指向观众无感知 curl -X POST http://localhost:8080/api/stream/alias \ -d {streamPath: ads/ad1, alias: live/show, autoRemove: false}切换瞬间Monibuca 会自动把订阅该别名的所有客户端平滑转移到新流TransferSubscribers机制见 alias.go 的processAliasOnStart主播端推流完全不受影响。配合autoRemove: true还能让临时别名在流结束后自动清理防止资源泄漏。完整案例与广告轮播脚本见 doc_CN/stream_alias_usage.md。⚙️ 三大关键机制详解持久化存储配置了数据库后别名会写入stream_alias表StreamAliasDB模型见 alias.go重启服务器后自动恢复server.go 的initStreamAlias无需担心配置丢失断流自愈原始流中断时别名依然占位。等新的 Publisher 重新推上来别名自动接管并唤醒等待中的订阅者观众侧体验为短暂重连而非流不存在参数透传别名支持携带 URL 查询参数订阅时客户端参数会覆盖别名保存的同名参数alias.go方便做鉴权、时移等细粒度控制。❓ 常见问题FAQQ切换流时观众会卡顿吗A不会。别名切换是纯服务器端操作订阅者被整体迁移到新 Publisher播放器地址始终不变。Q正则别名和 API 创建的别名有什么区别A正则别名是声明式的写在配置里、批量生效API 别名是实例式的针对单路流、可动态增删。二者可混合使用API 别名优先级更高。Q支持同时存在多少个别名A理论上无硬性限制内部采用高效的并发安全映射结构建议按业务实际需要合理创建并及时清理。 相关资料功能源码alias.go技术实现文档doc_CN/arch/alias.md使用指南与广告实战doc_CN/stream_alias_usage.mdAPI 协议定义pb/global.proto数据库设计含stream_alias表doc_CN/arch/db.md一行配置让流媒体地址管理从此轻装上阵——快给你的 Monibuca 加一条流别名试试吧【免费下载链接】monibucaMonibuca简称 m7s是一款纯 Go 开发的开源流媒体服务器开发框架。项目地址: https://gitcode.com/langhuihui/monibuca创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

JAVA游戏支付源码拆解:免签支付平台的核心机制与实战避坑

JAVA游戏支付源码拆解:免签支付平台的核心机制与实战避坑

简介:一份可直接部署运行的JAVA游戏通用支付平台源码,面向游戏开发者、站长及支付集成需求方,已对接正在运营的免签支付平台。使用个人支付宝或微信收款二维码即可完成自动发货,支持mysql/sqlserver数据库,内置免签支付…

2026/10/4 7:42:07 阅读更多 →
Python实现DICOM批量转NIfTI:原理、最佳实践与踩坑指南

Python实现DICOM批量转NIfTI:原理、最佳实践与踩坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 7:42:07 阅读更多 →
Goldwasser-Micali公钥加密:从概率加密到语义安全的奠基之作

Goldwasser-Micali公钥加密:从概率加密到语义安全的奠基之作

1982年,公钥密码学还很年轻:RSA问世不过五年,DH密钥交换刚刚解决了密钥分发难题。就在这一年的STOC会议上,Shafi Goldwasser和Silvio Micali提交了一篇后来被引用到烂的论文,题目里带着一股游戏感:“Probab…

2026/10/4 7:41:07 阅读更多 →

最新新闻

OpenHarmony 实战:SizedBox 尺寸约束与 Flutter 跨端布局

OpenHarmony 实战:SizedBox 尺寸约束与 Flutter 跨端布局

1. 先把 SizedBox 放在 OpenHarmony 语境下看你可能已经注意到,Flutter for OpenHarmony 的技术讨论里,提到最多的组件不是那些大型业务组件,反而是 SizedBox、Container、Row 这类看起来“太基础”的东西。原因很简单:OpenHarmon…

2026/10/4 9:08:14 阅读更多 →
用matplotlib三维画图可视化纳什均衡点

用matplotlib三维画图可视化纳什均衡点

1. 这不是炫技,是让博弈论“看得见”的硬需求你有没有试过给学生讲纳什均衡?讲到混合策略时,手指在黑板上划来划去,画出两条交叠的直线,再标个点——“看,这就是均衡点!”可台下眼神空洞&#x…

2026/10/4 9:08:14 阅读更多 →
用Go实现UniMate:轻量级局域网剪贴板同步与文件秒传工具

用Go实现UniMate:轻量级局域网剪贴板同步与文件秒传工具

博客圈里有个怪现象,工具类项目总是比应用类项目更让开发者上头。我最近在折腾一个叫UniMate的跨设备协同工具,起因很朴素:工作机上复制了一段代码,回到家里电脑想粘贴,却只能通过网盘、聊天记录或者邮箱手动搬运。手机…

2026/10/4 9:08:14 阅读更多 →
Java工程师转型AI落地:从Spring Boot到RAG的实战路线

Java工程师转型AI落地:从Spring Boot到RAG的实战路线

1. 别焦虑了:AI落地缺的从来不是算法专家,而是能把模型变成产品的工程师最近不少做 Java 的朋友在焦虑,看到铺天盖地的"AI 要替代程序员""不会 Python 没法做 AI"这类论调,总觉得自己被时代抛下了。有个前同事…

2026/10/4 9:07:14 阅读更多 →
为每个测试独立准备数据——Node.js 测试中避免全局 Fixture 与种子数据的实战指南

为每个测试独立准备数据——Node.js 测试中避免全局 Fixture 与种子数据的实战指南

文档教程后端 【免费下载链接】nodebestpractices ✅ The Node.js best practices list (July 2026) 项目地址: https://gitcode.com/GitHub_Trending/no/nodebestpractices 点击查看 免费下载 导读 在 Node.js 后端测试中,"为了跑得快&#xff0…

2026/10/4 9:07:14 阅读更多 →
linux-command 手册精读:znew 命令详解——将 compress 生成的 .Z 压缩包转换为 gzip 的 .gz 格式

linux-command 手册精读:znew 命令详解——将 compress 生成的 .Z 压缩包转换为 gzip 的 .gz 格式

文档教程 【免费下载链接】linux-command Linux命令大全搜索工具,内容包含Linux命令手册、详解、学习、搜集。https://git.io/linux 项目地址: https://gitcode.com/GitHub_Trending/linux/linux-command 点击查看 免费下载 在 Linux 压缩工具链中&…

2026/10/4 9:07:14 阅读更多 →

日新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/2 10:36:31 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/3 9:42:35 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/3 9:42:36 阅读更多 →