Open
1 of 2 issues completedDescription
Membrane Framework is currently missing full HLS support. Users can either:
- use https://github.com/membraneframework/membrane_http_adaptive_stream_plugin to generate HLS playlists with fMP4 segments.
- use third-party https://github.com/kim-company/membrane_hls_plugin to generate HLS playlists with MPEG-TS segments as well as read such playlists
The idea is to unify the rearrange the HLS processing packages and provide users with simple API allowing them to conveniently work with HLS playlists.
This issue involves:
- Creating membrane-agnostic
ex_hls
package which would contain the following logic for operating on HLS:
- INGRESS:
- parsing of HLS master playlist and choosing from different available stream variants
- reading segments from media playlist at appropriate pace
- EGRESS:
- creation of HLS master playlist with different stream variants
- creation of HLS media playlist of both "VOD and "LIVE" types and generating segments out of the media streams
- Creating
membrane_hls_plugin
which would which would useex_hls
under the hood. The plugin should containHLS.SourceBin
andHLS.SinkBin
components which would wrap appropriate muxers/demuxers, allowing user to just operate on audio/video streams. The following operations should be supported:
- creating and reading of HLS playlist with MPEG-TS segments
- creating and reading of HLS playlist with fMP4 segments
- Adding support for demuxing
fragmented MP4
in themembrane_mp4_plugin
(CMAF Demuxer in MP4 #930)