Skip to main content
Convertly Video Streams turn a stored video file into production-ready HLS or DASH/CMAF playback. The API creates a video asset, queues background encoding, generates manifests, bitrate renditions, captions, poster art, and returns playback URLs when the stream is ready. Convertly prepares streams asynchronously. Some paid workspaces can use faster managed encoding, and existing assets keep the delivery behavior they were created with. Use Video Streams when your product needs browser/mobile playback instead of a single downloadable MP4: course videos, user-generated video, webinars, previews, clipping workflows, internal media libraries, and AI-generated highlight reels.

Capabilities

Create a stream

Upload a source video to Convertly Storage first, then create a stream from the stored file ID.
The response is accepted immediately while the worker processes the stream:
Poll GET /api/video/streams/{id} or subscribe to video.stream.ready.

Profiles

Convertly only generates renditions at or below the source height.

Video codecs

videoCodec is optional and defaults to h264. AV1 availability depends on the selected profile and source. Existing assets keep the codec selected when they were created. Plan limits cap monthly processing, active stored video, and delivery. Source minutes count the input duration once, regardless of the number of renditions generated. Active stored minutes count the source-video duration retained in Convertly; deleting a stream frees that capacity. Delivery minutes count viewer watch time. A 10 minute video watched fully by 100 viewers uses 1,000 delivery minutes. All plans can generate the complete seven-rendition ladder through 2160p when the source contains those pixels. Convertly does not upscale a lower-resolution source into fake 4K. Pro and Business can use optional metered overage when it is enabled in billing settings. See Limits for source and delivery minute allowances.

Custom ladders

Playback

When status becomes ready, the stream includes:
Convertly applies signed playback authorization to the manifest and its related renditions and segments. Public streams omit the token. Some paid workspaces use managed encoding for faster transcoding. Convertly returns the correct HLS/DASH URLs and mints signed playback tokens for you; no video-provider credentials or signing keys are required in your application. When a signed URL expires, create a new playback session from the stream API.

JS player

Use @convertly-sh/player for a full HLS player with controls and analytics. See the Video player docs for install steps and an interactive embed. For a minimal integration (your own UI + analytics only):
The legacy @convertly-sh/sdk ConvertlyPlayer class still attaches captions and analytics to a raw <video> element, but does not include hls.js or custom controls — prefer @convertly-sh/player for new projects.

Webhook payloads

video.stream.ready includes the asset ID, playback ID, duration, and generated renditions. video.stream.failed includes the error message.

Behavior and limits

  • HLS and DASH packaging runs asynchronously after you create a stream. Poll the stream status or listen for webhooks until the asset is ready.
  • Source files must already exist in Convertly Storage.
  • Packaged manifests, posters, captions, and renditions count toward the same storage allowance as source files when Convertly stores those outputs.
  • Delivery minutes count toward your plan regardless of the encoding path used for the asset.
  • Deleting a stream removes its associated packaged playback outputs.
  • Segment duration defaults to 6 seconds and may be set from 2 to 12.
  • Signed playback URLs expire after tokenTtlSeconds. Create a new signed playback session when the URL expires.
  • Domain restrictions check the playback request Origin or Referer host when allowedDomains is set.
Last modified on July 31, 2026