// the find
protonemedia/laravel-ffmpeg
This package provides an integration with FFmpeg for Laravel. Laravel's Filesystem handles the storage of the files.
A Laravel wrapper around PHP-FFMpeg that routes transcoding through Laravel's Filesystem, so you can open/save media from local disk, S3, or FTP without juggling temp files yourself. It's aimed at Laravel apps that need video/audio processing or HLS streaming without writing raw ffmpeg command strings.
The HLS support goes well beyond a basic playlist generator: multi-bitrate adaptive streaming, AES-128 encryption with rotating keys, and a DynamicHLSPlaylist class that rewrites key/segment URLs through your own auth-gated routes. The Filesystem integration means exporting to S3/FTP is a one-line toDisk() call with automatic temp-file cleanup, instead of manual download-process-upload plumbing. It also doesn't try to hide the underlying PHP-FFMpeg driver — magic method forwarding and an __invoke() escape hatch mean you're never stuck when the wrapper's API doesn't cover something.
Everything runs synchronously in-process; there's no queue job abstraction, so a long transcode ties up a web worker unless you build the dispatching yourself. No hardware acceleration (NVENC/VAAPI/QSV) is exposed anywhere in the config, you're on CPU encoding by default. You end up learning two APIs at once — this package's fluent builder plus PHP-FFMpeg's Format/Filter classes underneath — which shows up constantly in the README's `new \FFMpeg\Format\Video\X264` calls. And the Flysystem 3.x dependency means it's a hard break from Laravel 8, so older apps need a real migration, not just a composer bump.