protonemedia / laravel-ffmpeg

This package provides an integration with FFmpeg for Laravel. Laravel's Filesystem handles the storage of the files.
https://protone.media/en/blog/how-to-use-ffmpeg-in-your-laravel-projects
MIT License
1.62k stars 193 forks source link

Unable to load FFMpeg #510

Open vladislavzubetcs opened 9 months ago

vladislavzubetcs commented 9 months ago
use ProtoneMedia\LaravelFFMpeg\Support\FFMpeg;

Route::get('/test', function () {
    $image = \App\Models\Product\ProductImage::where('type', \App\Enums\MediaTypes::VIDEO)->firstOrFail();

    FFMpeg::fromDisk('s3')
        ->open($image->url) // products/{hash}.mp4
        ->export()
        ->toDisk('s3')
        ->inFormat(\App\Enums\VideoFormats::WEBM->getFFMpegFormat()) // new \FFMpeg\Format\Video\WebM
        ->save(sprintf('%s%s', $image->url, \App\Enums\VideoFormats::WEBM->value)); // .webm
});

Returns:

FFMpeg\ Exception\ExecutableNotFoundException PHP 8.2.12 Laravel 10.33.0

Unable to load FFMpeg

root@e1f6f4a83d02:/var/www# which ffmpeg
/usr/bin/ffmpeg
root@e1f6f4a83d02:/var/www# which ffprobe
/usr/bin/ffprobe

.env:

FFMPEG_BINARIES=/usr/bin/ffmpeg
FFPROBE_BINARIES=/usr/bin/ffprobe

ProtoneMedia\LaravelFFMpeg\Support\ServiceProvider::class, published 'FFMpeg' => ProtoneMedia\LaravelFFMpeg\Support\FFMpeg::class added

ffmpeg version 4.2.7-0ubuntu0.1 Copyright (c) 2000-2022 the FFmpeg developers

0xCyyy3000 commented 3 months ago

Hello! Have you resolved this one? I'm currently experiencing the same issue Unable to load FFMpeg

vladislavzubetcs commented 3 months ago

@0xCyyy3000 Yeah, I resolved that. But it's been so long, I honestly don't remember how, coz I haven't worked on this project in a long time. But I can give you something.

Packages:

"pbmedia/laravel-ffmpeg": "^8.3",
"php-ffmpeg/php-ffmpeg": "^1.1",

Usage:

use ProtoneMedia\LaravelFFMpeg\Support\FFMpeg;

FFMpeg::fromDisk('s3')
      ->open($this->url)
      ->export()
      ->toDisk('s3')
      ->inFormat($this->videoFormat->getFFMpegFormat()) // new \FFMpeg\Format\Video\WebM()
      ->save(sprintf(
          '%s%s',
          $this->url,
          $this->videoFormat->value
      ));

Try giving permissions to:

FFMPEG_BINARIES=/usr/bin/ffmpeg
FFPROBE_BINARIES=/usr/bin/ffprobe

Also check if you have ffmpeg and ffprobe installed and PHP has access to them.

That's all I have and all I remember, unfortunately.

0xCyyy3000 commented 3 months ago

I already resolved my problem, I just ran this command to retrieve the bin path which ffmpeg But thanks for sharing mate, appreciate your response!

AbelGoncalo commented 1 month ago

which ffmpeg

how did you solve

0xCyyy3000 commented 1 month ago

You should add the bin path of your ffmpeg to your .env file. You can identify it by running this command from your terminal:

Then in your .env FFMPEG_BINARIES={{ffmpeg_bin_path} FFPROBE_BINARIES={{ffprobe_bin_path}}