为什么FFMPEG在终端中工作但在php中没有exec()?

时间:2011-06-06 01:56:52

标签: php linux ffmpeg

我试图让FFMPEG在php中工作。我刚刚安装了ffmpeg和x264并在终端中运行了以下命令:

$command = 'ffmpeg -i /home/gman/Desktop/cave.wmv -acodec libfaac -aq 100 -vcodec libx264 -preset slow -crf 22 -threads 0 /home/gman/Desktop/newvideo.flv

它完美无缺,并从初始视频中创建了一个新的flv视频,就像我想要的那样。

现在当我在php中尝试同样的事情时,没有任何反应......

$safe_path = escapeshellarg("/home/gman/Desktop/newvideo.flv");
$command = 'ffmpeg -i /home/gman/Desktop/cave.wmv -acodec libfaac -aq 100 -vcodec libx264 -preset slow -crf 22 -threads 0 ' . $safe_path;
exec($command);

有人有什么想法吗?我能以某种方式看到exec正在做什么并看到某种输出?会很感激。

2 个答案:

答案 0 :(得分:1)

通常当你在exec中调用ffmpeg时,你需要输入ffmpeg的绝对路径,例如:

$safe_path = escapeshellarg("/home/gman/Desktop/newvideo.flv");
$command = '/usr/local/bin/ffmpeg -i /home/gman/Desktop/cave.wmv -acodec libfaac -aq 100 -vcodec libx264 -preset slow -crf 22 -threads 0 ' . $safe_path;
exec($command);

答案 1 :(得分:0)

http://blog.codyjung.com/2011/05/29/problems-with-lampp-and-exec/

我的解决方案是简单地复制/ usr / lib / i386-linux-gnu中的那些并覆盖LAMPP。这会在以后引起问题吗?也许,但我想我们会在它出现时处理它。