Skip to content

Normalize H.264 renditions for browser playback - #37

Merged
davidvanleeuwen merged 4 commits into
mainfrom
fix/h264-browser-compatibility
Oct 30, 2026
Merged

davidvanleeuwen merged 4 commits into
mainfrom
fix/h264-browser-compatibility

Conversation

@davidvanleeuwen

@davidvanleeuwen davidvanleeuwen commented Oct 30, 2026 •

Copy link
Copy Markdown
Member

✨ What changes

H.264 sources with 10-bit pixels or 4:2:2/4:4:4 chroma can produce renditions that browser MediaSource decoders reject. Normalize browser-facing output to 8-bit 4:2:0 and only reuse inspected H.264 sources with compatible profiles and pixel formats.

  • Normalize local H.264 encoding, including dense-keyframe clips, and validate outputs before publication.
  • Transcode inline sources in auto mode; retain explicit copy mode for fixtures and custom flows.
  • Add real-codec regression coverage for the CPU booster and local encoders, with the booster check running in CI.
  • Retry interrupted media-image FFmpeg downloads over HTTP/1.1, retaining the pinned version and checksum checks.

👀 Behavior

Synthetic source Result
10-bit 4:2:0, 10-bit 4:2:2, 8/10-bit 4:4:4 8-bit 4:2:0 H.264
Incompatible or unknown source format Transcoded instead of copied

🔎 Additional checks

Real FFmpeg conversion and output-validation checks passed with the required media sandbox enabled. The Alpine download completed with the expected pinned SHA-256. Custom flows relying on implicit inline copying must select copy explicitly.

@davidvanleeuwen
davidvanleeuwen merged commit 31b43c4 into main Oct 30, 2026
6 checks passed
@davidvanleeuwen
davidvanleeuwen deleted the fix/h264-browser-compatibility branch October 30, 2026 13:45
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