From 26ea09e2ff322c0a748ece1abed6d55357e53ff3 Mon Sep 17 00:00:00 2001 From: Nick Shirokov Date: Mon, 2 Mar 2026 20:05:32 +0300 Subject: [PATCH] fix(web-test): correct video color range for H.264 players MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit JPEG full range (0-255) was tagged as pc/full in H.264 output, but most players (VLC, etc.) expect limited range (16-235). Convert JPEG→limited with scale filter and tag as tv. Also switch preset ultrafast→fast for 5-6x smaller files on static screen content. Co-Authored-By: Claude Opus 4.6 --- .claude/skills/web-test/scripts/browser.mjs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.claude/skills/web-test/scripts/browser.mjs b/.claude/skills/web-test/scripts/browser.mjs index 927d68f7..39e481de 100644 --- a/.claude/skills/web-test/scripts/browser.mjs +++ b/.claude/skills/web-test/scripts/browser.mjs @@ -2455,9 +2455,11 @@ export async function startRecording(outputPath, opts = {}) { '-framerate', String(fps), // input framerate '-i', '-', // read from stdin '-c:v', 'libx264', // H.264 codec - '-preset', 'ultrafast', // fast encoding + '-preset', 'fast', // good quality/speed balance + '-crf', '23', // default quality (good for screen content) + '-vf', 'scale=in_range=full:out_range=limited', // JPEG full→H.264 limited range '-pix_fmt', 'yuv420p', // broad compatibility - '-color_range', 'pc', // full range (0-255) — match JPEG input + '-color_range', 'tv', // limited range (16-235) — standard for H.264 players '-movflags', '+faststart', // web-friendly MP4 resolvedPath ], { stdio: ['pipe', 'ignore', 'pipe'] });