5 分钟跑通 go2rtc:多协议摄像头统一接入,RTSP 直通 WebRTC

📅 发布时间:2026/9/12 5:12:52
5 分钟跑通 go2rtc:多协议摄像头统一接入,RTSP 直通 WebRTC
5 分钟跑通 go2rtc多协议摄像头统一接入RTSP 直通 WebRTC【免费下载链接】go2rtcUltimate camera streaming application项目地址: https://gitcode.com/GitHub_Trending/go/go2rtc家里两三台摄像头多半各说各话大华海康走 RTSPTapo、Wyze 只有自家私有协议Home Assistant 还对编码挑三拣四。go2rtc 是一个 Go 写的多协议流媒体网关把摄像头接入、协议转换、多路输出这三件事一口气包了。跑起来之后每台摄像头只占一个流名浏览器、手机、家庭自动化从同一个源头取流。别再拿 FFmpeg 手动转流了传统做法是给每台摄像头写一套 ffmpeg 命令RTSP 转 mp4、转 mjpeg、转 WebRTC……命令散落一地加一台摄像头就得重新编排一遍管道。而 RTSP 在浏览器里直接放协议和编码支持各家不一延迟也动辄秒级。go2rtc 的思路是垫一个中间层每个流名对应一台摄像头服务同时给出 RTSP8554 端口、WebRTC8555、HTTP API1984三个公开入口。浏览器用 WebRTC 预览延迟压到毫秒级播放器只认 RTSP 或 HLS换个 URL 前缀就行不需要二次加工。关键是它只在必要时转码——源流和目标格式一致就直接转发不一致才调 FFmpeg 做定向转换还能挂上硬件加速。跑起来的最短路径想零依赖的二进制丢上去就跑 go2rtc 是单文件可执行程序没有运行时依赖。旁边放一个go2rtc.yaml写上摄像头直接启动streams: cam1: - rtsp://admin:1234192.168.1.100:554/Streaming/Channels/101就这一小段也够——1984、8554、8555 三个端口默认都在监听配置细节可查 internal/app/README.md。会 Docker 的一条命令拉起docker run -d --name go2rtc --restart unless-stopped \ -p 1984:1984 -p 8554:8554 -p 8555:8555 -p 8555:8555/udp \ -v /opt/go2rtc/config:/config alexxit/go2rtc启动后打开http://localhost:1984/就是 WebUI配置页支持可视化编辑 YAMLnet 页展示实时连接拓扑和带宽日常巡检很省事镜像构建方式见 docker/。摄像头怎么接从品牌协议到 Home Assistant配置里streams下写的可不只是 RTSP 地址。go2rtc 支持 15 种以上协议ONVIF、HomeKit、Tapo、Kasa、Ring、Nest、Wyze、小米、GoPro 等各有自家前缀比如tapo://admin:1234192.168.1.102、onvif://192.168.1.103登录和取流细节由它自己处理没被直接收录的源用ffmpeg:前缀交给 FFmpeg 兜底流的管理逻辑集中在 internal/streams/。接 Home Assistant 最省事的方式是把它当一台 RTSP 摄像头HA 的 camera 集成填rtsp://你的服务器:8554/cam1即可internal/hass/ 里还内置了 HA 侧的对接逻辑。双向音频也留了口子在流的配置里加一条backchannel就能打开对讲门铃、可视对讲这类场景直接可用用法示例在 internal/exec/README.md。延迟与硬件加速怎么调低延迟预览首选 WebRTC 输出8555 端口走 UDP没有 HLS 分片、RTSP 重建连的开销所以浏览器预览接近实时。转码侧给流挂上硬件加速是省 CPU 的大头。比如把 H.265 源转成 H.264 并交给 GPUstreams: cam2: - rtsp://admin:1234192.168.1.101:554/stream#videoh264#hardwarevaapivaapi、cuda、rkmpp 等后端都有现成的参数模板internal/ffmpeg/ 里能翻到。调完到 net 页看效果拓扑图能看出哪路流在转码、带宽多少瓶颈一眼定位。三个容易踩的坑预览卡住、报编码错误十有八九是 H.265浏览器支持普遍差。给流加#videoh264强制转码量大的再叠上硬件加速。WebRTC 连不上、RTSP 却正常八成是 8555 的 UDP 被防火墙或 NAT 挡了必要时在webrtc.candidates里配置 STUN 服务器地址辅助打洞。加完摄像头 CPU 飙高先确认是不是在白白转码源与目标编码一致时走纯转发最省确实要转的挂硬件加速而不是硬扛。go2rtc 模块化设计app.modules字段可以只加载用得到的模块几路流在树莓派上就转得动几十路也撑得住。如果你还在给每台摄像头手搓 FFmpeg 管道值得整体迁过来。【免费下载链接】go2rtcUltimate camera streaming application项目地址: https://gitcode.com/GitHub_Trending/go/go2rtc创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考