What you need to do
Brightcove can generate HLS or DASH-standard thumbnail tiles to enable Trick Play support for Roku devices. These tiles align with the specifications outlined in the Roku developer documentation. Contact your Brightcove account manager to enable this feature for your account.
How it works
Once the feature is enabled:
- Brightcove’s Dynamic Delivery system will automatically include the required thumbnail images as sprite sheet tiles in the HLS media playlist or the DASH manifest
- No additional setup or configuration is required on the Brightcove platform to enable Trick Play image generation.
- Roku devices will utilize these thumbnail images for smooth Trick Play functionality, such as previewing frames while seeking.
Example Manifest Files
Below are examples of how HLS and DASH manifest reference Trick Play sprite sheet tiles:
HLS Media Playlist
#EXTM3U
#EXT-X-VERSION:7
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-IMAGES-ONLY
#EXT-X-TILES:RESOLUTION=360x150,LAYOUT=5x2,DURATION=1.000
#EXTINF:10.000,
sprite_0.jpg
#EXTINF:10.000,
sprite_1.jpg
#EXTINF:10.000,
sprite_2.jpg
#EXT-X-ENDLIST
The #EXT-X-IMAGES-ONLY
tag indicates that the playlist is dedicated to Trick Play thumbnails. The #EXT-X-TILES
tag specifies the resolution, layout (number of rows and columns), and duration of each sprite tile. These values are fixed and cannot be dynamically altered. Each #EXTINF
tag specifies the duration covered by the corresponding sprite sheet tile.
DASH Manifest
<AdaptationSet mimeType="image/jpeg" contentType="image">
<SegmentTemplate duration="10" media="https://example.com/image/sprite/$RepresentationID$/5x2/tile_$Number$.jpg" startNumber="1" timescale="1" />
<Representation bandwidth="249000" height="266" id="1600x266" width="1600">
<EssentialProperty schemeIdUri="http://dashif.org/guidelines/thumbnail_tile" value="5x2" />
</Representation>
</AdaptationSet>
In this DASH example, the AdaptationSet
references a generic sprite sheet tile setup. The SegmentTemplate
defines the duration and location of the tiles, while the EssentialProperty
specifies the fixed layout of the sprite sheet (e.g., 5x2 rows and columns). These values are predefined and cannot be changed dynamically.
What is supported?
- Server-Side Ad Insertion (SSAI):
- Mid-roll ads are supported for both HLS and DASH files
- Thumbnails will also align with SSAI timelines to ensure accurate preview during Trick Play
- Best Practices:
- Brightcove strongly recommends using DASH for Roku apps to ensure Trick Play images function as intended
- Using HLS may result in limited or inconsistent Trick Play support on Roku devices
Additional Resources
For more information about Roku’s requirements for channel certification and Trick Play implementation, see Roku Developer Documentation. By following these guidelines, you can ensure smooth Trick Play functionality and an improved user experience for your Roku viewers.