Extract thumbnails at a regular interval (e.g., one frame per second or one per 10 seconds) using ffmpeg with the fps video filter: -vf fps=1/10,scale=240:-1
Name the extracted frames sequentially (frame_0000.jpg, frame_0001.jpg, ...) in a single directory
Use the Roku BIF tool (biftool) or an open-source BIF generator to pack the sequentially named JPEG frames into a .bif file; specify the frame interval in milliseconds as the framewise separator
Upload the .bif file to your CDN or origin and reference it in the Roku channel's content metadata (trickPlayFiles array) with the frameRate matching the extraction interval
Test in Roku's trick-play UI to confirm thumbnails advance correctly during scrubbing and that the framerate declared in the BIF header matches the actual extraction interval
Known gotchas
BIF frame indices are zero-based and must be contiguous; any gap in frame numbering causes the Roku player to display a black thumbnail for that position and all subsequent ones
JPEG quality in BIF files is a tradeoff between file size and visual clarity; very high-quality frames increase the BIF file to a size that slows scrubbing response on lower-end Roku devices
BIF is a Roku-proprietary format and is not used by HLS I-frame playlists or DASH thumbnail tracks; for non-Roku platforms use WebVTT sprite sheets with EXT-X-IMAGES-ONLY or DASH thumbnail AdaptationSets instead
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp