我在控制台中运行以下命令没有任何问题:
ffmpeg -i /var/www/html/input.mp4 /var/www/html/output.mp3
但是当我在PHP中运行命令时,我什么都没得到:
<?php
shell_exec("ffmpeg -i /var/www/html/input.mp4 /var/www/html/output.mp3");
?>
知道问题在这里吗?我检查了我的CHMOD权限,一切看起来都不错。还有别的东西要检查吗?
谢谢,
答案 0 :(得分:1)
我会尝试以ffmpeg的完整路径运行它。您可以通过在命令行中运行which ffmpeg
来获取unix上的完整路径。我的ubuntu框产生类似/usr/bin/ffmpeg
的输出。在代码中使用完整路径:
<?php
shell_exec("/usr/bin/ffmpeg -i /var/www/html/input.mp4 /var/www/html/output.mp3");
?>
答案 1 :(得分:0)
肯定(如上所述)传递完整路径是exec是个好主意。此外,您还应该将错误流重定向到您收集的输出 - 添加&#34; 2 - ;&安培; 1&#34;到命令的末尾。看一下第一条评论here。