切片收藏
切片(Clip)是 SakuraMedia 的一个收藏维度:在播放某个影片资源时,你可以从缩略图里圈出一小段你喜欢的区间,把它单独切出来收藏,之后还能把来自不同影片的切片串成一个可以连续播放的「切片合集」。
这页讲的是这个功能是什么、怎么用,以及几个一定要先知道的行为约定。部署相关(存储目录、持久化卷)放在最后,也可以直接看进阶部署。
这功能解决什么
很多时候你真正想留住的,并不是「整部影片」,而是其中某一小段。切片收藏就是为这个场景设计的:
- 把一部影片里你最在意的那几十秒单独存下来
- 跨多部影片,把这些零散的精彩段落集中到一个合集里
- 像歌单一样,按你排好的顺序连续播放这些切片
怎么创建一个切片
切片可以在播放页创建,也可以在影片详情页的「缩略图」标签里创建,基本流程是:
- 打开一个影片资源开始播放,或在影片详情里打开「缩略图」标签
- 点开缩略图工具栏的「圈选切片」开关(剪刀图标),在缩略图轴上选一张缩略图作为起点,再选一张作为终点,圈出
[起点, 终点]这段区间 - (可选)给这个切片起个标题
- 保存,后端会立即把这段切出来
几个要点:
- 按缩略图选点,粒度是 10 秒。缩略图本身是每 10 秒一帧生成的,所以你能圈到的最小精度也是 10 秒级别。
- 首尾可能偏移几秒。后端用 ffmpeg 流复制(
-c copy)切片,不重新编码,切点会对齐到最近的关键帧,所以实际切片的首尾可能和你圈的位置差几秒,这是正常的。 - 同步生成,存在长度上限。切片在你点保存的这次请求里同步完成,所以圈选区间的时长不能超过
media_clip_max_duration_seconds(默认 900 秒,即 15 分钟)。另外单次 ffmpeg 还有一个墙钟超时media_clip_ffmpeg_timeout_seconds(默认 120 秒),遇到坏文件或慢挂载卡死时会被强制结束并按失败处理。这两个值都可以在[media]配置 里调整。 - 重复圈同一段会去重。同一个影片资源上圈出完全相同的区间,不会重复生成,会直接返回已有的那个切片。
切片是独立资产:删了原影片,切片还在
这是切片功能最重要的一条设计,务必理解:
切片与来源影片解耦
切片一旦切出来,就是一份独立的 mp4 文件,和它的来源影片资源解耦:
- 删除来源影片资源时,不会删除切片——切片记录、切好的文件、以及它的番号快照都会保留,切片仍然可以继续播放。
- 系统只是把切片和来源的关联置空(来源没了,封面预览帧这类「实时从来源缩略图解析」的内容会缺失,但切片本体不受影响)。
换个角度说:切片值不值得当成长期收藏来对待,取决于你自己——它不会因为你清理了原始影片就跟着消失。也正因为如此,切片文件需要单独持久化(见下文部署须知)。
切片合集:跨影片连续播放
切片合集(Clip Collection)是把多个切片串成一个有序列表的机制:
- 合集成员只能是切片,不放整部影片,也不放单个时刻。
- 成员有顺序,可以整体重排;播放时按你排好的顺序一个接一个连续播放。
- 可以跨影片:合集里的切片可以来自完全不同的影片。
- 同一个切片可以同时属于多个合集。
- 删除一个切片时,它会自动从所有合集里移除;删除一个合集时,只删合集本身,不会删切片本体。
和「影片播放列表」是两套东西
影片播放列表(Playlist)的成员是整部影片,切片合集的成员是切片,两者互不影响,按需各用各的。
部署须知:必须单独挂一个持久化卷
因为切片是独立文件、而且和来源影片解耦,它们有自己的存储目录:
- 配置项:
[media]下的media_clip_root_path,默认/data/media-clips - 这个目录必须作为独立 docker 卷映射到宿主机持久化,否则容器重建或升级镜像后,你收藏的所有切片文件都会丢失
- 目录需要能被容器运行用户(
PUID/PGID)写入
对应的 compose 卷挂载、目录规划详见进阶部署 → 完整 compose.yaml 说明,配置项说明详见配置说明 → [media]。
常见失败与排查
| 现象 | 原因 |
|---|---|
| 提示区间无效 | 起点和终点选成了同一张缩略图,没圈出有效区间 |
| 提示切片过长 | 圈选区间超过了 media_clip_max_duration_seconds(默认 900 秒) |
| 切片失败 | 来源文件损坏、慢挂载导致 ffmpeg 卡死被超时回收,或磁盘 / 权限问题 |
如果反复切片失败,优先确认 media_clip_root_path 对应的卷已经挂载、且容器用户对它有写权限。
相关页面
- 配置项
media_clip_*字段说明: 配置说明 →[media] - 切片存储卷怎么挂: 进阶部署
- 常见问题: 常见问题 → 切片与 PornBox 视频
