ffmpeg在终端中工作,但不在php中

时间:2018-08-29 11:51:05

标签: php ffmpeg

我已经使用Ubuntu安装了ffmpeg,

 sudo apt-get install ffmpeg

ffmpeg安装在根目录“ / usr / bin / ffmpeg”上。

在终端中工作正常,但是当我使用php执行该操作时,我没有任何输出。

 shell_exec(/usr/bin/ffmpeg -y -i ./upload/1535531595first.mp3 -i ./upload/1535531595second.mp3 -filter_complex "[0:0][1:0] amix=inputs=2:duration=longest" -c:a libmp3lame ./download/1535531595outputnow1.mp3)

并在“ opt / lampp / htdocs / project-Name / sub-directory / test.php”文件中使用此命令。

任何帮助将是可贵的。提前致谢。
找到附件Test data get,但对于php无法正常工作

1 个答案:

答案 0 :(得分:0)

它在任何地方都能完美运行!我也在我的PHP项目中使用了FFMPEG,最常见的问题是:

  • 不使用双引号(“)。
  • 错误的地址。

首先,检查您的路径,最好像这样/user/foo/bar.mp3从根目录访问文件,并对输出执行相同的操作。

$input_file = "/user/foo/bar.mp3";
$output_file = "/user/foo/out.mp3";

shell_exec("ffmpeg -i \"{$input_file}\" \"{$output_file}\");

顺便说一句,Web应用程序存在问题在PHP项目中使用FFMPEG时,您可能会遇到timeout错误,因为处理时间太长了。

我建议您使用以下脚本,它在后台进程中执行命令行命令

function Execute($CMD)
{
    $OS = strtoupper(PHP_OS_FAMILY);

    if ($OS == 'WINDOWS') {
        return pclose(popen("start /B {$CMD}", "r"));
    } else {
        return shell_exec("{$CMD} > /dev/null 2>/dev/null &");
    }
}