PHP exec() 不适用于 ffmpeg

Dod*_*nas 5 php ffmpeg exec

我尝试在 PHP 中运行以下命令(在 Ubuntu 上):

<?php
 if (exec("/home/johnboy/ffmpeg/ffmpeg -i test1.mp4 -acodec aac -ab 128kb -vcodec mpeg4 -b 1220kb -mbd 1 -s 320x180 final_video.mov")) 
      { echo "Success"; }
      else { echo "No good"; }
Run Code Online (Sandbox Code Playgroud)

我总是得到“不好”的回应,并且没有创建文件。

有趣的是,如果我在 Shell 中运行相同的命令,它就能工作,没有问题。

另外,当我运行上面相同的代码,但用“whoami”代替 ffmpeg 的东西时,它就可以工作。(它回响“成功”)

关于为什么这行不通的任何想法?谢谢。

小智 5

获取 stderr 将给出结果

尝试

ffmpeg -i inputfile [more_params] 2>&1
Run Code Online (Sandbox Code Playgroud)


geo*_*car 3

apache/web 用户可以访问吗/home/johnboy/ffmpeg/ffmpeg?也就是说,也许/home/johnboy是 0700 而不是 0755?

也许存在影响加载如此大的程序及其所有库的资源限制?

如果您将脚本运行到 php cli sapi,它的行为是否正确?即使以 apache 用户身份运行?

strace -ff当apache web用户通过php cli运行php脚本时显示什么?