feat: implement high-quality GIF export using two-pass FFmpeg pipeline#724
Open
Vagventure wants to merge 4 commits into
Open
feat: implement high-quality GIF export using two-pass FFmpeg pipeline#724Vagventure wants to merge 4 commits into
Vagventure wants to merge 4 commits into
Conversation
Signed-off-by: Vagventure <ankitverma0366@gmail.com>
Signed-off-by: Vagventure <ankitverma0366@gmail.com>
Signed-off-by: Vagventure <ankitverma0366@gmail.com>
|
@Vagventure is attempting to deploy a commit to the magic-peach1's projects Team on Vercel. A member of the Team first needs to authorize it. |
Contributor
👋 Thanks for your PR, @Vagventure!Welcome to Reframe — a browser-based video editor built for everyone 🎬
What happens next
Quick checklist
Useful links
Happy coding! 🎉 |
Contributor
✅ PR Format Check Passed — @VagventureBasic format checks passed. A maintainer will review your code changes. This does not mean the PR is approved — it just means the format is correct. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
This PR introduces GIF export support to Reframe via a two-pass FFmpeg pipeline for accurate colour mapping, along with a GIF-aware size estimator and UI updates across the export panel and format selector.
Changes Made
src/lib/types.ts: Added"gif"to theformatunion in bothEditRecipeandExportResult. PreviouslyExportResultwas missing"gif"despiteEditRecipealready declaring it, which would have caused a TypeScript error on return.src/lib/ffmpeg.ts:"gif"case togetOutputConfig, returning.gif/image/gif.formatparameter ofbuildArgumentsto include"gif"for type safety.paletteName(palette_<sessionId>.png) tocleanupFilesso the temporary palette is always deleted after export.palettegenthrough the existingbuildVideoFilteroutput so all transforms (trim, scale, rotate, speed, colour corrections) are respected.paletteusevia-lavfiusing the generated palette, producing a high-quality GIF with accurate colour mapping.src/components/FormatSelector.tsx: Added"gif"toFORMAT_OPTIONS, changed the button grid fromgrid-cols-3togrid-cols-4, and widened theonChangetype cast to include"gif".src/components/ExportSettings.tsx:isGifboolean fromrecipe.format === "gif".Related Issue
Closes #658
Type of Contribution
Participant Info
Screen Recording
Recording / Loom link:
reframe_1920x1080.2.mp4
Checklist
bun run lintpasses (no ESLint errors)bunx tsc --noEmitpasses (no TypeScript errors)aria-label/ accessible namesconsole.logstatements left in