Trick play covers everything a viewer does to navigate inside content other than pressing play. Scrubbing the timeline, fast-forwarding at 2× or 8×, rewinding, stepping frame-by-frame. Each of these has technical demands that normal playback doesn't have. Forward 8× requires decoding 8 seconds of content per second, which is expensive for HEVC or AV1 at high bitrates. Thumbnails on the scrub bar require the player to fetch an image preview at the hovered timestamp without disturbing the main playback buffer.

The standard solution is a trick-play track: a low-bitrate, low-resolution, I-frame-only rendition encoded separately and listed in the manifest. HLS uses EXT-X-I-FRAMES-ONLY playlists; DASH uses an AdaptationSet with @trickModeType. Players use this rendition for fast-forward and rewind, switching back to the normal rendition when speed returns to 1×. For scrub-bar thumbnails, a separate WebVTT or sprite-sheet image track gives the player a 160×90 preview per N seconds without needing to decode video.

Implementing trick play well is harder than it sounds. The trick-play rendition must be perfectly aligned with normal renditions at I-frame boundaries. Scrub thumbnails must load fast enough to update at scrub speed. Long-form content (movies, series) benefits enormously from polished trick play; short-form (Instagram, TikTok) typically skips it entirely. Netflix and YouTube have famously good trick play; smaller services often launch without it and add it as a polish later.