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

how to its work on dual audio in one video for m3u8 #465

Open beartandgibsondev opened 1 year ago

beartandgibsondev commented 1 year ago

Screenshot (1) that display in computer media plyer but video-js not display other audio they get only single audio
i try but that is only one audio working not display or write plz hlp me how two work that dual audio

beartandgibsondev commented 1 year ago

$lowBitrate = (new X264)->setKiloBitrate(80); $fistlowBitrate = (new X264)->setKiloBitrate(150); $secondlowBitrate = (new X264)->setKiloBitrate(276); $firstmidBitrate = (new X264)->setKiloBitrate(750); $midBitrate = (new X264)->setKiloBitrate(2048); $highBitrate = (new X264)->setKiloBitrate(4096); $superBitrate = (new X264)->setKiloBitrate(6144); FFMpeg::fromDisk('assets') ->open('/videos/'.$date.'/'.$videodate[3]) ->exportForHLS() ->withRotatingEncryptionKey(function ($filename, $contents){ Storage::disk('secrets')->put($filename, $contents); }) ->addFormat($lowBitrate, function($media) { $media->addFilter('scale=256:144'); }) ->addFormat($fistlowBitrate, function($media) { $media->addLegacyFilter(function ($filters) { $filters->resize(new \FFMpeg\Coordinate\Dimension(426, 240)); }); }) ->addFormat($secondlowBitrate, function($media) { $media->addLegacyFilter(function ($filters) { $filters->resize(new \FFMpeg\Coordinate\Dimension(640, 360)); }); }) ->addFormat($firstmidBitrate, function($media) { $media->addLegacyFilter(function ($filters) { $filters->resize(new \FFMpeg\Coordinate\Dimension(854, 480)); }); }) ->addFormat($midBitrate, function($media) { $media->scale(1280, 720); }) ->addFormat($highBitrate, function ($media) { $media->addFilter(function ($filters, $in, $out) { $filters->custom($in, 'scale=1920:1080', $out); // $in, $parameters, $out }); }) ->addFormat($superBitrate, function($media) { $media->addLegacyFilter(function ($filters) { $filters->resize(new \FFMpeg\Coordinate\Dimension(2560, 1440)); }); }) ->onProgress(function ($progress) { $this->info("Progress: {$progress}%"); }) ->toDisk('public') ->save('videos/'.$name[0].'.m3u8'); }

                $this->info('Done!');
            } catch (\Exception $e) {

                $this->error($e->getMessage());

                }

that is my function i use it

beartandgibsondev commented 1 year ago

no response any one my question is wrong any body response my query plz