Monibuca gRPC API完全参考:跨语言调用流媒体服务的终极指南
Monibuca gRPC API完全参考跨语言调用流媒体服务的终极指南【免费下载链接】monibucaMonibuca简称 m7s是一款纯 Go 开发的开源流媒体服务器开发框架。项目地址: https://gitcode.com/langhuihui/monibucaMonibuca简称 m7s是一款纯 Go 开发的开源流媒体服务器开发框架其内置的gRPC API让你可以用任意编程语言Python、Java、Node.js、C# 等像调用本地函数一样远程管理流媒体服务拉流、推流、录像、查询在线流列表、控制任务……本文带你从零开始完整掌握 Monibuca 的 gRPC 接口体系。一、为什么用 gRPC 调用流媒体服务很多流媒体服务器只提供 HTTP 接口参数松散、没有类型约束。而 Monibuca 的 gRPC API 带来三大优势强类型契约接口定义在 pb/global.proto 等 proto 文件中请求/响应字段一目了然不会拼错参数名跨语言客户端同一套 proto 文件可生成 Python、Java、C 等各语言 SDK一份定义处处调用双协议复用Monibuca 的 gRPC 服务同时生成了 HTTP Gateway见 scripts/protoc.sh同一个接口既能用 gRPC 调用也能用普通 HTTP 调用二、服务端口与鉴权连接前的两件事2.1 监听端口在哪配置gRPC 服务复用全局 TCP 配置监听端口在配置文件global.tcp中指定定义见 pkg/config/tcp.goglobal: tcp: listenaddr: :8080 # gRPC / HTTP 服务监听地址 listentls: :8443 # 启用 TLS 时的监听地址默认情况下gRPC 与 HTTP 接口都走8080 端口客户端连接127.0.0.1:8080即可。2.2 开启登录后的 Token 机制如果服务端开启了管理员登录admin.enable_login所有 gRPC 调用都需要在请求头携带 JWT Tokenauthorization: Bearer 你的token通过 pb/auth.proto 中的Auth.Login接口用户名密码获取 TokenToken 有效期 24 小时服务端会在临近过期时通过响应头new-token自动下发新 Token鉴权拦截器实现见 server_grpc.go登录接口本身无需鉴权 未开启登录时任何调用都以 anonymous 身份直接放行开发环境可以省去这一步。三、核心 API 速查表全局服务 28 个方法核心接口全部定义在 pb/global.proto 的global.api服务中按功能可分为 6 大类分类常用方法作用 系统监控SysInfo、Summary查版本、CPU、内存、流数量 流管理StreamList、StreamInfo、StopPublish、PauseStream查在线流、停推、暂停 订阅控制GetSubscribers、StopSubscribe、ChangeSubscribe查看/踢掉观看者 拉流代理StartPull、GetPullProxyList、AddPullProxy远程拉流、设备管理⏺️ 录像管理GetRecordList、DeleteRecord、GetRecordCatalog查询/删除录像文件⚙️ 运维控制Shutdown、Restart、StopTask、TaskTree重启服务、管理任务每个方法都同时暴露了对应的 HTTP 路径例如StreamList对应GET /api/stream/list你可以用浏览器或 curl 直接验证。跨语言调用示例Pythonimport grpc from pb import global_pb2, global_pb2_grpc channel grpc.insecure_channel(127.0.0.1:8080) stub global_pb2_grpc.ApiStub(channel) res stub.StreamList(global_pb2.StreamListRequest(pageNum1, pageSize10)) print(res.data) # 当前在线流列表生成代码的方式很简单拿到 proto 文件后运行protoc即可仓库内置的生成脚本 scripts/protoc.sh 展示了完整的参数配置--go-grpc_out--grpc-gateway_out一次生成 gRPC 与 HTTP 两套代码。四、插件 API每个插件都有独立的服务Monibuca 采用插件化架构每个插件自带一套 gRPC 服务接口定义在各自的pb/目录中FLV 插件plugin/flv/pb/flv.proto ——StartRecord开始录像、List查询录像文件RTMP 插件plugin/rtmp/pb/rtmp.proto ——PushOut将流转发到其他 RTMP 地址GB28181 插件plugin/gb28181/pb/gb28181.proto —— 60 个方法覆盖设备管理、PTZ 云台控制、广播、录像下载⏰定时任务plugin/crontab/pb/crontab.proto —— 增删改查录像计划调试插件plugin/debug/pb/debug.proto —— 获取 CPU/堆内存分析图插件 gRPC 服务的注册机制很简洁插件在InstallPlugin时传入自己 proto 生成的ServiceDesc即可挂载到同一端口无需单独配置端口号。详细说明见 doc_CN/arch/grpc.md。五、响应规范与错误处理所有响应结构体遵循统一的三段式设计code // 状态码0 表示成功 message // 提示信息 data // 业务数据跨语言调用时只需判断code是否为 0再用data即可各语言处理逻辑完全一致。错误场景下服务端直接返回 gRPC 标准错误码如UNAUTHENTICATED、NOT_FOUND无需解析自定义格式框架统一处理机制见 doc/arch/grpc.md。六、最佳实践清单一次生成多语言复用将 proto 文件纳入版本管理各语言团队用同一份文件生成客户端合理设置超时查询类接口建议 3~5 秒超时控制类如StartPull建议 10 秒生产环境启用 TLS配置listenaddrtls并挂载证书避免 Token 明文传输善用分页参数StreamList、GetSubscribers等均支持pageNum/pageSize避免大列表拉取先查后控执行StopTask、DeleteRecord等破坏性操作前先用TaskTree、GetRecordList确认目标从查询在线流到一键录像从 Python 脚本到 Java 平台Monibuca 的 gRPC API 为跨语言集成流媒体能力提供了最直接的通道——打开 pb/global.proto你的多语言流媒体集成之旅就从此开始。【免费下载链接】monibucaMonibuca简称 m7s是一款纯 Go 开发的开源流媒体服务器开发框架。项目地址: https://gitcode.com/langhuihui/monibuca创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

OpenHarmony上Flutter实战:MaterialApp、Scaffold与状态组件核心解析

OpenHarmony上Flutter实战:MaterialApp、Scaffold与状态组件核心解析

刚把 Flutter 工程适配到 OpenHarmony 设备上跑通的时候,我相信很多人跟我的感受一样:环境折腾半天,真正写业务代码时,最常用的还是 MaterialApp、Scaffold 这对“老少组合”,以及绕不开的有状态、无状态组件问题。不少…

2026/10/5 13:50:17 阅读更多 →
OpenShell完全指南:让Windows 10/11找回Win7开始菜单手感

OpenShell完全指南:让Windows 10/11找回Win7开始菜单手感

1. 为什么Windows用户离不开OpenShell 1.1 每个版本的系统都在逼你改变操作习惯 先说点扎心的事实:从Windows 8开始,微软就把开始菜单这颗“老朋友”折腾得不像样子。到了Windows 10,好歹给了个能用的磁贴界面,但很多人真正怀念的…

2026/10/5 13:50:17 阅读更多 →
插件机制全解析:从IAR到播放器,破解插件加载失败之谜

插件机制全解析:从IAR到播放器,破解插件加载失败之谜

“plugins”这个词,你在任何软件生态里逛一圈基本都能撞见。前阵子有人问我,IAR 里的插件到底是干嘛的;紧接着又有人拿着一句 failed to load plugins web boot: 2 entries did not activate linxin666/dsh-p 来求助;没过两天&…

2026/10/5 13:50:17 阅读更多 →

最新新闻

轻型AI中台落地实践:消除重复录入与财务对账难题

轻型AI中台落地实践:消除重复录入与财务对账难题

前阵子帮一家成长型公司落地了一套“轻型AI中台”,目标是解决两个让他们头疼很久的问题:业务数据重复录入、财务月度对账困难。项目周期不到两个月,用的全是开源和轻量工具,没有搞那种大而全的企业级中台。这篇文章就把整个项目的…

2026/10/5 14:34:12 阅读更多 →
WorkBuddy接入Ollama本地模型:从无输出到70 tok/s的调优实战

WorkBuddy接入Ollama本地模型:从无输出到70 tok/s的调优实战

大概半年前,我决定把 WorkBuddy 从云端 API 迁到本地大模型上。原因很简单:不想每写一段代码都提心吊胆盯着额度,也想试试完全离线跑 AI 编程助手是什么体验。结果第一天差点把我劝退——模型明明加载成功了,WorkBuddy 聊天窗口转…

2026/10/5 14:34:12 阅读更多 →
ChatGLM LoRA微调实战:从环境搭建到避坑验证

ChatGLM LoRA微调实战:从环境搭建到避坑验证

简介:本资源是一套面向AI工程师与NLP方向学习者的ChatGLM大模型微调实战工程包,聚焦LoRA、PEFT、量化训练等主流轻量微调技术在文本生成、语音识别、图像分类等多任务场景的落地实践。压缩包共148个文件,涵盖58个Python训练/推理脚本、36个Ju…

2026/10/5 14:34:12 阅读更多 →
AI辅助论文写作全流程实战:从需求说明书到初稿打磨

AI辅助论文写作全流程实战:从需求说明书到初稿打磨

用AI辅助写论文这件事,我算是个老用户了——各大模型刚面向公众那阵,我就开始把它塞进自己改论文的工作流里。半年多下来,我前前后后帮人改了二十来篇稿子,硕士毕业论文、期刊投稿、本科课程论文都碰过,于是踩出了一些…

2026/10/5 14:34:12 阅读更多 →
生产级AI Agent工程化:七要素与七个决策点

生产级AI Agent工程化:七要素与七个决策点

AI Agent这词在技术圈火了大半年,真正上手做过生产级 Agent 的人其实没有想象中那么多。我接触过不少团队、也评测过不少开源项目,大家的状态基本一样:demo 跑得飞快,一聊到工程实现就开始卡壳。所谓工程实现,不是把 L…

2026/10/5 14:34:12 阅读更多 →
WorkBuddy实战指南:MCP协议驱动的AI Agent办公自动化

WorkBuddy实战指南:MCP协议驱动的AI Agent办公自动化

1. 这不是又一个“AI工具测评”,而是一份真实办公场景下的生存手记WorkBuddy 这个词最近三个月在我电脑右下角任务栏的常驻时间,已经超过微信和钉钉。它不弹窗、不推销、不强制订阅——但每天早上9:15,它会准时把昨天会议里没记完的待办项、客…

2026/10/5 14:33:09 阅读更多 →

日新闻

马斯克杀回智能体战场,Grok 4.5万亿参数撑腰,Cursor接手数字白领项目:用TaoToken统一Key跑通多模型Agent工作流

马斯克杀回智能体战场,Grok 4.5万亿参数撑腰,Cursor接手数字白领项目:用TaoToken统一Key跑通多模型Agent工作流

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

2026/10/5 0:00:22 阅读更多 →
AI编程工具插件机制详解:plugin.json配置与加载失败排查指南

AI编程工具插件机制详解:plugin.json配置与加载失败排查指南

1. 从“plugins”这个词说起:它到底在解决什么问题如果你最近在折腾 AI 编程工具,尤其是 Cursor、Codex CLI、Claude Code 这类带 CLI 的编辑器或命令行助手,那你大概率绕不开一个词——plugins。这个词本身不新鲜,从浏览器到 IDE…

2026/10/5 0:00:23 阅读更多 →
第26课:OpenClaw|日志审计与问题诊断:把日志链路改到 TaoToken 的排查清单

第26课:OpenClaw|日志审计与问题诊断:把日志链路改到 TaoToken 的排查清单

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

2026/10/5 0:00:23 阅读更多 →

周新闻

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/5 5:06:42 阅读更多 →
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/5 1:10:22 阅读更多 →
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/5 3:06:17 阅读更多 →

月新闻

我发现了一个新思路:用 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/4 11:40:45 阅读更多 →
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/4 9:43:54 阅读更多 →
黑夜航拍船只数据集训练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/4 20:14:29 阅读更多 →