feat: Add Captions/Subtitles Support with Custom Styling Options (#991)#1046
feat: Add Captions/Subtitles Support with Custom Styling Options (#991)#1046Rucha0901 wants to merge 6 commits into
Conversation
…ach#773) The wrapper div around the Reset all settings button used justify-end, which right-aligned the button inside the settings panel container. Change justify-end to justify-center on the wrapper div so the button is perfectly centred, improving visual balance across all screen sizes. Closes magic-peach#773
…nd ffmpeg drawtext burn-in (magic-peach#991)
…ort-991 # Conflicts: # src/components/VideoEditor.tsx # src/components/VideoPreview.tsx # src/hooks/useVideoEditor.ts # src/lib/ffmpeg.ts
|
@Rucha0901 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. |
✅ PR Format Check Passed — @Rucha0901Basic 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. |
👋 Thanks for your PR, @Rucha0901!Welcome to Reframe — a browser-based video editor built for everyone 🎬
What happens next
Quick checklist
Useful links
Happy coding! 🎉 |
|
@Rucha0901 This PR has developed merge conflicts with git fetch upstream
git checkout feat/subtitles-support-991
git rebase upstream/main
# resolve any conflicts, then:
git push --force-with-lease origin feat/subtitles-support-991One note for after rebasing: the PR fetches fonts from Once rebased and CI re-runs cleanly, this will be ready to merge! |
Description
Implemented custom captions/subtitles support in exported videos. Users can upload
.srtfiles, customize subtitle styling (font family, size, color, background opacity, text shadows) with an interactive WYSIWYG canvas overlay preview, and burn subtitles directly into the final exported video using dynamic FFmpegdrawtextfilters with on-the-fly Google Fonts downloading.Key changes:
upstream/main.src/components/VideoPreview.tsxto display subtitle overlays in perfect sync side-by-side with draggable text overlays, crop boundaries, and comparison layers.src/components/VideoEditor.tsxandsrc/hooks/useVideoEditor.tsto seamlessly manage active time states, completion sounds, and collapsible subtitles options panels.@vitejs/plugin-reactand added robust mock implementations forlocalStorageandwindow.matchMediainvitest.setup.tsto guarantee 100% test coverage.Related Issue
Closes #991
Type of Contribution
Participant Info
Screen Recording
Recording / Loom link: [Insert your Loom or screen recording link here]
Checklist
bun run lintpasses (no ESLint errors)bunx tsc --noEmitpasses (no TypeScript errors)aria-label/ accessible namesconsole.logstatements left in