Skip to content
LOTR By Frame
Instagram

V3 Changelog

Changelog, Code1 min read

Summary

This update addresses a minor but consistent off-by-one error in how frame numbers were being labeled in generated output.

The issue stemmed from a misunderstanding of how frame indexing works in VapourSynth. In programming—and VapourSynth specifically—frames are zero-indexed, meaning the first frame is frame 0.

In previous versions, when generating a single frame using:

c = c[frame_num:frame_num+1]

we would pass a value like frame_num = 5, expecting this to output frame 5. However, because of zero-based indexing, c[5:6] actually produces frame 6, not 5. The result was that filenames and labels were consistently off by one—showing a lower frame number than what was actually being extracted.

The same applied to clip ranges. A slice like:

c[5:10]

was assumed to represent frames 5 through 10, but it actually represents frames 6 through 10, again due to zero-based indexing and the fact that the slice endpoint (10) is non-inclusive in Python and VapourSynth.

This update corrects the file naming to reflect the actual frames being extracted, ensuring frame and clip labels now accurately match their content.

Key points

  • Frames and clips were accurate but were incorrectly labelled
  • Any frames posted on LOTRByFrame between June 18th, 2025 and October 20th, 2025 have a off-by-1 inaccuracy
  • Clips were affected but due to the small number posted on the page, I took the liberty of manually updating their captions to make them accurate
Gimli

Frame 74,781 - Two Towers Extended (Also my face when I realized the silly mistake I made 😵)

As always, feel free to reach out if you'd like to chat about my process and any of the silly mistakes I've made along the way!

Made with ❤️ by LOTR By Frame