装置 FFMPEG
wget http://download.bt.cn/install/ext/ffmpeg.sh && sh ffmpeg.sh
装置完后可输出以下命令是否装置胜利
ffmpeg -version
删除禁用函数
proc_open, exec, system
装置 PHP-FFMpeg
composer require php-ffmpeg/php-ffmpeg
常见问题
Executable not found, proposed : avprobe, ffprobe
php-fpm 在执行 FFMPEG 的时候,没有找到 ffprobe
和 ffmpeg
解决办法如下:
命令行解决
- 通过 shell 确定文件地位
whereis ffprobe/usr/local/bin/ffprobewhich ffmpeg/usr/local/bin/ffmpeg
- 在初始化 FFMpeg 的时候将文件地位写入
$ffmpeg = FFMpeg::create([ 'ffmpeg.binaries' => '/usr/local/bin/ffmpeg', 'ffprobe.binaries' => '/usr/local/bin/ffprobe', ]);
PHP 代码间接解决
// 写入 WWW 用户的环境变量putenv('PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:$PATH');// 通过 exec 函数找到文件对应地位$ffmpeg = FFMpeg::create([ 'ffmpeg.binaries' => exec('which ffmpeg'), 'ffprobe.binaries' => exec('which ffprobe'),]);
尽管看似两种方法,其实解决思路是统一的,都是要指定 ffmpeg
和 ffprobe
文件的地位。实践上间接在服务器上将 www 用户的环境变量退出 ffmpeg
和 ffprobe
也能够解决此问题(没有测试,不保障无效,有趣味的能够自行验证)。
Reference
PHP-FFMpeg
Executable not found, proposed : avprobe, ffprobe
一键装置ffmpeg命令