go2rtc 零依赖上手:一个二进制搞定摄像头多协议转发

发布时间:2026/9/12 14:39:11
go2rtc 零依赖上手:一个二进制搞定摄像头多协议转发 go2rtc 零依赖上手一个二进制搞定摄像头多协议转发【免费下载链接】go2rtcUltimate camera streaming application项目地址: https://gitcode.com/GitHub_Trending/go/go2rtc家里混用着海康、Tapo、小米几路摄像头APP 各看各的想在浏览器里统一监看、还想丢给 VLC 或苹果家庭用协议这一关就卡住了。传统方案通常要自己拼一台媒体服务器配置繁琐还容易延迟高。go2rtc 是反过来的思路一个 Go 语言写的单文件流媒体服务器负责把各路摄像头的视频流拉进来再转成 RTSP、WebRTC、HLS、HomeKit 等常用协议输出。一句话认识 go2rtc摄像头流的万能插座你可以把 go2rtc 理解成一个中间层输入侧吃 RTSP、RTMP、ONVIF、MJPEG、HomeKit、WebRTC 甚至 USB 摄像头输出侧同一路流可以同时以 WebRTC、RTSP、HLS、MP4、HomeKit 等协议被访问按需自动匹配编码匹配不上才调用 FFmpeg 转码所以大多数场景延迟能压到很低。不装任何东西怎么把 go2rtc 跑起来最快路径是二进制直跑到项目发布页下载对应平台的文件Windows 是 zip 包Linux 和 macOS 是单文件赋权后直接运行chmod x go2rtc_linux_amd64 # 仅 Linux/macOS 需要 ./go2rtc_linux_amd64然后浏览器打开http://localhost:1984看到带 add、config、log、net 四个入口的界面就算成功。更习惯容器环境的话一条命令也行--network host别省原因后面排坑里讲docker run -d --name go2rtc --network host \ -v ~/go2rtc:/config alexxit/go2rtc跑通后记住三个默认端口1984WebUI 和 HTTP API、8554RTSP 输出、8555WebRTC。接入第一路 RTSP 摄像头看它变成什么打开 WebUI 的 config 页这是一个带语法检查的编辑器右侧可以直接 Save Restart。在streams:段落加一行格式就是「流名: 地址」streams: mycam: rtsp://admin:pass192.168.1.108/av0点 Save Restartgo2rtc 会重读配置首页的流列表里mycam出现并显示在线说明拉流成功。不用编辑器也可以直接在go2rtc.yaml里写同样的内容启动时用./go2rtc --config go2rtc.yaml指定该文件。一路流四种打开方式多协议输出怎么用接入成功后同一路流会被同时以多种协议对外服务你按需取用你想在哪看访问地址说明浏览器低延迟http://IP:1984/webrtc.html?srcmycam无需插件延迟最低VLC / NVR 设备rtsp://IP:8554/mycam传统播放器与录像系统手机远程查看http://IP:1984/hls/mycam.m3u8兼容性最好延迟稍高苹果家庭按提示配对为 HomeKit 配件HomeKit 生态内使用URL 里写的协议决定 go2rtc 用哪种方式应答客户端支持的编码就直转实在不匹配才调 FFmpeg。这也是它按需转码的体现多数流其实根本不走转码。第一次不顺利多半是这几个原因画面卡住或协商失败8555 和 8554 都是 TCPUDPUDP 不放开 WebRTC/RTSP 就会卡在连接阶段。Docker 里 WebRTC 连不上改回--network host容器内网络转发 UDP 包很容易丢。双向音频没反应不是每路源都支持看 双向音频说明 里各协议的标记需要时可用ffmpeg:或echo:源做回音输入。配置改完没生效WebUI 记得点 Save Restart或者重启容器。想继续折腾的话这三个方向最常用开硬件加速降 CPUFFmpeg 硬件加速用 ffmpeg 虚拟源接入 USB 摄像头ffmpeg 模块把 go2rtc 当 WebRTC 源集成进自家应用WebRTC 模块【免费下载链接】go2rtcUltimate camera streaming application项目地址: https://gitcode.com/GitHub_Trending/go/go2rtc创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考