
go2rtc 流媒体教程如何把一台摄像头接入 10 种协议【免费下载链接】go2rtcUltimate camera streaming application项目地址: https://gitcode.com/GitHub_Trending/go/go2rtc搭建视频墙或家庭安防时常见的问题是摄像头只会说 RTSP而网页播放器需要 WebRTCNVR 又只收 MPEG-TS。go2rtc 是一个轻量级流媒体应用负责在这一层做转换——把一路摄像头流同时以 RTSP、RTMP、WebRTC、MSE、HLS 等 10 种协议重新输出。它是单个二进制文件零依赖覆盖 Windows、macOS、Linux 和 ARM 平台主打低延迟和双向音频。它解决什么问题一句话定位go2rtc 是摄像头流的协议中转站——源端能输出什么RTSP、ONVIF、MJPEG、RTMP甚至本地文件它接进来播放器想要什么RTSP、WebRTC、HLS、MP4/MSE、RTMP、HomeKit它输出什么。适合的三类使用者 用 Frigate、Home Assistant 自建家庭 NVR 的人需要把摄像头统一喂给识别系统️ 想让浏览器直接看摄像头、不想装 VLC 等客户端的人 想把一路流同时推给多个播放端、或多个播放端拉同一路流的人三种部署方式任选二进制文件从 release 下载对应平台的文件Linux/macOS 上补一个执行权限即可chmod x go2rtc_linux_amd64 ./go2rtc_linux_amd64单文件运行不依赖任何运行时适合直接装在 NAS 或树莓派上。Dockerdocker run -p 1984:1984 -p 8554:8554 -p 8555:8555/udp alexxit/go2rtc官方镜像内置了 FFmpeg容器架构覆盖 386、amd64、arm 全系。Home Assistant 插件在「设置 → 附加组件商店」中搜索 go2rtc 安装并启动之后无需关心进程管理Home Assistant 的相机卡片可直接消费它的 WebRTC 输出。最小配置跑起来在运行目录下建一个go2rtc.yaml内容可以只有一行streams: camera1: rtsp://admin:password192.168.1.123/stream启动后三个默认端口分工明确端口用途1984Web 界面和 HTTP API8554RTSP 服务器供 VLC、FFmpeg 等传统客户端拉流8555WebRTC 连接TCP UDP供浏览器低延迟播放打开http://localhost:1984/就能看到内置的 WebUI配置、日志、连接状态都可以在页面上改按用途看功能多源接入同一份配置里可以混写任意来源rtsp://接网络摄像头、http://接 FLV/MJPEG/MPEG-TS、onvif://让 go2rtc 按 ONVIF 协议自动向摄像头要出 RTSP 地址、ffmpeg:前缀接本地文件如ffmpeg:/media/BigBuckBunny.mp4和 USB 设备。用得上摄像头固件的 RTSP 实现有缺陷或你只有 ONVIF 账号、懒得翻手册找流地址时。双向音频对讲支持 RTSP、ONVIF Profile T、TP-Link Tapo、Hikvision ISAPI 等协议的双向音频通道浏览器里能直接对着摄像头喊话。用得上门口门铃、家庭看娃场景需要说话而不只是看画面时。FFmpeg 转码与硬件加速只有当源编码和播放器编码对不上时go2rtc 才会调用 FFmpeg 做按需转码并支持 GPU 硬件加速降低 CPU 占用。用得上H.265 摄像头喂给只认 H.264 的播放器、AAC 音频要转成 OPUS 才能进 WebRTC 时。访问保护默认三个端口对局域网开放任何人都能看画面。把api和rtsp的listen改成127.0.0.1端口只监听本机再套一层带认证的 Nginx/Caddy 反向代理Web 界面就有了密码保护WebRTC 加密媒体端口例外需照常开放。用得上机器暴露在公网、或局域网里有不受信任的设备时。典型实战场景安防监控把家里多台摄像头的streams全部登记进配置每路都自动变成 RTSPrtsp://host:8554/camera1、WebRTC、HLS 三种输出。录像端用 Frigate 走 WebRTC 低延迟拉流做识别回看端走 HLS互不干扰。效果是一台小机器顶掉原来的 NVR 协议适配工作。智能家居集成Home Assistant 用户装上 go2rtc 附加组件后把streams指向摄像头再在相机的 source 选项里选go2rtc。HA 的摄像头实体通过 WebRTC 播放延迟明显低于传统 MJPEG 截图方案同时双向音频对讲也在同一链路里打通。直播推流利用 RTMP 输出把任意来源摄像头、本地视频文件推送到 YouTube、Telegram 等支持 RTMP ingest 的平台。适合做活动直播或把监控画面分享到群聊不需要额外的推流软件。常见坑1. 现象摄像头连不上流一直转圈 → 原因 → 解决RTSP 地址或账号密码写错最常见部分品牌如低端 Reolink、Sonoff 型号的 RTSP 实现本身质量差。先在日志页WebUI 的 log 标签看具体报错确认是鉴权失败还是超时鉴权没问题但仍失败时换onvif://源或加一条ffmpeg:同源做备选。2. 现象画面有、声音没有 → 原因 → 解决摄像头音频编码多为 AAC和播放端支持集合不匹配WebRTC 浏览器只认 OPUS。给这条流配置多源一条普通rtsp://供画面一条ffmpeg:rtsp://...#audioopus供转码后的音频go2rtc 会自动协商选取。3. 现象内网能看、外网 WebRTC 黑屏 → 原因 → 解决路由器没有放行 8555 端口需要同时开放 TCP 和 UDPICE 打洞失败。在路由器上做端口映射或外网场景退而求其次改用 RTSP/HLS 拉流。写在最后如果你的需求是多路摄像头 多协议输出 尽量低延迟并且愿意接受一个纯命令行/配置文件风格的应用go2rtc 基本是这类场景里部署成本最低的选择它由 Go 编写也适合作为库嵌入你自己的平台。仓库地址git clone https://gitcode.com/GitHub_Trending/go/go2rtc完整字段参考 website/api/openapi.yaml配置行为细节见 internal/app/README.md。【免费下载链接】go2rtcUltimate camera streaming application项目地址: https://gitcode.com/GitHub_Trending/go/go2rtc创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考