配置步骤
PbootCMS 视频自动播放 · 落地步骤
目标:首页大图放视频并自动播放,同时让所有"能填图片"的地方(幻灯片、产品/案例缩略图、栏目封面、内容主图)都能直接填视频。
一、改后台上传白名单(必须做,否则传不上去)
1. 主配置
文件:/config/config.php(网站根目录),约第 30~42 行
// 上传配置
'upload' => array(
'format' => 'jpg,jpeg,png,gif,webp,xls,xlsx,doc,docx,ppt,pptx,rar,zip,pdf,txt,mp4,webm,ogv,mov,m4v,mp3,otf,ttf',
'max_width' => '1920',
'max_height' => ''
),
默认其实已经带 mp4,avi,flv,rmvb,主要补 webm,ogv,m4v 这几种兼容性更好的格式。
2. UEditor 编辑器配置(正文里插视频才需要)
文件:/core/extend/ueditor/php/config.json
"videoAllowFiles": [".mp4", ".webm", ".ogv", ".m4v", ".mov"],
"videoMaxSize": 204800000
改完到后台 清空缓存(系统设置 → 清理缓存)再试上传。
传法一:宝塔直接传(推荐,最稳)
宝塔 → 文件 → 进网站根目录的 /static/upload/,新建个 video 文件夹
把压好的 banner.mp4 和 banner.jpg(同名海报)一起拖上去
回 PbootCMS 后台 → 幻灯片管理 → 图片地址框直接填 /static/upload/video/banner.mp4
这条路绕开了 PHP 上传限制,视频再大也不怕,而且不用动后台任何设置。
传法二:后台直接传(视频小于 20M 时用)
后台 → 基础内容 → 幻灯片管理 → 编辑某张幻灯片,图片地址框旁有上传按钮,点它选 mp4
如果弹出的文件选择框里看不到视频文件(按钮把类型过滤成只显示图片了),别折腾,直接换传法一
或者在任何内容编辑页,用编辑器工具栏的回形针图标(附件上传)传,传完把生成的地址复制出来备用
动手前先确认一件事:你截图停在第二节那个表 —— 宝塔里 PHP 的 upload_max_filesize 改了没?还是默认 8M 的话,走后台传会直接失败(进度条卡住或提示失败)。走传法一的话这步可以先不管。
传完自测一下:浏览器直接访问 http://你的域名/static/upload/video/banner.mp4,能正常播放说明路径和服务器都没问题,再把路径粘进幻灯片,前台清缓存刷新就该出效果了。
二、放行上传体积(最容易卡在这一步)
PHP 默认 upload_max_filesize = 8M,一个 banner 视频随随便便就超了。
宝塔面板操作路径:
| 项目 | 位置 | 建议值 |
|---|---|---|
| PHP 上传限制 | 软件商店 → PHP-版本 → 配置修改 → upload_max_filesize |
200M |
| POST 上限 | 同上 → post_max_size |
220M |
| 脚本超时 | 同上 → max_execution_time |
300 |
| Nginx 请求体 | 网站 → 设置 → 配置文件 → client_max_body_size |
200m |
Nginx 那一行加在 server {} 里:
client_max_body_size 200m;
改完重启 PHP 服务,然后后台 → 系统设置 → 头像旁边看"上传限制"是否生效(PbootCMS 后台首页会显示环境信息)。
三、把视频填进"图片位置"
方法 A:直接填路径(最省事,推荐)
- 后台 → 文件管理 / 附件 → 上传 mp4
- 复制得到的路径,例如
/static/upload/video/banner.mp4 - 到幻灯片管理(或产品编辑页的封面图),把这个路径直接粘贴进图片地址输入框
PbootCMS 的封面图字段本质是文本框,粘什么路径都认。
方法 B:直接点上传按钮
如果上传按钮的文件选择器过滤了 image/*,选不到 mp4,就用方法 A。想彻底解决就搜一下后台模板里的 accept= 把限制去掉(不同版本位置不一样,不推荐折腾)。
海报图约定(重要)
视频旁边放一张同名 jpg,脚本会自动当作首帧:
/static/upload/video/banner.mp4
/static/upload/video/banner.jpg ← 自动识别为 poster
没有海报图的话,视频加载完之前是一片黑,首屏体验会很差。
四、视频必须压缩(不做等于自毁首屏)
自动播放的视频不能有音轨(浏览器要求 muted 才能 autoplay),音轨纯属浪费体积。
# 首页 banner:20 秒以内,1920 宽,无音轨,目标 2~3MB
ffmpeg -i 原片.mp4 -t 20 -an \
-vf "scale=1920:-2" \
-c:v libx264 -profile:v baseline -level 3.0 \
-pix_fmt yuv420p -crf 28 -preset slow \
-movflags +faststart \
banner.mp4
# 列表缩略图用的小视频:960 宽,10 秒,目标 500KB~1MB
ffmpeg -i 原片.mp4 -t 10 -an \
-vf "scale=960:-2" \
-c:v libx264 -profile:v baseline -pix_fmt yuv420p \
-crf 30 -movflags +faststart \
thumb.mp4
参数说明:
-an—— 去掉音轨,体积直接砍一截-movflags +faststart—— 必须有,让视频边下边播,否则要整段下完才开始-profile:v baseline—— 兼容老安卓 / 微信内置浏览器-crf 28~30—— 画质体积平衡点,数字越大越小
体积红线: 首页 banner ≤ 3MB,列表缩略图 ≤ 1MB。超了就砍时长或降分辨率。
五、自动播放不生效?按顺序排查
| 现象 | 原因 | 解决 |
|---|---|---|
| 完全不播 | 缺 muted 或 playsinline |
脚本已自动加全,确认脚本真的加载了(F12 看元素是否变成 <video>) |
| iOS 上不播 | 开了低电量模式 | 无解,Apple 系统级限制,靠 poster 兜底 |
| 安卓微信不播 | 缺 x5-playsinline |
脚本已加;仍不行就换腾讯域名白名单或引导"点击播放" |
| 播放但卡 | 视频太大 / 没 faststart |
按第四节重压 |
| 显示一片黑 | 没有 poster | 放同名 jpg |
| 控制台报 404 | 路径填错 | 路径以 / 开头,如 /static/upload/video/banner.mp4 |
| 移动端不播 | 省流量模式 / 2G | 脚本主动降级,属正常行为 |
一句话:自动播放 = muted + playsinline + autoplay + 无音轨 + 体积够小,五缺一都可能失败。
六、部署清单
七、进阶建议
- 视频别放网站服务器:五金机械这类外贸站访客遍布全球,建议丢到 OSS/COS + CDN,或者直接用 Vimeo/YouTube 的 embed(但那样就不是自动静音循环背景了)。
- 确认服务器支持 Range 请求:mp4 靠 Range 分段加载,宝塔默认 Nginx 支持;用
curl -I看响应头有没有Accept-Ranges: bytes。 - 首屏只放一个视频:首页 banner 那一屏放视频就够了,下面列表的小视频用
preload="metadata"或滚动到再播(脚本已内置 IntersectionObserver,滚出视口自动暂停)。

浙公网安备 33010602011771号