首页 / 内容运营

封面与切片加速

把远程封面下载到本地并压缩转码;把播放分片地址替换为自建加速域名。含开启步骤、各选项含义、Nginx 示例和上线检查。

这一章讲「系统设置」里两项互相独立、但都影响图片加载与播放速度的功能:

功能 后台入口 解决什么问题
封面图处理配置 系统设置 → 封面图处理配置(/settings/coverConfig) 采集来的封面在远程图片源上,不稳定或太慢;把它们保存到你自己的服务器,并压缩、转码
切片加速 系统设置 → 切片加速(/settings/sliceAcceleration) 资源站线路慢;把播放列表里的资源站域名换成你自建的加速域名
视频教程封面本地化与切片加速:让图片和播放更稳 5:17
封面本地化与切片加速:让图片和播放更稳

步骤章节(点击跳转)

空格 播放/暂停 · 方向键左右 快退/快进 5 秒 · F 全屏 · 画面由代码实时渲染,配音与配乐为 64kbps 单声道 MP3

封面图下载、压缩、转码与重新下载,以及切片加速的域名映射、使用前提、Nginx 代理和上线流程。

两个页面都是「改完统一保存」:点击右上角「保存配置」才生效,「重新加载」会放弃未保存的修改。

封面图处理配置

封面图处理配置
封面图处理配置

采集的视频通常带远程封面。开启后,系统会在后台持续扫描视频,把可访问的远程封面保存为本地封面地址,前台展示时就不再依赖外部图片源。它影响视频管理中的视频卡片、详情页和播放页封面;不影响演员、合辑、发行商、广告图、区块图等你手动上传的图片。

开启步骤

  1. 进入 系统设置 → 封面图处理配置;
  2. 在「下载设置」里按下表填写,打开右上角的「启用」开关;
  3. 按需开启「图片压缩」「图片转码」;
  4. 点击「保存配置」;
  5. 等待一段时间,到视频列表或前台查看封面是否已变为本地地址,并抽查清晰度、尺寸和格式。

下载设置

配置项 说明
启用 封面下载任务的总开关,关闭后不再继续下载
下载频率(每张间隔) 每下载一张封面后等待的秒数,范围 1-3600。一般从 1-3 秒起步,太快可能被远程图片源限制
失败重试次数 0-10 次,网络不稳定时建议 2-3 次
封面 404 处理方式 远程封面明确不存在(404 或 410)时怎么办:跳过(保留视频) 或 删除(软删除视频)
失败自动删除视频 失败达到上限后是否自动软删除对应视频

关于两个「删除」相关选项:

选项 效果 适合场景
跳过(保留视频) 保留视频记录,记录失败状态,避免反复处理同一张无效封面 推荐默认选择;刚接入采集源或内容源不稳定时使用
删除(软删除视频) 视频被标记为删除,不再正常展示(不是物理删除) 内容强依赖封面,封面失效就不想展示的站点
失败自动删除视频:关闭 失败达到上限后保留视频,不再重复重试 正式站点建议关闭,避免临时故障让大量视频下线
失败自动删除视频:开启 失败达到上限后自动软删除 确认内容源稳定后再考虑,并把重试次数设为 3 次以上

图片压缩与图片转码

配置项 说明
图片压缩:启用 开启后,原图宽或高超过设定值时等比缩小(不拉伸、不放大小图)
最大宽度 / 最大高度 压缩开启时必须填写,单位 px,建议不低于 100。参考值 800 × 600;要高清大图可提高到 1280 × 720
图片转码:启用 开启后把下载的封面统一保存为目标格式
目标格式 JPEG(体积小,适合大多数封面)或 PNG(保留透明、边缘清晰,体积更大)。关闭转码则尽量保留原格式

重新下载全部图片

点击右上角的「重新下载全部图片」,会清空下载进度和失败记录,让系统从头检查并下载全部视频封面。适用于:

  • 修改了压缩尺寸或转码格式,希望已有封面按新设置重新生成;
  • 之前远程图片源异常,现已恢复,需要重新下载失败的封面;
  • 之前配置错误导致大量失败,修正后重新处理。

注意

  • 必须先关闭封面下载总开关才能操作,否则会提示先关闭;
  • 内容量大时耗时较长,会增加服务器网络、磁盘写入和远程图片源的压力,建议在访问低峰期操作。

前台效果与推荐配置

成功下载后,视频列表、详情页和用作分享图的封面都会使用本地地址;某个视频还没生成本地封面时,前台会继续使用原远程封面。

配置项 稳妥运营 严格内容质量
启用 开启 开启
下载频率 1-3 秒 适当放慢
失败重试次数 3 次 3-5 次
封面 404 处理方式 跳过(保留视频) 删除(软删除视频)
失败自动删除视频 关闭 谨慎开启
图片压缩 开启,800 × 600 或 1280 × 720 同左
图片转码 开启,JPEG 同左

切片加速

切片加速
切片加速

切片加速只改写播放列表(HLS 索引)里的分片地址:把资源站域名替换为你自建的加速域名(Nginx 或 Cloudflare)。当资源站自身线路较慢时,可以在与资源站网络质量更好的服务器上部署固定上游的反向代理,播放器就通过加速域名请求分片、加密密钥和初始化文件。

使用时请遵守资源站的公开说明和采集 API 使用规则。切片加速只改变访问链路,不能用于绕过鉴权、防盗链或其它访问限制。

text
采集 API → HLS 地址 → 发财CMS 改写分片域名 → 你的加速代理 → 公开资源站

域名映射总控

配置项 说明
启用 切片加速总开关。关闭后保留规则但不改写地址,也不再收集未拦截域名
映射规则 / 启用规则 已添加的规则总数 / 当前可参与匹配的规则数
替换方式 按域名前缀替换,保留剩余路径和查询参数

切片加速需要订阅有效。未订阅时总开关、添加映射和保存都不可用,页面顶部会出现「立即订阅」入口。

映射规则

配置项 说明
状态 控制单条规则是否参与替换,停用后仍保留在列表中
原始域名 需要被替换的资源站域名前缀,可带路径前缀,如 https://source-a.example.net/media
加速域名 替换后的访问前缀,可带路径前缀,如 https://hls-a.example.com/hls
备注 线路名称、资源站、适用地区等
删除 从当前页面移除,点击「保存配置」后生效

效果示例:

text
https://source-a.example.net/video/a/001.ts?token=demo
→ https://hls-a.example.com/video/a/001.ts?token=demo

会被替换的是播放列表里的绝对 HTTP/HTTPS 地址:分片或子播放列表、加密密钥地址、初始化文件。相对地址、协议/域名/端口与规则不一致、路径不在规则范围内、已停用的规则都不会被替换。

填写要点:

  • 都要写完整的 http:// 或 https://;保存时自动去除首尾空格和末尾的 /;
  • 协议、域名、非默认端口都是匹配条件,http:// 与 https:// 不互相匹配;
  • 总开关开启时,至少要有一条完整规则才能保存;
  • 多条规则同时匹配时列表中第一条生效,所以把更具体的路径规则放前面;
  • 带路径前缀的映射(/media → /hls),要求代理端也把 /hls/ 固定转发到资源站的 /media/;
  • 有多个资源站时,建议各分配独立的加速子域名,线路、超时和缓存策略可以分别调整,单个资源站故障也不影响其它入口。

使用前提

场景 条件
点播视频 订阅有效、采集源使用默认播放器,并在「订阅管理 → 订阅功能」中开启「HLS 索引缓存」
短视频 / 短剧 默认播放器 + 本地 HLS 处理 + 满足点播的 HLS 索引缓存要求
直播 订阅有效并启用切片加速(不依赖点播的 HLS 索引缓存开关)
后台视频预览 使用后台本地 HLS 预览时同样应用规则

页面提示「点播加速未生效」时,先去开启「HLS 索引缓存」。它只保存处理后的播放列表,不缓存分片本身;要缓存分片,请在 Nginx、Cloudflare 等 CDN 里单独配置。

未拦截域名

总开关开启后,页面会记录「出现在播放列表里、但还没有配置映射」的资源站域名,帮你发现采集接口返回的备用线路或遗漏线路:

展示项 说明
来源域名 协议、域名和非默认端口,不含路径和参数
首次发现 / 最近发现 服务运行期间第一次 / 最近一次观察到的时间
发现次数 在不同播放列表处理中出现的次数

最多保留 100 个域名,超过后移除最久未出现的;服务重启后需要重新收集。「刷新记录」只更新这份记录,不会覆盖你尚未保存的规则;「清空记录」需要确认;保存新规则后,已被覆盖的域名会自动从列表消失。

推荐上线流程

  1. 确认资源站免费公开、提供正式采集接口,并了解它的使用规则;
  2. 为每个资源站准备独立的加速子域名;
  3. 配置并验证 Nginx 到资源站的固定上游反向代理(见下),按需设置缓存;
  4. 需要 Cloudflare 时,等 Nginx 验证正常后再开启橙色云和缓存规则;
  5. 在后台添加映射规则,先只启用一条;
  6. 打开总开关,点击「保存配置」;
  7. 播放一个点播视频或直播,用浏览器开发者工具确认分片请求已经走到加速域名,并检查返回状态、Range、跨域和缓存命中;
  8. 刷新「未拦截域名」,确认没有遗漏主要资源站,再逐步添加其它规则。

Nginx 反向代理示例

在加速域名的服务器上用 Nginx 固定转发到资源站(注意:proxy_pass 必须写固定上游,不要用请求参数拼接上游地址,否则会形成开放代理):

nginx
server {
    listen 80;
    server_name hls-a.example.com;
    return 301 https://$host$request_uri;
}
server {
    listen 443 ssl http2;
    server_name hls-a.example.com;
    ssl_certificate     /etc/nginx/ssl/hls-a.example.com/fullchain.pem;
    ssl_certificate_key /etc/nginx/ssl/hls-a.example.com/privkey.pem;
    location / {
        if ($request_method = OPTIONS) {
            add_header Access-Control-Allow-Origin  "https://www.example.com" always;
            add_header Access-Control-Allow-Methods "GET, HEAD, OPTIONS" always;
            add_header Access-Control-Allow-Headers "Range, If-Range, Origin, Accept" always;
            add_header Access-Control-Max-Age 86400 always;
            return 204;
        }
        limit_except GET HEAD OPTIONS { deny all; }
        proxy_pass https://source-a.example.net;
        proxy_http_version 1.1;
        proxy_ssl_server_name on;
        proxy_ssl_name source-a.example.net;
        proxy_ssl_verify on;
        proxy_ssl_trusted_certificate /etc/ssl/certs/ca-certificates.crt;
        proxy_set_header Host source-a.example.net;
    }
}

需要替换:加速域名、资源站域名、证书路径、允许跨域的正式前台域名。Nginx 分片缓存、Cloudflare Cache Rules(静态分片可缓存、携带 Cookie/Authorization 的敏感请求绕过缓存)等进阶做法,请参考软件自带帮助文档的「切片加速」章节;配置后在前台实际播放一个视频,并用浏览器开发者工具确认分片请求已经走到加速域名。

常见问题

问题 排查
封面不显示或大量封面失败 看下载间隔是否过快、重试次数是否合理、远程源是否 404。不要轻易开启「失败自动删除视频」。修正后用「重新下载全部图片」(需先关闭总开关)
修改了压缩/转码后旧封面没变 使用「重新下载全部图片」
提示「点播加速未生效」 订阅是否有效、采集源是否使用默认播放器、是否已开启「HLS 索引缓存」
点播地址没有被替换 检查总开关、规则状态、协议/域名/端口是否与播放列表里的完全一致,以及规则顺序
保存时报错 总开关开启时至少要有一条完整规则;未订阅时无法保存
发财CMS 使用教程