Creating Video Manifests with the Bitmovin API
What Are Manifests and Why Do You Need Them?
After encoding your video content into a streamable format, you need a manifest file to enable adaptive bitrate (ABR) streaming. Think of a manifest as a "playlist" or "index" that tells video players:
- What video and audio quality options are available
- Where to find each video segment
- How to switch between qualities based on network conditions
This allows players to automatically adjust video quality in real-time, providing smooth playback regardless of the viewer's internet speed.
Understanding Your Options
Bitmovin offers flexible manifest creation with four key decisions to make:
key decision | options |
---|---|
Manifest Type | DASH / HLS / Smooth Streaming |
Generation Timing | during encoding vs post-encoding |
Configuration Method | custom vs default |
Generator Version | V2 vs LEGACY (deprecated) |
Manifest Type: Choose Your Streaming Standard
Different devices and players require different manifest formats:
- DASH (Dynamic Adaptive Streaming over HTTP): The most widely supported open standard, works across most devices and browsers
- HLS (HTTP Live Streaming): Required for Apple devices (iPhone, iPad, Apple TV) and Safari browser, de-facto standard on all Apple devices
- Smooth Streaming: Used for Microsoft platforms and legacy Windows applications
Best Practice: Create both DASH and HLS manifests to support the broadest range of viewers. Bitmovin makes this easy with a single configuration.
Generation Timing: When Do You Create the Manifest?
This is about triggering the process of building the actual manifest text file(s), based on the manifest API resource that you configured beforehand.
During Encoding Generation
How it works: Manifests are created during the encoding process on the same server instance.
Best for:
- Publishing content as quickly as possible
- Live streaming (this is your only option for live content)
- Standard video-on-demand workflows
API Implementation: To enable during-encoding-manifests, add your manifest IDs to these properties of the Start Encoding or Start Live Encoding request when starting an encoding:
- DASH:
vodDashManifests
- HLS:
vodHlsManifests
- Smooth Streaming:
vodSmoothManifests
(VOD only)
Preview Manifests (Special Feature): For time-critical applications, you can create preview manifests that allow viewers to start watching while the encoding is still in progress. Add your manifest IDs to these properties:
- DASH:
previewDashManifests
- HLS:
previewHlsManifests
Post-encoding Generation (Live-to-VOD, VOD)
How it works: Manifests are created after encoding completes, using separate API calls.
Best for:
- Combining multiple encodings into one manifest (multi-encoding manifests)
- Converting live streams to video-on-demand content (see How to implement a Live-to-VOD workflow with the Bitmovin API)
- Complex workflows where you need full control over timing
API Implementation: Trigger manifest creation with separate start calls:
Important: Ensure all referenced encodings have the FINISHED
status before generating manifests.
Configuration Method: How Much Control Do You Need?
Default Manifests (Recommended for Most Users)
- When to use: Simple workflows, getting started quickly, or standard streaming needs
- What it does: Automatically configures your manifest based on your encoded content
- Includes: All video/audio renditions, basic settings optimized for general use
Custom Manifests (For Advanced Use Cases)
- When to use: Complex workflows requiring specific manifest structure
- Examples: Custom ad break insertion, specific subtitle configurations, advanced DRM setups
- Trade-off: More control but requires deeper understanding of manifest specifications
Also refer to Default vs custom manifests for further details.
Generator Version: Using the Latest Technology
Bitmovin has two manifest generator versions:
- V2 (current): Latest features, improvements, and bug fixes
- Legacy (deprecated): Older version, deprecated for new users
If your organization was created after June 1, 2023: You automatically use V2 (no action needed)
If your organization was created before June 1, 2023: You may be using the legacy version. Consider migrating to Manifest Generator V2 for better performance and features.
Updated 7 days ago