exec(ffmpeg)没有在php中执行但会在终端中执行?

时间:2017-08-14 02:53:16

标签: php ffmpeg

我有一个网站,允许用户上传视频,我有安装了ffmpeg的VPS服务器,安全模式已关闭并在我的终端中测试了命令,但是当我尝试在exec中运行命令时它在PHP脚本中工作( )甚至shell_exec()它不执行。下面是我的代码(为隐私更改了一些变量)。

$video_name = $_FILES["post_vid"]["name"];
$Vurl = "/folder1/folder2/$vrand_file_name/$video_name";
$VnewName = $vrand_vid_name .".mp4";
$VurlNew = "/folder1/folder2/$vrand_file_name/$VnewName";
$convertold = "/home/user/directory/domain.com/$Vurl";
$convertNew = "/home/user/directory/domain.com/$VurlNew" ;
$ffmpegC = "/user/local/bin/ffmpeg";
exec($ffmpegC.' -y -i "'.$convertold.'" -f mp4 "'.$convertNew.'"');

我的代码就在move_uploaded_file()运行正常之后。 还检查了我的PHP使用与我的终端相同的用户... 任何对此的见解都会很棒,提前谢谢。

1 个答案:

答案 0 :(得分:0)

请按照以下方式在exec附近修改您的代码,您可以试试吗?

$command = $ffmpegC.' -y -i "'.$convertold.'" -f mp4 "'.$convertNew.'" 2>&1';  
exec($command, $array);
var_dump($array);
exit;

使用2>&1stderror输入$array

所以你可以看到原因。

祝你好运!