{"adoption": {"forks": 200, "observed_at": "2026-08-28T04:05:39.850292+00:00", "stars": 1814}, "canonical_url": "https://ross.abutalabs.com/products/laravel-ffmpeg", "card": {"archived": false, "artifact_type": "library", "description": "This package provides an integration with FFmpeg for Laravel. Laravel's Filesystem handles the storage of the files.", "domain": ["media", "web-development", "backend"], "enriched": true, "function": ["video-processing", "image-processing", "streaming", "file-upload"], "health_score": 79, "homepage": "https://protone.media/en/blog/how-to-use-ffmpeg-in-your-laravel-projects", "language": "PHP", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["protonemedia/laravel-ffmpeg"], "name": "protonemedia/laravel-ffmpeg", "platform": ["php", "self-hosted"], "pushed_at": "2026-02-28T09:35:15+00:00", "repo": "protonemedia/laravel-ffmpeg", "stars": 1814, "tags": ["ffmpeg", "hls", "laravel-package", "video-transcoding", "php-ffmpeg", "thumbnail-generation", "watermarking", "video", "laravel", "web-server"], "topics": ["ffmpeg", "laravel-ffmpeg", "php-ffmpeg", "laravel", "php", "video", "hls", "hls-live-streaming", "hls-stream"], "urls": [], "use_cases": ["transcode uploaded videos to multiple bitrates in Laravel", "generate HLS streams for HTTP video playback", "extract thumbnails and preview sprites from videos", "add watermarks to videos programmatically", "create encrypted HLS streams with rotating keys", "process videos stored on S3 or other Laravel filesystem disks", "build a video platform with Laravel"], "what_it_is": "A Laravel package that wraps PHP-FFMpeg to provide an elegant, testable API for video and audio processing, with deep integration into Laravel's Filesystem, configuration, and logging. It includes built-in support for HLS streaming (including encrypted HLS with rotating AES-128 keys), watermarks, frame exports, concatenation, and VTT preview thumbnails.", "when_to_avoid": ["your project doesn't use Laravel or PHP", "you need direct, low-level control over FFmpeg command-line arguments", "you need live transcoding of real-time input rather than file-based processing", "you're not comfortable managing the FFmpeg binary on your server"], "when_to_choose": ["you're building a Laravel app that needs video/audio transcoding", "you want HLS or encrypted-HLS streaming with minimal setup", "you want FFmpeg processing integrated with Laravel's filesystem (local, S3, etc.)", "you need frame exports, watermarks, or VTT preview thumbnails"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/laravel-ffmpeg", "repo": "protonemedia/laravel-ffmpeg", "role": "main", "score": 72}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.850292+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:21:06.316482+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "04c574aae0b9e915da762a9a6328354cef0aa5c50451fe015174bcf8abaa74e2", "fetched_at": "2026-08-28T04:05:39.850292+00:00", "kind": "readme", "missing": false, "url": "https://github.com/protonemedia/laravel-ffmpeg"}, {"content_hash": "32b92b030a2278eec8a88db91ee6222ebf89e382eb21f4206a4f0e70922dcb45", "fetched_at": "2026-08-29T10:59:44.272637+00:00", "kind": "homepage", "missing": false, "url": "https://protone.media/en/blog/how-to-use-ffmpeg-in-your-laravel-projects"}, {"content_hash": "6fd9ae5b584598a43f1fbef816f04c7b7e75561b1b508c51907011a213008014", "fetched_at": "2026-08-29T10:59:44.282083+00:00", "kind": "site_page", "missing": false, "url": "https://pascalbaljet.dev/were-releasing-the-next-major-version-of-laravel-ffmpeg-a-full-rewrite-with-new-features-and-many-improvements"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.850292+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:21:06.316482+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "04c574aae0b9e915da762a9a6328354cef0aa5c50451fe015174bcf8abaa74e2", "fetched_at": "2026-08-28T04:05:39.850292+00:00", "kind": "readme", "missing": false, "url": "https://github.com/protonemedia/laravel-ffmpeg"}, {"content_hash": "32b92b030a2278eec8a88db91ee6222ebf89e382eb21f4206a4f0e70922dcb45", "fetched_at": "2026-08-29T10:59:44.272637+00:00", "kind": "homepage", "missing": false, "url": "https://protone.media/en/blog/how-to-use-ffmpeg-in-your-laravel-projects"}, {"content_hash": "6fd9ae5b584598a43f1fbef816f04c7b7e75561b1b508c51907011a213008014", "fetched_at": "2026-08-29T10:59:44.282083+00:00", "kind": "site_page", "missing": false, "url": "https://pascalbaljet.dev/were-releasing-the-next-major-version-of-laravel-ffmpeg-a-full-rewrite-with-new-features-and-many-improvements"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:21:06.316482+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "04c574aae0b9e915da762a9a6328354cef0aa5c50451fe015174bcf8abaa74e2", "fetched_at": "2026-08-28T04:05:39.850292+00:00", "kind": "readme", "missing": false, "url": "https://github.com/protonemedia/laravel-ffmpeg"}, {"content_hash": "32b92b030a2278eec8a88db91ee6222ebf89e382eb21f4206a4f0e70922dcb45", "fetched_at": "2026-08-29T10:59:44.272637+00:00", "kind": "homepage", "missing": false, "url": "https://protone.media/en/blog/how-to-use-ffmpeg-in-your-laravel-projects"}, {"content_hash": "6fd9ae5b584598a43f1fbef816f04c7b7e75561b1b508c51907011a213008014", "fetched_at": "2026-08-29T10:59:44.282083+00:00", "kind": "site_page", "missing": false, "url": "https://pascalbaljet.dev/were-releasing-the-next-major-version-of-laravel-ffmpeg-a-full-rewrite-with-new-features-and-many-improvements"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.850292+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.850292+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.850292+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:21:06.316482+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "04c574aae0b9e915da762a9a6328354cef0aa5c50451fe015174bcf8abaa74e2", "fetched_at": "2026-08-28T04:05:39.850292+00:00", "kind": "readme", "missing": false, "url": "https://github.com/protonemedia/laravel-ffmpeg"}, {"content_hash": "32b92b030a2278eec8a88db91ee6222ebf89e382eb21f4206a4f0e70922dcb45", "fetched_at": "2026-08-29T10:59:44.272637+00:00", "kind": "homepage", "missing": false, "url": "https://protone.media/en/blog/how-to-use-ffmpeg-in-your-laravel-projects"}, {"content_hash": "6fd9ae5b584598a43f1fbef816f04c7b7e75561b1b508c51907011a213008014", "fetched_at": "2026-08-29T10:59:44.282083+00:00", "kind": "site_page", "missing": false, "url": "https://pascalbaljet.dev/were-releasing-the-next-major-version-of-laravel-ffmpeg-a-full-rewrite-with-new-features-and-many-improvements"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.850292+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.850292+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:21:06.316482+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "04c574aae0b9e915da762a9a6328354cef0aa5c50451fe015174bcf8abaa74e2", "fetched_at": "2026-08-28T04:05:39.850292+00:00", "kind": "readme", "missing": false, "url": "https://github.com/protonemedia/laravel-ffmpeg"}, {"content_hash": "32b92b030a2278eec8a88db91ee6222ebf89e382eb21f4206a4f0e70922dcb45", "fetched_at": "2026-08-29T10:59:44.272637+00:00", "kind": "homepage", "missing": false, "url": "https://protone.media/en/blog/how-to-use-ffmpeg-in-your-laravel-projects"}, {"content_hash": "6fd9ae5b584598a43f1fbef816f04c7b7e75561b1b508c51907011a213008014", "fetched_at": "2026-08-29T10:59:44.282083+00:00", "kind": "site_page", "missing": false, "url": "https://pascalbaljet.dev/were-releasing-the-next-major-version-of-laravel-ffmpeg-a-full-rewrite-with-new-features-and-many-improvements"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.850292+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.850292+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.850292+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:21:06.316482+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "04c574aae0b9e915da762a9a6328354cef0aa5c50451fe015174bcf8abaa74e2", "fetched_at": "2026-08-28T04:05:39.850292+00:00", "kind": "readme", "missing": false, "url": "https://github.com/protonemedia/laravel-ffmpeg"}, {"content_hash": "32b92b030a2278eec8a88db91ee6222ebf89e382eb21f4206a4f0e70922dcb45", "fetched_at": "2026-08-29T10:59:44.272637+00:00", "kind": "homepage", "missing": false, "url": "https://protone.media/en/blog/how-to-use-ffmpeg-in-your-laravel-projects"}, {"content_hash": "6fd9ae5b584598a43f1fbef816f04c7b7e75561b1b508c51907011a213008014", "fetched_at": "2026-08-29T10:59:44.282083+00:00", "kind": "site_page", "missing": false, "url": "https://pascalbaljet.dev/were-releasing-the-next-major-version-of-laravel-ffmpeg-a-full-rewrite-with-new-features-and-many-improvements"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.850292+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.850292+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:21:06.316482+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "04c574aae0b9e915da762a9a6328354cef0aa5c50451fe015174bcf8abaa74e2", "fetched_at": "2026-08-28T04:05:39.850292+00:00", "kind": "readme", "missing": false, "url": "https://github.com/protonemedia/laravel-ffmpeg"}, {"content_hash": "32b92b030a2278eec8a88db91ee6222ebf89e382eb21f4206a4f0e70922dcb45", "fetched_at": "2026-08-29T10:59:44.272637+00:00", "kind": "homepage", "missing": false, "url": "https://protone.media/en/blog/how-to-use-ffmpeg-in-your-laravel-projects"}, {"content_hash": "6fd9ae5b584598a43f1fbef816f04c7b7e75561b1b508c51907011a213008014", "fetched_at": "2026-08-29T10:59:44.282083+00:00", "kind": "site_page", "missing": false, "url": "https://pascalbaljet.dev/were-releasing-the-next-major-version-of-laravel-ffmpeg-a-full-rewrite-with-new-features-and-many-improvements"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:21:06.316482+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "04c574aae0b9e915da762a9a6328354cef0aa5c50451fe015174bcf8abaa74e2", "fetched_at": "2026-08-28T04:05:39.850292+00:00", "kind": "readme", "missing": false, "url": "https://github.com/protonemedia/laravel-ffmpeg"}, {"content_hash": "32b92b030a2278eec8a88db91ee6222ebf89e382eb21f4206a4f0e70922dcb45", "fetched_at": "2026-08-29T10:59:44.272637+00:00", "kind": "homepage", "missing": false, "url": "https://protone.media/en/blog/how-to-use-ffmpeg-in-your-laravel-projects"}, {"content_hash": "6fd9ae5b584598a43f1fbef816f04c7b7e75561b1b508c51907011a213008014", "fetched_at": "2026-08-29T10:59:44.282083+00:00", "kind": "site_page", "missing": false, "url": "https://pascalbaljet.dev/were-releasing-the-next-major-version-of-laravel-ffmpeg-a-full-rewrite-with-new-features-and-many-improvements"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:21:06.316482+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "04c574aae0b9e915da762a9a6328354cef0aa5c50451fe015174bcf8abaa74e2", "fetched_at": "2026-08-28T04:05:39.850292+00:00", "kind": "readme", "missing": false, "url": "https://github.com/protonemedia/laravel-ffmpeg"}, {"content_hash": "32b92b030a2278eec8a88db91ee6222ebf89e382eb21f4206a4f0e70922dcb45", "fetched_at": "2026-08-29T10:59:44.272637+00:00", "kind": "homepage", "missing": false, "url": "https://protone.media/en/blog/how-to-use-ffmpeg-in-your-laravel-projects"}, {"content_hash": "6fd9ae5b584598a43f1fbef816f04c7b7e75561b1b508c51907011a213008014", "fetched_at": "2026-08-29T10:59:44.282083+00:00", "kind": "site_page", "missing": false, "url": "https://pascalbaljet.dev/were-releasing-the-next-major-version-of-laravel-ffmpeg-a-full-rewrite-with-new-features-and-many-improvements"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:21:06.316482+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "04c574aae0b9e915da762a9a6328354cef0aa5c50451fe015174bcf8abaa74e2", "fetched_at": "2026-08-28T04:05:39.850292+00:00", "kind": "readme", "missing": false, "url": "https://github.com/protonemedia/laravel-ffmpeg"}, {"content_hash": "32b92b030a2278eec8a88db91ee6222ebf89e382eb21f4206a4f0e70922dcb45", "fetched_at": "2026-08-29T10:59:44.272637+00:00", "kind": "homepage", "missing": false, "url": "https://protone.media/en/blog/how-to-use-ffmpeg-in-your-laravel-projects"}, {"content_hash": "6fd9ae5b584598a43f1fbef816f04c7b7e75561b1b508c51907011a213008014", "fetched_at": "2026-08-29T10:59:44.282083+00:00", "kind": "site_page", "missing": false, "url": "https://pascalbaljet.dev/were-releasing-the-next-major-version-of-laravel-ffmpeg-a-full-rewrite-with-new-features-and-many-improvements"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 69, "longevity": 100, "rhythm": 60}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3687, "days_push": 186, "days_rel": 190, "gap_med": 69.5, "n_releases_24m": 5}, "score": 72, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}