- Can I use fmonts/ffmpeg-bundle in a Laravel application?
- No. It is a Symfony bundle, not a Laravel package: it has no Laravel service provider, no publishable config file, and no facade, and it boots only inside a Symfony kernel with symfony/dependency-injection and symfony/http-kernel present. Laravel does not ship those components, so the bundle cannot be loaded as-is. In a Laravel codebase you should depend on php-ffmpeg/php-ffmpeg directly and own the wiring yourself, or use a Laravel-native FFmpeg wrapper. Treat this package as a reference implementation for that wiring rather than a dependency.
- What does fmonts/ffmpeg-bundle actually provide?
- It is a thin container-wiring shim that registers PHP-FFMpeg and FFProbe as Symfony services so you can inject them instead of instantiating them by hand. It exposes configuration for the ffmpeg and ffprobe binary paths, timeouts, thread counts, and optional PSR-3 logger injection. Everything else, such as transcoding, thumbnail extraction, metadata inspection, filters, and watermarks, comes from the underlying PHP-FFMpeg library. The total useful surface is roughly 50 to 100 lines of configuration and alias definitions.
- How do I install and configure fmonts/ffmpeg-bundle in Symfony?
- Install it with Composer, register the bundle in your kernel or bundles.php, then set the ffmpeg.binaries and ffprobe.binaries paths plus optional timeout, thread, and logger settings in your bundle configuration. Once configured, the FFMpeg and FFProbe services can be autowired into your own services and controllers. You will also need the actual FFmpeg and FFprobe binaries installed on every environment, since they are not vendored with the package. From there you call PHP-FFMpeg methods to open media, transcode, or generate thumbnails.
- Which Symfony and PHP versions does fmonts/ffmpeg-bundle support?
- Version 0.8.7 adds a Symfony 8 constraint and fixes a Symfony 7.4 deprecation, so support now covers the current Symfony LTS window through Symfony 8. Symfony 8 support implies a PHP 8.4-era development matrix, so check the composer.json PHP constraint before upgrading if your application is pinned to an older PHP version. If you are evaluating the bundle only as a config reference for Laravel, the PHP floor is largely irrelevant. Confirm the constraint in the tagged release rather than assuming it matches your own platform.
- What changed in fmonts/ffmpeg-bundle 0.8.7?
- It is a maintenance and compatibility release, not a feature release. The bundle moved its service definitions from XML to PHP configuration, which removes a Symfony 7.4 deprecation and makes the wiring easier to read. Composer constraints were also updated to declare Symfony 8 support. There are no new features, no API changes, and nothing relevant to consumers that narrows the gap for Laravel use.
- How do I replicate fmonts/ffmpeg-bundle in a Laravel service provider?
- Because the service definitions are now expressed in PHP rather than XML, they translate almost mechanically into a Laravel ServiceProvider. Create a config file mirroring the bundle's schema, bind FFMpeg and FFProbe as singletons, and inject the binary paths, timeout, thread count, and an optional PSR-3 logger from configuration. You still need to publish the config and add a facade or typed accessor if you want a convenient API. The genuinely reusable artifact is the config schema and its defaults, including binary discovery paths, ffprobe.binaries, timeout, and threads.
- Is fmonts/ffmpeg-bundle actively maintained?
- It shows credible signs of active stewardship: the maintainer added Symfony 8 support and proactively fixed a Symfony 7.4 deprecation rather than waiting for a break. That said, the bus factor is a single maintainer, and the project has roughly 12 stars and zero dependents, so there is no downstream ecosystem pressure or community CVE triage. Budget for the possibility that you may need to patch or fork it yourself. If that is unacceptable, treat it as a reference implementation and write your own wiring.
- Is the fmonts/ffmpeg-bundle license safe for commercial use?
- Not confirmed. The repository reports NOASSERTION, which is a blocker for commercial or distribution scenarios until legal review confirms the inherited license terms. The upstream lineage is MIT-based, but the file set here is not machine-readable, and version 0.8.7 does not appear to address this. Get written clearance from legal before procurement or OSS policy sign-off.
- How do I test FFmpeg transcoding and thumbnail generation reliably?
- The bundle wires services but does not abstract FFmpeg itself, so meaningful tests still need real binaries and real media files. Keep a small set of fixture assets in the repository, install a pinned FFmpeg version in your CI image, and assert on outputs such as duration, dimensions, or codec rather than byte-for-byte files. For unit tests, mock the injected FFmpeg and FFProbe services or wrap media operations behind your own interface. Also verify binary discovery in every environment, because missing or mismatched ffmpeg and ffprobe paths are the most common failure.
- What are the production security risks of processing user-uploaded media with FFmpeg?
- User-supplied media processed by FFmpeg is a known attack surface: malformed container parsing, SSRF through protocol handlers, and resource exhaustion are all realistic. This wrapper provides no sandboxing, input validation, or resource caps, so those controls are entirely your responsibility. Run FFmpeg in an isolated process or container with strict CPU and memory limits, disable unneeded protocols and demuxers, and validate uploads before they reach the encoder. Also note that binary and codec drift across FFmpeg 4, 5, 6, and 7, plus hardware-accelerator availability such as NVENC or QSV, is the dominant operational failure source and is unaddressed by the bundle.