You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mac系统XAMPP环境下PHP调用ffmpeg提示not found问题咨询

报错原因说明

  1. sh: 1: ffmpeg: not found:XAMPP运行的Apache进程的环境变量PATH默认没有包含Homebrew的软件安装路径,和你本地终端用户的shell环境是隔离的,所以找不到你已经安装的ffmpeg。
  2. sh: 1: ./ffmpeg: Exec format error:你下载的静态构建包和你的Mac CPU架构不匹配,同时htdocs目录作为web服务根目录,运行权限受限,不适合放可执行文件。

解决方案(优先推荐第一种,无需修改配置)

方案1:直接使用ffmpeg绝对路径调用

  1. 打开本地终端,执行which ffmpeg,获取brew安装的ffmpeg的绝对路径:
    • Intel Mac输出路径一般为:/usr/local/bin/ffmpeg
    • Apple Silicon(M系列芯片)输出路径一般为:/opt/homebrew/bin/ffmpeg
  2. 修改PHP代码,把ffmpeg替换为你拿到的绝对路径即可:
<?php
    echo "Starting ffmpeg";
    // 下方路径替换为你自己执行which ffmpeg得到的结果
    $ffmpeg_path = "/opt/homebrew/bin/ffmpeg";
    $output = shell_exec("{$ffmpeg_path} -i test.mp3 -codec:a libmp3lame -b:a 128k out.mp3 2>&1");
    echo "<pre>{$output}</pre>";
?>

方案2:修改XAMPP环境变量,支持直接调用ffmpeg

如果你不想每次都写绝对路径,可以修改Apache的环境配置:

  • 打开XAMPP的Apache配置文件:/Applications/XAMPP/xamppfiles/etc/httpd.conf
  • 新增一行配置,将brew的bin目录加入PATH:
    • Apple Silicon芯片添加:SetEnv PATH "/opt/homebrew/bin:/usr/bin:/bin:/usr/sbin:/sbin"
    • Intel芯片添加:SetEnv PATH "/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
  • 重启XAMPP的Apache服务,之后代码中直接写ffmpeg即可正常识别。

静态构建包适配方案

如果你需要使用官网静态包而不是brew版本,操作如下:

  • 下载和你Mac CPU架构匹配的静态包:Apple Silicon选arm64版本,Intel选x86_64版本
  • 解压后将ffmpeg二进制文件移动到/usr/local/bin目录下,执行chmod +x /usr/local/bin/ffmpeg赋予执行权限
  • 后续用/usr/local/bin/ffmpeg绝对路径调用即可,不要将可执行文件放在htdocs目录下。

内容的提问来源于stack exchange,提问作者Alex Styl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 13:45:03