运行 ffmpeg 时 shell_exec 没有输出

运行 ffmpeg 时 shell_exec 没有输出

我正在尝试在 Windows 上通过 shell_exec 运行 ffmpeg。我的函数不起作用(它不执行,不输出文件,也不输出 shell_exec 的任何结果)

function convertFile($audio, $image)
{
    $output = str_replace(".mp3", ".mp4", $audio);
    $shellOutput = shell_exec("ffmpeg  -loop 1 -r 2 -i \"$image\" -i \"$audio\" -shortest -c:v libx264 -preset medium -tune stillimage -crf 28 -c:a copy $output");
    echo $shellOutput;

}

如果这是显而易见的,请原谅。感谢您的帮助!

答案1

确保 Web 服务器用户可以读取和执行ffmpeg,并且二进制文件位于其 中PATH。您可以通过直接指定路径来排除故障ffmpeg,例如/usr/bin/ffmpeg

您还可以考虑2>&1在命令中添加以下内容,以便将 stderr 重定向到 stdout,因为 ffmpeg 将通过 stderr 输出调试消息,否则您将看不到它们。或者,完全禁用输出。有关更多信息,请参见此处:在 PHP 脚本中使用 FFmpeg

相关内容