ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Monibuca RTMP实战:5行配置实现推流拉流,新手必看的完整教程

Monibuca RTMP实战:5行配置实现推流拉流,新手必看的完整教程 Monibuca RTMP实战5行配置实现推流拉流新手必看的完整教程【免费下载链接】monibucaMonibuca简称 m7s是一款纯 Go 开发的开源流媒体服务器开发框架。项目地址: https://gitcode.com/langhuihui/monibucaMonibuca简称 m7s是一款纯 Go 开发的开源流媒体服务器开发框架支持 RTMP、RTSP、HTTP-FLV、HLS、WebRTC 等主流协议。本文是一份面向新手的 RTMP 推流拉流实战教程只需 5 行配置就能让 Monibuca 成为你的 RTMP 流媒体服务器完成推流、拉流、转推全流程。Monibuca RTMP 架构一览Monibuca 把每个协议RTMP、RTSP、WebRTC 等都做成独立插件流在内部统一为音视频帧推一路流即可用所有协议拉取这正是协议透明的核心设计想了解更完整的设计思路可以参考 架构文档。RTMP 插件本体位于 plugin/rtmp/连接握手、发布播放等协议处理都在 plugin/rtmp/index.go 中完成。快速启动 Monibuca 流媒体服务器先获取源码并运行官方示例仓库地址https://gitcode.com/langhuihui/monibucagit clone https://gitcode.com/langhuihui/monibuca cd monibuca/example/default go run -tags sqlite main.go启动后8081 端口是 HTTP/管理端口50052 是 gRPC 端口RTMP 监听端口由下面这 5 行配置决定global: http: :8081 tcp: :50052 rtmp: tcp: :1936 端口:1936可以随意改改成:1935则符合 RTMP 标准端口约定。完整配置样例见 example/8081/default.yaml。第一步RTMP 推流OBS / ffmpeg 两种方式方式一OBS 推流项目填写内容服务类型自定义服务器rtmp://127.0.0.1:1936串流密钥live/test点击开始推流Monibuca 即收到第一路 RTMP 流。方式二ffmpeg 命令行推流ffmpeg -re -i input.mp4 -c copy -f flv rtmp://127.0.0.1:1936/live/test推流地址规则很简单rtmp://主机:端口/应用名/流名。应用名默认是live流名可自定义例如live/test。第二步多协议拉流播放推流成功后同一路流可以用不同协议拉取任选其一协议播放地址RTMP 拉流rtmp://127.0.0.1:1936/live/testHTTP-FLVWeb 端首选http://127.0.0.1:8081/flv/live/test用 ffplay 快速验证ffplay rtmp://127.0.0.1:1936/live/test ffplay http://127.0.0.1:8081/flv/live/test推流、拉流、HTTP-FLV 分发全部自动完成——这就是 RTMP 流媒体服务器最核心的体验。进阶配置自动拉流与推流转推Monibuca 还支持服务器主动拉流和推流后自动转推只需在rtmp下追加少量配置。自动拉流pull服务启动后自动从远程地址拉流并上架播放样例见 example/8081/pull_rtmp.yamlrtmp: enable: true tcp: :1936 pull: live/test: rtmp://localhost/live/test推流转推onpub.push只要live/test被推上来就自动转发到另一个 RTMP 地址相当于配置版级联样例见 example/8081/pull_rtmp_push.yamlrtmp: onpub: push: live/test: rtmp://localhost/live/test2通过 API 动态下发 RTMP 推流任务除了配置Monibuca 也提供了 HTTP API 动态创建推流任务见 plugin/rtmp/api.gocurl -X POST http://127.0.0.1:8081/rtmp/api/push/live/test \ -d remoteURLrtmp://127.0.0.1/live/test接口定义见 plugin/rtmp/pb/rtmp.proto适合在二次开发中做动态任务调度。常见问题排查推流失败/连接被拒绝检查rtmp.tcp端口是否被占用、防火墙是否放行OBS 里服务器地址是否带端口。端口冲突示例工程故意使用:1936避开标准端口:1935见 example/8081/push_rtmp.yaml多实例联调时同理换端口即可。拉流无画面先用ffplay rtmp://...验证 RTMP 链路再排查 Web 播放器的跨域与 HTTP-FLV 端口默认 8081。调试日志配置中加loglevel: debug可在控制台看到每次 connect / publish / play 事件。总结Monibuca 让 RTMP 推流拉流变得极简5 行 YAML 配置启动 RTMP 服务OBS 或 ffmpeg 一条命令完成推流多协议RTMP / HTTP-FLV / HLS 等零成本拉流用pull、onpub配置轻松实现自动拉流与转推。作为纯 Go 框架Monibuca 的 RTMP 插件可裁剪、可二次开发非常适合嵌入到自己的音视频项目中。动手试试吧【免费下载链接】monibucaMonibuca简称 m7s是一款纯 Go 开发的开源流媒体服务器开发框架。项目地址: https://gitcode.com/langhuihui/monibuca创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表