<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Octans on TinyChen's Blog</title><link>https://tinychen.com/tags/octans/</link><description>Recent content in Octans on TinyChen's Blog</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Thu, 23 Jul 2026 12:00:00 +0800</lastBuildDate><atom:link href="https://tinychen.com/tags/octans/index.xml" rel="self" type="application/rss+xml"/><item><title>Octans-Web电视壳信息架构与焦点模型</title><link>https://tinychen.com/20260721-octans-web-tv-shell-focus/</link><pubDate>Tue, 21 Jul 2026 12:00:00 +0800</pubDate><guid>https://tinychen.com/20260721-octans-web-tv-shell-focus/</guid><description>&lt;p&gt;本文主要介绍媒体库 Web 端在「电视显示模式」上的两层决策：一是&lt;strong&gt;信息架构必须换壳&lt;/strong&gt;——独立 TV Shell（唯一首页 + 顶栏 + overlay），而不是给桌面侧栏多 tab 放大字号、补方向键；二是&lt;strong&gt;焦点必须有 Section 模型&lt;/strong&gt;——区内策略 + 进区 / 出区声明，而不是扁平全局几何再叠业务特例。&lt;/p&gt;</description></item><item><title>Octans-Android Media3实验路径能力边界</title><link>https://tinychen.com/20260623-octans-android-media3-capability-boundaries/</link><pubDate>Tue, 23 Jun 2026 12:00:00 +0800</pubDate><guid>https://tinychen.com/20260623-octans-android-media3-capability-boundaries/</guid><description>&lt;p&gt;本文是 &lt;a href="https://tinychen.com/20260526-octans-android-playback-engine-evolution/"&gt;Octans Android 播放内核演进&lt;/a&gt; 的能力边界附录：在「默认 libmpv + Media3 ExoPlayer 本地实验」已定之后，把实验内核上三条有独立证据的收口写清楚——&lt;strong&gt;外置音轨不进产品主线&lt;/strong&gt;、&lt;strong&gt;视频轨道允许超出声明能力尝试播放&lt;/strong&gt;、&lt;strong&gt;对白增强只保留一条低延迟图&lt;/strong&gt;。目标是给读者一张可对照的实验路径能力表，而不是再讲一遍双内核为什么打开。&lt;/p&gt;</description></item><item><title>Octans-Android客户端Compose界面排障</title><link>https://tinychen.com/20260613-octans-android-compose-ui-troubleshooting/</link><pubDate>Sat, 13 Jun 2026 12:00:00 +0800</pubDate><guid>https://tinychen.com/20260613-octans-android-compose-ui-troubleshooting/</guid><description>&lt;p&gt;本文主要记录 Android 媒体库客户端（Kotlin + Jetpack Compose）在内容墙、详情页与登录恢复链路上的几类典型 UI / 状态问题：列表滚动跳动、卡片闪烁、返回后位置丢失、覆盖安装后「像被踢下线」，以及 TV 首页实验变更回退。结论面向同类 Compose + Paging 应用可复用，不绑定某一仓库路径。&lt;/p&gt;</description></item><item><title>Octans-Android单应用双Shell与TV界面选型</title><link>https://tinychen.com/20260606-octans-android-shell-and-tv-compose/</link><pubDate>Sat, 06 Jun 2026 12:00:00 +0800</pubDate><guid>https://tinychen.com/20260606-octans-android-shell-and-tv-compose/</guid><description>&lt;p&gt;本文主要介绍 Android 媒体库客户端的两层结构决策：工程上为何坚持&lt;strong&gt;单一 App 产物 + 双 Interaction Shell&lt;/strong&gt;；TV 界面上为何在行业仍以 Leanback 为主时，继续选择 &lt;strong&gt;Compose for TV&lt;/strong&gt; 并拒绝把 Leanback 接回主线。&lt;/p&gt;</description></item><item><title>Octans-跨端客户端Web基线与原生播放</title><link>https://tinychen.com/20260601-octans-cross-platform-ui-playback/</link><pubDate>Mon, 01 Jun 2026 12:00:00 +0800</pubDate><guid>https://tinychen.com/20260601-octans-cross-platform-ui-playback/</guid><description>&lt;p&gt;本文主要介绍一类媒体库产品在多端客户端上的总路线：为什么&lt;strong&gt;不能&lt;/strong&gt;把「跨平台 UI 框架是否足够好」当成顶层问题；为何应坚持 &lt;strong&gt;Web 做基线、各端原生 UI、各端 native 播放&lt;/strong&gt;；以及协议、能力上报与服务端 fallback 哪些可以共享、哪些必须按平台落地。&lt;/p&gt;</description></item><item><title>Octans-win客户端UI路线演进</title><link>https://tinychen.com/20260531-octans-windows-desktop-ui-route/</link><pubDate>Sun, 31 May 2026 12:00:00 +0800</pubDate><guid>https://tinychen.com/20260531-octans-windows-desktop-ui-route/</guid><description>&lt;p&gt;本文主要介绍一类 Windows 桌面媒体客户端在 UI 路线上的演进：何时用 WebView2 复用主 Web 前端换速度，为何一度把 WinUI 3 写成长期正式方向，以及如何在「两条都重要」时明确&lt;strong&gt;当前产品主线&lt;/strong&gt;，避免文档与开发默认值互相打架。&lt;/p&gt;</description></item><item><title>Octans-Android播放内核从libmpv到双内核</title><link>https://tinychen.com/20260526-octans-android-playback-engine-evolution/</link><pubDate>Tue, 26 May 2026 12:00:00 +0800</pubDate><guid>https://tinychen.com/20260526-octans-android-playback-engine-evolution/</guid><description>&lt;p&gt;本文主要介绍 Octans Android 客户端播放内核从「LGPL libmpv 单内核」到「默认 libmpv + Media3 ExoPlayer 本地实验」的选型与演进过程，以及 HTTPFILE / HLS、字幕、硬解等有证据支撑的能力边界。讨论的是决策可被 supersede 的工程取舍，而不是一套永恒正确的播放器教条。&lt;/p&gt;</description></item><item><title>Octans-win客户端libmpv与服务端FFmpeg分工</title><link>https://tinychen.com/20260526-octans-windows-libmpv-lgpl-runtime/</link><pubDate>Tue, 26 May 2026 12:00:00 +0800</pubDate><guid>https://tinychen.com/20260526-octans-windows-libmpv-lgpl-runtime/</guid><description>&lt;p&gt;本文主要介绍 Octans Windows 客户端为何不能直接复用服务端 full FFmpeg，而要单独维护一条受控 LGPL &lt;code&gt;libmpv&lt;/code&gt; 播放 runtime：许可证边界、动态链接与 source offer / SBOM 口径、本地播放配置，以及客户端能力如何上报给服务端做 DirectPlay / HLS 规划。讨论的是可 supersede 的工程取舍，不是法律意见，也不是已全量上线的发布承诺。&lt;/p&gt;</description></item><item><title>Octans-联网字幕搜索匹配与同步</title><link>https://tinychen.com/20260526-octans-network-subtitle-search/</link><pubDate>Tue, 26 May 2026 12:00:00 +0800</pubDate><guid>https://tinychen.com/20260526-octans-network-subtitle-search/</guid><description>&lt;p&gt;本文主要说明自托管媒体库（以 Octans 联网字幕搜索 / 下载 / 同步方案为例）在接入第三方字幕站时，如何把 Provider 检索、候选评分、下载后校验与自动时间轴修正分层，并划清 hash 匹配、速率配额与隐私安全的职责边界。讨论的是可落地的架构取舍，不是某一版已发布 API 清单。&lt;/p&gt;</description></item><item><title>Octans-媒体库Docker私有化部署</title><link>https://tinychen.com/20260525-octans-docker-private-deploy/</link><pubDate>Mon, 25 May 2026 12:00:00 +0800</pubDate><guid>https://tinychen.com/20260525-octans-docker-private-deploy/</guid><description>&lt;p&gt;本文主要说明自托管媒体库服务（以 Octans 为例）如何用&lt;strong&gt;一个应用镜像&lt;/strong&gt;完成私有化部署：SQLite / PostgreSQL、可选 nginx 与 GPU 都通过运行参数或 Compose overlay 选择；并覆盖卷挂载、端口、环境变量占位、就绪探针、硬解设备映射，以及镜像 tag 通道的最小公开口径。&lt;/p&gt;</description></item><item><title>Octans-Linux媒体库WebDAV与SMB NFS选型</title><link>https://tinychen.com/20260518-octans-linux-webdav-smb-nfs/</link><pubDate>Mon, 18 May 2026 12:00:00 +0800</pubDate><guid>https://tinychen.com/20260518-octans-linux-webdav-smb-nfs/</guid><description>&lt;p&gt;本文主要讨论自托管媒体库（以 Octans 一类 Linux 后端为例）如何接入&lt;strong&gt;远程&lt;/strong&gt;片库：WebDAV、SMB、NFS 各自适合什么场景，时延与鉴权差在哪里，锁与一致性能指望多少，以及在 Docker / 容器部署里「系统挂载」和「进程内直接连协议」该怎么选。&lt;/p&gt;</description></item><item><title>Octans-Unraid核显SR-IOV直通做VAAPI转码</title><link>https://tinychen.com/20260517-octans-unraid-uhd770-sriov-vaapi/</link><pubDate>Sun, 17 May 2026 12:00:00 +0800</pubDate><guid>https://tinychen.com/20260517-octans-unraid-uhd770-sriov-vaapi/</guid><description>&lt;p&gt;本文主要记录一类常见自托管场景：Unraid 宿主机使用 Intel UHD 770 核显，通过 SR-IOV 创建 VF，把 VF 直通给 Ubuntu 虚拟机，用于 VAAPI / QSV / FFmpeg 以及 Jellyfin / Plex 等媒体服务的硬件转码。命令与 PCI 地址以示例给出，部署时请按本机 &lt;code&gt;lspci&lt;/code&gt; 结果替换。&lt;/p&gt;</description></item><item><title>Octans-MediaInfo与ffprobe探测怎么分工</title><link>https://tinychen.com/20260515-octans-mediainfo-vs-ffprobe-probe/</link><pubDate>Fri, 15 May 2026 12:00:00 +0800</pubDate><guid>https://tinychen.com/20260515-octans-mediainfo-vs-ffprobe-probe/</guid><description>&lt;p&gt;本文主要记录在自托管媒体库场景下，扫描探测工具在 MediaInfo 与 ffprobe 之间应如何分工：速度差从哪里来、字段面谁更宽、哪些事实更适合交给 FFmpeg 视角，以及为何不宜一次性把扫描主数据源全量切到 ffprobe。&lt;/p&gt;</description></item><item><title>Octans-媒体库HLS转码缓存存储选型</title><link>https://tinychen.com/20260502-octans-transcode-cache-storage/</link><pubDate>Sat, 02 May 2026 12:00:00 +0800</pubDate><guid>https://tinychen.com/20260502-octans-transcode-cache-storage/</guid><description>&lt;p&gt;本文主要说明自托管媒体库（以 Octans 播放子系统为例）在 &lt;strong&gt;HLS 转码缓存&lt;/strong&gt; 上的存储选型：当前短窗口 + tmpfs 适合什么、为何生产默认应迁到 &lt;strong&gt;SSD 本地盘 + 应用层治理&lt;/strong&gt;，以及容量模型、网络文件系统边界和清理优先级如何一起约束架构。&lt;/p&gt;</description></item><item><title>Octans-媒体库自维护FFmpeg工具链</title><link>https://tinychen.com/20260501-octans-ffmpeg-toolchain-runtime/</link><pubDate>Fri, 01 May 2026 12:00:00 +0800</pubDate><guid>https://tinychen.com/20260501-octans-ffmpeg-toolchain-runtime/</guid><description>&lt;p&gt;本文主要介绍自托管媒体库在播放转码链路上的 FFmpeg 工具链治理：为何不能默认依赖发行版自带 &lt;code&gt;ffmpeg&lt;/code&gt;，历史 Jellyfin FFmpeg 路径解决了什么，自维护 runtime 如何安装与验证，以及 capability 探测与「二进制能跑」之间的差别。&lt;/p&gt;</description></item><item><title>Octans-媒体库后端结果契约与配置可视化</title><link>https://tinychen.com/20260430-octans-backend-result-config-viz/</link><pubDate>Thu, 30 Apr 2026 12:00:00 +0800</pubDate><guid>https://tinychen.com/20260430-octans-backend-result-config-viz/</guid><description>&lt;p&gt;本文主要介绍一类自托管媒体库（以 Octans 后端为例）在两件看似无关、实则都决定「长期可维护性」的决策上如何收口：一是&lt;strong&gt;内部结果模型与错误契约统一&lt;/strong&gt;，二是&lt;strong&gt;配置可视化首版的边界&lt;/strong&gt;。前者解决 Controller / Service 各造一套 &lt;code&gt;*ServiceResult&lt;/code&gt; 的分裂；后者解决「配置能改、能看、能审计」与「部署覆盖、启动链路、权限面」之间的张力。讨论的是可被 supersede 的工程边界，不是某一版本的接口字段全集。&lt;/p&gt;</description></item><item><title>Octans-媒体库动态范围与色彩管线</title><link>https://tinychen.com/20260426-octans-dynamic-range-color-pipeline/</link><pubDate>Sun, 26 Apr 2026 12:00:00 +0800</pubDate><guid>https://tinychen.com/20260426-octans-dynamic-range-color-pipeline/</guid><description>&lt;p&gt;本文主要说明自托管媒体库（以 Octans 一类播放子系统为例）在协商 DirectPlay / DirectStream / Transcode 时，为何「能解码」不等于「能正确显示」：动态范围与色彩管线应作为独立事实进入 Planner，DirectStream 的视频 copy 不能自动修 HDR，tone mapping 属于完整转码，以及 Dolby Vision 为何必须按 profile / fallback 保守处理。&lt;/p&gt;</description></item><item><title>Octans-媒体库轨识别与动态范围探测</title><link>https://tinychen.com/20260426-octans-media-track-dynamic-range/</link><pubDate>Sun, 26 Apr 2026 12:00:00 +0800</pubDate><guid>https://tinychen.com/20260426-octans-media-track-dynamic-range/</guid><description>&lt;p&gt;本文主要说明自托管媒体库（以 Octans 扫描与轨事实层为例）如何把「容器内 stream 事实」和「给 UI / NFO / 选轨用的展示轨」分层建模，如何用语言与标题启发式生成可读轨名，以及视频动态范围（HDR / Dolby Vision 等）为何要按证据优先级保守分类、并在必要时做分层探针。探测工具选型本身见同系列 MediaInfo / ffprobe 文，本文不重复速度与字段面对比。&lt;/p&gt;</description></item><item><title>Octans-媒体库开发基础知识速记</title><link>https://tinychen.com/20260426-octans-media-dev-basics-notes/</link><pubDate>Sun, 26 Apr 2026 12:00:00 +0800</pubDate><guid>https://tinychen.com/20260426-octans-media-dev-basics-notes/</guid><description>&lt;p&gt;本文主要把早期项目笔记中与媒体库开发直接相关的&lt;strong&gt;基础知识&lt;/strong&gt;收成一篇速记：动态范围与蓝光规格、API 契约概念、实时进度通道，以及像素格式 / 图像处理边界。不追求百科完整度；详细播放与架构见同系列专题。&lt;/p&gt;</description></item><item><title>Octans-媒体库播放架构总览</title><link>https://tinychen.com/20260425-octans-playback-architecture-overview/</link><pubDate>Sat, 25 Apr 2026 12:00:00 +0800</pubDate><guid>https://tinychen.com/20260425-octans-playback-architecture-overview/</guid><description>&lt;p&gt;本文主要从&lt;strong&gt;架构边界&lt;/strong&gt;角度梳理一类自托管媒体库（以 Octans 播放子系统为例）：播放为何从 Catalog / 任务系统里拆出来，服务端与客户端各管什么，以及 PlaybackSession、Planner、DirectPlay / HLS 交付如何构成当前 Web 主链。重点是职责与名词，而不是接口字段大全。&lt;/p&gt;</description></item><item><title>Octans-媒体库播放能力规划与分流</title><link>https://tinychen.com/20260425-octans-playback-capability-planner/</link><pubDate>Sat, 25 Apr 2026 12:00:00 +0800</pubDate><guid>https://tinychen.com/20260425-octans-playback-capability-planner/</guid><description>&lt;p&gt;本文主要把一类自托管媒体库（以 Octans 播放子系统为例）的&lt;strong&gt;播放能力决策&lt;/strong&gt;写成可复用的 Planner 模型：输入不是「codec 能不能播」的布尔判断，而是客户端能力、媒体事实与策略的交叉求解；输出是 DirectPlay / DirectStream / Transcode（及无法成计划时的 Unsupported），并与交付方式（HttpFile / Hls 等）解耦。&lt;/p&gt;</description></item><item><title>Octans-媒体库播放排障从会话到HLS</title><link>https://tinychen.com/20260425-octans-playback-debugging-guide/</link><pubDate>Sat, 25 Apr 2026 12:00:00 +0800</pubDate><guid>https://tinychen.com/20260425-octans-playback-debugging-guide/</guid><description>&lt;p&gt;本文主要记录一类自托管媒体库（以 Octans 播放子系统为例）在 Web 与 Windows native/libmpv 播放链路上的排障方法：从创建会话、DirectPlay / HLS 分流、暂停恢复与 seek，到字幕资源、硬解回退与残留 window 清理。命令与路径已通用化，便于对照同类架构做定位。&lt;/p&gt;</description></item><item><title>Octans-媒体库转码支持矩阵怎么读</title><link>https://tinychen.com/20260425-octans-transcode-support-matrix-guide/</link><pubDate>Sat, 25 Apr 2026 12:00:00 +0800</pubDate><guid>https://tinychen.com/20260425-octans-transcode-support-matrix-guide/</guid><description>&lt;p&gt;本文主要讲一类自托管媒体库（以 Octans 播放子系统为例）的转码支持矩阵&lt;strong&gt;读法&lt;/strong&gt;：它回答什么、不回答什么，DirectPlay / DirectStream / Transcode 如何分层，以及客户端能力、媒体事实与服务端策略如何共同决定播放路线。重点是决策机制，而不是把整张能力表抄进文章。&lt;/p&gt;</description></item><item><title>Octans-媒体库PostgreSQL部署与危险重建</title><link>https://tinychen.com/20260423-octans-postgresql-deploy-rebuild/</link><pubDate>Thu, 23 Apr 2026 12:00:00 +0800</pubDate><guid>https://tinychen.com/20260423-octans-postgresql-deploy-rebuild/</guid><description>&lt;p&gt;本文主要说明一类自托管媒体库（以 Octans 后端为例）在选用 PostgreSQL 作为可选数据库 Provider 时，如何完成&lt;strong&gt;安全部署&lt;/strong&gt;、&lt;strong&gt;停服双向迁移&lt;/strong&gt;与&lt;strong&gt;部署冒烟&lt;/strong&gt;；同时划清&lt;strong&gt;破坏性重建&lt;/strong&gt;（删除并重建整个业务库）的适用场景、数据影响与「无备份、无窗口计划绝不在生产执行」的边界。密码与主机一律占位。&lt;/p&gt;</description></item><item><title>Octans-媒体库混合前端UI基座选型</title><link>https://tinychen.com/20260419-octans-frontend-ui-stack-selection/</link><pubDate>Sun, 19 Apr 2026 12:00:00 +0800</pubDate><guid>https://tinychen.com/20260419-octans-frontend-ui-stack-selection/</guid><description>&lt;p&gt;本文主要介绍在「媒体内容产品 + 管理后台」混合型前端（以 Octans Web 为例）里，如何做 UI 基座长期选型：候选如何比、为何不再把强预设组件库当视觉底座，以及落地后的实际栈形态。结论面向同类 Vue 3 产品可复用，不绑定某一仓库路径。&lt;/p&gt;</description></item><item><title>Octans-媒体库图片访问与签名URL</title><link>https://tinychen.com/20260416-octans-image-access-architecture/</link><pubDate>Thu, 16 Apr 2026 12:00:00 +0800</pubDate><guid>https://tinychen.com/20260416-octans-image-access-architecture/</guid><description>&lt;p&gt;本文主要说明自托管媒体库（以 Octans 为例）在&lt;strong&gt;媒体图片访问&lt;/strong&gt;上的架构边界：谁推导 URL、谁做鉴权、HTTP 缓存与权限变更如何共处，以及 Signed URL 与「三层资产模型」相比为何更匹配家用 / 小团队私有化场景。重点是 &lt;strong&gt;CDN / 鉴权 / 缓存&lt;/strong&gt; 的分层口径，而不是接口字段或迁移 runbook。&lt;/p&gt;</description></item><item><title>Octans-媒体库硬转码与色调映射选型</title><link>https://tinychen.com/20260415-octans-hw-transcode-tone-mapping/</link><pubDate>Wed, 15 Apr 2026 12:00:00 +0800</pubDate><guid>https://tinychen.com/20260415-octans-hw-transcode-tone-mapping/</guid><description>&lt;p&gt;本文主要说明自托管媒体库（以 Octans 播放子系统为例）在服务端 HLS 转码时，如何在软件、&lt;code&gt;tonemap_vaapi&lt;/code&gt; 与 &lt;code&gt;tonemap_opencl&lt;/code&gt; 之间做 tone mapping 选型：能力门禁、按动态范围分流的 Planner 逻辑、验证分层含义，以及「厂商 codec 矩阵 ≠ 本机已接线」的边界。设备节点以 &lt;code&gt;/dev/dri/renderD128&lt;/code&gt; 一类占位符给出。&lt;/p&gt;</description></item><item><title>Octans-客户端字幕渲染与不烧录策略</title><link>https://tinychen.com/20260412-octans-client-subtitle-rendering/</link><pubDate>Sun, 12 Apr 2026 12:00:00 +0800</pubDate><guid>https://tinychen.com/20260412-octans-client-subtitle-rendering/</guid><description>&lt;p&gt;本文主要说明自托管媒体库（以 Octans 播放链路为例）在「尽量 Direct Play、字幕不触发视频转码」前提下，如何把字幕识别、抽取与缓存放在服务端，把 WebVTT / ASS / PGS 等形态的实际绘制交给客户端；并厘清 full-cache、HLS sidecar delay 与烧录路线的边界，避免把排障问题误当成「再烧一遍就好了」。&lt;/p&gt;</description></item><item><title>Octans-媒体库NFO导出字段标准</title><link>https://tinychen.com/20260412-octans-nfo-export-standard/</link><pubDate>Sun, 12 Apr 2026 12:00:00 +0800</pubDate><guid>https://tinychen.com/20260412-octans-nfo-export-standard/</guid><description>&lt;p&gt;本文主要说明自托管媒体库在把刮削结果落到磁盘 NFO 时，应如何看待「标准」：Kodi 方言是事实母版、字段全集与默认可互操作子集不是一回事，以及为何宜用 standard / extended 双版本而不是「一份超集 NFO 打天下」。以 Octans 一类治理型媒体库为背景，结论面向 Kodi / Emby / Jellyfin 兼容心智，不展开某一实现的完整字段表。&lt;/p&gt;</description></item><item><title>Octans-媒体库扫描刮削重命名与删除边界</title><link>https://tinychen.com/20260412-octans-scanner-scraper-renamer/</link><pubDate>Sun, 12 Apr 2026 12:00:00 +0800</pubDate><guid>https://tinychen.com/20260412-octans-scanner-scraper-renamer/</guid><description>&lt;p&gt;本文主要从&lt;strong&gt;职责边界&lt;/strong&gt;角度梳理一类自托管媒体库后端（以 Octans 扫描 / 刮削 / 重命名 / 删除子系统为例）：为什么必须从物理文件出发，如何把「文件事实」升维成「逻辑身份」，以及重命名与删除为何都要 Preview-first，并和扫描前自愈拆开。重点是主链怎么切、各段做什么与不做什么，而不是任务 DTO、正则细节或某次 API 字段表。&lt;/p&gt;</description></item><item><title>Octans-媒体库用户角色与权限分层</title><link>https://tinychen.com/20260412-octans-user-role-iam-principles/</link><pubDate>Sun, 12 Apr 2026 12:00:00 +0800</pubDate><guid>https://tinychen.com/20260412-octans-user-role-iam-principles/</guid><description>&lt;p&gt;本文主要说明一类自托管媒体库（以 Octans 为例）在**身份与访问管理（IAM）**上应先固定哪些原则：全局角色只管系统级能力，媒体库访问另用 &lt;code&gt;R/W&lt;/code&gt; 表达；再通过三类库集合与资源范围解析，把列表过滤、详情隐藏、写操作拒绝和播放 / 图片等边角资源收进同一套语义。重点是分层与边界，不是登录配置、迁移步骤或排障命令。&lt;/p&gt;</description></item><item><title>Octans-自托管媒体库全局架构原则</title><link>https://tinychen.com/20260412-octans-global-architecture-whitepaper/</link><pubDate>Sun, 12 Apr 2026 12:00:00 +0800</pubDate><guid>https://tinychen.com/20260412-octans-global-architecture-whitepaper/</guid><description>&lt;p&gt;本文主要介绍一类自托管媒体库（以 Octans 为演进样本）在全局架构上的稳定原则：它要同时做「本地资产治理」与「可持续运行的播放服务」，因此必须在物理文件事实、逻辑实体、后台任务与多端客户端之间划清边界。文中对照早期白皮书思路与当前架构总览，&lt;strong&gt;历史口号若与现行决策冲突，以现行系列文为准&lt;/strong&gt;。&lt;/p&gt;</description></item></channel></rss>