赞片CMSFLV播放器

juming
juming 正式会员超兽战士
发布于 2026-10-07 13:24 ·1 浏览 ·0 回复

照着本文做完,你能在赞片CMS里让 FLV 格式的片子正常播放,而不是点开只看到一片黑或者一直转圈。

赞片CMS 本身不带 FLV 解码能力,它靠的是"播放器"这条记录去调用外部 JS 播放器(常见是 ckplayer、DPlayer、flv.js)来播放。所以整个流程拆成三件事:**后台登记播放器 → 前端上传/关联 FLV 文件 → 服务器把 FLV 的 MIME 和跨域放通**。下面按顺序来。

第一步:确认版本和播放器入口位置

这一步要做的,是先搞清楚你的赞片CMS是哪个版本、后台播放器管理在哪,否则后面照抄菜单名会对不上。

登录后台,看右下角或"系统 → 系统信息"里的版本号。赞片CMS 2.x 与 3.x 的菜单命名有差别:

  • 2.x:系统 → 播放器管理(URL 一般是 /admin.php/Player/index)
  • 3.x:视频 → 播放器列表,或者 系统设置 → 播放配置

如果找不到,直接在后台地址栏手动访问 /admin.php/Player/index,能打开就说明是同一张表 zanpian_player 在管。数据库里先 DESC zanpian_player; 看一遍字段,后面改配置心里有底。

注意:动手前先备份 zanpian_player 这张表(mysqldump -u root -p 库名 zanpian_player > player.sql)。播放器配置改坏了,全站视频都播不了,有备份 30 秒能回滚。

第二步:新增一条 FLV 播放器记录

这一步要做的,是让 CMS 知道"当视频地址是 .flv 结尾时,用哪个播放器去播",做完后前台 FLV 链接就有了对应播放器。

在播放器管理页点添加播放器,按下面填:

  • 播放器名称:FLV播放器
  • 播放器标识(编码):flv(必须全小写,别用中文,这个值要和后面判断逻辑对上)
  • 播放器类型:选本地播放器或外链播放器,FLV 一般选本地
  • 解析接口 / 播放器地址:留空,FLV 不需要解析
  • 播放器代码:填 ckplayer 的调用代码,例如
<div id="player"></div>
<script src="/static/player/ckplayer/ckplayer.js"></script>
<script>
var videoObject = {
  container: '#player',
  variable: 'player',
  autoplay: true,
  video: '{playUrl}'
};
new ckplayer(videoObject);
</script>

其中 {playUrl} 是赞片CMS 的模板变量,代表当前集数的播放地址,不同版本变量名可能是 $playurl 或 [playurl],以你后台"播放器代码"输入框下方的提示为准。

保存后回到播放器列表,确认这条记录存在且状态是启用。

注意:播放器标识不要和已有的 youku、qq、m3u8 重复。重复了 CMS 取播放器时会随机命中一条,表现为"有时候能播有时候不能播",很难查。

第三步:把 FLV 文件的播放地址挂到视频上

这一步要做的,是让某部影片的播放地址里带上 .flv,CMS 才会按后缀匹配到你刚建的播放器。

进视频管理 → 找到目标影片 → 编辑 → 切到播放地址或剧集管理标签页,把地址填成完整 URL:

https://你的域名/upload/vod/20240601/demo.flv

注意两点:必须是 https 或 http 绝对地址,别只写 /upload/...(部分版本的模板拼接会出错);地址结尾必须是 .flv,带 ? 参数的话要写成 demo.flv?t=1 这种后缀在前参数在后的顺序。

FLV 文件本身放到 public/upload/vod/ 目录下(2.x 是 upload/vod/),权限 755,属主和 PHP 进程一致。

注意:赞片CMS 的"播放地址"里如果一条剧集填了多个地址(用逗号或换行分隔),播放器会按顺序取第一个。别把 m3u8 和 flv 混填在同一条记录的同一行。

第四步:配置服务器 MIME 与跨域(FLV 播不出来的头号原因)

这一步要做的,是让浏览器愿意把 .flv 当成视频流下载而不是当普通文件,同时允许播放器跨域拉流;做完后黑屏问题大概率消失。

Nginx:编辑站点配置,在 server {} 块里加

location ~* \.flv$ {
    add_header Access-Control-Allow-Origin *;
    add_header Accept-Ranges bytes;
    types { video/x-flv flv; }
}

改完执行 nginx -t 检查语法,再 nginx -s reload。

Apache:在根目录 .htaccess 加

AddType video/x-flv .flv
Header set Access-Control-Allow-Origin "*"

Accept-Ranges 和 AddType 是重点——没有 Accept-Ranges,FLV 无法拖动进度条;没有正确的 MIME,ckplayer 会报 Video file not found 或直接黑屏。

注意:如果你的站点是 HTTPS,而 FLV 地址写的是 http://,浏览器会按"混合内容"直接拦截,控制台报 Mixed Content。要么给 FLV 也上 HTTPS,要么退回到 HTTP 全站,别一半一半。

第五步:验证

这一步要做的,是确认真的能播。用浏览器无痕窗口打开影片播放页,按 F12 看 Network 面板:

  • 请求 .flv 返回 200,Content-Type 是 video/x-flv
  • 有 206 Partial Content 出现,说明拖动正常
  • Console 无 Mixed Content、无 CORS 报错

三样都满足,就算配通了。

小结

  • 播放器不是 CMS 自带功能,靠后台"播放器管理"里的一条记录去调 ckplayer / flv.js
  • 播放器标识要唯一、全小写,重复会导致随机命中的诡异问题
  • 视频地址必须以 .flv 结尾,CMS 靠后缀匹配播放器
  • 服务器必须给 FLV 配 video/x-flv 和 Accept-Ranges: bytes,否则黑屏或不能拖动
  • HTTPS 站点不能混用 HTTP 的 FLV 地址
  • 改配置前先备份 zanpian_player 表
版权声明:本文来自 GJ站长论坛《赞片CMSFLV播放器》
原文链接:https://www.gj0.com/thread-307.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。

全部回复 0

还没有回复,来抢沙发~