Перетворення Eloquent моделей в HLS відео

Перекладено ШІ
Оригінал: Laravel News
Оновлено: 16 липня, 2025
Відкрийте для себе пакет Laravel HLS, який спрощує генерацію плейлистів та сегментів для HTTP Live Streaming із шифруванням AES-128. Хочете дізнатися, як швидко інтегрувати HLS у свої моделі Eloquent? Читайте далі!

Laravel HLS — це пакет для створення плейлистів і сегментів для HTTP Live Streaming (HLS) з шифруванням AES-128. HLS — адаптивний протокол потокового відео на основі HTTP, розроблений Apple, який підтримується на більшості пристроїв. Він має перевагу в адаптації якості (та обсягу) відео відповідно до швидкостей мережі.

Цей пакет дозволяє легко додати процес конвертації в HLS до моделі Eloquent. Для цього потрібно додати трейт ConvertToHls до вашої моделі, що містить відео. Трейт реагує на події created та updated моделі, відправляючи конвертацію HLS на обробку в чергу:

namespace App\Models;

use AchyutN\LaravelHLS\Traits\ConvertsToHls;
use Illuminate\Database\Eloquent\Model;

class Video extends Model
{
    use ConvertsToHls;
}

// Створюємо об'єкт відео
$video = Video::create([/* ... */]);

При створенні об'єкта пакет конвертує відеофайл у формат HLS за допомогою FFMpeg.

Щоб отримати плейлист HLS для моделі, ви можете скористатися наступним кодом, описаним у документації, для виклику маршруту hls.playlist:

use App\Models\Video;

// Отримуємо HLS плейлист для відео
$video = Video::findOrFail($id);
$playlistUrl = route('hls.playlist', ['model' => 'video', 'id' => $video->id]);

Цей пакет має зручну організацію і є чудовим прикладом для навчання, якщо ви працюєте з PHP та FFMpeg. Ви можете ознайомитися з laravel-hls на GitHub.

Встановіть його у своєму проекті Laravel >= 10.x за допомогою Composer:

composer require achyutn/laravel-hls
php artisan vendor:publish --provider="AchyutN\LaravelHLS\HLSProvider" --tag="hls-config"

Необхідно налаштувати псевдоніми моделі, які використовуватимуть конвертацію HLS. Для деталей використання ознайомтеся з документацією проекту.