共计 904 个字符,预计需要花费 3 分钟才能阅读完成。
装置 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/ffprobe
which 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 命令
正文完