Skip to content

mp4hls

Usage: mp4-hls.py [options] <media-file> [<media-file> ...]

Each <media-file> is the path to an MP4 file, optionally prefixed with a
stream selector delimited by [ and ]. The same input MP4 file may be repeated,
provided that the stream selector prefixes select different streams. Version
1.2.0 r637

Options:
  -h, --help            show this help message and exit
  -v, --verbose         Be verbose
  -d, --debug           Print out debugging information
  -o <output-dir>, --output-dir=<output-dir>
                        Output directory
  -f, --force           Allow output to an existing directory
  --hls-version=<version>
                        HLS Version (default: 4)
  --master-playlist-name=<filename>
                        Master Playlist name
  --media-playlist-name=<name>
                        Media Playlist name
  --iframe-playlist-name=<name>
                        I-frame Playlist name
  --output-single-file  Store segment data in a single output file per input
                        file
  --audio-format=AUDIO_FORMAT
                        Format for audio segments (packed or ts) (default:
                        packed)
  --segment-duration=SEGMENT_DURATION
                        Segment duration (default: 6)
  --encryption-mode=<mode>
                        Encryption mode (only used when --encryption-key is
                        specified). AES-128 or SAMPLE-AES (default: AES-128)
  --encryption-key=<key>
                        Encryption key in hexadecimal (default: no encryption)
  --encryption-iv-mode=<mode>
                        Encryption IV mode: 'sequence', 'random' or 'fps'
                        (Fairplay Streaming) (default: sequence). When the
                        mode is 'fps', the encryption key must be 32 bytes: 16
                        bytes for the key followed by 16 bytes for the IV.
  --encryption-key-uri=<uri>
                        Encryption key URI (may be a relative or absolute
                        URI). (default: key.bin)
  --encryption-key-format=<format>
                        Encryption key format. (default: 'identity')
  --encryption-key-format-versions=<versions>
                        Encryption key format versions.
  --signal-session-key  Signal an #EXT-X-SESSION-KEY tag in the master
                        playlist
  --fairplay=<fairplay-parameters>
                        Enable Fairplay Key Delivery. The <fairplay-
                        parameters> argument is one or more <name>:<value>
                        pair(s) (separated by '#' if more than one). Names
                        include 'uri' [string] (required)
  --widevine=<widevine-parameters>
                        Enable Widevine Key Delivery. The <widevine-header>
                        argument can be either: (1) the character '#' followed
                        by a Widevine header encoded in Base64, or (2) one or
                        more <name>:<value> pair(s) (separated by '#' if more
                        than one) specifying fields of a Widevine header
                        (field names include 'provider' [string] (required),
                        'content_id' [byte array in hex] (optional), 'kid'
                        [16-byte array in hex] (required))
  --output-encryption-key
                        Output the encryption key to a file (default: don't
                        output the key). This option is only valid when the
                        encryption key format is 'identity'
  --exec-dir=<exec_dir>
                        Directory where the Bento4 executables are located
  --base-url=<base_url>
                        The base URL for the Media Playlists and TS files
                        listed in the playlists. This is the prefix for the
                        files.