资讯详情

Monibuca gRPC API完全参考:跨语言调用流媒体服务的终极指南

发布时间:2026/10/6 20:01:40

500+
企业客户服务经验
120+
行业领域内容覆盖
3000+
原创页面设计沉淀
98%
客户满意度

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),仅供参考
热门专题

继续阅读更多专题内容

围绕企业服务、数字化转型与官网运营的常青话题,持续输出深度内容

企业官网建设指南 企业托管服务模式 财税政策与解读 企业数字化转型 官网SEO与获客 网站安全与运维
配套服务

读完这篇文章,了解更多服务

从整站搭建到SEO布局,17项核心服务助您打造高转化的企业官网

01

企业托管整站搭建

从信息架构到栏目预留,搭建可生长的企业站点骨架,每个页面独立原创设计。...

了解详情
02

规整可信网页设计

雪地靴温暖风原创设计,金属铜线条贯穿全页,拒绝通用模板与AI流水线。...

了解详情
03

企业服务SEO布局

关键词体系与语义化结构,从建站源头为搜索排名而生。...

了解详情
04

业务预约咨询表单

多场景表单与线索收集体系,把访问流量转化为可追踪的销售线索。...

了解详情
05

企业服务站点运维

安全巡检、数据备份与内容更新支持,全年守护网站稳定运行。...

了解详情
06

全终端商务适配

电脑、平板、手机一致呈现,移动端体验与转化同样出色。...

了解详情
需要专业建议?

让专业顾问为您解读行业趋势

关于企业官网建设、SEO获客与数字化转型的任何疑问,欢迎一对一咨询我们的专业顾问。