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. Для деталей використання ознайомтеся з документацією проекту.