go2rtc 怎么配置 preload 让启动时预加载摄像头流?

发布时间:2026/9/16 15:05:52
go2rtc 怎么配置 preload 让启动时预加载摄像头流? go2rtc 怎么配置 preload 让启动时预加载摄像头流【免费下载链接】go2rtcUltimate camera streaming application项目地址: https://gitcode.com/GitHub_Trending/go/go2rtc如果你的摄像头冷启动需要较长时间比如上电后要等十几秒才能出流可以在 go2rtc 启动时就用preload配置让指定流立即拉流这样首次访问画面时不用干等。该功能从 v1.9.11 引入internal/streams/README.md 标注 new in v1.9.11所以前提是使用 go2rtc v1.9.11 或更新版本。准备工作先在 streams 里定义好流preload的键必须是streams中已存在的流名。启动时 go2rtc 会先创建streams下的所有流再处理preload如果某个 preload 键在streams中找不到会返回streams: stream not found: name的日志错误见 preload.go 中AddPreload的校验逻辑。因此配置分两段先在streams定义流和源再在preload里引用流名。在配置文件里添加 preload 段按 internal/streams/README.md 的示例配置格式如下streams段的值换成你自己的源preload: camera1: # 不写值默认 videoaudio ANY camera2: video # 只预加载视频轨 camera3: videoh264audioopus # 预加载 H264 视频和 OPUS 音频 streams: camera1: - rtsp://192.168.1.100/stream camera2: - rtsp://192.168.1.101/stream camera3: - rtsp://192.168.1.102/h265stream - ffmpeg:camera3#videoh264#audioopus#hardware值的含义来自 schema 对preload的说明和 preload.go 的实现不写值等价于videoaudio即音视频都探测拉取video只预加载视频轨videoh264audioopus这类写法指定 codec 参数只匹配对应编码的轨。改完配置后重启 go2rtc 使配置生效。注意启动时序go2rtc 会在启动后延迟 1 秒再执行 preloadstreams.go 中time.AfterFunc(time.Second, ...)也就是说流会在进程起来约 1 秒后开始拉取不是同一步完成的。验证预加载是否生效有两条文档中给出的检查路径API 查询GET请求http://localhost:1984/api/preload会返回当前所有 preload 项见 api.go 中apiPreload的 GET 分支README.md 的 API 示例统一使用http://localhost:1984作为基地址。返回的 map 中每个流名对应一条记录含consumer探测消费者状态和query实际生效的查询串字段。WebUI 信息页internal/streams/README.md 说明在流处于活动状态时可以在 go2rtc WebUI 信息页看到活动的 producer 和 consumer。preload 创建的探测消费者在代码中命名为preloadpreload.go 中probe.Create(preload, query)所以预加载生效后信息页应能看到该流上有一个活动消费者而不需要人工打开播放页面。运行中通过 API 增删 preload可选除配置文件外/api/preload还支持运行时操作且操作会写回配置api.go 中 PUT/DELETE 分支在修改后调用app.PatchConfig持久化preload.src# 为 camera1 添加 preloadPUT 会把保留的 video/audio/microphone 参数写入配置 PUT http://localhost:1984/api/preload?srccamera1video # 移除 camera1 的 preload DELETE http://localhost:1984/api/preload?srccamera1PUT 请求只保留video、audio、microphone三个查询参数其余参数会被丢弃DELETE 会同时从内存和配置中移除该项移除不存在的流会报streams: preload not found: name。限制仅适用于启动时或运行时手动调用主动预加载的场景配置键必须与streams中的流名完全一致找不到流只会打错误日志不会中断其他 preload 的处理。文档未说明 preload 对带宽、并发拉流数的影响多路大流同时预加载时的资源占用需自行评估。【免费下载链接】go2rtcUltimate camera streaming application项目地址: https://gitcode.com/GitHub_Trending/go/go2rtc创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询