teltek/pumukit-hard-video-editor-bundle
A Pumukit bundle that adds hard video editing capabilities, letting you trim and cut video files directly within the platform. It integrates editing workflows into Pumukit so users can produce cleaned, finalized video versions without external tools.
Architecture fit — poor for a Laravel estate. Despite the "Laravel/PHP package" framing, teltek/pumukit-hard-video-editor-bundle is a Symfony bundle built exclusively for the Pumukit video management platform (Teltek's Symfony-based VMS). It is not a framework-agnostic library and exposes no Laravel service provider, facade, or config contract. It is structurally bound to Pumukit's domain model (MultimediaObject, Track, Series, Job), its admin UI bundles, its role/permission system, and its encoder/worker subsystem. Installing it into a Laravel application is not a configuration problem; it is an incompatible-runtime problem. Realistic value is therefore reference implementation, not dependency — we would mine its ffmpeg/MLT invocation logic and re-implement it as a Laravel job pipeline.
What it actually does. Pumukit natively supports soft (non-destructive) editing via clip/playlist object relationships. This bundle is the hard counterpart: it commits an edit to disk by re-encoding a new track — concatenating segments, applying transitions/overlays, and registering the result back onto the MultimediaObject. That is a meaningfully different capability from trimming metadata, and it is the part worth studying.
Integration feasibility.
ffmpeg/ffprobe and, for MLT-based composition, melt. Container images must pin these builds; codec availability becomes part of the artifact contract.Technical risk — high, and concentrated in provenance.
| Risk | Severity | Note |
|---|---|---|
| Abandonment / single-vendor | High | 1 star, 0 dependents, Teltek-internal bundle; no community bus factor |
| Version lock | High | Tight coupling to Pumukit core + Symfony EOL branch |
| Security surface | Medium | Transcoding orchestration, shell-level binary invocation, file-path handling |
| License clarity | Medium | Must verify redistribution/derivative terms before copying code |
| Test coverage | High | Assume none usable outside a full Pumukit fixture stack |
| Bus factor | Critical | No external consumers means no field-tested failure modes |
The 0.71 score here reads as "interesting capability, near-zero ecosystem validation." Opportunity 24.22 suggests low competitive urgency — correctly, because nobody outside Pumukit wants this bundle.
Key questions for the team.
Stack fit — adopt the pattern, reject the package. Recommendation: do not add this as a dependency. Treat it as a design reference for a native Laravel implementation.
Mapping the capability onto a Laravel application:
ProcessHardEditJob) on a dedicated media queue, dispatched from a controller or Filament/Nova action.-filter_complex with concat, trim, setpts, fade) or an MLT XML graph, generated from a stored edit-decision list (EDL) rather than from Pumukit objects.MediaAsset, EditRender, RenderSegment models replacing MultimediaObject/Track.config/media.php) replacing Pumukit's profile documents.Migration path. There is no incremental migration from this bundle — nothing of ours consumes Pumukit today. The only porting artifacts are: the ffmpeg argument construction, the segment-trimming math, and the output-validation checks. Budget roughly:
Compatibility. If a Pumukit system is already in the estate (e.g., a legacy lecture-capture deployment), install the bundle there, inside the existing Pumukit image, pinned to its exact Symfony/Pumukit minor and to a pinned ffmpeg build. Never bridge the two stacks in-process — integrate over the wire (shared object storage + internal API) if both must coexist.
Sequencing (if we proceed).
Maintenance. Forking or vendoring this code creates a permanent internal ownership line. With one upstream star and zero dependents, expect no upstream fixes — every ffmpeg CLI change, codec deprecation, or CVE in the binary chain is ours alone. Mitigate by keeping our implementation minimal (a filter-graph compiler plus a job) so the surface we own is ~1k lines rather than a Symfony bundle graph.
Support model. No community, no issue-tracker throughput, no vendor SLA. Escalation path for any defect is "read the source." This is acceptable only for a capability we own outright; it is unacceptable for anything on a critical path we don't staff.
Scaling. Hard editing is CPU-bound and linear in output duration — re-encoding a 60-minute lecture is minutes-to-tens-of-minutes of wall clock, not seconds. Design implications:
Failure modes to instrument explicitly.
Ramp-up. Two distinct skills, neither commonly held: (a) ffmpeg/MLT filter-graph authoring — error-prone, weakly typed, learned by inspection; (b) Pumukit internals, only if a Pumukit system is actually in scope. Budget 2–3 weeks for a competent PHP engineer to reach independent productivity on the Laravel re-implementation, and treat the ffmpeg knowledge as the long pole. Document the filter-graph compiler with golden-file tests — that is the only defense against silent quality regressions.
Bottom line for the steering group. Low adoption, no ecosystem, hostile stack fit, and a hard dependency on fragile binary tooling. Use it as a spec, not a dependency; fund a small owned implementation; expect media-processing, not web-app, operations.
How can I help you explore Laravel packages today?