oximedia-packager
Status: [Stable] | Version: 0.1.8 | Tests: 820 | Updated: 2026-05-21
Adaptive streaming packaging (HLS/DASH) for OxiMedia. Provides comprehensive support for packaging media content into HLS and DASH adaptive streaming formats with encryption, cloud upload, and live/VOD support.
Part of the oximedia workspace — a comprehensive pure-Rust media processing framework.
Features
- HLS packaging - Master playlists, media playlists, TS and fMP4 segments, M3U8 manifests
- DASH packaging - MPD manifests, CMAF segments, multi-period support
- Automatic bitrate ladder - Generate multi-bitrate variant streams automatically
- Segment formats - TS, fMP4, CMAF segment creation
- Encryption - AES-128, SAMPLE-AES, CENC content protection
- Keyframe alignment - Ensure segments start on keyframes
- Low latency mode - LL-HLS and LL-DASH support
- Cloud upload - S3/cloud storage integration (optional feature)
- Live and VOD - Both live streaming and video-on-demand workflows
- Manifest versioning - Track manifest versions
- Bandwidth estimation - Accurate bandwidth estimation for variant selection
- Bitrate calculation - Segment and stream bitrate calculation
- DRM information - DRM info and encryption info management
- Subtitle tracks - Subtitle track packaging
- Timed metadata - Timed metadata (ID3/SCTE-35) insertion
- Segment indexing - Segment index and list management
- Manifest building - Flexible manifest builder API
- Manifest updates - Live manifest incremental updates
Usage
Add to your Cargo.toml:
[]
= "0.1.8"
# Optional features
# oximedia-packager = { version = "0.1.8", features = ["encryption", "s3"] }
use ;
// Package to HLS
let packager = new
.format
.low_latency
.build?;
packager.package_hls.await?;
packager.package_dash.await?;
Feature Flags
hls(default) — HLS packaging supportdash(default) — DASH packaging supportencryption— AES-128 / CENC content encryptions3— AWS S3 cloud upload integration
API Overview
Core types:
Packager/PackagerBuilder— Main packaging engine with fluent builder APIHlsPackager/HlsPackagerBuilder— HLS-specific packagerDashPackager/DashPackagerBuilder— DASH-specific packagerPackagerConfig— Full packaging configurationBitrateLadder/BitrateEntry— Bitrate ladder definitionSegmentConfig/SegmentFormat— Segment duration and format settingsEncryptionConfig/EncryptionMethod— Content protection settingsLadderGenerator— Automatic bitrate ladder generation
Modules:
bandwidth_estimator— Bandwidth estimationbitrate_calc— Bitrate calculationcmaf— CMAF segment packagingconfig— Packaging configurationdash— DASH packaging (MPD, packager)drm_info— DRM informationencryption,encryption_info— Encryption supporterror— Error typeshls— HLS packaging (packager, playlist)ladder— Bitrate ladderlow_latency— Low-latency packaging (LL-HLS/LL-DASH)manifest,manifest_builder,manifest_update— Manifest generationmultivariant— Multivariant playlistoutput— Output handlingpackaging_config— Packaging configurationplaylist_generator— Playlist generationsegment,segment_index,segment_list,segment_validator— Segment managementsubtitle_track— Subtitle track packagingtimed_metadata— Timed metadata insertion
License
Apache-2.0 — Copyright 2024-2026 COOLJAPAN OU (Team Kitasan)