ff-stream
HLS and DASH adaptive streaming output — no unsafe code required.
⚠️ Coming Soon — This crate is a placeholder and not yet implemented. The API is under design. Do not use in production.
Overview
ff-stream will provide HlsOutput, DashOutput, and AbrLadder types for producing adaptive bitrate streaming content from video files.
Design Principles
All public APIs are safe. Users never need to write unsafe code. Unsafe FFmpeg internals are fully encapsulated within the underlying ff-encode crate.
Planned Features
- HLS output: Produce
.m3u8playlists and.tssegments viaHlsOutput - DASH output: Produce
.mpdmanifests and segments viaDashOutput - ABR ladder: Multi-rendition encoding in one pass via
AbrLadder - Keyframe control: Configurable keyframe interval for clean segment boundaries
Planned Usage
use ;
use Duration;
// Single-quality HLS
new
.segment_duration
.write?;
// Multi-rendition ABR ladder
new
.add_rendition
.add_rendition
.hls?;
Minimum Supported Rust Version
Rust 1.93.0 or later (edition 2024).
Related Crates
- ff-encode — Video/audio encoding (used internally)
- ff-pipeline — Unified decode-filter-encode pipeline
- ff — Facade crate (re-exports all)
License
MIT OR Apache-2.0