go2rtc:3 分钟跑起来你的第一路摄像头流,零依赖零延迟
2026/9/12 3:35:45 网站建设 项目流程

go2rtc:3 分钟跑起来你的第一路摄像头流,零依赖零延迟

【免费下载链接】go2rtcUltimate camera streaming application项目地址: https://gitcode.com/GitHub_Trending/go/go2rtc

go2rtc 是一个零依赖的摄像头流媒体应用:把家里各种协议的摄像头(RTSP、MJPEG、ONVIF、HomeKit、小米、Wyze 等)接进来,再统一转成 WebRTC、RTSP、HLS、MJPEG 这类你能直接播放的格式,全程低延迟。这篇带你从安装、部署到配出第一路流,把新手最容易卡住的坑也标了出来。

30 秒先跑起来

别急,先让它转起来再说,细节等下回头看。有 Docker 的话一条命令就够,配置会自动落到~/go2rtc

docker run -d --name go2rtc --network host --privileged --restart unless-stopped -v ~/go2rtc:/config alexxit/go2rtc

容器跑起来后,浏览器打开http://localhost:1984/,看到 Web 界面就说明服务已经在转了。

它到底能干什么

一句话概括:它是个协议转换器加流媒体服务器。

  • 拉流:吃 RTSP/RTSPS、MJPEG、ONVIF、RTMP,还能直接接 HomeKit、小米、Wyze、Ring、TP-Link Tapo 这些私有协议的摄像头,省得你自己折腾。
  • 推流:同一路流可以同时输出 WebRTC、RTSP、HLS、MJPEG、MP4(MSE)、HomeKit,客户端要什么格式给什么格式,还能往 YouTube、Telegram 推。
  • 双向音频:支持带麦克风的摄像头对讲,浏览器里用 WebRTC 就能喊话。
  • 自动转码:只在必要时才调 FFmpeg,平时零转码、零延迟,需要时也能一键上硬件加速。

部署方式怎么选

选型很简单:有 Docker 就 Docker,没有就跑二进制,真要改代码才碰源码,新手别折腾编译。

Docker 一键部署

多架构镜像(amd64/arm64/arm 等)都支持,镜像里已经装好 FFmpeg,开箱即用:

docker run -d --name go2rtc --network host --privileged --restart unless-stopped -v ~/go2rtc:/config alexxit/go2rtc

直接跑二进制

拉对应系统的压缩包,解压后把二进制丢进 PATH 就行。Linux/macOS 记得补个执行权限:

chmod +x go2rtc_linux_amd64 && ./go2rtc_linux_amd64

Windows 就是解压 zip 后直接跑go2rtc.exe

从源码起(进阶)

git clone https://gitcode.com/GitHub_Trending/go/go2rtc cd go2rtc && go run .

第一个配置文件长什么样

文件不用手写半天,三行就能跑。默认它在当前目录找go2rtc.yaml

streams: # 流名字: 摄像头地址 hall-camera: rtsp://admin:password@192.168.1.123/cam/realmonitor?channel=1&subtype=0
  • streams:一个字典,左边起个流名,右边填地址,支持 RTSP、MJPEG、ONVIF 等。
  • 地址里直接带用户:密码@IP,就不用另外配认证了。

端口这块默认就够用:Web/API 走1984,RTSP 服务器8554,WebRTC8555,要自定义再改api/rtsp/webrtclisten,更多字段看 配置文档。

进阶:让它更快 / 更省电 / 更香

想榨干性能就看这两处。

硬件加速:纯#video=copy用不到,要做#video=h264这类视频转码才需要。在流地址末尾加#hardware,go2rtc 会自动挑编码器(vaapi/cuda/videotoolbox 等):

streams: cam-hw: ffmpeg:rtsp://admin:pass@192.168.1.123/stream1#video=h264#hardware

Docker 想跑 NVIDIA/AMD 加速,换带hardware标签的镜像(如:latest-hardware)并加--gpus all --privileged。转完之后在 Web 界面的 net 页还能看每条连接实际吃了多少码率。

装不上 / 连不上的时候查这里

卡住别慌,按这个顺序查。

  • 先确认网络通不通、摄像头能不能直连:ping 192.168.1.123
  • 再确认端口没被占着:netstat -tlnp | grep -E "1984|8554|8555"
  • 地址和凭据对一遍,RTSP 账号密码写错是最常见的原因
  • 浏览器打不开就翻日志:容器看docker logs go2rtc,二进制直接看终端输出
  • 跨网段或外网访问时,记得在路由器开8555的 TCP/UDP

跑起来之后,去 Web 界面把第二路流加上,或者接进 Home Assistant / Frigate 试试低延迟回放。

【免费下载链接】go2rtcUltimate camera streaming application项目地址: https://gitcode.com/GitHub_Trending/go/go2rtc

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询