资讯动态

go2rtc 上手指南:把相机流一键转成 WebRTC 和 RTSP 的流媒体中间件

发布时间:2026/9/12 14:11:31 来源:尧图企业网站定制
go2rtc 上手指南把相机流一键转成 WebRTC 和 RTSP 的流媒体中间件【免费下载链接】go2rtcUltimate camera streaming application项目地址: https://gitcode.com/GitHub_Trending/go/go2rtcgo2rtc 是一个相机流媒体应用它从 RTSP、ONVIF、HLS 等几十种来源拉流转成 WebRTC、RTSP、HLS 等格式输出中间不需要你手动搬砖。它到底解决什么麻烦浏览器不直接播 RTSP摄像头 A 的编码播放器 B 又不一定支持中间还得考虑延迟、转码、鉴权——这些胶水工作你通常要写一堆脚本。go2rtc 把这些活收进一个二进制它同时充当流的中转站和协议转换器输入和输出各自独立客户端打开哪个格式它就按那个格式供流。跑通它从零到能访问第 1 步装。三条路任选其一下载对应平台的二进制Linux/macOS 下先chmod x再运行Dockerdocker pull alexxit/go2rtc容器内置 FFmpegHome Assistant 用户直接安装 go2rtc 插件。第 2 步配。在项目运行目录放一个go2rtc.yaml最小配置只需要一段streams: camera1: rtsp://admin:password192.168.1.123/cam/realmonitor?channel1subtype0不写任何端口配置也行默认值就是 3 个API 在 1984RTSP 服务在 8554WebRTC 在 8555。配置也可以在 Web 界面的 config 页面里直接改带语法检查改完点 Save Restart 即可不用碰文件。第 3 步跑并验证。启动后访问http://localhost:1984/。成功的标志有两个在 add 页面能看到你配置的camera1点开有画面切到 net 页面能看到一条IP → rtsp → webrtc → 浏览器的链路图上面标着实时码率和流量。到这一步一个能用的 go2rtc 流媒体服务就跑起来了。它能接哪些来源来源在配置里用前缀:的写法区分最常见的几类公共协议rtsp:、rtmp:、onvif:自动发现并拿 RTSP 地址、http:FLV、HLS、MJPEG、MPEG-TS 等格式都走这个、webrtc:厂商私有协议小米、Tuya、TP-Link Tapo/Kasa、Ring、Wyze、HomeKit、Nest 等配置里加一个设备凭据即可本地与文件Linux 下的 USB 摄像头v4l2、麦克风alsa、媒体文件HLS、FLV、WAV 等脚本与外部程序ffmpeg:调用 FFmpeg 拉任意来源或做转码exec:跑外部程序如 rpicamecho:处理动态地址。完整模块清单见 internal/README.md。它能输出成什么数据流向是一条直线来源 → go2rtc 内部流 → 按客户端格式输出。你在配置里只写一次来源之后客户端用什么协议取go2rtc 就供什么格式webrtc:—— 浏览器零延迟播放延迟最低还自带双向音频rtsp://host:8554/流名—— 供 VLC、Frigate、录像设备取流http://host:1984/api/stream.m3u8?src流名—— HLS给 iPhone 和旧播放器http://host:1984/api/stream.mp4?src流名—— MP4/MSE适合做录制和 HTTP 播放rtmp:、homekit:、mjpeg:等 —— 推流到第三方平台如 YouTube、Telegram或接入 Apple Home。关键机制是编解码自动协商同一个流可以同时挂着 RTSP 原始流和 FFmpeg 转码流两个来源go2rtc 会挑出客户端能播的那一路。比如摄像头只出 PCMA 音频浏览器播不了加一条ffmpeg:来源转成 OpusWebRTC 端就自动选 OpusRTSP 端仍用原来的两边互不干扰。典型用法速查Home Assistant 接入HA 的 go2rtc 集成会自动管理这个服务摄像头在 Home Assistant 里直接以 WebRTC 低延迟播放双向对讲可用。RTSP 中转降延迟把rtsp://host:8554/camera1交给 VLC缓存调到最低或 frplay比直连相机延迟更低。录像与 NVRFrigate 这类 NVR 走 RTSP 或 MP4 地址取流音频记得配转 AAC。公网 WebRTC8555 端口在路由器上同时放行 TCP 和 UDP外部浏览器就能低延迟看家。卡住了快速自查画面出不来先查哪里打开 net 页面看链路图有节点但没流量多半是源拉流失败看 log 页面的报错链路完整但画面卡检查客户端协议——Safari 不走 HTTP 渐进式旧 iOS 不支持 MSE这种情况换 HLS 地址。视频有声画不同步或浏览器没声音看浏览器那端拿到的音频编码是不是 PCMA/PCMU这两个编码质量只有 256 级很多播放器表现差。给这条流加一个ffmpeg:来源在地址后加#audioopus转成 Opus 再协商。双向音频不可用确认该来源本身支持双向音频RTSP、Tapo、小米、Ring、Wyze 等支持且麦克风访问只在 HTTPS 页面下浏览器才会放行。下一步把服务跑起来之后最值得做的事是改一条流的编码输出亲眼看 net 页面的链路图变化。两个入口完整模块与功能总表见 internal/README.md流管理推流、预加载、推送到相机见 internal/streams/README.md。想跟源码的话仓库克隆地址是git clone https://gitcode.com/GitHub_Trending/go/go2rtc。【免费下载链接】go2rtcUltimate camera streaming application项目地址: https://gitcode.com/GitHub_Trending/go/go2rtc创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价