我正在尝试从php执行FFmpeg。我已经安装了FFmpeg-php,扩展名在modules目录中,它显示在phpinfo中。 FFmpeg工作正常,因为我可以在终端中运行命令并输出视频。但是,当我尝试使用以下脚本从php运行命令时:
exec(ffmpeg -i input.avi output.avi);
但我得到一个'127'错误代码。
使用以下命令加载扩展名:
$extension = "ffmpeg";
$extension_soname = $extension . "." . PHP_SHLIB_SUFFIX;
$extension_fullname = PHP_EXTENSION_DIR . "/" . $extension_soname;
// Locate Extension
define('FFMPEG_LIBRARY', '/usr/local/bin/ffmpeg');
// Load Extension
if (!extension_loaded($extension))
echo dl($extension_soname) or die("Can't load extension $extension_fullname\n");
我也尝试在命令中定义aboslute扩展位置:
exec(/usr/local/bin/ffmpeg-i input.avi output.avi);
同样,这在终端中有效,但仍然使用php exec()返回相同的错误代码。
有没有人有任何想法?
谢谢。
答案 0 :(得分:3)
如果您加载了模块,请使用php-ffmpeg api而不是exec。只有在没有加载模块的情况下运行exec,或者你没有加载模块(意味着你根本没有使用模块)。
您收到的错误来自ffmpeg二进制文件(不是扩展程序,但您根本没有使用扩展程序),因此请搜索ffmpeg status 127 error
以解决与ffmpeg相关的问题。
答案 1 :(得分:1)
我遇到了同样的问题(ffmpeg没有通过exec / system运行)
我使用/usr/bin/ffmpeg
而非ffmpeg