mirror of
https://github.com/heygen-com/hyperframes.git
synced 2026-09-14 18:01:20 +08:00
df80182452
Chrome captures frames in full-range sRGB, which maps to BT.709. Without explicit color metadata, players guess the wrong color space and range, causing color shifts and crushed dark values across devices. Changes: - Embed bt709 color info in H.264/H.265 VUI via x264-params/x265-params (colorprim, transfer, colormatrix) and FFmpeg metadata flags - Add scale filter (in_range=pc:out_range=tv) to convert full-range Chrome screenshots to limited/TV range expected by H.264 decoders - Chain range conversion with VAAPI's existing hwupload filter - Add -video_track_timescale 90000 for consistent A/V timing - Skip color metadata and range conversion for VP9/ProRes - 8 new regression tests for color space, range filter, VAAPI chain, GPU skip, VP9 skip, and timescale Verified via ffprobe: color_space=bt709, color_transfer=bt709, color_primaries=bt709, color_range=tv, time_base=1/90000. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>