我正在编写一个PHP脚本,可以动态地将上传的视频文件转换为FLV,但是如果用户在服务器上安装了FFmpeg,我只希望它能够运行该部分脚本.
有没有办法提前发现这个?我是否可以运行FFmpeg命令并测试它是否返回"命令未找到?"
尝试:
$ffmpeg = trim(shell_exec('which ffmpeg')); // or better yet: $ffmpeg = trim(shell_exec('type -P ffmpeg'));
如果它返回空,则ffmpeg不可用,否则它将保存可执行文件的绝对路径,您可以在实际的ffmpeg调用中使用它:
if (empty($ffmpeg)) { die('ffmpeg not available'); } shell_exec($ffmpeg . ' -i ...');
exec()
函数的第三个参数是执行程序的返回值.像这样使用它:
exec($cmd, $output, $returnvalue); if ($returnvalue == 127) { # not available } else { #available }
这适用于我的Ubuntu盒子.