foxws/laravel-ab-av1

A Laravel package for encoding videos to AV1 format using ab-av1.
5,993 1
Install
composer require foxws/laravel-ab-av1
Latest Version:1.1.0
PHP:^8.4
License:MIT
Last Updated:Sep 26, 2026
Links: GitHub  ·  Packagist
Maintainer: francoism90

Laravel ab-av1

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

Runs ab-av1 from Laravel to encode video to AV1. You set the quality you want as a VMAF score, and ab-av1 finds the smallest encode that reaches it. It's an add-on for 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

  • PHP 8.4 or higher
  • Laravel 13
  • foxws/laravel-media 0.3 or higher (installed with the package)
  • ab-av1, with FFmpeg built with svt-av1 and libvmaf

Installation

composer require foxws/laravel-ab-av1
php artisan vendor:publish --tag="ab-av1-config"

Install the ab-av1 binary, then check the setup:

php artisan media:info

See Installation for details.

Quick start

use Foxws\Media\Facades\Media;

$result = Media::fromDisk('media')
    ->open('videos/clip.mp4')
    ->abAv1()
    ->withPreset(6)
    ->withMinVMAF(95)
    ->toDisk('s3')
    ->save('encoded/clip.mp4');

$result->crf;  // e.g. 30.25
$result->vmaf; // e.g. 95.1

This finds the CRF that reaches a VMAF score of 95, encodes the video with it, and uploads the result to encoded/clip.mp4 on the s3 disk. laravel-media cleans up the temporary files after the queue job or request.

See Usage for the other ab-av1 commands, hardware encoders, filters and checking the result.

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

vasictech/encoder

Laravel package for encoding video files using FFMpeg

16 0
tonymans33/video-optimizer

Optimize your Filament videos before they reach your database.

5,049 6
justsmiletoo/laravel-file-compressor

Automatically compress images, PDFs and videos on upload in Laravel. Auto-detect...

1,189 0

Version History

Version Released PHP Laravel License
1.1.0 ^8.4 ^12.0||^13.0 MIT
1.0.1 ^8.4 ^12.0||^13.0 MIT
1.0.0 ^8.4 ^12.0||^13.0 MIT
0.8.0 ^8.4 ^12.0||^13.0 MIT
0.7.0 ^8.4 ^11.0 || ^12.0 MIT