Packages
membrane_hls_plugin
2.0.2
3.0.10
3.0.9
3.0.8
3.0.7
3.0.6
3.0.5
3.0.4
3.0.3
3.0.2
3.0.1
3.0.0
2.1.9
2.1.8
2.1.7
2.1.6
2.1.5
2.1.4
2.1.3
2.1.2
2.1.1
2.1.0
2.0.16
2.0.15
2.0.14
2.0.13
2.0.12
2.0.11
2.0.10
2.0.9
2.0.8
2.0.7
2.0.6
2.0.5
2.0.4
2.0.3
2.0.2
2.0.1
2.0.0
1.1.12
1.1.11
1.1.10
1.1.9
1.1.8
1.1.7
1.1.6
1.1.5
1.1.4
1.1.3
1.1.2
1.1.1
1.1.0
1.0.0
Adaptive live streaming (HLS) plugin for the Membrane Framework.
Current section
Files
Jump to
Current section
Files
membrane_hls_plugin
README.md
README.md
# Membrane HLS Plugin

Adaptive live streaming plugin (HLS) for the Membrane Framework, used in production.
## Features
### Source Element
- Reads existing HLS streams from master playlists
- Supports multiple renditions (video, audio, subtitles)
- Handles dynamic playlist updates for live streams
- Built-in storage abstraction for different backends
### Sink Element (SinkBin)
- **Multiple Container Formats**:
- CMAF segments (default) - Modern fragmented MP4
- MPEG-TS segments - Traditional transport stream
- Packed AAC - Audio-only streams
- **AAC over TS** - ⚠️ **Experimental**: Audio streams packed in Transport Stream containers
- WebVTT - Subtitle tracks
- **Stream Types Supported**:
- H.264 video encoding
- AAC audio encoding
- Text subtitles (WebVTT format)
- **Operating Modes**:
- **Live Mode**: Real-time streaming with sliding window playlists
- Configurable safety delays
- Automatic playlist synchronization
- Discontinuity handling for stream interruptions
- **VOD Mode**: Video-on-demand with complete playlists
### Advanced Features
- **Codec Serialization**: Automatic codec string generation (avc1, hvc1, mp4a)
- **Segment Management**: Configurable target segment durations
- **Timeline Handling**: PTS shifting and discontinuity markers
- **Multi-track Support**: Audio, video, and subtitle tracks in single pipeline
## Architecture
The plugin is built on the Membrane Framework and integrates with the `kim_hls` library for playlist management:
- `Membrane.HLS.SinkBin` - Main bin for processing input streams into HLS segments
- `Membrane.HLS.Source` - Source element for reading HLS playlists and segments
- Various sink implementations for different container formats
- Automatic codec detection and stream format handling
## Dependencies
Key dependencies include:
- `membrane_core` - Core Membrane Framework
- `kim_hls` - HLS playlist and segment management
- `membrane_mp4_plugin` - MP4/CMAF container support
- `membrane_aac_plugin` - AAC audio processing
- `membrane_h26x_plugin` - H.264/H.265 video processing
- `membrane_mpeg_ts_plugin` - MPEG-TS container support
## Copyright and License
Copyright 2025, [KIM Keep In Mind GmbH](https://www.keepinmind.info/)
Licensed under the [Apache License, Version 2.0](LICENSE)