This is an open source video streaming packager and toolkit to rewrap live HLS streams to live MPEG DASH streams.
- Generate single period MPEG DASH for live based on an HLS live stream
- Generate multi period MPEG DASH for live based on an HLS live stream with SCTE35 splicing
- Rewrap MPEG2 TS segment to fragmented MP4
Installation from Python package index:
pip install hls2dash
Installation from source:
python setup.py install
Generate Single period MPEG DASH:
hls-to-dash https://example.com/master.m3u8 > stream.mpd
Generate Multi period MPEG DASH:
hls-to-dash https://example.com/master.m3u8 --multi > stream.mpd
Rewrap MPEG2 TS segment to fragmented MP4
ts-to-fmp4 master2500_19274.ts 2500_19274.dash
or when TS segment is on a remote server
ts-to-fmp4 https://example.com/master2500_19274.ts 2500_19274.dash
usage: hls-to-dash [-h] [--multi] [--ctx CTX] [--ctxdir CTXDIR] [--debug]
PLAYLIST
Generate single and multi period MPEG DASH manifest from a live HLS source.
Writes MPEG DASH manifest to stdout.
Currently assumes that HLS variant is named as 'master[PROFILE].m3u8'
master2500.m3u8, master1500.m3u8
and that the segments are named as 'master[PROFILE]_[SEGNO].ts'
master2500_34202.ts, master1500_34202.ts
positional arguments:
PLAYLIST Path to HLS playlist file. Can be a URI or local file.
optional arguments:
-h, --help show this help message and exit
--multi Generate multi period MPEG DASH on EXT-X-CUE markers in HLS
--ctx CTX Name of DASH session file
--ctxdir CTXDIR Where to store DASH session file. Defaults to /tmp/
--debug Write debug info to stderr
usage: ts-to-fmp4 [-h] [--outdir OUTDIR] [--debug] TSFILE OUTPUT
Rewrap a MPEG2 TS segment to a fragmented MP4
positional arguments:
TSFILE Path to TS file. Can be a URI or local file.
OUTPUT Output file name
optional arguments:
-h, --help show this help message and exit
--outdir OUTDIR Directory where the fragmented MP4 will be stored. Default is current directory
--debug Write debug info to stderr