IDR frame
An IDR frame (instantaneous decoder refresh frame) is a special I-frame in H.264 and HEVC video that tells the decoder to discard all earlier reference frames and start fresh. No frame after an IDR frame may reference anything before it. This makes IDR frames clean starting points for playback, seeking and switching between stream qualities.
Why it matters
IDR frames make streaming segments independent, which is what lets viewers join a live stream midway and lets players switch quality without visual errors. Getting them wrong causes glitches, rejected streams on some devices and green or frozen frames after a quality change.
How it works
- The encoder codes an IDR frame as a complete picture, like any I-frame.
- It also signals the decoder to clear every stored reference frame.
- Frames after the IDR may only reference the IDR or later frames, never anything earlier.
- Packagers cut streaming segments so each one begins with an IDR, making every segment decodable on its own.
What is the difference between an IDR frame and an I-frame?
Every IDR frame is an I-frame, but not every I-frame is an IDR frame. A plain I-frame is self-contained, yet later frames may still reference pictures from before it. An IDR frame forbids that, so decoding can start cleanly from it. Players and streaming formats rely on IDR frames as true restart points.
Do HLS segments need to start with an IDR frame?
Yes, for Apple devices they must. Apple's HLS authoring specification requires every video segment to start with an IDR frame. This lets a player load any segment, at any quality, and decode it without earlier data. Encoders set a fixed keyframe interval that lines up with the segment length to make this work.
Where it's used
OTT services and live event streamers start each streaming segment with an IDR frame so players can join mid-stream or change quality without glitches. Short video apps rely on them for clean seeking.
By the numbers
- Apple's HLS authoring specification states that video segments must start with an IDR frame. (Apple Developer: HLS Authoring Specification for Apple Devices)


