如何在带有XAMPP的Mac上使用PHP运行ffmpeg

时间:2017-04-07 23:27:57

标签: php macos apache ffmpeg xampp

在任何地方都没有任何东西,有些东西不起作用,对我来说太先进了。如果你能回答这个问题,你就会成就我的生活。如何从我的localhost上运行的php运行ffmpeg命令?我更喜欢XAMPP,但是MAMP会做得很好,在这个阶段我会使用任何东西。我需要在XAMPP服务器上安装ffmpeg,还是只需要在mac上安装?我可以从终端运行ffmpeg命令,例如,

ffmpeg -i Tmpfile.mp4 -c:v libx264 -preset ultrafast video.mp4

工作正常,但

echo shell_exec("ffmpeg -i Tmpfile.mp4 -c:v libx264 -preset ultrafast video.mp4");
当我使用该代码所在的index.php加载网页时,

什么都不做。

如果你能解决我的问题,我会给你买饼干:)

2 个答案:

答案 0 :(得分:1)

在描述问题时,您应该更具体,例如:包括OSX版本,ffmpeg版本等。

我成功地重现了你的案例,这是程序:

1。 FFMPEG

我通过brew安装了ffmpeg。 ffmpeg版本目前是3.2.4。

2。 PHP服务器

在macOS Sierra上(但其他早期版本也提供此功能),只需输入

即可启动PHP服务器
$ php -S 0.0.0.0:8080
在你的shell中

。在这种情况下,Web服务器将侦听端口8080。

3。 PHP脚本

我基本上使用了你在问题中提供的脚本,稍作修改:

<?php

echo "loading, please wait...";

echo shell_exec("ffmpeg -i temp.mp4 -c:v libx264 -preset ultrafast video.mp4 2>&1");

您注意到2>&1了吗?它用于将sterr输出重定向到stdoutput,因为ffmpeg不会在标准输出上打印任何内容:)

4。安全模式?

请确保禁用PHP安全模式,因为当安全模式为ON(reference here)时,shell_exec方法被禁用。

答案 1 :(得分:0)

啊,我找到了答案。我需要将它添加到php脚本的开头

    exec('unset DYLD_LIBRARY_PATH ;');
putenv('DYLD_LIBRARY_PATH');
putenv('DYLD_LIBRARY_PATH=/usr/bin');