十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

go2rtc:一个二进制搞定摄像头流媒体,WebRTC 延迟低于100ms

go2rtc:一个二进制搞定摄像头流媒体,WebRTC 延迟低于100ms go2rtc一个二进制搞定摄像头流媒体WebRTC 延迟低于100ms【免费下载链接】go2rtcUltimate camera streaming application项目地址: https://gitcode.com/GitHub_Trending/go/go2rtc如果你家里有海康、大华、小米、TP-Link 的摄像头大概率遇到过这种麻烦设备各说各话的私有协议有的只给 RTSPReal Time Streaming Protocol实时流媒体传输协议地址有的藏在自家 App 里想在浏览器、NAS 或智能家居系统里看同一画面往往要装一堆插件和转换工具。go2rtc 做的事情很直接一个 Go 语言写的零依赖小应用把几十种协议和格式的摄像头画面拉进来再以 WebRTC浏览器原生的低延迟音视频协议、HLS分段下载的直播格式、MP4、HomeKit 等格式分发出去其中 WebRTC 输出能做到最低延迟 100ms。它不只是个转发器自动匹配浏览器支持的编码、按需调用 FFmpeg 转码、双向语音对讲、把任意流推送到 YouTube/Telegram 直播都内置了。下面用最短路径带你跑起来。为什么值得选它三个实在的理由1. 一个文件什么系统都能跑。官方提供 Windows、macOS、Linux、FreeBSD 的二进制覆盖 32/64 位和 ARM含树莓派Docker 镜像预装了 FFmpeg 和 Python。不需要装运行环境解压即用。2. 协议覆盖到私有级别。除 RTSP/RTMP/MJPEG/ONVIF/WebRTC 这些公开协议外还内置了 Tapo、Wyze、小米、Ring、Google Nest、HomeKit 等品牌的专有接入甚至能直接读取 GoPro 和 Linux 上的 USB 摄像头v4l2。完整支持矩阵见模块总览。3. 编码自动协商不用你操心兼容性。摄像头给 H265、浏览器只认 H264它会自动检测每个客户端的能力从多个源里挑合适的码流实在不行再用 FFmpeg 转一道。这个多源双向编码协商是它区别于普通流媒体的核心能力。和常见方案对比一下方案部署成本协议覆盖私有品牌摄像头浏览器直看延迟go2rtc单二进制/Docker输入输出数十种内置 Tapo/Wyze/Nest 等WebRTC 原生100msFFmpeg 手动转码命令行/复杂脚本全但要自己配需自行对接需自建服务取决于管道厂商官方 App装 App仅自家设备仅自家通常不能厂商私有两分钟看到摄像头画面方式一Docker 部署推荐容器里已带 FFmpeg一条命令拉起来docker run -d --name go2rtc --network host --restart unless-stopped -v ~/go2rtc:/config alexxit/go2rtc执行后docker ps应看到容器状态为 Up。浏览器访问http://localhost:1984能打开带 Web 界面的页面就说明服务正常。方式二下载二进制从 Releases 页下载对应系统的文件如go2rtc_linux_amd64Linux/macOS 记得先执行chmod x go2rtc_linux_amd64再运行。终端出现start server字样即启动成功同样访问http://localhost:1984验证。 首次启动会自动生成默认的go2rtc.yaml配置文件放在当前工作目录后面所有改动都改这个文件或直接在 Web 界面里改带语法高亮和校验。流定义怎么写streams 是核心整个配置的灵魂就是一个streams列表每行名字: 源地址。最简单的配置streams: hall-camera: rtsp://admin:password192.168.1.123/cam/realmonitor?channel1subtype0保存后刷新 Web 界面hall-camera会出现在流列表里点它就能播放。几个关键配置项完整说明配置项默认值作用api.listen:1984Web 界面和 HTTP API 端口rtsp.listen:8554RTSP 服务端口供 VLC、NAS 等消费webrtc.listen:8555WebRTC 端口TCP/UDP浏览器低延迟观看走这里同一个摄像头可以配成多路源比如一路原始 RTSP 一路 FFmpeg 转 H264浏览器会自动挑能播的那路streams: dahua: - rtsp://admin:password192.168.1.123/cam/realmonitor?channel1 - ffmpeg:dahua#videoh264 # 转码成 H264兼容更多设备每种场景该选哪种输出协议网页实时看推荐WebRTC延迟最低浏览器原生支持Web 界面默认优先选它手机 App、老设备HLS兼容性最好但延迟在秒级对接 NAS、Frigate 录制RTSP链接加?mp4参数可输出 MP4 兼容编码例如rtsp://192.168.1.123:8554/hall-camera?mp4苹果生态HomeKit直接进 Apple 家庭 App。三个高频场景的落地配置场景一把任意摄像头塞进 Apple 家庭 App。摄像头流必须是 H264 视频 OPUS 音频在 HomeKit 模块 下两行搞定homekit: hall-camera: pin: 12345678在 iPhone 家庭 App 里添加摄像头、输入 PIN 后画面即可出现在家庭页原有 RTSP/WebRTC 流不受影响。场景二推流到 YouTube 或 Telegram 直播。用publish配置项指向 RTMP 地址注意 YouTube 要求 H264AACpublish: my-live: - rtmp://a.rtmp.youtube.com/live2/你的推流密钥streams 模块文档里有 Telegram 的详细步骤推成功后在 YouTube 直播控制台即可看到画面。场景三语音对讲和播放音频。Tapo、Wyze、小米、RTSP 设备等支持双向音频浏览器端通过 WebRTC 页面www/webrtc.html需 HTTPS即可和摄像头双向通话还能把音乐、TTS 语音直接推到摄像头喇叭上播放比如用ffmpeg源指定一个音频文件。出问题先查这份速查清单WebRTC 连不上确认路由器对 8555 端口放行了 TCP 和 UDP 两个协议。有画面没声音摄像头常见 PCMA/PCMU 编码质量太差用ffmpeg:流名#audioopus加一路转码即可API 文档可查当前流里有哪些编码。HLS/MP4 出不来 H265 画面部分设备不支持在流里加#videoh264转码参数。局域网里陌生人能看你的摄像头默认三个端口对内网开放把api.listen和rtsp.listen改成127.0.0.1:1984这类本机地址即可收紧。Web 界面的 net 页会实时展示每条连接的 IP、协议、字节数排查谁在消费我的流时直接看它。回到开头那个场景一台树莓派或闲置小主机一个二进制文件家里所有品牌的摄像头就能在浏览器里以100ms 延迟统一观看还能顺手接入 Apple 家庭和 YouTube 直播。协议转换的麻烦从这一步起交给 go2rtc 就好。【免费下载链接】go2rtcUltimate camera streaming application项目地址: https://gitcode.com/GitHub_Trending/go/go2rtc创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表