ARTICLE DETAIL

资讯详情

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

go2rtc:低延迟摄像头串流的完整方案

go2rtc:低延迟摄像头串流的完整方案 go2rtc低延迟摄像头串流的完整方案【免费下载链接】go2rtcUltimate camera streaming application项目地址: https://gitcode.com/GitHub_Trending/go/go2rtc手机上看摄像头直播画面总比现场慢 3 秒那是协议自带的延迟。go2rtc 是一个开源的摄像头串流应用能把端到端延迟压进 100ms 以内同一局域网内它用 RTSP摄像头最常用的取流协议、RTMP、MJPEG 等几十种协议收流再用 WebRTC 这类低延迟协议发出去整个事只需一个零依赖的二进制。它凭什么三个硬差异零依赖。Windows、macOS、Linux、FreeBSD 都能跑还有 ARM 版本树莓派、NAS 直接扔上去就能用。协议覆盖极广输入几十种公有协议和云摄像头私有协议Wyze、小米、Ring、TP-Link 等都收输出十几种协议还有一大堆摄像头支持双向语音可以直接跟门口的人对话。默认零延迟转发只有编解码器实在不匹配时才调用 FFmpeg 转码多出来的延迟只有几毫秒。对比项go2rtcNginx-RTMP / 手写 FFmpeg 脚本依赖单文件二进制开箱即用需装一堆依赖协议输入几十种输出十几种含私有协议以 RTMP / RTSP 为主双向音频大量摄像头型号原生支持基本没戏管理界面自带 WebUI含连接统计要自己拼顺带一提Home Assistant 和 Frigate开源 AI NVR都把 go2rtc 当内置取流组件用属于经过大规模实战验证的方案。3 步跑起 go2rtcDocker 镜像里预装了 FFmpeg后面想转音频、做硬件转码都用得上不用再折腾环境docker run -d --name go2rtc --network host \ -v ~/go2rtc:/config alexxit/go2rtcdocker ps里容器 Up 着再打开http://localhost:1984能看到网页就成了。第二步加一路流。配置就是一个go2rtc.yaml文件容器里位于/config也可以直接在 Web 界面的 config 标签页里改带语法高亮和报错检查懒动手的人用 add 标签页点几下也能加流streams: my_cam: rtsp://admin:pass192.168.1.123/stream1保存后在网页里点开my_cam预览出画面就成功。 第一次启动不需要任何配置文件服务直接用默认端口跑起来API 在 1984、RTSP 在 8554、WebRTC 在 8555。go2rtc 还会自动探测客户端支持的编解码器挑最合适的那路发过去不用手动挑。配置只动这几行改端口找到对应服务下的listen那行改掉保存后重启容器再访问新端口页面能打开就是成了。WebRTC 的 8555 建议保持开放否则远程观看会连不上。api: listen: 127.0.0.1:1984 # Web 界面和 API rtsp: listen: 127.0.0.1:8554 # 只允许本机访问取流时挑编码器在流链接后面追加查询串即可。录像系统只认 H.264 AAC 的话RTSP 输出链接加上?videoh264audioaac就行。浏览器不支持 H.265 时在配置里加一路 FFmpeg 源转码输出写法类似ffmpeg:my_cam#videoh264audioaacgo2rtc 会自动给客户端挑能用的那一路完整转码选项见 internal/ffmpeg/README.md。所有改动保存即生效不用重新打包、不用改代码重启容器就好。挑个场景用起来多摄像头家庭监控三行配置三台摄像头协议随便混着来——实时看走 WebRTC延迟最低发给录像和老设备的链接走 HLS/MP4streams: front_door: rtsp://admin:pass192.168.1.200/stream1 backyard: http://192.168.1.201:8080/mjpeg garage: webrtc://192.168.1.202/live想跟画面里的人说话直接在 WebRTC 页面点麦克风走的就是双向语音。摄像头开机慢的话可以开 preload让流在启动时就预热好。直播推 YouTube再补一行go2rtc 会通过 FFmpeg 把指定流转发到 RTMP 地址保存后 YouTube 直播控制台里就能看到流了streams: my_cam: rtsp://admin:pass192.168.1.123/stream1 youtube: ffmpeg:my_cam#rtmp://a.rtmp.youtube.com/live2/stream_key配完之后打开 net 标签页每个连接用的协议、对端 IP、数据量一目了然排查问题全靠它连不上看这里九成是源本身的事先用telnet 摄像头IP 端口测通不通摄像头连不上什么取流协议都白搭。浏览器里没画面多半是编码器不匹配摄像头只出 H.265 而浏览器放不了就加一路 FFmpeg 源转成 H.264go2rtc 会自动挑。WebRTC 本地通、远程不通路由器上把 8555 的 TCP 和 UDP 都放出来另外浏览器麦克风只在 HTTPS 下开放想语音对讲得先上 HTTPS。HLS 画面卡HLS 天生有 3-10 秒延迟实时看请换 WebRTC 链接。配置存不进去config 标签页保存时会标红报错终端日志里也有具体行号照着改就行。回到开头那句延迟压进 100ms 以内几十种协议一个二进制文件。如果你要把摄像头画面搬进浏览器或智能家居先试试 go2rtc——你要的那个协议多半它已经内置了。【免费下载链接】go2rtcUltimate camera streaming application项目地址: https://gitcode.com/GitHub_Trending/go/go2rtc创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表