Skip to main content
Stored video files in Convertly Storage use the same CDN URL pattern as images. Pass poster or image-format params to extract a frame, video output formats to trim and transcode, or spritesheet/VTT formats for timeline hover previews.
Video poster frame example
Video to GIF example
Video spritesheet example
Trimmed video clip example

Poster frames

Extract a raster frame with FFmpeg, then run the normal image pipeline (resize, format negotiation, smart crop):
https://cdn.convertly.sh/{namespace}/{videoFileId}?t=3.5&w=800&format=webp
https://cdn.convertly.sh/{namespace}/{videoFileId}?poster=1&w=1200&format=auto
ParamPurpose
t or timeTimestamp in seconds for the frame to extract.
poster=1Explicit poster mode (useful with presets).
w, h, format, gravity, …Same image params as raster sources.
Without poster, spritesheet, VTT, GIF, or video-format params, bare video URLs redirect to a signed download (302).

Animated GIF

Transcode a clip segment to an animated GIF on the CDN edge:
https://cdn.convertly.sh/{namespace}/{videoFileId}?format=gif&so=1&du=3&w=480&fps=12
ParamPurpose
format=gif or gif=1GIF output mode.
so / start / ssClip start time in seconds.
du / durationClip length in seconds (max 300).
wOutput width in pixels (height follows aspect ratio).
fpsFrame rate (424, default 12).

Spritesheets and trick play (VTT)

Generate a contact-sheet grid of sampled frames — imgix-style spritesheets for scrub-bar hover previews:
https://cdn.convertly.sh/{namespace}/{videoFileId}?format=spritesheet&w=160&cols=6&interval=2
https://cdn.convertly.sh/{namespace}/{videoFileId}?format=vtt&w=160&cols=6&interval=2
ParamAliasesPurpose
format=spritesheetformat=sprite, spritesheet=1Single grid image of sampled frames.
format=vttvtt=1WebVTT file mapping timestamps → #xywh= regions on the spritesheet URL.
wspriteW, video-spritesheet-wThumbnail tile width in pixels (default 160).
hspriteH, video-spritesheet-hOptional fixed tile height.
colscolumns, spriteCols, video-spritesheet-columnsGrid columns (auto ≈ square grid).
intervalspriteInterval, video-spritesheet-intervalSeconds between sampled frames (default 2).
framesspriteFramesMax frames in the grid (default 36, max 120).
spriteFormatvideo-spritesheet-formatSpritesheet image format: jpg, webp, png.
so, du, eoOptional clip window (same as clip delivery).
Point a <video> metadata track or player thumbnail plugin at the VTT URL. Each cue references the spritesheet image at the same transform params with a #xywh=x,y,w,h fragment:
<video controls src="https://cdn.convertly.sh/{namespace}/{videoFileId}?format=mp4&w=1280">
  <track kind="metadata" src="https://cdn.convertly.sh/{namespace}/{videoFileId}?format=vtt&w=160&cols=6&interval=2" />
</video>
For one-off contact sheets without VTT, the Media API POST /api/media/storyboard remains available — CDN spritesheets use the same FFmpeg tile engine with interval-based sampling.

Clip delivery

Use video output formats (mp4, webm, mov, gif) to trim, resize, and transcode:
https://cdn.convertly.sh/{namespace}/{videoFileId}?format=mp4&w=1280&q=80
https://cdn.convertly.sh/{namespace}/{videoFileId}?format=webm&so=5&du=15&mute=1
https://cdn.convertly.sh/{namespace}/{videoFileId}?format=gif&so=2&du=4&w=480&fps=12
ParamPurpose
format / f / fmOutput container: mp4, webm, mov, gif, spritesheet, or vtt.
so / start / ssClip start time in seconds.
du / durationClip length in seconds (max 300).
eo / endClip end time in seconds.
w, hScale output (maintains aspect ratio).
qEncode quality hint (20100).
mute=1 / an=1Strip audio track.
fpsGIF frame rate (424, default 12).
<video src="https://cdn.convertly.sh/marketing/demo-clip?format=mp4&w=1280&so=0&du=30" controls />
For full async video pipelines (audio extract, streaming packaging), use the media tools API or video streaming product.