Minimal reproduction for a suspected Hyperframes render bug where the video after an image transition overlay is rendered anisotropically stretched even though the source MP4 has correct 16:9 geometry.
This repository starts from:
npx hyperframes init repro --non-interactive --example blankThe only meaningful changes are in repro/index.html plus the added test media in repro/videos/ and repro/assets/.
The composition uses three synthetic 1920x1080 MP4s and one PNG transition overlay:
repro/videos/clip_01_reference_grid.mp4repro/videos/clip_02_after_transition_grid.mp4repro/videos/clip_03_after_second_transition_grid.mp4repro/assets/transition_overlay.png
Each MP4 contains a grid, a center 400x400 square, rulers, and burned-in local time/frame labels. If the render stretches the next video taller, the square becomes a rectangle and the vertical/horizontal rulers no longer match.
All source clips are verified as:
1920x1080SAR 1:1DAR 16:925 fps- CFR
- H.264 High Profile,
yuv420p
See repro/source_specs.txt for the exact ffprobe output.
From a fresh clone:
git clone https://github.com/brian-t-allen/hyperframes-render-bug.git
cd hyperframes-render-bug/repro
npm run check
npm run render -- -o /tmp/hyperframes-stretch-repro.mp4 --fps 25 --quality draft --workers 2 --no-browser-gpuOpen /tmp/hyperframes-stretch-repro.mp4 and inspect the transition boundaries.
0.000s - 32.600s: clip 0131.600s - 33.600s: first transition overlay32.600s - 64.360s: clip 0263.360s - 65.360s: second transition overlay64.360s - 124.360s: clip 03
The expected result is that the center square remains square for all three clips. The source clips themselves do not contain a stretch; any stretch in the rendered output is introduced during Hyperframes rendering.
When reporting the bug, include both the composition timestamp and the burned-in clip timestamp/frame visible in the frame.