尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

go2rtc 视频流转发快速指南:5 分钟把摄像头接进浏览器

go2rtc 视频流转发快速指南:5 分钟把摄像头接进浏览器 go2rtc 视频流转发快速指南5 分钟把摄像头接进浏览器【免费下载链接】go2rtcUltimate camera streaming application项目地址: https://gitcode.com/GitHub_Trending/go/go2rtcgo2rtc 是一个用 Go 语言编写的视频流转发与协议转换服务。它能从 RTSP、ONVIF、WebRTC、HomeKit 及各品牌私有协议中拉流再以 RTSP、WebRTC、HLS、MP4、RTMP 等格式重新输出让你不用装专用 App直接在浏览器里低延迟播放任意摄像头。适合家庭监控用户、智能家居玩家以及需要把摄像头接入 Home Assistant、Frigate 等系统的开发者。适合谁用三个最常见的情况中一条就可以继续往下看手头的摄像头只出 RTSP 流想在浏览器或手机上直接看家里混着小蜜、Wyze、TP-Link、海康、大华等不同品牌设备想统一成一个入口要给 Frigate、Home Assistant 或自己的平台喂视频流安装步骤推荐 Docker另有两条路径路径一推荐Docker镜像alexxit/go2rtc已内置 FFmpeg开箱即用。启动时暴露三个端口1984Web 管理页、8554RTSP 服务、8555WebRTC建议 TCP 和 UDP 都开。docker pull alexxit/go2rtc docker run -d --name go2rtc \ -p 1984:1984 -p 8554:8554 -p 8555:8555 -p 8555:8555/udp \ alexxit/go2rtc路径二二进制文件从 Release 页面下载对应操作系统Windows / macOS / Linux / FreeBSD的文件零依赖直接运行Linux 和 macOS 记得先加执行权限chmod x go2rtc_linux_amd64 ./go2rtc_linux_amd64路径三源码编译git clone https://gitcode.com/GitHub_Trending/go/go2rtc cd go2rtc go build -o go2rtc .三条路径的结果都一样浏览器打开http://localhost:1984/进入 Web 管理界面。快速配置方法一条流跑起来配置文件是工作目录下的go2rtc.yaml最小可用配置只有一行streams: 前门摄像头: rtsp://192.168.1.123:554/live也可以在 Web 界面的 Add 页面直接粘贴 RTSP 地址go2rtc 会自动探测并建立连接。默认端口分工如下端口协议用途1984TCPWeb 管理页与 HTTP API8554TCPRTSP 服务供第三方系统拉流8555TCP/UDPWebRTC 连接与媒体传输典型落地场景场景一RTSP 摄像头浏览器直播已有设备只有 RTSP 输出、没有网页直播的普通 IPC。 做什么把 RTSP 地址写进streams浏览器打开 WebUI 的播放页。 得到什么WebRTC 播放器低延迟画面无需安装任何客户端手机同样可访问。场景二门铃对讲已有设备支持双向音频的摄像头或门铃RTSP ONVIF Profile T、海康 ISAPI、小米、Wyze、Ring、TP-Link Tapo 等。 做什么通过 go2rtc 播放该流在浏览器麦克风授权后说话。 得到什么网页端实时对讲。注意浏览器只在 HTTPS 站点下开放麦克风外网访问需要配好 TLSAPI 支持tls_listen。场景三多品牌统一接入下游系统已有设备homekit://、onvif://、xiaomi://、wyze://等不同来源混用。 做什么每个来源各占一个streams条目go2rtc 统一对外提供 RTSP / HLS / MP4 / WebRTC。 得到什么Frigate 0.12 和 Home Assistant 2024.11 原生集成都能直接以rtsp://本机:8554/流名拉流做录像或 AI 检测不再各自对接私有协议。关键能力解析多协议进出同一路流按需用不同格式消费输入侧覆盖 rtsp、rtmp、mpjpeg、onvif、webrtc、homekit、hls以及 xiaomi、wyze、tapo、tuya、ring 等私有协议还能接exec/ffmpeg外部进程和本地 v4l2/alsa 设备输出侧提供 rtsp、webrtc、rtmp、hls、mp4、mjpeg、homekit、webtorrent。价值在于同一个摄像头可以同时给浏览器WebRTC、NVR 系统RTSP/MP4、老播放器HLS/MJPEG用互不冲突。编解码自动匹配解决有流但播不了WebRTC 和 MSE 场景下go2rtc 会探测浏览器能力从一路流的多个来源里自动挑出能播的编解码器组合。对 RTSP、HLS、MP4 这类无法协商的场景可以在拉流地址上加过滤器手动指定例如?videoh264audioaac。另外 PCMA/PCMU 这类电话级音频会被自动重打包成 FLAC使 MSE/MP4/HLS 链路在多数浏览器包括 Apple 设备里可播。什么时候最有用浏览器里只有画面没声音或 H265 源在部分浏览器黑屏时。按需转码默认零转码需要时才动 FFmpeg绝大多数场景 go2rtc 直接复制码流不产生转码开销。只有当源与目标格式不兼容比如需要旋转画面、换音频编码时才为这一路流挂一个 FFmpeg 来源streams: 摄像头: - rtsp://192.168.1.123/live - ffmpeg:rtsp://192.168.1.123/live#audioopus这样该流里就同时存在原始 RTSP和FFmpeg 转码两个来源客户端按能力自动选用。更多参数分辨率、码率、硬件加速见 internal/ffmpeg/README.md。常见问题与避坑浏览器无法播放或黑屏先看摄像头源编码H265 在不少浏览器受限README 里的编解码兼容对照表可以逐浏览器排查换播放模式试试内置页面 www/stream.html 支持modewebrtc,mse,hls,mp4,mjpeg参数切换技术栈外网访问 WebRTC 时确认路由器放通了 8555 端口的 TCP 和 UDP视频延迟偏高播放端优先用 WebRTC这是延迟最低的输出格式HLS 只适合回放类场景用 VLC/ffplay 等客户端看 RTSP 时把缓存调到最低ffplay 加-fflags nobuffer -flags low_delay带宽紧张时给流加一条摄像头子码流作为备选来源让客户端按能力选用音频没有或对讲失效确认摄像头本身支持双向音频ONVIF T、ISAPI、品牌私有协议纯视频流加不出声音摄像头端优先选 AAC 音频PCMA/PCMU 质量低、兼容性差能不用就不用浏览器麦克风需要 HTTPS本地http://localhost除外进阶方向与资源入口HTTP API/api/streams获取流列表与状态、/api/streams/流名查单路详情、/api/frame.jpeg取快照完整接口定义见 website/api/openapi.yaml配置项说明见 internal/api/README.md连接拓扑监控WebUI 的 Net 页面展示每条活动连接的协议、格式、包数与字节数API 侧还能以 json 或 dot 格式导出交互式连接图自建播放器www/ 目录下的video-rtc.js、video-stream.js可直接嵌入自己的前端实现自动选路、自动断流重连集成示例代码examples/ 里有对接 Home Assistant、MJPEG、RTSP、mDNS 的最小工程进阶特性推流到 YouTube/TelegramRTMP、启动即预载流、向摄像头反向播音频见 internal/streams/README.md安全建议1984 和 8554 端口默认对整个局域网开放同网段任何设备都无需认证即可看流。如需收紧把api与rtsp的listen改为127.0.0.1开启local_auth外网 WebUI 交给反向代理做鉴权webrtc:8555保留对外即可下一步先按 Docker 路径把服务跑起来接入一路 RTSP 摄像头确认浏览器画面正常后再接入 Frigate 或 Home Assistant。遇到问题时仓库根目录的 README.md 中的编解码对照表和 Tips 章节是最快的排查入口。【免费下载链接】go2rtcUltimate camera streaming application项目地址: https://gitcode.com/GitHub_Trending/go/go2rtc创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表