在任何地方都没有任何东西,有些东西不起作用,对我来说太先进了。如果你能回答这个问题,你就会成就我的生活。如何从我的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加载网页时,什么都不做。
如果你能解决我的问题,我会给你买饼干:)
答案 0 :(得分:1)
在描述问题时,您应该更具体,例如:包括OSX版本,ffmpeg版本等。
我成功地重现了你的案例,这是程序:
我通过brew安装了ffmpeg
。 ffmpeg版本目前是3.2.4。
在macOS Sierra上(但其他早期版本也提供此功能),只需输入
即可启动PHP服务器$ php -S 0.0.0.0:8080
在你的shell中。在这种情况下,Web服务器将侦听端口8080。
我基本上使用了你在问题中提供的脚本,稍作修改:
<?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不会在标准输出上打印任何内容:)
请确保禁用PHP安全模式,因为当安全模式为ON(reference here)时,shell_exec
方法被禁用。
答案 1 :(得分:0)
exec('unset DYLD_LIBRARY_PATH ;');
putenv('DYLD_LIBRARY_PATH');
putenv('DYLD_LIBRARY_PATH=/usr/bin');