mediastreamsegmenter(1) BSD General Commands Manual mediastreamsegmenter(1)
mediastreamsegmenter -- Create segments from MPEG-2 Transport streams for HTTP Live Streaming.
mediastreamsegmenter [-b | -base-url <url>] [-t | -target-duration duration] [-f | -file-base path] [-p | -program [duration]]
[-i | -index-file fileName] [-s | -sliding-window-entries entries] [-S | -start-index-file-count entries]
[-D | -delete-files] [-v] [-g | -generate-key [period]] [-k | -encrypt-key file] [-K | -encrypt-key-url <url>]
The mediastreamsegmenter is a command-line tool that segments media for deployment using HTTP Live Streaming. The mediastreamsegmenter
receives an MPEG-2 transport stream over UDP at [address:port] or over stdin and divides it into a series of small media files of approxi-
mately equal durations. The mediastreamsegmenter also creates an index file containing references to the individual media files. The index
file and media files can then be deployed using common web server infrastructure.
The mediastreamsegmenter can produce either live or video-on-demand (VOD) streams. For live streams, the transport stream from the media
encoder is ingested, new media files are created and the index file is periodically updated (and older media files expired and deleted).
This type of stream is suitable for continuous broadcasts.
With VOD streams, small media files representing the entire duration of the presentation are created by the mediastreamsegmenter and an index
list containing all segments is generated. This kind of stream allows the client access to the entire program at once. A VOD stream can also
be viewed in-progress, giving the user access to an entire event while it is happening.
The mediastreamsegmenter can encrypt the segments using AES-128 encryption.
To end a session, use the control-C. An end of file tag will be added to the index file.
The mediastreamsegmenter command accepts the following arguments:
-b | -base-url <url>
Specifies a base url to add to the media file name when written into the index file.
-t | -target-duration duration
Specifies a target duration for the media files. The default duration is 10 seconds. The duration is calculated by looking at the
PTS/DTS in the Video transport stream PES.
-f | -file-base path
Directory to store the media and index files.
-p | -program [duration]
The program option specifies that a VOD style program is being captured. The [duration] parameter is specified in minutes. To capture
an open-ended performance, leave off the [duration] parameter and stop the session by hitting control-C.
-i | -index-file fileName
This option defines the index file name. The default is prog_index.m3u8. It is recommended that the index file have an extension of
.m3u8 or .m3u.
-s | -sliding-window-entries entries
This option defines the number of media file entries that should be kept in the index file. The default is 5.
-S | -start-index-file-count entries
This option defines the number of media file entries that must be present before the first index file is written. The default is 3.
-D | -delete-files
In a live stream, this option will specify that the media files that are no longer in the index file will be removed after an expiry
-g | -generate-key [period]
The -generate-key option will generate an encryption key. If [period] is not specified, it will generate the key 1 time. If [period]
is specified, the key will rotate every [period] media files. The -generate-key option requires a -encrypt-key option.
-k | -encrypt-key file
Specifies an encrypt key file if the -g command is not present. Specifies an encrypt key file if the -g command is present without the
period parameter (single encryption file for the entire session). Specifies the directory to store the rotating encryption key if the
-g period parameter is specified.
-K | -encrypt-key-url <url>
HTTP base URL for the encrypt key file to write into the index file.
Strips the audio elementary stream (AAC/ADTS or MP3) and writes it into the media file.
The mediastreamsegmenter will only work with MPEG-2 Transport Streams as defined in ISO/IEC 14496-1. The transport stream must contain H.264
(MPEG-4, part 10) video and AAC or MPEG audio. If AAC audio is used, it must have ADTS headers. H.264 video access units must use Access
Unit Delimiter NALs, and must be in unique PES packets.
mediastreamsegmenter -b http://foo.com/stream -s 3 -D -f /Library/WebServer/Documents/stream 126.96.36.199:20103
Captures and creates unencrypted Live stream. The index file can be downloaded at http://foo.com/stream/prog_index.m3u8. In steady-state,
the index file will contain 3 items. mediastreamsegmenter -b http://bar.com/hiRes -p 120 -f /Library/WebServer/Documents/hiRes -g 15 -k
/Volumes/SecureServer/Protected -K https://foo.bar.com/login/key.php?streamname=hiRes 188.8.131.52:12313
Captures and creates an encrypted VOD stream. The encryption key is on a different server, and is accessible via https.
Mac OS X April 28, 2009 Mac OS X