Steady-Entertainment's avatar

Laravel FFMPeg

My videos are converted but they only show the first frame pixeld and zero seconds long

apparently there is some sort of time code on the videos

probably because they are shot with a go pro which is stabilizing the picture

<?php

namespace App\Jobs;

use FFMpeg\Coordinate\Dimension;
use app\models\video;
use Carbon\Carbon;
use FFMpeg\Filters\Video\VideoFilters;
use FFMpeg\Format\Video\X264;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldBeUnique;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use ProtoneMedia\LaravelFFMpeg\Support\FFMpeg;

class ConvertVideoForStreaming implements ShouldQueue
{
 use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

    public $video;

    /**
     * Create a new job instance.
     *
     * @param Video $video
     */
    public function __construct(Video $video)
    {
        $this->video = $video;
    }

    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle()
    {
        // create a video format...
        $lowBitrateFormat = (new X264('aac'))->setKiloBitrate(500);

        $converted_name = $this->getCleanFileName($this->video->path);

        // open the uploaded video from the right disk...
        FFMpeg::fromDisk($this->video->disk)
            ->open($this->video->path)

            // add the 'resize' filter...
            ->addFilter(function (VideoFilters $filters) {
                $filters->resize(new Dimension(640, 480));
            })

            // call the 'export' method...
            ->export()

            // tell the MediaExporter to which disk and in which format we want to export...
            ->toDisk('public')
            ->inFormat($lowBitrateFormat)

            // call the 'save' method with a filename...
            ->save($converted_name);

        // update the database so we know the convertion is done!
        $this->video->update([
            'converted_for_streaming_at' => Carbon::now(),
            'processed' => true,
            'stream_path' => $converted_name
        ]);
    }

    private function getCleanFileName($filename){
        return preg_replace('/\.[^.\s]{3,4}$/', '', $filename) . '.mp4';
    }
}

<?php

namespace App\Http\Controllers;

use App\Http\Requests\StoreVideoRequest;
use App\Jobs\ConvertVideoForStreaming;
use App\Models\Video;
use Illuminate\Http\Request;
use Illuminate\Support\Str;
use Livewire\Component;

class VideoController extends Controller
{
     /**
     * Return video blade view and pass videos to it.
     * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
     */
    public function index()
    {
        $videos = Video::orderBy('created_at', 'DESC')->get();
        return view('videos')->with('videos', $videos);
    }

    /**
     * Return uploader form view for uploading videos
     * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
     */
    public function uploader(){
        return view('uploader');
    }

    /**
     * Handles form submission after uploader form submits
     * @param StoreVideoRequest $request
     * @return \Illuminate\Http\RedirectResponse
     */
    public function store(StoreVideoRequest $request)
    {
        $path = Str::random(16) . '.' . $request->video->getClientOriginalExtension();
        $request->video->storeAs('public', $path);

        $video = Video::create([
            'disk'          => 'public',
            'original_name' => $request->video->getClientOriginalName(),
            'path'          => $path,
            'title'         => $request->title,
        ]);

        ConvertVideoForStreaming::dispatch($video);

        return redirect('/uploader')
            ->with(
                'message',
                'Your video will be available shortly after we process it'
            );
    }
}

how can I import FFMpeg directly into my projects?

use FFMpeg;
<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Video extends Model
{
    use HasFactory;

    protected $dates = [
        'converted_for_streaming_at',
    ];

    protected $guarded = [];
    /**
     * @var mixed
     */
}
0 likes
14 replies
Tray2's avatar

Stupid question but have you installed ffmpeg on your machine?

What happens if you run ffmpeg -version from the command line?

You should see something like this

~$ ffmpeg -version
ffmpeg version 4.2.4-1ubuntu0.1 Copyright (c) 2000-2020 the FFmpeg developers
built with gcc 9 (Ubuntu 9.3.0-10ubuntu2)
configuration: --prefix=/usr --extra-version=1ubuntu0.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-nvenc --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
libavutil      56. 31.100 / 56. 31.100
libavcodec     58. 54.100 / 58. 54.100
libavformat    58. 29.100 / 58. 29.100
libavdevice    58.  8.100 / 58.  8.100
libavfilter     7. 57.100 /  7. 57.100
libavresample   4.  0.  0 /  4.  0.  0
libswscale      5.  5.100 /  5.  5.100
libswresample   3.  5.100 /  3.  5.100
libpostproc    55.  5.100 / 55.  5.100
Steady-Entertainment's avatar

I found the mistake I did and it works now ...

When I upload a *.mp4 file it just takes the first frame and makes it pixeled and returns 0 seconds

But

when I upload a *.mkv

it correctly converts the file

Obviously my next question would be ...

How can I transfer any file to the same format X264?

Tray2's avatar

You can check what formats your ffmpeg installation can handle by running ffmpeg -formats Check that the codec used in the mp4 both audio and video is in that list.

Steady-Entertainment's avatar

the previous video which did not work was

Timecode, AAC, H.264

and the command had

D  aac             raw ADTS AAC (Advanced Audio Coding)

as output

also

 DE h264            raw H.264 video

was there

but there is no timecode

Tray2's avatar

Have you tried just doing it like this ?

use FFMpeg\Filters\Video\VideoFilters;

FFMpeg::fromDisk('videos')
    ->open('steve_howe.mp4')
    ->addFilter(function (VideoFilters $filters) {
        $filters->resize(new \FFMpeg\Coordinate\Dimension(640, 480));
    })
    ->export()
    ->toDisk('converted_videos')
    ->inFormat(new \FFMpeg\Format\Video\X264)
    ->save('small_steve.mkv');

// or

$start = \FFMpeg\Coordinate\TimeCode::fromSeconds(5)
$clipFilter = new \FFMpeg\Filters\Video\ClipFilter($start);

FFMpeg::fromDisk('videos')
    ->open('steve_howe.mp4')
    ->addFilter($clipFilter)
    ->export()
    ->toDisk('converted_videos')
    ->inFormat(new \FFMpeg\Format\Video\X264)
    ->save('short_steve.mkv');

Taken from

https://github.com/protonemedia/laravel-ffmpeg

Tray2's avatar

Either use the top one or the bottom one.

Tray2's avatar

What doesn't work?

Do you have any error messages in the logs?

Have you tried another mp4 video?

Have you tried using another video transcoder on the file since the file may be corrupt?

Steady-Entertainment's avatar

Good morning. All my *.mp4 videos are the same. As a codec they have:

H264, aac, timecode

Other .mp4 that have

H264, aac

Work

But videos with Timecode Codec on it don’t.

They will stop at frame 0 and be very pixeld

Tray2's avatar

It sounds to me that it choses the timecode stream instead of the video stream. I suggest you check videohelp.com or doom9.org (if it's still online) for more information on how to fix this.

I think this is a ffmpeg issue and not an issue with your code.

Steady-Entertainment's avatar

All my *.mp4 look like this

https://postimg.cc/mttdBgyx

Thanks for your advise I will check videohelp.com

it is strange all my mp4 videos are like that also the once without timecode

also I get another strnge error output sometimes

Alchemy\BinaryDriver\Exception\ExecutionFailureException: ffmpeg failed to execute command '/usr/local/bin/ffmpeg' '-y' '-i' '/Users/reniar/code/OfflineJetstream/storage/app/public/NgzQEAWIjvJUX9wn.mp4' '-threads' '12' '-vcodec' 'libx264' '-acodec' 'libmp3lame' '-b:v' '500k' '-refs' '6' '-coder' '1' '-sc_threshold' '40' '-flags' '+loop' '-me_range' '16' '-subq' '7' '-i_qfactor' '0.71' '-qcomp' '0.6' '-qdiff' '4' '-trellis' '1' '-b:a' '128k' '-vf' '[in]scale=960:540 [out]' '-pass' '1' '-passlogfile' '/var/folders/kd/979xg6nd0jq8xy3zyy812c_40000gn/T/ffmpeg-passes5fdc9a58242b5coh38/pass-5fdc9a582433b' '/Users/reniar/code/OfflineJetstream/storage/app/public/NgzQEAWIjvJUX9wn.mp4':

Error Output:

 ffmpeg version 4.3.1 Copyright (c) 2000-2020 the FFmpeg developers
  built with Apple clang version 12.0.0 (clang-1200.0.32.27)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/4.3.1_4 --enable-shared --enable-pthreads --enable-version3 --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libbluray --enable-libdav1d --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librtmp --enable-libspeex --enable-libsoxr --enable-videotoolbox --disable-libjack --disable-indev=jack
  libavutil      56. 51.100 / 56. 51.100
  libavcodec     58. 91.100 / 58. 91.100
  libavformat    58. 45.100 / 58. 45.100
  libavdevice    58. 10.100 / 58. 10.100
  libavfilter     7. 85.100 /  7. 85.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  7.100 /  5.  7.100
  libswresample   3.  7.100 /  3.  7.100
  libpostproc    55.  7.100 / 55.  7.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/Users/reniar/code/OfflineJetstream/storage/app/public/NgzQEAWIjvJUX9wn.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: mp42mp41isomavc1
    creation_time   : 2015-08-07T09:13:36.000000Z
  Duration: 00:00:30.53, start: 0.000000, bitrate: 4675 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 4486 kb/s, 30 fps, 30 tbr, 30 tbn, 60 tbc (default)
    Metadata:
      creation_time   : 2015-08-07T09:13:36.000000Z
      handler_name    : L-SMASH Video Handler
      encoder         : AVC Coding
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 256 kb/s (default)
    Metadata:
      creation_time   : 2015-08-07T09:13:36.000000Z
      handler_name    : L-SMASH Audio Handler
Output /Users/reniar/code/OfflineJetstream/storage/app/public/NgzQEAWIjvJUX9wn.mp4 same as Input #0 - exiting
FFmpeg cannot edit existing files in-place.
 in /Users/reniar/code/OfflineJetstream/vendor/alchemy/binary-driver/src/Alchemy/BinaryDriver/ProcessRunner.php:95
Stack trace:
#0 /Users/reniar/code/OfflineJetstream/vendor/alchemy/binary-driver/src/Alchemy/BinaryDriver/ProcessRunner.php(73): Alchemy\BinaryDriver\ProcessRunner->doExecutionFailure(''/usr/local/bin...', 'ffmpeg version ...')
#1 /Users/reniar/code/OfflineJetstream/vendor/alchemy/binary-driver/src/Alchemy/BinaryDriver/AbstractBinary.php(207): Alchemy\BinaryDriver\ProcessRunner->run(Object(Symfony\Component\Process\Process), Object(SplObjectStorage), false)
#2 /Users/reniar/code/OfflineJetstream/vendor/alchemy/binary-driver/src/Alchemy/BinaryDriver/AbstractBinary.php(136): Alchemy\BinaryDriver\AbstractBinary->run(Object(Symfony\Component\Process\Process), false, Array)
#3 /Users/reniar/code/OfflineJetstream/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Media/AbstractVideo.php(96): Alchemy\BinaryDriver\AbstractBinary->command(Array, false, Array)
#4 /Users/reniar/code/OfflineJetstream/vendor/laravel/framework/src/Illuminate/Support/Traits/ForwardsCalls.php(23): FFMpeg\Media\AbstractVideo->save(Object(FFMpeg\Format\Video\X264), '/Users/reniar/c...')
#5 /Users/reniar/code/OfflineJetstream/vendor/pbmedia/laravel-ffmpeg/src/Drivers/PHPFFMpeg.php(175): ProtoneMedia\LaravelFFMpeg\Drivers\PHPFFMpeg->forwardCallTo(Object(ProtoneMedia\LaravelFFMpeg\FFMpeg\VideoMedia), 'save', Array)
#6 /Users/reniar/code/OfflineJetstream/vendor/pbmedia/laravel-ffmpeg/src/Exporters/MediaExporter.php(146): ProtoneMedia\LaravelFFMpeg\Drivers\PHPFFMpeg->__call('save', Array)
#7 /Users/reniar/code/OfflineJetstream/app/Jobs/ConvertVideoForStreaming.php(62): ProtoneMedia\LaravelFFMpeg\Exporters\MediaExporter->save('NgzQEAWIjvJUX9w...')
#8 /Users/reniar/code/OfflineJetstream/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): App\Jobs\ConvertVideoForStreaming->handle()
#9 /Users/reniar/code/OfflineJetstream/vendor/laravel/framework/src/Illuminate/Container/Util.php(40): Illuminate\Container\BoundMethod::Illuminate\Container\{closure}()
#10 /Users/reniar/code/OfflineJetstream/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(93): Illuminate\Container\Util::unwrapIfClosure(Object(Closure))
#11 /Users/reniar/code/OfflineJetstream/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(37): Illuminate\Container\BoundMethod::callBoundMethod(Object(Illuminate\Foundation\Application), Array, Object(Closure))
#12 /Users/reniar/code/OfflineJetstream/vendor/laravel/framework/src/Illuminate/Container/Container.php(610): Illuminate\Container\BoundMethod::call(Object(Illuminate\Foundation\Application), Array, Array, NULL)
#13 /Users/reniar/code/OfflineJetstream/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php(128): Illuminate\Container\Container->call(Array)
#14 /Users/reniar/code/OfflineJetstream/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\Bus\Dispatcher->Illuminate\Bus\{closure}(Object(App\Jobs\ConvertVideoForStreaming))
#15 /Users/reniar/code/OfflineJetstream/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(App\Jobs\ConvertVideoForStreaming))
#16 /Users/reniar/code/OfflineJetstream/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php(132): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#17 /Users/reniar/code/OfflineJetstream/vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php(96): Illuminate\Bus\Dispatcher->dispatchNow(Object(App\Jobs\ConvertVideoForStreaming), false)
#18 /Users/reniar/code/OfflineJetstream/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\Queue\CallQueuedHandler->Illuminate\Queue\{closure}(Object(App\Jobs\ConvertVideoForStreaming))
#19 /Users/reniar/code/OfflineJetstream/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(App\Jobs\ConvertVideoForStreaming))
#20 /Users/reniar/code/OfflineJetstream/vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php(98): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#21 /Users/reniar/code/OfflineJetstream/vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php(67): Illuminate\Queue\CallQueuedHandler->dispatchThroughMiddleware(Object(Illuminate\Queue\Jobs\DatabaseJob), Object(App\Jobs\ConvertVideoForStreaming))
#22 /Users/reniar/code/OfflineJetstream/vendor/laravel/framework/src/Illuminate/Queue/Jobs/Job.php(98): Illuminate\Queue\CallQueuedHandler->call(Object(Illuminate\Queue\Jobs\DatabaseJob), Array)
#23 /Users/reniar/code/OfflineJetstream/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(406): Illuminate\Queue\Jobs\Job->fire()
#24 /Users/reniar/code/OfflineJetstream/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(356): Illuminate\Queue\Worker->process('database', Object(Illuminate\Queue\Jobs\DatabaseJob), Object(Illuminate\Queue\WorkerOptions))
#25 /Users/reniar/code/OfflineJetstream/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(158): Illuminate\Queue\Worker->runJob(Object(Illuminate\Queue\Jobs\DatabaseJob), 'database', Object(Illuminate\Queue\WorkerOptions))
#26 /Users/reniar/code/OfflineJetstream/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(116): Illuminate\Queue\Worker->daemon('database', 'default', Object(Illuminate\Queue\WorkerOptions))
#27 /Users/reniar/code/OfflineJetstream/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(100): Illuminate\Queue\Console\WorkCommand->runWorker('database', 'default')
#28 /Users/reniar/code/OfflineJetstream/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\Queue\Console\WorkCommand->handle()
#29 /Users/reniar/code/OfflineJetstream/vendor/laravel/framework/src/Illuminate/Container/Util.php(40): Illuminate\Container\BoundMethod::Illuminate\Container\{closure}()
#30 /Users/reniar/code/OfflineJetstream/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(93): Illuminate\Container\Util::unwrapIfClosure(Object(Closure))
#31 /Users/reniar/code/OfflineJetstream/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(37): Illuminate\Container\BoundMethod::callBoundMethod(Object(Illuminate\Foundation\Application), Array, Object(Closure))
#32 /Users/reniar/code/OfflineJetstream/vendor/laravel/framework/src/Illuminate/Container/Container.php(610): Illuminate\Container\BoundMethod::call(Object(Illuminate\Foundation\Application), Array, Array, NULL)
#33 /Users/reniar/code/OfflineJetstream/vendor/laravel/framework/src/Illuminate/Console/Command.php(136): Illuminate\Container\Container->call(Array)
#34 /Users/reniar/code/OfflineJetstream/vendor/symfony/console/Command/Command.php(255): Illuminate\Console\Command->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Illuminate\Console\OutputStyle))
#35 /Users/reniar/code/OfflineJetstream/vendor/laravel/framework/src/Illuminate/Console/Command.php(121): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Illuminate\Console\OutputStyle))
#36 /Users/reniar/code/OfflineJetstream/vendor/symfony/console/Application.php(971): Illuminate\Console\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#37 /Users/reniar/code/OfflineJetstream/vendor/symfony/console/Application.php(290): Symfony\Component\Console\Application->doRunCommand(Object(Illuminate\Queue\Console\WorkCommand), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#38 /Users/reniar/code/OfflineJetstream/vendor/symfony/console/Application.php(166): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#39 /Users/reniar/code/OfflineJetstream/vendor/laravel/framework/src/Illuminate/Console/Application.php(93): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#40 /Users/reniar/code/OfflineJetstream/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))
#41 /Users/reniar/code/OfflineJetstream/artisan(37): Illuminate\Foundation\Console\Kernel->handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#42 {main}

Next ProtoneMedia\LaravelFFMpeg\Exporters\EncodingException: Encoding failed in /Users/reniar/code/OfflineJetstream/vendor/pbmedia/laravel-ffmpeg/src/Exporters/EncodingException.php:12
Stack trace:
#0 /Users/reniar/code/OfflineJetstream/vendor/pbmedia/laravel-ffmpeg/src/Exporters/MediaExporter.php(149): ProtoneMedia\LaravelFFMpeg\Exporters\EncodingException::decorate(Object(FFMpeg\Exception\RuntimeException))
#1 /Users/reniar/code/OfflineJetstream/app/Jobs/ConvertVideoForStreaming.php(62): ProtoneMedia\LaravelFFMpeg\Exporters\MediaExporter->save('NgzQEAWIjvJUX9w...')
#2 /Users/reniar/code/OfflineJetstream/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): App\Jobs\ConvertVideoForStreaming->handle()
#3 /Users/reniar/code/OfflineJetstream/vendor/laravel/framework/src/Illuminate/Container/Util.php(40): Illuminate\Container\BoundMethod::Illuminate\Container\{closure}()
#4 /Users/reniar/code/OfflineJetstream/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(93): Illuminate\Container\Util::unwrapIfClosure(Object(Closure))
#5 /Users/reniar/code/OfflineJetstream/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(37): Illuminate\Container\BoundMethod::callBoundMethod(Object(Illuminate\Foundation\Application), Array, Object(Closure))
#6 /Users/reniar/code/OfflineJetstream/vendor/laravel/framework/src/Illuminate/Container/Container.php(610): Illuminate\Container\BoundMethod::call(Object(Illuminate\Foundation\Application), Array, Array, NULL)
#7 /Users/reniar/code/OfflineJetstream/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php(128): Illuminate\Container\Container->call(Array)
#8 /Users/reniar/code/OfflineJetstream/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\Bus\Dispatcher->Illuminate\Bus\{closure}(Object(App\Jobs\ConvertVideoForStreaming))
#9 /Users/reniar/code/OfflineJetstream/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(App\Jobs\ConvertVideoForStreaming))
#10 /Users/reniar/code/OfflineJetstream/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php(132): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#11 /Users/reniar/code/OfflineJetstream/vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php(96): Illuminate\Bus\Dispatcher->dispatchNow(Object(App\Jobs\ConvertVideoForStreaming), false)
#12 /Users/reniar/code/OfflineJetstream/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\Queue\CallQueuedHandler->Illuminate\Queue\{closure}(Object(App\Jobs\ConvertVideoForStreaming))
#13 /Users/reniar/code/OfflineJetstream/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(App\Jobs\ConvertVideoForStreaming))
#14 /Users/reniar/code/OfflineJetstream/vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php(98): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#15 /Users/reniar/code/OfflineJetstream/vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php(67): Illuminate\Queue\CallQueuedHandler->dispatchThroughMiddleware(Object(Illuminate\Queue\Jobs\DatabaseJob), Object(App\Jobs\ConvertVideoForStreaming))
#16 /Users/reniar/code/OfflineJetstream/vendor/laravel/framework/src/Illuminate/Queue/Jobs/Job.php(98): Illuminate\Queue\CallQueuedHandler->call(Object(Illuminate\Queue\Jobs\DatabaseJob), Array)
#17 /Users/reniar/code/OfflineJetstream/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(406): Illuminate\Queue\Jobs\Job->fire()
#18 /Users/reniar/code/OfflineJetstream/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(356): Illuminate\Queue\Worker->process('database', Object(Illuminate\Queue\Jobs\DatabaseJob), Object(Illuminate\Queue\WorkerOptions))
#19 /Users/reniar/code/OfflineJetstream/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(158): Illuminate\Queue\Worker->runJob(Object(Illuminate\Queue\Jobs\DatabaseJob), 'database', Object(Illuminate\Queue\WorkerOptions))
#20 /Users/reniar/code/OfflineJetstream/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(116): Illuminate\Queue\Worker->daemon('database', 'default', Object(Illuminate\Queue\WorkerOptions))
#21 /Users/reniar/code/OfflineJetstream/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(100): Illuminate\Queue\Console\WorkCommand->runWorker('database', 'default')
#22 /Users/reniar/code/OfflineJetstream/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\Queue\Console\WorkCommand->handle()
#23 /Users/reniar/code/OfflineJetstream/vendor/laravel/framework/src/Illuminate/Container/Util.php(40): Illuminate\Container\BoundMethod::Illuminate\Container\{closure}()
#24 /Users/reniar/code/OfflineJetstream/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(93): Illuminate\Container\Util::unwrapIfClosure(Object(Closure))
#25 /Users/reniar/code/OfflineJetstream/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(37): Illuminate\Container\BoundMethod::callBoundMethod(Object(Illuminate\Foundation\Application), Array, Object(Closure))
#26 /Users/reniar/code/OfflineJetstream/vendor/laravel/framework/src/Illuminate/Container/Container.php(610): Illuminate\Container\BoundMethod::call(Object(Illuminate\Foundation\Application), Array, Array, NULL)
#27 /Users/reniar/code/OfflineJetstream/vendor/laravel/framework/src/Illuminate/Console/Command.php(136): Illuminate\Container\Container->call(Array)
#28 /Users/reniar/code/OfflineJetstream/vendor/symfony/console/Command/Command.php(255): Illuminate\Console\Command->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Illuminate\Console\OutputStyle))
#29 /Users/reniar/code/OfflineJetstream/vendor/laravel/framework/src/Illuminate/Console/Command.php(121): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Illuminate\Console\OutputStyle))
#30 /Users/reniar/code/OfflineJetstream/vendor/symfony/console/Application.php(971): Illuminate\Console\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#31 /Users/reniar/code/OfflineJetstream/vendor/symfony/console/Application.php(290): Symfony\Component\Console\Application->doRunCommand(Object(Illuminate\Queue\Console\WorkCommand), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#32 /Users/reniar/code/OfflineJetstream/vendor/symfony/console/Application.php(166): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#33 /Users/reniar/code/OfflineJetstream/vendor/laravel/framework/src/Illuminate/Console/Application.php(93): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#34 /Users/reniar/code/OfflineJetstream/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))
#35 /Users/reniar/code/OfflineJetstream/artisan(37): Illuminate\Foundation\Console\Kernel->handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#36 {main}
Tray2's avatar

This seems to be the important part

Output /Users/reniar/code/OfflineJetstream/storage/app/public/NgzQEAWIjvJUX9wn.mp4 same as Input #0 - exiting
FFmpeg cannot edit existing files in-place.
 in /Users/reniar/code/OfflineJetstream/vendor/alchemy/binary-driver/src/Alchemy/BinaryDriver/ProcessRunner.php:95

It seems that you use the same input and output filename.

Please or to participate in this conversation.