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

FFMPEG本地及终端运行正常 线上网站调用失效问题求助

问题排查步骤
  • 确认FFMPEG执行权限
    先在线上服务器终端执行ls -l /usr/bin/ffmpeg查看文件权限,再切换到PHP运行用户(通常为www-data、apache、nginx)测试执行:

    sudo -u www-data /usr/bin/ffmpeg -version
    

    如果没有正常输出版本信息,需要给ffmpeg添加执行权限:chmod +x /usr/bin/ffmpeg。

  • 检查相对路径问题
    代码中使用./videos/相对路径可能因为PHP运行时工作目录异常导致找不到输出目录,建议替换为绝对路径:

    // 原相对路径写法
    // exec('/usr/bin/ffmpeg -i "' . $uploaded_file . '" -c:v libx264 "./videos/' . $video_mp4 . '" -y 1>2>&1');
    // 替换为绝对路径
    exec('/usr/bin/ffmpeg -i "' . $uploaded_file . '" -c:v libx264 "/var/www/html/NAME_OF_WEBSITE/videos/' . $video_mp4 . '" -y 1>2>&1');
    

    同时确认/var/www/html/NAME_OF_WEBSITE/videos/目录存在,且PHP运行用户有写入权限。

  • 捕获执行错误信息
    修改代码打印命令执行的返回值和输出内容,定位具体报错原因:

    $cmd = '/usr/bin/ffmpeg -i "' . $uploaded_file . '" -c:v libx264 "/var/www/html/NAME_OF_WEBSITE/videos/' . $video_mp4 . '" -y 2>&1';
    exec($cmd, $output, $return_code);
    // 输出调试信息,执行成功return_code为0
    print_r($output);
    echo $return_code;
    
  • 检查PHP禁用函数
    查看线上php.ini配置中的disable_functions项,确认exec函数没有被禁用,若被禁用需要从禁用列表中移除,重启PHP服务后生效。

  • 确认libx264编码支持
    在线上终端执行ffmpeg -encoders | grep libx264,如果无结果输出,说明当前ffmpeg版本未编译H.264编码支持,需要重新安装带libx264组件的ffmpeg版本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 21:54:03