Skip to content

Hold captions through pauses and wait for fonts before rendering#111

Merged
nmbrthirteen merged 6 commits into
audit-3-renderfrom
audit-4-captions
Jul 14, 2026
Merged

Hold captions through pauses and wait for fonts before rendering#111
nmbrthirteen merged 6 commits into
audit-3-renderfrom
audit-4-captions

Conversation

@nmbrthirteen

Copy link
Copy Markdown
Owner

The active chunk ended at its last word, so captions blinked out during
every natural pause and popped back for the next line.

  • A chunk stays up until the next one starts, capped at 0.4s into a silence
    so a long pause clears, matching the burn-in renderer
  • Chunk building lives in one module and breaks on punctuation, speaker
    change, and long gaps
  • Rendering waits for the font, and a font that fails to load degrades to a
    fallback instead of failing every frame
  • The bundle cache keys on the Remotion version and takes a lock, so a cold
    start under concurrency cannot serve a half-written bundle

Part of the product audit. Stacked on audit-3-render, so review only this PR's diff and merge in order.

@coderabbitai

coderabbitai Bot commented Jul 13, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 62dd45b5-5f05-405b-beeb-29ab6d93fa1d

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch audit-4-captions

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

The active chunk ended at its last word, so captions blinked out during
every natural pause and popped back for the next line.

- A chunk stays up until the next one starts, capped at 0.4s into a silence
  so a long pause clears, matching the burn-in renderer
- Chunk building lives in one module and breaks on punctuation, speaker
  change, and long gaps
- Rendering waits for the font, and a font that fails to load degrades to a
  fallback instead of failing every frame
- The bundle cache keys on the Remotion version and takes a lock, so a cold
  start under concurrency cannot serve a half-written bundle
nmbrthirteen and others added 5 commits July 14, 2026 01:38
Use token-owned leases and staging paths so stale owners cannot release or publish over a replacement bundle operation.

Co-authored-by: Cursor <cursoragent@cursor.com>
The chunker breaks a caption card on a speaker change, but the words handed to
Remotion were rebuilt without the speaker field, so the rule could never fire in a
render. The studio preview keeps the field and does break on it, so a diarized
transcript chunked one way on screen and another way in the exported MP4.
@nmbrthirteen
nmbrthirteen merged commit 8ded64d into audit-3-render Jul 14, 2026
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant