2013-07-16 38 views
0

一直在试图利用我已经上传到我的域中的脚本来执行FFMPEG通过PHP执行FFMPEG问题

<?php 
$output = array(); 
$result = -1; 
exec('../../../../../../usr/bin/ffmpeg -ab 320k -i source.wav dest320.mp3', $output, $result); 
var_dump($output, $result); 
?> 

的示例代码表示,该计划不应该返回-1,除非有一个错误,但我已经指出了FFmpeg中存储的确切路径.....

当我打电话“的ffmpeg -AB 320K -i source.wav dest320.mp3”从它的工作原理CentOS的...

很失落并花了几个小时试图解决它。

感谢

CP

+1

你意识到你可以使用绝对路径,比如'/ usr/bin/ffmpeg'而不是向后进入目录,对吧?另外,您需要确保运行'exec'的用户具有访问ffmpeg的权限。 – Twisted1919

+0

当你运行这个时,输出是什么? – SharkofMirkwood

+0

嘿扭曲了,不,我没有意识到,现在就试试。我如何检查运行exec的用户是否拥有正确的权限?鲨鱼它输出 'array(0){} int(-1)' –

回答

0

你有没有在PHP工作执行exec任何时候,你应该切换到中继进行调试。

passthru('../../../../../../usr/bin/ffmpeg -ab 320k -i source.wav dest320.mp3 1 2>&1'); 

追加1 2> & 1至年底,管你的错误输出到粗壮,并返回你在运行你的exec任何错误。

+0

我刚刚尝试过,它并没有返回任何东西。不知道什么是..... –

0

使用passthru('/usr/bin/env ffmpeg -ab 320k -i source.wav dest320.mp3 1 2>&1');可能会更安全,它将获得ffmpeg的正确路径,而无需指定绝对/相对路径。

另外值得注意的是,如果您自12.04起使用Ubuntu,则ffmpeg命令已更名为avconv

+0

感谢队友,我正在使用CentOS –