问题描述
我正在尝试将 FFMpeg 集成到 Laravel 项目中,但在调用端点时出现错误:
FFMpeg\Exception\ExecutableNotFoundException: Unable to load FFMpeg in file /Users/me/Desktop/video/vendor/PHP-ffmpeg/PHP-ffmpeg/src/FFMpeg/Driver/FFMpegDriver.PHP on line 55
我所做的:
brew install ffmpeg
- 在本地安装 FFMEG,在使用终端时可以确认这有效
全新的 Laravel 安装 composer create-project laravel/laravel example-app
安装 PHP ffmpeg composer require PHP-ffmpeg/PHP-ffmpeg
安装 Laravel ffmpeg composer require pbmedia/laravel-ffmpeg
将 FFMPEG 添加到 app.PHP
中的提供者和别名:
'providers' => [
...
ProtoneMedia\LaravelFFMpeg\Support\ServiceProvider::class,...
];
'aliases' => [
...
'FFMpeg' => ProtoneMedia\LaravelFFMpeg\Support\FFMpeg::class
...
];
然后我的控制器是
<?PHP
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use FFMpeg;
class VideoController extends Controller
{
public function makeVideo()
{
FFMpeg::fromdisk('songs')
->open('yesterday.mp3')
->export()
->todisk('converted_songs')
->informat(new \FFMpeg\Format\Audio\Aac)
->save('yesterday.aac');
return "hello";
}
}
这是他们在 git 上给出的例子。如果我调用终点,我会收到上述错误。有没有人知道出了什么问题或如何调试?日志没有给我更多信息!
解决方法
FFmpeg 可能没有安装在您的操作系统上。 如果您使用的是 Ubuntu 或 Linux,请运行以下命令以确保安装了 FFmpeg
ffmpeg -protocols
如果你得到
Command 'ffmpeg' not found,but can be installed with:
sudo apt install ffmpeg
然后通过运行安装 FFmpeg
sudo apt update
sudo apt install ffmpeg
注意文件路径。
FFMpeg::open('') 的默认路径是 storage\app
我无需设置二进制文件或进行提取配置设置即可使其工作
另外,你只需要这个 composer require pbmedia/laravel-ffmpeg
来安装所有东西,它处理其他依赖
无法找到您的 FFMpeg 可执行文件。尝试在您的 FFMPEG_BINARIES
文件中添加 FFPROBE_BINARIES
和 .env
的路径。