Skip to content

fix(docs): re-encode product videos to 8-bit H.264 for browser playback#44

Merged
Seagull-Y merged 1 commit into
mainfrom
fix/web-video-codec
May 19, 2026
Merged

fix(docs): re-encode product videos to 8-bit H.264 for browser playback#44
Seagull-Y merged 1 commit into
mainfrom
fix/web-video-codec

Conversation

@Seagull-Y
Copy link
Copy Markdown
Contributor

@Seagull-Y Seagull-Y commented May 19, 2026

Summary

Two product-page videos couldn't play in any browser because they were exported in 10-bit color, which the HTML <video> element doesn't support.

What changed

  • Re-encoded docs/public/images/yam-standard/YAM-ST-GP-video.mp4 (used on /products/yam and /products/yam-arm)
  • Re-encoded docs/public/images/yam-leader/YAM-ST-Leader-video.mp4 (used on /products/yam-leader)

Both files are now h264, Main profile, yuv420p (8-bit) with +faststart for progressive playback.

Why

ffprobe on the originals reported:

codec_name=h264  profile=High 10  pix_fmt=yuv420p10le

This is a 10-bit professional-editing variant that no major browser decodes in <video> — playback failed silently with a black or empty frame on Chrome, Safari, and Firefox.

DS-ST.mp4 (the third product video on /products/yam-cell) was already 8-bit yuv420p and was left unchanged.

Encoding parameters

libx264 -profile:v main -level 4.0 -crf 23 -preset slow
pix_fmt yuv420p
color_range tv  colorspace bt709  color_primaries bt709  color_trc bt709
movflags +faststart

Verification

  • ffprobe on the live URL https://doc.i2rt.com/images/yam-standard/YAM-ST-GP-video.mp4 returns h264, Main, yuv420p
  • Audited every video in docs/public/ — only 3 files exist and all 3 now use browser-compatible codecs

Test plan

  • ffprobe confirms 8-bit yuv420p on disk
  • ffprobe confirms 8-bit yuv420p on the deployed Cloudflare Pages URL
  • Reviewer: open /products/yam, /products/yam-arm, /products/yam-leader in Chrome/Safari and confirm video plays

🤖 Generated with Claude Code

YAM-ST-GP-video.mp4 and YAM-ST-Leader-video.mp4 were exported as H.264
High 10 profile with yuv420p10le (10-bit color), which Chrome, Safari,
and Firefox do not decode in <video> playback — the videos appeared
broken on every product page that embeds them (yam, yam-arm, yam-leader).

Re-encoded both files with:
  - libx264 Main profile, level 4.0
  - 8-bit yuv420p pixel format
  - BT.709 color metadata
  - +faststart for progressive playback
  - CRF 23 / preset slow

Verified live on doc.i2rt.com: ffprobe of the deployed file now reports
`h264, Main, yuv420p`. DS-ST.mp4 was already in the correct format and
did not need re-encoding.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@Seagull-Y Seagull-Y merged commit 735d8ea into main May 19, 2026
2 checks passed
@Seagull-Y Seagull-Y deleted the fix/web-video-codec branch May 19, 2026 09:50
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