[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-roflcoopter--viseron":3,"tool-roflcoopter--viseron":64},[4,17,27,35,43,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",138956,2,"2026-04-05T11:33:21",[13,15,26],"语言模型",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":23,"last_commit_at":33,"category_tags":34,"status":16},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[13,14,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":23,"last_commit_at":41,"category_tags":42,"status":16},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[13,26],{"id":44,"name":45,"github_repo":46,"description_zh":47,"stars":48,"difficulty_score":23,"last_commit_at":49,"category_tags":50,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,51,52,53,15,54,26,13,55],"数据工具","视频","插件","其他","音频",{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":10,"last_commit_at":62,"category_tags":63,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,26,54],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":69,"readme_en":70,"readme_zh":71,"quickstart_zh":72,"use_case_zh":73,"hero_image_url":74,"owner_login":75,"owner_name":76,"owner_avatar_url":77,"owner_bio":78,"owner_company":79,"owner_location":80,"owner_email":79,"owner_twitter":79,"owner_website":79,"owner_url":81,"languages":82,"stars":116,"forks":117,"last_commit_at":118,"license":119,"difficulty_score":10,"env_os":120,"env_gpu":121,"env_ram":122,"env_deps":123,"category_tags":128,"github_topics":129,"view_count":23,"oss_zip_url":79,"oss_zip_packed_at":79,"status":16,"created_at":149,"updated_at":150,"faqs":151,"releases":181},2827,"roflcoopter\u002Fviseron","viseron","Self-hosted, local only NVR and AI Computer Vision software.  With features such as object detection, motion detection, face recognition and more, it gives you the power to keep an eye on your home, office or any other place you want to monitor.","Viseron 是一款专为本地部署设计的开源网络视频录像机（NVR）与 AI 计算机视觉软件。它致力于解决传统监控方案依赖云端服务、隐私泄露风险高以及缺乏智能分析能力的痛点，让用户能够完全在本地环境中掌控家庭、办公室或其他场所的安防监控。\n\n与普通监控软件不同，Viseron 深度融合了人工智能技术，支持物体检测、运动追踪及人脸识别等高级功能。这意味着它不仅能录制视频，还能“看懂”画面内容，精准识别特定目标并触发警报，从而大幅减少误报并提升监控效率。其独特的技术亮点在于完全本地化运行，所有视频数据与 AI 处理均在用户自己的硬件上完成，无需上传云端，极大保障了隐私安全。此外，Viseron 基于 Docker 容器部署，配置简单，并提供直观的 Web 界面供用户调整参数，同时拥有灵活的组件系统，可按需扩展功能。\n\n这款软件非常适合注重数据隐私的家庭用户、希望搭建私有化智能监控系统的技术爱好者，以及需要定制化视觉方案的开发者。无论是想为家中添加智能看家助手，还是为项目集成低成本视觉分析能力，Viseron 都能提供强大而自由的解决方案。","\u003Cdiv align=\"center\">\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\">\n        \u003Cimg width=\"150\" height=\"150\" src=\"docs\u002Fstatic\u002Fimg\u002Fviseron-logo.svg\">\n    \u003C\u002Fa>\n    \u003Cbr>\n    \u003Ch1>Viseron\u003C\u002Fh1>\n    \u003Cp>\n        Self-hosted, local only NVR and AI Computer Vision software.\n    \u003C\u002Fp>\n    \u003Cp>\n        With features such as object detection, motion detection, face recognition and more, it gives you the power to keep an eye on your home, office or any other place you want to monitor.\n    \u003C\u002Fp>\n    \u003Ch1>\u003C\u002Fh1>\n    \u003Cbr>\n\u003C\u002Fdiv>\n\n# Getting started\n\nGetting started is easy! You simply spin up a Docker container and edit the configuration file using the built in web interface.\n\nHead over to the [documentation](https:\u002F\u002Fviseron.netlify.app) and follow the instructions on how to get started.\n\n# Components\n\nViserons functionality is enabled by [components](https:\u002F\u002Fviseron.netlify.app\u002Fdocs\u002Fdocumentation\u002Fconfiguration#components).\n\nYou can find all the available components by using the [Component Explorer](https:\u002F\u002Fviseron.netlify.app\u002Fcomponents-explorer\u002F).\n\n# Contributing\n\nContributors to the project are very much appreciated.\nSee the [contribution guidelines](https:\u002F\u002Fviseron.netlify.app\u002Fdocs\u002Fcontributing) on how to get started.\n\nSome things you can help with:\n\n- Implement an open feature request or issue from the [issue tracker](https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fissues)\n- Improve the documentation\n- Answer questions in issues or [discussions](https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fdiscussions)\n\nYou can also use the links below to sponsor Viseron or make a one time donation.\n\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fsponsors\u002Froflcoopter\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Froflcoopter_viseron_readme_f060efe8e836.png\" alt=\"Sponsor\" style=\"height: 37px !important;width: 170px !important;box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;-webkit-box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5)\" >\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fwww.buymeacoffee.com\u002Froflcoopter\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Fwww.buymeacoffee.com\u002Fassets\u002Fimg\u002Fcustom_images\u002Forange_img.png\" alt=\"Buy Me A Coffee\" style=\"height: 41px !important;width: 174px !important;box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;-webkit-box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;\" >\u003C\u002Fa>\n","\u003Cdiv align=\"center\">\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\">\n        \u003Cimg width=\"150\" height=\"150\" src=\"docs\u002Fstatic\u002Fimg\u002Fviseron-logo.svg\">\n    \u003C\u002Fa>\n    \u003Cbr>\n    \u003Ch1>Viseron\u003C\u002Fh1>\n    \u003Cp>\n        自托管、纯本地的网络视频录像机（NVR）及人工智能计算机视觉软件。\n    \u003C\u002Fp>\n    \u003Cp>\n        凭借物体检测、移动侦测、人脸识别等功能，它能帮助您随时监控家庭、办公室或其他任何需要监视的场所。\n    \u003C\u002Fp>\n    \u003Ch1>\u003C\u002Fh1>\n    \u003Cbr>\n\u003C\u002Fdiv>\n\n# 入门指南\n\n入门非常简单！您只需启动一个 Docker 容器，并通过内置的 Web 界面编辑配置文件即可。\n\n请前往 [文档](https:\u002F\u002Fviseron.netlify.app) 查看详细的入门说明。\n\n# 组件\n\nViseron 的功能由 [组件](https:\u002F\u002Fviseron.netlify.app\u002Fdocs\u002Fdocumentation\u002Fconfiguration#components) 提供支持。\n\n您可以通过 [组件浏览器](https:\u002F\u002Fviseron.netlify.app\u002Fcomponents-explorer\u002F) 查找所有可用的组件。\n\n# 贡献\n\n我们非常欢迎各位为本项目贡献力量。请参阅 [贡献指南](https:\u002F\u002Fviseron.netlify.app\u002Fdocs\u002Fcontributing)，了解如何开始参与。\n\n您可以从以下方面提供帮助：\n\n- 实现 [问题追踪器](https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fissues) 中的公开功能请求或问题\n- 改进文档\n- 回答问题追踪器中的问题或 [讨论区](https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fdiscussions) 中的问题\n\n您也可以通过下方链接为 Viseron 提供赞助，或进行一次性捐赠。\n\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fsponsors\u002Froflcoopter\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Froflcoopter_viseron_readme_f060efe8e836.png\" alt=\"赞助\" style=\"height: 37px !important;width: 170px !important;box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;-webkit-box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5)\" >\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fwww.buymeacoffee.com\u002Froflcoopter\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Fwww.buymeacoffee.com\u002Fassets\u002Fimg\u002Fcustom_images\u002Forange_img.png\" alt=\"请我喝杯咖啡\" style=\"height: 41px !important;width: 174px !important;box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;-webkit-box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;\" >\u003C\u002Fa>","# Viseron 快速上手指南\n\nViseron 是一款自托管、纯本地运行的 NVR（网络视频录像机）与 AI 计算机视觉软件。它支持物体检测、运动检测、人脸识别等功能，帮助您监控家庭、办公室或其他场所。\n\n## 环境准备\n\n在开始之前，请确保您的系统满足以下要求：\n\n*   **操作系统**：支持 Docker 的 Linux 发行版（推荐 Ubuntu\u002FDebian）、macOS 或 Windows（需安装 WSL2）。\n*   **核心依赖**：已安装并运行 **Docker** 和 **Docker Compose**。\n*   **硬件建议**：\n    *   由于涉及 AI 推理，建议使用具备 GPU 的设备（如 NVIDIA GPU 或 Intel QuickSync）以获得更佳性能。\n    *   确保有足够的存储空间用于保存录像文件。\n\n> **注意**：目前官方未提供专门的中国镜像源，请确保网络环境可以正常访问 Docker Hub (`docker.io`) 拉取镜像。\n\n## 安装步骤\n\nViseron 主要通过 Docker 容器部署。以下是使用 `docker run` 快速启动的步骤：\n\n1.  **创建配置目录**\n    在主机上创建一个用于存放配置文件和数据的目录：\n    ```bash\n    mkdir -p ~\u002Fviseron\u002Fconfig\n    ```\n\n2.  **启动容器**\n    运行以下命令启动 Viseron 容器。该命令将映射配置目录并开放 Web 界面端口（默认 8888）：\n    ```bash\n    docker run -d \\\n      --name viseron \\\n      --restart unless-stopped \\\n      -p 8888:8888 \\\n      -v ~\u002Fviseron\u002Fconfig:\u002Fconfig \\\n      -v \u002Fetc\u002Flocaltime:\u002Fetc\u002Flocaltime:ro \\\n      roflcoopter\u002Fviseron:latest\n    ```\n\n    *注：如果您需要使用 GPU 加速（以 NVIDIA 为例），请在命令中添加 `--gpus all` 参数。*\n\n## 基本使用\n\n启动成功后，您可以通过内置的 Web 界面完成所有配置，无需手动编辑 YAML 文件。\n\n1.  **访问 Web 界面**\n    打开浏览器，访问：\n    ```text\n    http:\u002F\u002F\u003C您的服务器 IP>:8888\n    ```\n\n2.  **配置摄像头与组件**\n    *   在 Web 界面中，进入配置编辑器。\n    *   添加您的摄像头流地址（支持 RTSP 等协议）。\n    *   通过 [组件探索器 (Component Explorer)](https:\u002F\u002Fviseron.netlify.app\u002Fcomponents-explorer\u002F) 查找并启用所需功能（如 `object_detector` 用于物体检测，`motion_detector` 用于运动检测）。\n    *   保存配置，Viseron 将自动重启并应用新设置。\n\n3.  **查看监控与日志**\n    配置完成后，您可以在仪表板中实时查看带有 AI 标注的视频流，并在日志面板中监控运行状态。\n\n更多详细配置项请参考官方文档：[https:\u002F\u002Fviseron.netlify.app](https:\u002F\u002Fviseron.netlify.app)","一位拥有小型仓库的店主希望利用现有的旧摄像头构建一套智能安防系统，以替代昂贵且数据不安全的云端监控方案。\n\n### 没有 viseron 时\n- 只能依赖传统的移动侦测功能，风吹草动或光影变化都会触发误报，导致手机每天收到数百条无效通知。\n- 想要识别特定物体（如“人”或“车辆”）必须订阅昂贵的商业云存储服务，且视频数据需上传至第三方服务器，存在隐私泄露风险。\n- 缺乏本地人脸识别能力，无法区分是自家员工正常进出还是陌生人闯入，事后排查录像耗时费力。\n- 系统扩展性差，每增加一个摄像头或新功能都需要购买专用的硬件录像机（NVR），成本高昂且配置僵化。\n\n### 使用 viseron 后\n- 利用内置的 AI 物体检测模型，仅当画面中出现“人”或“车”时才触发警报，彻底消除了因树叶晃动产生的误报干扰。\n- 所有视频流处理与存储均在本地 Docker 容器中完成，无需上传云端，既保护了隐私又节省了持续的云存储订阅费用。\n- 启用人脸识别组件后，系统能自动标记已知员工并忽略其活动，仅在检测到未知面孔时推送高优先级告警，大幅提升响应效率。\n- 通过灵活的组件化配置，店主仅用一台旧电脑就整合了多个品牌摄像头，并自由添加了车牌识别等高级功能，无需额外硬件投入。\n\nviseron 将普通的监控摄像头升级为具备本地 AI 大脑的智能安防系统，在零隐私风险的前提下实现了精准、低成本的自动化监控。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Froflcoopter_viseron_89174ff7.png","roflcoopter","Jesper","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Froflcoopter_32e0ffcf.jpg","DevOps Engineer and COBOL Developer on IBMs z\u002FOS Mainframe by day.\r\nSelf-taught Python Developer by night.",null,"Sweden","https:\u002F\u002Fgithub.com\u002Froflcoopter",[83,87,91,95,99,102,106,110,113],{"name":84,"color":85,"percentage":86},"Python","#3572A5",68,{"name":88,"color":89,"percentage":90},"TypeScript","#3178c6",30.5,{"name":92,"color":93,"percentage":94},"JavaScript","#f1e05a",0.9,{"name":96,"color":97,"percentage":98},"Shell","#89e051",0.2,{"name":100,"color":101,"percentage":98},"Dockerfile","#384d54",{"name":103,"color":104,"percentage":105},"HTML","#e34c26",0.1,{"name":107,"color":108,"percentage":109},"CMake","#DA3434",0,{"name":111,"color":112,"percentage":109},"CSS","#663399",{"name":114,"color":115,"percentage":109},"Mako","#7e858d",2686,325,"2026-04-03T13:38:09","MIT","未说明 (通过 Docker 运行，理论上支持所有兼容 Docker 的系统)","未说明 (支持 AI 计算机视觉功能，通常建议配备 NVIDIA GPU 以加速推理，但 README 未明确具体型号或 CUDA 版本)","未说明",{"notes":124,"python":125,"dependencies":126},"该工具主要通过 Docker 容器部署。用户只需启动容器并通过内置的 Web 界面编辑配置文件即可开始使用。具体的硬件需求（如 GPU、内存）取决于所启用的组件（如物体检测、人脸识别等）及摄像头数量，README 中未提供具体数值，建议参考官方文档获取详细配置指南。","未说明 (基于 Docker 容器部署，内部版本未在 README 中列出)",[127],"Docker",[14,13,52],[130,131,132,133,134,135,136,137,138,139,140,141,142,67,143,144,145,146,147,148],"nvr","network-video-capture","network-video-recorder","tensorflow","darknet","yolo","hardware-acceleration","object-detection","motion-detection","cuda","surveillance","rtsp","ip-camera","coral","edgetpu","google-coral","hacktoberfest","face-recognition","license-plate-recognition","2026-03-27T02:49:30.150509","2026-04-06T05:32:16.095528",[152,157,162,167,172,176],{"id":153,"question_zh":154,"answer_zh":155,"source_url":156},13076,"RTSP 连接被拒绝（Connection refused）且密码中包含特殊字符怎么办？","如果摄像头密码中包含特殊字符（如 @#），可能会导致 RTSP 协议解析错误从而拒绝连接。解决方法是修改摄像头密码，移除特殊字符。注意：该问题已在 Viseron v3 beta 版本中修复，升级后可能支持特殊字符密码。","https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fissues\u002F768",{"id":158,"question_zh":159,"answer_zh":160,"source_url":161},13077,"如何配置录像在检测到物体结束后继续录制更长时间？","默认情况下，当不再检测到触发录制的物体时，录像会持续 10 秒。若需延长录制时间，请在配置文件中添加 `idle_timeout` 选项。示例配置如下：\n```yaml\nffmpeg:\n  camera:\n    camera_one:\n      name: Camera 1\n      host: 192.168.XX.X\n      recorder:\n        idle_timeout: 30 # 在所有事件结束后继续录制 30 秒\n```","https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fissues\u002F837",{"id":163,"question_zh":164,"answer_zh":165,"source_url":166},13078,"切换存储组件后 PostgreSQL CPU 占用率过高如何解决？","高 CPU 占用通常由文件整理任务引起。请使用最新的 `dev` 镜像，其中已将文件处理委托给子进程以分散负载。您可以通过调整以下配置参数来优化性能：\n- `tier_check_cpu_limit`\n- `tier_check_batch_size`\n- `tier_check_sleep_between_batches`\n- `tier_check_workers`\n\n如果看到 Viseron 进程 CPU 飙升，建议增加 `tier_check_sleep_between_batches` 的值并减小 `tier_check_batch_size` 的值。","https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fissues\u002F985",{"id":168,"question_zh":169,"answer_zh":170,"source_url":171},13079,"是否支持 Nvidia Jetson Nano 版本？","是的，Viseron 已支持 Jetson Nano。您可以拉取专用的 Docker 镜像 `roflcoopter\u002Fjetson-nano-viseron`。注意确保拉取的是最新镜像，因为更新推送可能需要一点时间完成。","https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fissues\u002F108",{"id":173,"question_zh":174,"answer_zh":175,"source_url":161},13080,"WebUI 中显示的录像片段与实际完整录像长度不一致，如何下载完整录像？","WebUI 右侧列表悬停时显示的通常是分割后的短片段（例如基于事件的剪辑）。若要查看和下载完整的连续录像（例如 2 分 20 秒的完整文件），请点击事件图标（带有缩略图的图标）进入全屏播放模式，在那里可以看到完整的进度条并进行播放或下载。目前直接下载完整长录像的功能可能依赖于具体的前端组件实现。",{"id":177,"question_zh":178,"answer_zh":179,"source_url":180},13081,"是否支持使用 EdgeTPU 进行图像分类（如识别鸟类）？","目前社区有用户询问是否可以使用 Coral 的 MobileNet V2 等模型进行图像分类（例如识别喂鸟器上的鸟类）。截至最近一次回复，维护者表示尚未在此功能上取得进展，暂时无法提供具体的配置指南。建议关注官方后续更新或尝试自行研究相关插件开发。","https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fissues\u002F312",[182,187,192,197,202,207,212,217,222,227,232,237,242,247,252,257,262,267,272,277],{"id":183,"version":184,"summary_zh":185,"released_at":186},71742,"v3.5.2","这是 v3.5.1 的重新发布版本，由于在构建 `roflcoopter\u002Famd64-cuda-viseron` 时出现内存问题，因此需要它来触发 Azure 管道中使用自托管代理的新构建。\n\n## 变更内容\n* 功能（azure）：由 @roflcoopter 在 https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F1308 中实现，使用自托管的 amd64 代理进行构建。\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fcompare\u002Fv3.5.1...v3.5.2","2026-04-02T21:47:21",{"id":188,"version":189,"summary_zh":190,"released_at":191},71743,"v3.5.1","热修复版本，用于解决在特定窗口高度下点击时间线时出现的问题。\n此前用于确定点击时间戳的计算逻辑会将包含两位小数的10位时间戳（例如 `1774731234.56`）误认为是毫秒级时间戳，因为该时间戳共有13个字符。\n\n关闭 #1303\n\n## 变更内容\n* 修复（前端）：正确识别毫秒级时间戳，由 @roflcoopter 在 https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F1306 中完成。\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fcompare\u002Fv3.5.0...v3.5.1","2026-03-31T12:08:55",{"id":193,"version":194,"summary_zh":195,"released_at":196},71744,"v3.5.0","本次发布的主要亮点包括前端的摄像头调优、手动录制功能以及改进的 MQTT 支持。此外，还进行了多项性能优化和问题修复。\n\n## 重大变更\n\nCUDA 已升级至 12.9.1。如果您正在使用 `roflcoopter\u002Famd64-cuda-viseron` 镜像，并且您的系统上仍运行较旧版本的 CUDA，可能会导致兼容性问题。如果遇到任何问题，请确保更新宿主机。\n\n## 新特性\n\n### 摄像头调优\n\n摄像头调优功能允许您直接在前端调整摄像机的各项设置。目前并非所有选项都已开放，但这将是未来的长期规划目标。\n![摄像头调优](https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F59933569-2bab-48eb-874a-f60f015e3fae)\n\n此功能的另一项重要改进是，您现在可以直接在前端绘制掩码，而无需再借助外部工具生成掩码后再将其粘贴到 `config.yaml` 文件中。这使得设置运动检测区域和忽略区域变得更加简便。\n\n**请注意，更改设置后仍需重启 Viseron 才能使更改生效。** 下一个版本将支持所有设置的热重载，从而使这一过程更加无缝。相关代码大部分已经就位，但尚未正确暴露给前端界面。有关此功能的文档可参见[此处](https:\u002F\u002Fviseron.netlify.app\u002Fdocs\u002Fdocumentation\u002Fconfiguration\u002Fedit_config#camera-tuning)。\n\n特别感谢 @kaburagisec 对摄像头调优功能的贡献！\n\n### 手动录制\n\n您现在可以通过前端、MQTT 和 Telegram 手动启动和停止录制。录制进行时还会提供可视化反馈。\n![手动录制按钮](https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F54b29e4b-c01a-4372-af90-7953534043d0)\n\n有关此功能的文档可参见[此处](https:\u002F\u002Fviseron.netlify.app\u002Fdocs\u002Fdocumentation\u002Fconfiguration\u002Frecordings#manual-recordings)。\n\n### 前端摄像头开关\n\n前端现新增摄像头开关按钮，可按需启用或禁用摄像头：\n![摄像头开关按钮](https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F78bd5417-67b5-4be6-b875-047301038ee2)\n\n### 个人资料页面\n\n前端新增了个人资料页面，用户可在其中设置前端的相关偏好。目前仅支持设置显示名称和时区，未来还将扩展为包括语言和日期格式等更多设置。\n![个人资料页面](https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F705038ec-22ee-4a6b-a1bb-7155da875307)\n\n### 其他值得关注的功能\n\n- 支持 PostgreSQL 外部数据库。相关文档请参见[此处](https:\u002F\u002Fviseron.netlify.app\u002Fcomponents-explorer\u002Fcomponents\u002Fstorage#external-database)。\n- 新增 MQTT 配置选项 `base_topic`。","2026-03-25T19:37:38",{"id":198,"version":199,"summary_zh":200,"released_at":201},71745,"v3.4.1","本次发布包含对 Hailo 组件的两项修复：\n- 修复配置引用问题，关闭 #1179\n- 将 `multi_process_service` 的默认值设为 false，因为它需要特殊的 CMake 参数才能启用\n\n## 变更内容\n* 将 Hailo 的 `multi_process_service` 默认设置为 false，并修复配置… 由 @roflcoopter 在 https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F1182 中完成\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fcompare\u002Fv3.4.0...v3.4.1","2025-12-16T21:16:57",{"id":203,"version":204,"summary_zh":205,"released_at":206},71746,"v3.4.0","本次发布最大的变化是由 @kaburagisec 完成的前端全新视觉风格，虽然没有激进的改动，但确实带来了显著的提升。\n\n建议大家亲自在 UI 中浏览体验一下，以下是此次更新的一些亮点：\n\n- 首先，字体已更新为 `IBM Plex Sans`。\n- 图标统一使用了 `IBM Carbon Icons`。\n- “录制文件”页面新增了按日期和检测类型筛选的功能：\n\u003Cimg width=\"1198\" height=\"465\" alt=\"image\" src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Fde10680e-f455-4dcc-8256-21d4490eaad6\" \u002F>\n\n- 首页上的每个摄像头卡片现在都会显示该摄像机的运行时长。\n- 实时视图中支持缩放和平移，并且可以调整摄像头的显示顺序：\nhttps:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Fa87d0588-a968-4563-98bb-1909997020d8\n\n- 现在还可以在多种布局之间切换，以便专注于特定的摄像头：\nhttps:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F6091b5a6-a318-44e9-8e3d-c8587628ed0e\n\n- 此外，用户还可以保存布局和摄像头选择，方便快速调用：\nhttps:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F6c23d1f8-246e-4b47-9b73-c74012df1e2b\n\n此外，[文档首页](https:\u002F\u002Fviseron.netlify.app\u002F) 和 [组件探索器](https:\u002F\u002Fviseron.netlify.app\u002Fcomponents-explorer) 也进行了改版，整体风格更加现代化。\n\n## 新功能\n\n- 为 `webserver` 组件添加了对公共图片 URL 的支持。这一功能可供任何需要对外分享图片的通知组件使用。\n- 为 `gotify` 增加了公共图片支持。\n- 为存储层级新增了 `drain` 配置选项。启用后，当达到容量上限时，该层级中的所有文件将被迁移至其他层级，从而降低磁盘压力。\n- 支持子路径\u002F基础路径。现在可以通过反向代理以基础路径的方式托管 Viseron。更多信息请参阅[文档](https:\u002F\u002Fviseron.netlify.app\u002Fdocs\u002Fdocumentation\u002Finstallation#running-behind-a-reverse-proxy)。\n\n## 变更\n\n- 点击时间轴时，HLS 播放器会从请求时间前一小时开始加载视频流。这样可以在跳转到指定时间点之前，稍微回溯一些以获取上下文信息。\n- 使用多层存储时，HLS 播放列表中的文件现在始终指向第一层，以符合 HLS 规范。同时，通过查询参数向后端传递一个提示，指示正确的存储层级。\n- Hailo 组件现已切换为共享模式，这意味着其他应用程序可以与 Viseron 同时使用该设备。\n- 升级至 React 19。\n- 现已采用 React Compiler，进一步提升了前端性能。\n- 将 ESLint 升级至 v9。\n- 将 MUI 升级至 v7。\n- 从 onvif-zeep 迁移到 onvif-python 库。\n- Telegram 组件经过重构，进一步解耦了与 PTZ 组件的依赖关系。\n\n## 修复\n\n- 修复了从故障摄像头卡片跳转到配置页面的链接问题。\n- 改进了色彩模式的选择逻辑，从而…","2025-12-12T14:43:29",{"id":208,"version":209,"summary_zh":210,"released_at":211},71747,"v3.3.1","Hailo-8 默认模型下载 URL 的小型修复版本\n\n## 变更内容\n* 由 @roflcoopter 在 https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F1132 中修复 HAILO8_DEFAULT_URL，使其成为一个有效的 URL\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fcompare\u002Fv3.3.0...v3.3.1","2025-10-18T06:19:08",{"id":213,"version":214,"summary_zh":215,"released_at":216},71748,"v3.3.0","本次发布主要聚焦于 `webhook` 和 `hailo` 组件的实现。\n\n`webhook` 组件允许您通过 HTTP 请求将 Viseron 与任何第三方 API 集成。\n\n`hailo` 组件则支持在 [Hailo-8 加速器](https:\u002F\u002Fhailo.ai\u002F) 上运行目标检测，从而进一步扩展 Viseron 对不同检测器的支持范围。\n\n## 新特性\n\n- 新增了 [Hailo 组件](https:\u002F\u002Fviseron.netlify.app\u002Fcomponents-explorer\u002Fcomponents\u002Fhailo)，用于在 Hailo-8 加速器上运行目标检测。\n- 新增了 [Webhook 组件](https:\u002F\u002Fviseron.netlify.app\u002Fcomponents-explorer\u002Fcomponents\u002Fwebhook)，可在 Viseron 中触发的任何系统事件时执行 HTTP 请求。URL 和负载内容均支持模板化，以实现最大的灵活性。\n- 为了便于查看何时触发了哪些系统事件，前端新增了一个 [系统事件查看器](https:\u002F\u002Fviseron.netlify.app\u002Fdocs\u002Fdocumentation\u002Fconfiguration\u002Fsystem_events)。\n- `webhook` 组件使用 Jinja2 进行模板渲染，为方便编写和调试模板，新增了 [模板编辑器页面](https:\u002F\u002Fviseron.netlify.app\u002Fdocs\u002Fdocumentation\u002Fconfiguration\u002Ftemplating)。\n- `storage` 组件现具备延时摄影功能，可按层级定期从视频流中捕获并存储帧。目前尚未实现前端支持，相关功能将在后续版本中推出。\n- 将音频编解码器 `pcm_s16be` 添加到自动转码为 `aac` 的编解码器列表中。\n\n系统事件查看器：\n\u003Cimg width=\"1000\" height=\"1007\" alt=\"Viseron-Settings-system-event-viewer\" src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F5c7406b3-7b16-4555-9390-ec0429f214a1\" \u002F>\n\n模板编辑器：\n\u003Cimg width=\"2000\" height=\"2000\" alt=\"Viseron-Settings-template-editor\" src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Fc9a477be-f6f7-4f52-b7b1-6c2e0c876ff2\" \u002F>\n\n## 变更\n\n- 切换至 Switchroot FFmpeg 用于 Nano 设备，由 @Azkali 实现。\n- 事件页面上的日期选择器现已提速，不再因事件过多而卡顿。\n- 现在由域设置处理 FFprobe 的重试逻辑。\n- 安装更新的 Intel 驱动程序以支持较新的硬件（可能会牺牲部分稳定性）。\n- 改进了分层文件处理机制。移动和删除操作现在优先于分层检查，从而降低在分层检查较慢时文件操作长时间挂起的可能性。\n- Azure Pipelines 的 aarch64 架构 Docker 构建现运行在自托管的 aarch64 代理上，以提升构建速度。\n\n## 修复\n\n- 从 Nginx 配置中移除 `ssl_early_data`，由 @Azkali 实施。\n- 减小了 `amd64` 镜像的体积。由于 3.2 版本引入的新 `ultralytics` 组件，镜像曾因包含大量 CUDA 库而变得臃肿，现已修复。\n- 改进了时间线视图中的 HLS 播放列表。\n- 修复了快速停止或启动摄像头时出现的竞争条件问题，该问题会导致重新连接尝试中断。\n\n做","2025-10-07T20:42:07",{"id":218,"version":219,"summary_zh":220,"released_at":221},71749,"v3.2.3","本次发布修复了以下问题：https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fissues\u002F1075、https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fissues\u002F1076 和 https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fissues\u002F1096。\n\n当摄像头断开连接时，重试循环有时会卡住，导致摄像头一直保持断开状态。\n\n注意：本次为重新发布的版本，旨在因之前构建失败而触发新的构建。\n\n## 变更内容\n* 由 @roflcoopter 在 https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F1097 中修复了快速停止和启动摄像头时的竞态条件。\n* 由 @roflcoopter 在 https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F1098 中尝试释放 Azure Agent 上的空间。\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fcompare\u002Fv3.2.1...v3.2.3","2025-08-25T06:33:33",{"id":223,"version":224,"summary_zh":225,"released_at":226},71750,"v3.2.2","此版本修复了问题 #1075、#1076 和 #1096。\n\n当摄像头断开连接时，重试循环有时会卡住，导致摄像头一直保持断开状态。\n\n## 变更内容\n* 由 @roflcoopter 在 https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F1097 中修复了快速停止和启动摄像头时的竞态条件。\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fcompare\u002Fv3.2.1...v3.2.2","2025-08-24T20:41:10",{"id":228,"version":229,"summary_zh":230,"released_at":231},71751,"v3.2.1","本次发布修复了 #1068 中未捕获异常的问题，该问题在某些情况下还会导致目标检测功能停止工作。\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fcompare\u002Fv3.2.0...v3.2.1","2025-08-03T22:07:19",{"id":233,"version":234,"summary_zh":235,"released_at":236},71752,"v3.2.0","Proper live streaming is now available in Viseron, utilizing the great [go2rtc](https:\u002F\u002Fgithub.com\u002FAlexxIT\u002Fgo2rtc) application.\r\nPreviously Viseron resorted to using the MJPEG stream for live streaming, which results in low quality and high latency.\r\nWith the new [`go2rtc` component](https:\u002F\u002Fviseron.netlify.app\u002Fcomponents-explorer\u002Fcomponents\u002Fgo2rtc), Viseron can now stream using WebRTC or MSE, which gives a much better experience.\r\nThe new Live page is available at `\u002Flive` and can be accessed from the sidebar.\r\nThe Live page is very similar to the Events page, using the same responsiveness so that you can view multiple cameras at once.\r\n\r\nIn order to use it, you will need to update your configuration to include the new [`go2rtc` component](https:\u002F\u002Fviseron.netlify.app\u002Fcomponents-explorer\u002Fcomponents\u002Fgo2rtc).\r\n\r\n\r\n![](https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fblob\u002Fdev\u002Fdocs\u002Fstatic\u002Fimg\u002Fscreenshots\u002FViseron-screenshot-live.png)\r\n\r\n\r\n## Breaking changes\r\n\r\n- `port` in `webserver` is now deprecated. In order to support the new `go2rtc` streaming server, an NGINX reverse proxy is now included in the container, which listens to the old default port `8888`\r\n\r\n## New features\r\n\r\n- A new Live Page is now available, which allows for better live streaming and support for more protocols.\r\n  - The Live Page is available at `\u002Flive` and can be accessed from the main menu. It utilizes the new [`go2rtc` component](https:\u002F\u002Fviseron.netlify.app\u002Fcomponents-explorer\u002Fcomponents\u002Fgo2rtc) to support WebRTC\u002FMSE streaming.\r\n  - The MJPEG stream can now be accessed at the Live page by using the toggle in the extra options menu of the video player.\r\n- A new `go2rtc` streaming server is now included in the container. This allows for better live streaming and support for more protocols.\r\n- NGINX reverse proxy - A reverse proxy is now included in the container to enhance performance and provide live streaming through `go2rtc`.\r\n- A new `YOLO`component which uses Ultralytics YOLOv8 for object detection is now available.\r\n- You can now directly go to a specific timestamp on Events Page by using query parameters. More information on this can be found in the [documentation](https:\u002F\u002Fviseron.netlify.app\u002Fdocs\u002Fdocumentation\u002Fconfiguration\u002Frecordings#events-page-query-parameters).\r\n- The EdgeTPU component can now utilize multiple EdgeTPU devices for better performance. See the updated [documentation](https:\u002F\u002Fviseron.netlify.app\u002Fcomponents-explorer\u002Fcomponents\u002Fedgetpu#using-multiple-coral-edgetpu-devices) for more information.\r\n- Fullscreen button is now available on the Events Page (and the new Live Page) to allow for a better viewing experience.\r\n  Does not work in iOS, because Apple.\r\n- New way to calculate which files to move or delete in the tiered storage system.\r\n  The new implementation uses numpy instead of pure SQL queries, which should improve performance at the cost of slightly (temporary) increased memory usage.\r\n  You can limit the CPU usage of this calculation by setting the new `tier_check_cpu_limit` config option.\r\n  You can further tune the workload using the config options `tier_check_batch_size`, `tier_check_sleep_between_batches` and `tier_check_workers`.\r\n\r\n## Changes\r\n\r\n- HLS.js upgraded to 1.6.2\r\n- If you have a substream with different resolution than the main stream, the video player now gets the correct resolution from the main stream\r\n- EdgeTPU devices will now be restarted in case of multiple errors, helping to recover from temporary issues.\r\n- Segment processing is now done in a separate process, for better performance and stability of the main process.\r\n- Some unusual circumstances may cause the size based cleanup to fail. If thats the case and the first tier is full, a tier check as well as a cleanup job will be scheduled to remedy that.\r\n\r\n## Fixes\r\n\r\n- Camera name overlapping the video stream controls on the Events Page\r\n- PTZ component failing to initialize due to missing devicemgmt.wsdl file\r\n- Fix for DeepStack face recognition not working\r\n- Includes `coco.names` file in the RPI3 build, which is required for the Darknet object detection model.\r\n- Properly resubscribe to MQTT topics when the connection is lost.\r\n\r\n## Developer experience\r\n\r\n- Fixes a long standing issue with the Devcontaner failing to start due to a missing config folder.\r\n  When cloning using the instructions in the Developer docs, the config folder was not present on the host since `cloneInVolume` was used.\r\n  The config folder is now dynamically set to the correct path in the Devcontainer using the env variable `VISERON_CONFIG_PATH`.\r\n\r\nDocker images will be on Docker Hub shortly\r\n\r\n\r\n\r\n\r\n## All Changes\r\n* pin gpac version to 2.4.0 by @roflcoopter in https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F983\r\n* set requested timestamp from query parameter by @roflcoopter in https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F984\r\n* expose main stream resolution to get correct aspect ratio for streams by @roflcoopter in https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F988\r\n* pt","2025-07-17T18:26:30",{"id":238,"version":239,"summary_zh":240,"released_at":241},71753,"v3.1.2","Resolves an issue with EdgeTPU image classification which caused it to not function at all. Closes #1000\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fcompare\u002Fv3.1.1...v3.1.2","2025-05-15T06:45:03",{"id":243,"version":244,"summary_zh":245,"released_at":246},71754,"v3.1.1","Hotfix release to resolve an issue where you couldnt specify `recorder` or `snapshots` without also specifying the other under a cameras `storage` config\r\n\r\n## What's Changed\r\n* fix undefined check for recorder and snapshot tiers by @roflcoopter in https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F981\r\n* 3.1.1 by @roflcoopter in https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F982\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fcompare\u002Fv3.1.0...v3.1.1","2025-04-17T20:49:01",{"id":248,"version":249,"summary_zh":250,"released_at":251},71755,"v3.1.0","Multiple users, finally! Viseron has had authentication for quite some time, but you could only create one initial admin user during the onboarding.\r\n\r\nThis release brings a new `User mangement` page to the frontend, and with it a new `Settings` page.\r\n![settings-page](https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F9e9652a8-e8fd-4ba9-b281-3254a76d05bf)\r\n\r\n### Roles\r\n\r\nUsers can be assigned different roles: admin, write or read.\r\nSee the updated documentation: https:\u002F\u002Fviseron.netlify.app\u002Fdocs\u002Fdocumentation\u002Fconfiguration\u002Fauthentication#roles\r\n\r\n### Assign cameras\r\n\r\nIf you want to restrict what cameras each user can see, you can do so by assigning specific ones to each user.\r\nSee the updated documentation: https:\u002F\u002Fviseron.netlify.app\u002Fdocs\u002Fdocumentation\u002Fconfiguration\u002Fauthentication#assigning-cameras\r\n![image](https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F4694cacd-c08e-4b9d-9989-f0511b1e43a0)\r\n\r\n\r\n## New features\r\n\r\n- Masks can now be configured for `Post processor`. They are configured the same way as masks for object\u002Fmotion detection. A new config option `draw_post_processor_mask` is also available for the MJPEG streams in order to debug the masks\r\n- Discord notifications component, provided by @InterN0te \r\n- Gotify notifications component, provided by @InterN0te \r\n- New config option `use_last_snapshot_on_error` for FFmpeg\u002FGStreamer. It allows for returning the previously retrieved snapshot for a camera incase of a flaky connection\r\n- New filter option on Events page to group cameras. \r\n![image](https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F9dd853dc-3665-43d9-93c8-7652c00f5877)\r\n- New filter option on Events page to adjust the requested timestamp with the configured lookback.\r\n![image](https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F419a4cef-c847-4b3b-904a-3b9859b2becb)\r\n\r\n\r\n## Fixes\r\n\r\n- Wait for file updates when shutting down and using `move_on_shutdown: true`\r\n- Fix Docker compose documentation examples\r\n- Fix Codeproject AI Face recognition training. Previously faces were never recognized when training\r\n- Fix Compreface failing to start when `use_subjects` was set to `false`\r\n- Avoid reloading page when submitting login form. This caused some issues where you sometimes had to login twice\r\n- Events are now properly sorted by timestamp in the details popup on the Events page\r\n- When clicking on an event in the Events page, a snapshots is shown instead of video if its not available.\r\n  This calculation is now more forgiving and now has a 10 seconds grace period\r\n\r\nDocker images will be on Docker Hub shortly\r\n\r\n## All Changes\r\n* fix typos in docker compose examples by @roflcoopter in https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F930\r\n* catch OSError when closing ffmpeg pipe by @roflcoopter in https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F935\r\n* make sure we wait for file size update timers on shutdown by @roflcoopter in https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F934\r\n* fix cpai face recognition training by @roflcoopter in https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F939\r\n* new config option use_last_snapshot_on_error for still_image by @roflcoopter in https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F940\r\n* fix mask image coordinates being reversed by @roflcoopter in https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F943\r\n* Add Notification Category to Components Explorer by @InterN0te in https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F947\r\n* Discord component for notifications by @InterN0te in https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F944\r\n* Add Gotify notification component by @InterN0te in https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F941\r\n* Post processor masks by @roflcoopter in https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F953\r\n* update docs on how to add timestamp to recorded video by @roflcoopter in https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F954\r\n* allow for grouping events for different cameras by @roflcoopter in https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F955\r\n* better handling of compreface initialization by @roflcoopter in https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F962\r\n* User management by @roflcoopter in https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F965\r\n* Feature\u002Fauth improvements by @roflcoopter in https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F968\r\n* assign cameras to users by @roflcoopter in https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F969\r\n* properly cleanup axios interceptor and add tests for AuthContext by @roflcoopter in https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F970\r\n* updated required roles for some endpoints by @roflcoopter in https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F972\r\n* docs: clarification on events and timeline by @roflcoopter in https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F973\r\n* add lookback adjustment when clicking on an event by @roflcoopter in https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F974\r\n* Fix event sorting on the Events page by @roflcoopter in https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F975\r\n\r\n## New Contributors\r\n* @InterN0te made their first contribution in https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F947","2025-04-16T10:01:51",{"id":253,"version":254,"summary_zh":255,"released_at":256},71756,"v3.0.0","This release is a big one. It mainly focuses on continuous recordings, but also includes a lot of other features and fixes.\r\n\r\nI have been working on this release for a long time and I am very happy with the result. I hope you will enjoy it as much as I do.\r\nThe release cadence has been very slow lately and for that I am sorry. I will try to make smaller releases more often in the future.\r\n\r\n## Breaking changes\r\n\r\n- New docker volumes are required. Please see the updated [docker documentation](https:\u002F\u002Fviseron.netlify.app\u002Fdocs\u002Fdocumentation\u002Finstallation#running-viseron)\r\n- Old recordings will not be compatible with the new version and wont be viewable in the UI\r\n- Files will no longer be stored in the `\u002Frecordings` folder, and should be removed from your docker volumes\r\n- Recordings are now in HLS format. If you need to have the recordings saved as full MP4 files you can use the new config option `create_event_clip`, or use the new `Export` feature in the UI.\r\n- `mp4` file extension is now forced and `extension` is removed\r\n- `segments_folder` is removed in favor of tier paths from the new [`storage` component](https:\u002F\u002Fviseron.netlify.app\u002Fcomponents-explorer\u002Fcomponents\u002Fstorage)\r\n- Thumbnails are now stored in `\u002Fthumbnails` folder (depending on the tier config)\r\n- `filename_pattern` in `thumbnail` is removed, stored as ID of the recording\r\n- `audio_codec` behavior changed. It is now only used as stream information. To transcode Audio, set `audio_codec` under `recorder`\r\n- `trigger_recorder` is removed in favor of `trigger_event_recording`\r\n- The FFmpeg command has been changed, so if you use `raw_command` you need to update it\r\n\r\n## New features\r\n\r\n### 24\u002F7 recordings\r\n\r\nThe main feature included in this release is the option of having 24\u002F7 recordings.\r\nWith this comes a new component, `storage` which will allow you to retain data based on time (like it is today) and based one consumed space.\r\nThis allows you to use your storage to its maximum.\r\n\r\nDocumentation for how the recordings work can be found [here](https:\u002F\u002Fviseron.netlify.app\u002Fdocs\u002Fdocumentation\u002Fconfiguration\u002Frecordings)\r\n\r\nUpdated screenshots for the frontend can be found [here](https:\u002F\u002Fviseron.netlify.app\u002Fdocs\u002Fdocumentation#screenshots)\r\n\r\n### Storage Tiers\r\n\r\nAnother feature of the `storage` component are `tiers`.\r\nThey allow you to store recordings on multiple media.\r\nSay you have one 256GB SSD and a 1TB HDD, you can keep the most recent recordings on the SSD for fast access while offloading the older recordings to the HDD for archiving.\r\n\r\n### Timeline\r\n\r\nTo easily view 24\u002F7 recordings, a new Timeline view is available.\r\nIt currently shows continuous recordings and different events such as motion, detected objects, face recognition etc.\r\n\r\n![Timelineview](https:\u002F\u002Fviseron.netlify.app\u002Fimg\u002Fscreenshots\u002FViseron-screenshot-events-timeline.png)\r\n\r\n### Events\r\n\r\nThe Events view is a more concise view than the Timeline.\r\nHere you can scroll through and view all the Events.\r\n\r\n![Events view](https:\u002F\u002Fviseron.netlify.app\u002Fimg\u002Fscreenshots\u002FViseron-screenshot-events-events.png)\r\n\r\n### Other new features\r\n\r\n- A new safe mode has been added. If Viseron cant startup due to config errors, it will restore the last known good config and start up with a minimum amount of components. This will allow you to fix the config in the UI and restart Viseron without having to manually restore the config.\r\n- Allow empty password for cameras\r\n- A logfile is now created in the `\u002Fconfig` folder. This will allow you to see the logs without having to enter the container.\r\n- New telegram component provided by @smelis, which allows sending of clips and thumbnails using Telegram.\r\n- New ptz component provided by @smelis, which can be used by the Telegram component to control a camera.\r\n  The PTZ functionality will be ported to the web UI as well at some point.\r\n- `max_recording_time` has been added to the `recorder` component. This will allow you to set a maximum recording time for each recording. This is useful if you have a lot of motion events and want to keep the recordings short.\r\n- `record_only` has been added to the `recorder` component. This will allow you to record without running any detectors.\r\n- `still_image_width` and `still_image_height` has been added to the `camera` component. This will allow you to set the resolution of the still images.\r\n\r\n## Changes\r\n\r\n- A PostgreSQL database is now running inside the container. It is not possible to use an external database at the moment.\r\n- Upgraded to Ubuntu 22.04 which gives updated drivers to support newer hardware\r\n- Updated to React 18\r\n- Updated to Python 3.10\r\n- Updated to OpenCV 4.10.0\r\n- Updated to FFmpeg 5.1.2\r\n- Updated CUDA\r\n- Updated DLIB\r\n- Updated OpenCL\r\n- Updated VA-API\r\n- Updated all Python dependencies\r\n- The documentation has been updated with a lot of new chapters\r\n\r\n## Fixes\r\n\r\n- Camera passwords are now escaped, meaning that passwords with special characters are now supported.\r\n  This has been a long standing","2025-03-15T08:04:29",{"id":258,"version":259,"summary_zh":260,"released_at":261},71757,"v3.0.0b13","This beta will be the last one before the release of 3.0.0, unless some big error is found.\r\nThe release focuses on stability improvements and polishing of existing features.\r\nSome new features are also included.\r\n\r\nNew documentation chapters have also been added which aims to explain how recordings and Viseron in general is working.\r\nNew sections will be added in the future to highlight common usecases.\r\nhttps:\u002F\u002Fdev--viseron.netlify.app\u002Fdocs\u002Fdocumentation\u002Fconfiguration\r\n\r\n\r\n# Breaking changes\r\n- The `\u002Frecordings` folder is no longer used, and should be replaced with the `\u002Fevent_clips` folder.\r\nThis namechange was made in order to clear up some confusion on what this folder is storing in v3.\r\nDocker instructions have been updated: https:\u002F\u002Fdev--viseron.netlify.app\u002Fdocs\u002Fdocumentation\u002Finstallation#running-viseron\r\n- `trigger_recorder` has been deprecated in favor of `trigger_event_recording`\r\n\r\n# New features\r\n- Faces to recognize can now be pulled from Compreface directly\r\n- A logfile is now created in the config directory. Docs have been updated accordingly: https:\u002F\u002Fdev--viseron.netlify.app\u002Fcomponents-explorer\u002Fcomponents\u002Flogger#view-logs\r\n- You can now download events and snapshots from the Events page.\r\nYou can also specify a timespan for 24\u002F7 recordings which will be downloaded as an MP4 file.\r\nDocumentation can be found here: https:\u002F\u002Fdev--viseron.netlify.app\u002Fdocs\u002Fdocumentation\u002Fconfiguration\u002Frecordings#downloading-recordings\r\n- New config option `record_only` which makes it possible to create continuous recordings without running any type of detectors.\r\n- New config option `width` and `height` for `still_image` which allows setting the resolution of the still image\r\n- You can now click individual events in the popup windows on the Events\u002Ftimeline view to seek to the event\r\n- New `telegram` component provided by @smelis, which allows sending of clips and thumbnails using Telegram.\r\n- New `ptz` component provided by @smelis, which can be used by the Telegram component to control a camera.\r\nThe PTZ functionality will be ported to the web UI as well at some point.\r\n- \r\n\r\n## What's Changed\r\n* add empty config folder to allow devcontainer to start by @roflcoopter in https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F843\r\n* remove devcontainer config mount by @roflcoopter in https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F846\r\n* pin types-requests to 2.31.0.6 by @roflcoopter in https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F847\r\n* added new functionality to use compreface subjects for facial recognition by @tantonj in https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F845\r\n* Documentation updates by @roflcoopter in https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F850\r\n* add logging to file by @roflcoopter in https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F852\r\n* wait for move_on_shutdown to complete by @roflcoopter in https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F853\r\n* allow dates with only recorded video to be selected by @roflcoopter in https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F854\r\n* use yield_per to avoid cursor closing in _check_tier by @roflcoopter in https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F856\r\n* dont materialize when using yield_per by @roflcoopter in https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F857\r\n* fetch all rows to avoid cursor closing by @roflcoopter in https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F858\r\n* Avoid importing dlib when it is not used by @roflcoopter in https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F865\r\n* Allow download of events and snapshots by @roflcoopter in https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F869\r\n* check for nan value when clicking the LIVE button by @roflcoopter in https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F870\r\n* reload hls every 5 seconds on fatal errors by @roflcoopter in https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F871\r\n* reload page when getting a vite preloadError by @roflcoopter in https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F872\r\n* use getCameraNameFromQueryCache in Breadcrumbs by @roflcoopter in https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F873\r\n* apply object detection mask the same way as motion detection by @roflcoopter in https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F874\r\n* properly cleanup after test_setup_components by @roflcoopter in https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F875\r\n* add category and subcategory to OrphanedRecordingsCleanup query by @roflcoopter in https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F876\r\n* allow pressing enter to login by @roflcoopter in https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F877\r\n* remove future=True from sessionmaker by @roflcoopter in https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F878\r\n* add screenshots and videos to event download instructions by @roflcoopter in https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F879\r\n* change bash to shell in docs codeblocks by @roflcoopter in https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F880\r\n* Continuous recording config parameter by @roflcoopter in https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F881\r\n* Async Websocket API by @roflcoopter","2025-03-10T20:49:20",{"id":263,"version":264,"summary_zh":265,"released_at":266},71758,"v3.0.0b12","This release includes a multitude of fixes and changes to improve the stability of Viseron.\r\nIt also adds multiple clean up jobs to keep the database and filesystem in sync in case of any crashes.\r\n\r\nIf you have tried the v3 beta before and experienced issues, i highly suggest trying this release out since it contains loads of fixes.\r\n\r\n### Fixes\r\n\r\n- Remove volumes from the Dockerfile to avoid issues with bind mounts\r\n- Use the process watchdog for Darknet so that it is restarted in case of crashes\r\n- Add extra logging to shutdown procedure to pinpoint threads and processes that is slowing it down\r\n- Allow empty passwords for cameras\r\n- Run every thread using RestartableThread so that it gets awaited during shutdown\r\n- Fixes  the `move_on_shutdown: true` config option. Previously Viseron did not wait for the callback to finish before exiting.\r\n- A condition was missing when searchng for files for `move_on_shutdown` causing files to be moved multiple times\r\n- Delete from FilesMeta table manually instead of using a trigger\r\n- Properly throttle the function that checks if any files should be moved. This cause issues with attempting to move files multiple times\r\n- Event clips are now generated in the servers timezone instead of UTC\r\n\r\n\r\n### Cleanup jobs\r\n\r\nMultiple cleanup jobs now run regularly to make sure to keep the database and filesystem clutter free.\r\nFor instance if you delete files manually while Viseron is not started, the cleanup jobs will make sure that they are removed from the database.\r\n\r\nThey are intentionally throttled to run quite slow to not degrade performance of your host.\r\n\r\n- **OrphanedFilesCleanup** (Mondays, 3 AM)\r\n  - Removes files that are no longer associated with any recordings or events\r\n\r\n- **OrphanedDatabaseFilesCleanup** (Wednesdays, 3 AM)\r\n  - Cleans up database entries that point to non-existent files\r\n\r\n- **OrphanedFilesMetaCleanup** (Fridays, 3 AM)\r\n  - Removes metadata for files that no longer exist\r\n\r\n- **EmptyFoldersCleanup** (Daily at midnight)\r\n  - Removes empty folders to keep storage structure tidy\r\n\r\n- **OrphanedThumbnailsCleanup** (Daily at midnight)\r\n  - Removes thumbnail images that are no longer linked to any recordings\r\n\r\n- **OrphanedClipsCleanup** (Daily at midnight)\r\n  - Removes video clips that are no longer associated with any events\r\n\r\n- **OrphanedRecordingsCleanup** (Daily at midnight)\r\n  - Removes recordings that are no longer linked to any events\r\n\r\n- **OrphanedPostProcessorResultsCleanup** (Daily at midnight)\r\n  - Removes post-processing results that are no longer needed\r\n\r\n- **OrphanedObjectsCleanup** (Daily at midnight)\r\n  - Removes detected object data that is no longer associated with any events\r\n\r\n- **OrphanedMotionCleanup** (Daily at midnight)\r\n  - Removes motion detection data that is no longer linked to any events\r\n\r\n- **OldEventsCleanup** (Daily at midnight)\r\n  - Removes expired system events based on retention settings\r\n\r\nFor discussions, please use this discussion: https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fdiscussions\u002F721\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fcompare\u002Fv3.0.0b11...v3.0.0b12","2024-11-27T15:48:11",{"id":268,"version":269,"summary_zh":270,"released_at":271},71759,"v3.0.0b11","This release mainly contains new functionality to keep all the players on the Event\u002FTimeline views in sync.\r\nIt can currently be a bit unclear if a stream is paused or not when it gets out of sync due to missing segments, that will be improved in the next beta.\r\n\r\nMany performance improvements have also been made: \r\n- Fetching available timespans is now done over websocket instead of through the API which reduces the amount of requests made significantly. \r\n- If many events came close together it could cause stalls since each event would trigger a refetch from the API. These refetches are now debounced to avoid this.\r\n- The entries in the event table is now virtualized (and the thumbnails only load when you stop scrolling).\r\nThis significantly reduces lag and sluggishness of the table when having lots of events displayed.\r\n\r\nAnd lastly, React has been upgrade to version 18, along with MUI v6 and React Query v5.\r\nTogheter these upgrades should also equate to some performance improvements.\r\n\r\n\r\n# Details of all changes\r\n- Sync all active players on the Events\u002FTimeline page\r\n- Upgrade to React 18\r\n- Upgrade to MUI v6\r\n- Upgrade to react-query v5\r\n- Update timespans over using websockets\r\n- Use system event listeners to refetch event queries\r\n- Custom video controls\r\n- Pick correct stream format config for substreams\r\n- Massive performance increase for the Event table when having many events\r\n\r\nFor discussions, please use this discussion: https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fdiscussions\u002F721\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fcompare\u002Fv3.0.0b10...v3.0.0b11","2024-10-15T09:47:24",{"id":273,"version":274,"summary_zh":275,"released_at":276},71760,"v3.0.0b10","This release is focused mainly on a new layout for the Events page.\r\nYou can now select multiple cameras at once and they will be shown in a grid. Camera streams will automatically resize to give as much coverage as possible.\r\nSelecting cameras is done using the floating action button in the bottom right corner.\r\nThe streams are not yet properly synchronized. I will work on that for a coming beta.\r\nHere is a short demo of the grid:\r\n![viseron-events-camera-grid](https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Fb993db62-b850-4ce0-b36d-b5ff7b4b0e74)\r\n\r\nThere is also a new filter button located next to the Events\u002FTimeline tabs that allows you to filter out only the relevant event types.\r\n![viseron-events-filters](https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Fb7aea95f-9383-4d2a-be9f-ed7b88d9baf8)\r\n\r\n\r\n## Details of all changes\r\n- Adds filters to the Events and Timeline tabs so you can filter out only the events you want (Motion, object, ALPR etc)\r\n- Upgrades HLS.js\r\n- Fix calling loadSource twice when viewing 24\u002F7 recordings, resulting in a browser console error\r\n- Generate HLS segments directly from ffmpeg instead of writing `mp4` files and manually fragmenting.\r\nThis significantly improves the stream quality and removes some choppyness.\r\n- Make Events page more compact by removing the camera selection grid. Selecting cameras is done using the floating action button in the bottom right corner\r\n- Never delete a frame from memory if it is still the current frame.\r\nShould reduce some intermittent errors in the logs\r\n- Use the ffmpeg `hls_flags program_date_time` option to get the exact creation time for segments. Previously milliseconds were discarded causing some timing issues\r\n- Use settings under `recorder` for transcoding the generated segments\r\n- Events page now allows selection of multiple cameras and shows them in a grid with a dynamic layout based on the screen size\r\n- FFmpeg now deletes segments on its own in case of a Viseron crash\r\n- RegEx performance improved to avoid hanging on large m3u8 playlists\r\n- Improve speed of SQL queries\r\n- Camera cards now has status text and indicators showing various states\r\n- Frontend optimizations\r\n- Fix missing sahred frames of motion and object detecors\r\n- Enable safe mode if config fails to load (if a secret is missing for instance)\r\n- Other minor bug fixes \r\n\r\nFor discussions, please use this discussion: https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fdiscussions\u002F721\r\n\r\n## What's Changed\r\n* Fix small doc typo by @nneul in https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F782\r\n* Update NVIDIA link on installation doc by @afaulconbridge in https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F786\r\n* rm sponsor by @gitsponsored in https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F784\r\n* Events page and streaming improvements by @roflcoopter in https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F793\r\n* Properly delete segments by @roflcoopter in https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F796\r\n* Events page multiple camera layout and stability improvements by @roflcoopter in https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F802\r\n\r\n## New Contributors\r\n* @nneul made their first contribution in https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F782\r\n* @afaulconbridge made their first contribution in https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fpull\u002F786\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fcompare\u002Fv3.0.0b9...v3.0.0b10","2024-08-31T21:46:20",{"id":278,"version":279,"summary_zh":280,"released_at":281},71761,"v3.0.0b9","- Fix for `edgetpu` crashing (https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fdiscussions\u002F721#discussioncomment-9935017)\r\n\r\nFor discussions, please use this discussion: https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fdiscussions\u002F721\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Froflcoopter\u002Fviseron\u002Fcompare\u002Fv3.0.0b8...v3.0.0b9","2024-07-09T21:13:48"]