foxws/laravel-streamer

A Laravel package to interact with Shaka Streamer for media packaging.
6,501 2
Install
composer require foxws/laravel-streamer
Latest Version:3.0.0
PHP:^8.4
License:MIT
Last Updated:Oct 7, 2026
Links: GitHub  ·  Packagist
Maintainer: francoism90

Laravel Streamer

Latest Version on Packagist GitHub Tests Action Status Total Downloads

Encode video into several qualities and package it into HLS and DASH with Shaka Streamer, on top of foxws/laravel-media. Read the source from any Laravel disk, and write the result to any disk.

See the full documentation: Installation, Usage, Testing, Configuration, Upgrading from 2.x.

Requirements

Installation

composer require foxws/laravel-streamer

Install Shaka Streamer with its bundled FFmpeg and Shaka Packager, then check the setup:

pip install shaka-streamer shaka-streamer-binaries
php artisan media:info

See Installation to use your own FFmpeg and Shaka Packager instead.

Quick start

use Foxws\Media\Facades\Media;

$result = Media::fromDisk('media')
    ->open('videos/clip.mp4')
    ->streamer()
    ->addStreamsFrom()
    ->withResolutions('1080p', '720p', '480p')
    ->withHlsPlaylist()
    ->withDashManifest()
    ->toDisk('s3')
    ->save('streams/clip');

This encodes three qualities, writes one set of segments with both an HLS playlist and a DASH manifest, and uploads them to streams/clip on the s3 disk. Run it in a queued job: encoding takes a while.

Serve private streams with laravel-media's signed playlists:

return Media::fromDisk('s3')->open('streams/clip/master.m3u8')
    ->hlsPlaylist()
    ->resolveMediaUrlsUsing(fn (string $path) => Storage::disk('s3')->temporaryUrl($path, now()->addHour()))
    ->toResponse($request);

Testing

composer test

Links

Credits

Used by Stry, a self-hosted video streaming app.

AI, specifically Claude, was used to help build this package. All AI-assisted output is reviewed by me, and I retain final say over everything that is implemented and released.

License

MIT. See License File.

Related Packages

foxws/laravel-shaka

A Laravel package to interact with Shaka Packager for media packaging.

7,672 2
achyutn/laravel-hls

A package to convert video files to HLS with rotating key encryption.

1,603 131
mostafaznv/larupload

Larupload is a ORM based file uploader for laravel to upload image, video, audio...

547,461 75
vasictech/encoder

Laravel package for encoding video files using FFMpeg

16 0

Version History

Version Released PHP Laravel License
3.0.0 ^8.4 ^13.0 MIT
2.4.0 ^8.3 ^12.0||^13.0 MIT
2.3.1 ^8.3 ^12.0||^13.0 MIT
2.3.0 ^8.3 ^12.0||^13.0 MIT
2.2.0 ^8.3 ^12.0||^13.0 MIT