MediaWiki用TimedMediaHandler传视频时缩略图创建失败求助
解决TimedMediaHandler视频上传生成缩略图错误的方案
1. 修正LocalSettings.php中的语法错误
你的配置代码里存在全角符号(中文括号、中文逗号、中文冒号),PHP仅识别半角符号,这是核心问题之一:
- 将
wfLoadExtension( 'TimedMediaHandler' );改为wfLoadExtension( 'TimedMediaHandler' );(替换为半角括号) - 将
$wgFFmpegLocation = 'C:\ffmpeg\bin\ffmpeg';改为$wgFFmpegLocation = 'C:\\ffmpeg\\bin\\ffmpeg.exe';(替换半角冒号,单斜杠改双反斜杠,补充.exe后缀) - 将
$wgFileExtensions数组内所有中文逗号,替换为半角逗号,,同时统一扩展名大小写(比如'MP4'改为'mp4',避免匹配异常)
修正后的配置示例:
wfLoadExtension( 'TimedMediaHandler' ); $wgFFmpegLocation = 'C:\\ffmpeg\\bin\\ffmpeg.exe'; $wgMaxShellMemory = 780000; $wgMaxShellFileSize = 1024 * 512; $wgMaxShellTime = 60 * 60; $wgFileExtensions = [ 'png', 'gif', 'jpg', 'jpeg', 'jp2', 'webp', 'ppt', 'pdf', 'psd', 'mp3', 'xls', 'xlsx', 'swf', 'doc', 'docx', 'odt', 'odc', 'odp', 'odg', 'mpp', 'pptx', 'mp4', 'mpg', 'webm', 'ogv' ];
(注:已添加你需要的mpg、webm、ogv视频扩展名到数组)
2. 验证FFmpeg可执行性
- 打开命令提示符,直接运行
C:\ffmpeg\bin\ffmpeg.exe -version,确认能正常输出版本信息。如果提示“不是内部或外部命令”,说明FFmpeg路径错误或未正确安装。 - 确保MediaWiki的运行用户(如IIS的IUSR账户、Apache的www-data账户)拥有FFmpeg所在目录的读取和执行权限。
3. 调整Shell执行参数
若视频文件较大,当前内存和超时设置可能不足:
- 尝试增大
$wgMaxShellMemory的值,比如改为1560000(约1.5GB) - 若视频处理耗时久,可调高
$wgMaxShellTime,比如60 * 120(120分钟)
4. 检查视频文件编码
部分特殊编码的视频无法被FFmpeg处理:
- 用FFmpeg命令查看视频编码:
ffmpeg -i 你的视频文件.mp4,确认编码为H.264(MP4常用)、VP8/VP9(WebM)等主流编码。 - 若编码特殊,先用FFmpeg转码后再上传:
ffmpeg -i 原视频.mp4 -c:v libx264 -c:a aac 转码后视频.mp4
5. 查看MediaWiki日志定位问题
- 打开MediaWiki默认日志目录
cache/logs,查看error.log或debug.log,里面会记录缩略图生成失败的具体原因(如FFmpeg调用失败、权限不足等),根据日志进一步排查。
内容的提问来源于stack exchange,提问作者yang le
相关产品推荐
相关产品推荐

