fmonts/ffmpeg-bundle
A Symfony bundle that integrates FFmpeg into your PHP applications via the PHP-FFMpeg library, making it easy to transcode video and audio, extract thumbnails, read media metadata, and apply filters or watermarks through a simple, service-based API.
php-ffmpeg/php-ffmpeg. The real build/buy decision is "direct PHP-FFmpeg vs. managed service (Mux, Cloudflare Stream, AWS Elemental)," and this bundle only informs the small "how much glue code do we write" slice of that.php-ffmpeg/php-ffmpeg directly" or "buy managed." Flag this before it burns estimation time.Adopt (or, more precisely, evaluate) when all of the following hold:
NOASSERTION is not a license — it means the metadata could not be machine-classified. 0.8.7 does not change this. Do not ship this into a commercial codebase until someone reads the actual LICENSE file and confirms terms and fork obligations.Look elsewhere when:
php-ffmpeg/php-ffmpeg directly; the bundle adds nothing.NOASSERTION alone is often enough to disqualify a dependency in regulated or IP-sensitive contexts.Mitigation if adopted: pin >= 0.8.7, wrap it behind an internal MediaTranscoder interface so the bundle is a swappable detail rather than an architectural commitment. Because 0.8.7 changes container configuration from XML to PHP, add a smoke test that boots the container and resolves the FFmpeg service on our target Symfony version — service IDs and config keys are the most likely place for a silent change. The escape hatch (call php-ffmpeg directly) costs roughly a day.
To executives: This is a small, low-cost convenience library, not a strategic dependency. It would save our engineers a few hours of plumbing if we are on Symfony (versions 5–8); it saves nothing if we are on Laravel. The newest release is a maintenance release — added Symfony 8 support and fixed a deprecation on Symfony 7.4 — which is reassuring but also illustrates the risk: this library's roadmap is driven by framework churn, so each Symfony upgrade becomes a small dependency task for us. The material risks remain governance, not technology: very low adoption, no downstream users, a single maintainer, and a license we cannot machine-verify. Recommendation stands: treat the underlying php-ffmpeg library as the real dependency, keep it behind our own interface, and revisit managed media services if transcoding becomes customer-facing at scale. No budget decision required beyond a legal review of the license.
To engineering: 0.8.7 adds a Symfony 8 composer constraint and migrates the service config from XML to PHP to clear the Symfony 7.4 deprecation. If you are on Symfony 7.4 or planning 8, pin 0.8.7 or later — earlier tags will emit deprecation notices, and older tags cannot install on Symfony 8. Expect no consumer-facing API change from the XML→PHP swap, but verify: boot the kernel, resolve the FFmpeg service, and check any overridden service IDs/config parameters still bind. Note the Symfony 8 support is a composer.json constraint change, so confirm CI actually exercises it before we rely on it. Otherwise the guidance from the prior assessment is unchanged: container-injected FFmpeg in an afternoon, vendor and pin the source, keep it out of domain code, and assume we inherit maintenance — the fork exists precisely because upstream Symfony support lapsed. On Laravel, this is still a dead end: go straight to php-ffmpeg/php-ffmpeg and write the ~20 lines of service wiring yourself.
How can I help you explore Laravel packages today?