Capabilities
| Capability | Details |
|---|---|
| HLS VOD | Generates a master playlist, rendition playlists, and segments. |
| DASH/CMAF | Add "dash" to packageFormats to generate an MPEG-DASH manifest and CMAF segments. |
| Adaptive bitrate | Choose basic, standard, hd, source_max, or a custom ladder. |
| Captions | Attach WebVTT subtitles or captions tracks at asset creation. |
| Clipping | Create streamable clips with start, end, duration, and accurate or fast mode. |
| Signed playback | Use expiring HMAC playback URLs, token TTLs, and optional allowed playback domains. |
| Playback analytics | The JS SDK can send play, pause, progress, seek, ended, and error events. |
| Live inputs | Create RTMP/SRT ingest credentials, rotate keys, disable inputs, and return HLS/WebRTC playback URLs. |
| Poster frame | Generates poster.jpg beside the stream. |
| Webhooks | Emits video.stream.started, video.stream.ready, and video.stream.failed. |
Live broadcast
Create a live input to get a one-time stream key plus OBS-ready ingest settings.POST /api/live/inputs/{id}/rotate-key to rotate a compromised key, PATCH /api/live/inputs/{id} to disable an input or update playback domains, and GET /api/live/inputs to monitor statuses. The dashboard’s Streams page has a Live inputs view with the same controls.
Ingest and playback URLs are returned when you create or fetch a live input — use those values directly in your encoder and player. Domain restrictions and stream-key validation are enforced automatically before media is published or played back.
Manage live inputs
Create a stream
Upload a source video to Convertly Storage first, then create a stream from the stored file ID.GET /api/video/streams/{id} or subscribe to video.stream.ready.
Profiles
| Profile | Renditions |
|---|---|
basic | 360p, 480p |
standard | 360p, 480p, 720p |
hd | 360p, 480p, 720p, 1080p |
source_max | Up to 2160p when the source allows it |
custom | Your supplied rendition ladder |
| Plan | Included encoded minutes | Included delivery | Max ladder |
|---|---|---|---|
| Free | Not included | Not included | Not included |
| Starter | Not included | Not included | Not included |
| Pro | Not included | Not included | Not included |
| Business | 25,000 / month | 10 TB / month | 5 renditions, up to 2160p |
| Enterprise | 250,000 / month | 100 TB / month | 8 renditions, up to 2160p |
Custom ladders
Playback
Whenstatus becomes ready, the stream includes:
JS player analytics
/api/video/playback-events. Use HLS.js or dash.js alongside it when the browser needs a manifest polyfill.
Webhook payloads
video.stream.ready includes the asset ID, playback ID, duration, and generated renditions. video.stream.failed includes the error message.
Operational notes
- 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.
- Segment duration defaults to
6seconds and may be set from2to12. - Signed playback URLs expire after
tokenTtlSeconds. Rotate a live input’s stream key or create a new signed playback session to cut off access sooner. - Domain restrictions check the playback request
OriginorRefererhost whenallowedDomainsis set. - DRM is tracked as planned in the asset response. It is not enforced yet.