Как правильно установить битрейты Laravel ffmpeg? Какие числа там должны быть?

При загрузке файла на сервер на Laravel, оставляю в Jobs-ах задачу. Видео должно через ffmpeg разделиться на сегменты для потокового воспроизведения.

Использую пакет: https://github.com/protonemedia/laravel-ffmpeg

Передо мной стоят две задачи:

  1. Есть в Ютубе к примеру качества (360p, 720p, 1080p) - как установить данные битрейты? Как их вообще считать?

  2. Допустим видео не самого лучшего качества и у него максимальное качество 360p - не будем ведь для него мы создавать 1080, 720? Как определить максимальный и дальше уже уменьшать его?

Вот сам Job

<?php

namespace App\Jobs;

use App\Models\Helpers\Video;
use FFMpeg\FFMpeg as FFMpegFFMpeg;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldBeUnique;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Filesystem\FilesystemAdapter;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;

use FFMpeg\Format\Video\X264;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Storage;
use ProtoneMedia\LaravelFFMpeg\Support\FFMpeg;

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

/**
 * @var mixed
 */
protected $storage;

/**
 * @var mixed
 */
protected $filePath;

/**
 * Create a new job instance.
 *
 * @return void
 */
public function __construct(FilesystemAdapter $storage, String $filePath)
{
    $this->storage = $storage;
    $this->filePath = $filePath;
}

/**
 * Execute the job.
 *
 * @return void
 */
public function handle()
{
    

    $time = time();
    
    FFMpeg::fromDisk('local')
        ->open($this->filePath)
        ->exportForHLS()
        ->addFormat((new X264('aac'))->setKiloBitrate(500))
        ->addFormat((new X264('aac'))->setKiloBitrate(100))
        ->toDisk('local')
        ->save('Streams/' . $time . '_' . 1 . '/' . $time . '.m3u8');
    
}
    }

Ответы (0 шт):