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.63k stars 194 forks source link

Works great but screws up in Scheduled Jobs (Kernel.php) #422

Open HeadStudios opened 2 years ago

HeadStudios commented 2 years ago

Awesome wrapper and everything - but screwing up when I try to do it in scheduled jobs (vs. within Route for testing)

$video = $response['data']['video_url'];
                    $path = 'videos/scripts/final/script_'.rand(0,1000).'.mp4';

                    \FFMpeg::openUrl($video)->addFilter(function (App\Console\FFMpeg\Filters\Video\VideoFilters $filters) {
                        $filters->resize(new \FFMpeg\Coordinate\Dimension(640, 480));
                    })->addWatermark(function(\ProtoneMedia\LaravelFFMpeg\Filters\WatermarkFactory $watermark) {
                        $watermark->openUrl('https://metrocity-bucket.storage.googleapis.com/wp-content/uploads/2021/06/29100443/LogoPhone.png')
                            ->right(25)
                            ->bottom(25);
                    })
                    ->export()
                    ->toDisk('s3')
                    ->inFormat(new \FFMpeg\Format\Video\X264)
                    ->save($path);

Keeps giving me this weird trace log (included two stack traces as I kept trying to change the Filter requirements I don't know why they're saying do it as App\Console\FFMPeg that's why I changed it:

[2022-08-08 03:57:02] local.INFO: ffprobe running command '/opt/homebrew/bin/ffprobe' '-help' '-loglevel' 'quiet'
[2022-08-08 03:57:02] local.INFO: ffprobe executed command successfully
[2022-08-08 03:57:02] local.INFO: ffprobe running command '/opt/homebrew/bin/ffprobe' 'https://s3.amazonaws.com/www.talkieselfie.xyz/aws_pacific/avatar_tmp/641b659486e24a41854810ef090c3abc/9ab8e202-bb49-442a-9cc5-62ff6fa4189e.mp4?AWSAccessKeyId=AKIAR2ESI7XGYQEXSYU2&Signature=bZgutD67AjV6qeygcbGjgKdMVr0%3D&Expires=1660535243' '-show_streams' '-print_format' 'json'
[2022-08-08 03:57:06] local.INFO: ffprobe executed command successfully
[2022-08-08 03:57:06] local.ERROR: App\Console\Kernel::App\Console{closure}(): Argument #1 ($filters) must be of type App\Console\App\Console\FFMpeg\Filters\Video\VideoFilters, FFMpeg\Filters\Video\VideoFilters given {"exception":"[object] (TypeError(code: 0): App\Console\Kernel::App\Console\{closure}(): Argument #1 ($filters) must be of type App\Console\App\Console\FFMpeg\Filters\Video\VideoFilters, FFMpeg\Filters\Video\VideoFilters given at /Users/kostakondratenko/Dropbox/larapi/app/Console/Kernel.php:59) [stacktrace]

0 [internal function]: App\Console\Kernel->App\Console\{closure}(Object(FFMpeg\Filters\Video\VideoFilters))

1 /Users/kostakondratenko/Dropbox/larapi/vendor/pbmedia/laravel-ffmpeg/src/Drivers/InteractsWithFilters.php(52): call_user_func_array(Object(Closure), Array)

2 /Users/kostakondratenko/Dropbox/larapi/vendor/laravel/framework/src/Illuminate/Support/Traits/ForwardsCalls.php(23): ProtoneMedia\LaravelFFMpeg\Drivers\PHPFFMpeg->addFilter(Object(Closure))

3 /Users/kostakondratenko/Dropbox/larapi/vendor/pbmedia/laravel-ffmpeg/src/MediaOpener.php(268): ProtoneMedia\LaravelFFMpeg\MediaOpener->forwardCallTo(Object(ProtoneMedia\LaravelFFMpeg\Drivers\PHPFFMpeg), 'addFilter', Array)

4 /Users/kostakondratenko/Dropbox/larapi/app/Console/Kernel.php(61): ProtoneMedia\LaravelFFMpeg\MediaOpener->__call('addFilter', Array)

5 /Users/kostakondratenko/Dropbox/larapi/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): App\Console\Kernel->App\Console\{closure}()

6 /Users/kostakondratenko/Dropbox/larapi/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Closure->__invoke()

7 /Users/kostakondratenko/Dropbox/larapi/vendor/laravel/framework/src/Illuminate/Container/Util.php(41): Illuminate\Container\BoundMethod::Illuminate\Container\{closure}()

8 /Users/kostakondratenko/Dropbox/larapi/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(93): Illuminate\Container\Util::unwrapIfClosure(Object(Closure))

9 /Users/kostakondratenko/Dropbox/larapi/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(37): Illuminate\Container\BoundMethod::callBoundMethod(Object(Illuminate\Foundation\Application), Array, Object(Closure))

10 /Users/kostakondratenko/Dropbox/larapi/vendor/laravel/framework/src/Illuminate/Container/Container.php(651): Illuminate\Container\BoundMethod::call(Object(Illuminate\Foundation\Application), Array, Array, NULL)

11 /Users/kostakondratenko/Dropbox/larapi/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CallbackEvent.php(118): Illuminate\Container\Container->call(Array, Array)

12 /Users/kostakondratenko/Dropbox/larapi/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(230): Illuminate\Console\Scheduling\CallbackEvent->execute(Object(Illuminate\Foundation\Application))

13 /Users/kostakondratenko/Dropbox/larapi/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(200): Illuminate\Console\Scheduling\Event->start(Object(Illuminate\Foundation\Application))

14 /Users/kostakondratenko/Dropbox/larapi/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CallbackEvent.php(77): Illuminate\Console\Scheduling\Event->run(Object(Illuminate\Foundation\Application))

15 /Users/kostakondratenko/Dropbox/larapi/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(184): Illuminate\Console\Scheduling\CallbackEvent->run(Object(Illuminate\Foundation\Application))

16 /Users/kostakondratenko/Dropbox/larapi/vendor/laravel/framework/src/Illuminate/Console/View/Components/Task.php(36): Illuminate\Console\Scheduling\ScheduleRunCommand->Illuminate\Console\Scheduling\{closure}()

17 /Users/kostakondratenko/Dropbox/larapi/vendor/laravel/framework/src/Illuminate/Console/View/Components/Factory.php(56): Illuminate\Console\View\Components\Task->render('2022-0...', Object(Closure))

18 /Users/kostakondratenko/Dropbox/larapi/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(199): Illuminate\Console\View\Components\Factory->__call('task', Array)

19 /Users/kostakondratenko/Dropbox/larapi/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(127): Illuminate\Console\Scheduling\ScheduleRunCommand->runEvent(Object(Illuminate\Console\Scheduling\CallbackEvent))

20 /Users/kostakondratenko/Dropbox/larapi/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\Console\Scheduling\ScheduleRunCommand->handle(Object(Illuminate\Console\Scheduling\Schedule), Object(Illuminate\Events\Dispatcher), Object(NunoMaduro\Collision\Adapters\Laravel\ExceptionHandler))

21 /Users/kostakondratenko/Dropbox/larapi/vendor/laravel/framework/src/Illuminate/Container/Util.php(41): Illuminate\Container\BoundMethod::Illuminate\Container\{closure}()

22 /Users/kostakondratenko/Dropbox/larapi/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(93): Illuminate\Container\Util::unwrapIfClosure(Object(Closure))

23 /Users/kostakondratenko/Dropbox/larapi/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(37): Illuminate\Container\BoundMethod::callBoundMethod(Object(Illuminate\Foundation\Application), Array, Object(Closure))

24 /Users/kostakondratenko/Dropbox/larapi/vendor/laravel/framework/src/Illuminate/Container/Container.php(651): Illuminate\Container\BoundMethod::call(Object(Illuminate\Foundation\Application), Array, Array, NULL)

25 /Users/kostakondratenko/Dropbox/larapi/vendor/laravel/framework/src/Illuminate/Console/Command.php(139): Illuminate\Container\Container->call(Array)

26 /Users/kostakondratenko/Dropbox/larapi/vendor/symfony/console/Command/Command.php(308): Illuminate\Console\Command->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Illuminate\Console\OutputStyle))

27 /Users/kostakondratenko/Dropbox/larapi/vendor/laravel/framework/src/Illuminate/Console/Command.php(124): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Illuminate\Console\OutputStyle))

28 /Users/kostakondratenko/Dropbox/larapi/vendor/symfony/console/Application.php(998): Illuminate\Console\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))

29 /Users/kostakondratenko/Dropbox/larapi/vendor/symfony/console/Application.php(299): Symfony\Component\Console\Application->doRunCommand(Object(Illuminate\Console\Scheduling\ScheduleRunCommand), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))

30 /Users/kostakondratenko/Dropbox/larapi/vendor/symfony/console/Application.php(171): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))

31 /Users/kostakondratenko/Dropbox/larapi/vendor/laravel/framework/src/Illuminate/Console/Application.php(102): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))

32 /Users/kostakondratenko/Dropbox/larapi/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(129): Illuminate\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))

33 /Users/kostakondratenko/Dropbox/larapi/artisan(37): Illuminate\Foundation\Console\Kernel->handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))

34 {main}

"} [2022-08-08 03:58:02] local.INFO: ffprobe running command '/opt/homebrew/bin/ffprobe' '-help' '-loglevel' 'quiet'
[2022-08-08 03:58:02] local.INFO: ffprobe executed command successfully
[2022-08-08 03:58:02] local.INFO: ffprobe running command '/opt/homebrew/bin/ffprobe' 'https://s3.amazonaws.com/www.talkieselfie.xyz/aws_pacific/avatar_tmp/641b659486e24a41854810ef090c3abc/9ab8e202-bb49-442a-9cc5-62ff6fa4189e.mp4?AWSAccessKeyId=AKIAR2ESI7XGYQEXSYU2&Signature=bZgutD67AjV6qeygcbGjgKdMVr0%3D&Expires=1660535243' '-show_streams' '-print_format' 'json'
[2022-08-08 03:58:09] local.INFO: ffprobe executed command successfully
[2022-08-08 03:58:09] local.ERROR: App\Console\Kernel::App\Console{closure}(): Argument #1 ($filters) must be of type App\Console\App\Console\FFMpeg\Filters\Video\VideoFilters, FFMpeg\Filters\Video\VideoFilters given {"exception":"[object] (TypeError(code: 0): App\Console\Kernel::App\Console\{closure}(): Argument #1 ($filters) must be of type App\Console\App\Console\FFMpeg\Filters\Video\VideoFilters, FFMpeg\Filters\Video\VideoFilters given at /Users/kostakondratenko/Dropbox/larapi/app/Console/Kernel.php:59) [stacktrace]

0 [internal function]: App\Console\Kernel->App\Console\{closure}(Object(FFMpeg\Filters\Video\VideoFilters))

1 /Users/kostakondratenko/Dropbox/larapi/vendor/pbmedia/laravel-ffmpeg/src/Drivers/InteractsWithFilters.php(52): call_user_func_array(Object(Closure), Array)

2 /Users/kostakondratenko/Dropbox/larapi/vendor/laravel/framework/src/Illuminate/Support/Traits/ForwardsCalls.php(23): ProtoneMedia\LaravelFFMpeg\Drivers\PHPFFMpeg->addFilter(Object(Closure))

3 /Users/kostakondratenko/Dropbox/larapi/vendor/pbmedia/laravel-ffmpeg/src/MediaOpener.php(268): ProtoneMedia\LaravelFFMpeg\MediaOpener->forwardCallTo(Object(ProtoneMedia\LaravelFFMpeg\Drivers\PHPFFMpeg), 'addFilter', Array)

4 /Users/kostakondratenko/Dropbox/larapi/app/Console/Kernel.php(61): ProtoneMedia\LaravelFFMpeg\MediaOpener->__call('addFilter', Array)

5 /Users/kostakondratenko/Dropbox/larapi/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): App\Console\Kernel->App\Console\{closure}()

6 /Users/kostakondratenko/Dropbox/larapi/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Closure->__invoke()

7 /Users/kostakondratenko/Dropbox/larapi/vendor/laravel/framework/src/Illuminate/Container/Util.php(41): Illuminate\Container\BoundMethod::Illuminate\Container\{closure}()

8 /Users/kostakondratenko/Dropbox/larapi/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(93): Illuminate\Container\Util::unwrapIfClosure(Object(Closure))

9 /Users/kostakondratenko/Dropbox/larapi/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(37): Illuminate\Container\BoundMethod::callBoundMethod(Object(Illuminate\Foundation\Application), Array, Object(Closure))

10 /Users/kostakondratenko/Dropbox/larapi/vendor/laravel/framework/src/Illuminate/Container/Container.php(651): Illuminate\Container\BoundMethod::call(Object(Illuminate\Foundation\Application), Array, Array, NULL)

11 /Users/kostakondratenko/Dropbox/larapi/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CallbackEvent.php(118): Illuminate\Container\Container->call(Array, Array)

12 /Users/kostakondratenko/Dropbox/larapi/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(230): Illuminate\Console\Scheduling\CallbackEvent->execute(Object(Illuminate\Foundation\Application))

13 /Users/kostakondratenko/Dropbox/larapi/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(200): Illuminate\Console\Scheduling\Event->start(Object(Illuminate\Foundation\Application))

14 /Users/kostakondratenko/Dropbox/larapi/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CallbackEvent.php(77): Illuminate\Console\Scheduling\Event->run(Object(Illuminate\Foundation\Application))

15 /Users/kostakondratenko/Dropbox/larapi/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(184): Illuminate\Console\Scheduling\CallbackEvent->run(Object(Illuminate\Foundation\Application))

16 /Users/kostakondratenko/Dropbox/larapi/vendor/laravel/framework/src/Illuminate/Console/View/Components/Task.php(36): Illuminate\Console\Scheduling\ScheduleRunCommand->Illuminate\Console\Scheduling\{closure}()

17 /Users/kostakondratenko/Dropbox/larapi/vendor/laravel/framework/src/Illuminate/Console/View/Components/Factory.php(56): Illuminate\Console\View\Components\Task->render('2022-0...', Object(Closure))

18 /Users/kostakondratenko/Dropbox/larapi/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(199): Illuminate\Console\View\Components\Factory->__call('task', Array)

19 /Users/kostakondratenko/Dropbox/larapi/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(127): Illuminate\Console\Scheduling\ScheduleRunCommand->runEvent(Object(Illuminate\Console\Scheduling\CallbackEvent))

20 /Users/kostakondratenko/Dropbox/larapi/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\Console\Scheduling\ScheduleRunCommand->handle(Object(Illuminate\Console\Scheduling\Schedule), Object(Illuminate\Events\Dispatcher), Object(NunoMaduro\Collision\Adapters\Laravel\ExceptionHandler))

21 /Users/kostakondratenko/Dropbox/larapi/vendor/laravel/framework/src/Illuminate/Container/Util.php(41): Illuminate\Container\BoundMethod::Illuminate\Container\{closure}()

22 /Users/kostakondratenko/Dropbox/larapi/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(93): Illuminate\Container\Util::unwrapIfClosure(Object(Closure))

23 /Users/kostakondratenko/Dropbox/larapi/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(37): Illuminate\Container\BoundMethod::callBoundMethod(Object(Illuminate\Foundation\Application), Array, Object(Closure))

24 /Users/kostakondratenko/Dropbox/larapi/vendor/laravel/framework/src/Illuminate/Container/Container.php(651): Illuminate\Container\BoundMethod::call(Object(Illuminate\Foundation\Application), Array, Array, NULL)

25 /Users/kostakondratenko/Dropbox/larapi/vendor/laravel/framework/src/Illuminate/Console/Command.php(139): Illuminate\Container\Container->call(Array)

26 /Users/kostakondratenko/Dropbox/larapi/vendor/symfony/console/Command/Command.php(308): Illuminate\Console\Command->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Illuminate\Console\OutputStyle))

27 /Users/kostakondratenko/Dropbox/larapi/vendor/laravel/framework/src/Illuminate/Console/Command.php(124): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Inpu

Also there's no namespaces right? Because in examples I couldn't find any facades or anything like that to use.

Thank you!