赞片CMSFLV播放器
照着本文做完,你能在赞片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、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表
原文链接:https://www.gj0.com/thread-307.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。