mpegdemux(1)
is an MPEG1/MPEG2 system stream demultiplexer. It can be
used to list the contents of an MPEG system stream and to extract
elementary streams.
In this mode the MPEG system stream is scanned for elementary
streams.
list
In this mode the contents of an MPEG system stream are listed
in a textual form. This is useful to get an overview of what's in
an MPEG file
demux
In this mode elementary streams are extracted from an MPEG
system stream. The system stream packet structure is dissolved in
the process. Typically each extracted stream is written to its
own file.
remux
This is like demux, except that the MPEG system stream
structure is left intact. This means that the output is again
an MPEG system stream with all but the selected elementary
streams removed.
OPTIONS
-a, --ac3
AC3 sound packets in DVD MPEG2 streams have a 3 byte header
that is neither part of the MPEG specification nor of the
AC3 specification. When this option is used, these 3 bytes
are removed to produce a correct AC3 stream. Note that this
option applies to all selected substreams without checking
whether they actually contain an AC3 elementary stream.
-b, --base-name name
When demultiplexing more than one stream, the output file names
can be set using this option. To generate the output file name
for a stream, every # character in name is replaced by
a hex digit of the stream id. For example, to extract all
video streams in one go, use something like
Scan a system stream for elementary streams. This is the default
mode. All streams and substreams are automatically selected when
using this option.
-d, --demux
Demultiplex an MPEG system stream. The demultiplexed streams are
written to the output file unless the --base-name option is
used. If the --base-name option is not used, only one stream
can be demultiplexed (if more streams are specified, they will be
randomly interleaved in the output file).
-D, --no-drop
Don't drop incomplete packets in demuxing and remuxing mode.
-e, --no-end
Don't print end codes in listing mode. Additionally, in
remuxing mode, make sure that there is exactly one end
code at the end of the stream.
-E, --empty-packs
When streams are removed during remuxing, packs can become
empty. Including these empty packs in the output is pointless
and therefore is not done by default. Use this option to
force inclusion of all packs.
-F, --first-pts
In scan mode, in addition to each stream's first packet,
also list the packet with the lowest presentation time stamp.
-h, --no-system-headers
Don't print system headers in listing mode. Additionally, in
remuxing mode, don't repeat system headers.
-i, --invalid spec
Select invalid streams. Packets of invalid streams are not recognized
as packets and their contents are parsed as MPEG system stream data
rather than being skipped. This is useful for broken/incomplete
streams. The syntax for spec is the same as for -s.
Additionally, if spec is "-" then all streams that have not yet
been selected by -s are made invalid.
-k, --no-packs
Don't print packs in listing mode.
-K, --remux-skipped
Copy bytes that are skipped while looking for a start code.
-l, --list
List the system headers, packs and packets in an MPEG system stream.
-m, --packet-max-size size
Set the maximum packet size to size. Packets in the input stream
that are larger are considered invalid. As with the -i option,
the packet is not simply skipped but parsed as MPEG system stream data.
-p, --substream spec
This option selects private substreams. Whenever Private Stream 1
(0xbd) is selected using -s, the substreams within that private
stream can be selected using -p. The syntax for spec is
the same as for -s.
-P, --substream-map id1 id2
Remap substream id1 to id2 when remuxing.
-r, --remux
Remultiplex an MPEG system stream. The output MPEG system stream
is written to the output file. Many options control what is
copied from the input to the output and what is discarded.
-s, --streams spec
This option selects streams. spec specifies the stream IDs in
the following form:
[+|-]<id>[-<id>]{/[+|-]<id>[-<id>]}
where id is either a numeric stream ID or one of all or
none. A "-" in front of an ID range means exclusion. For example
the spec
-s 0xc0-0xcf/-0xc2
selects all video streams (0xc0 - 0xcf) except stream 0xc2.
-S, --stream-map id1 id2
Remap stream id1 to id2 when remuxing.
-t, --no-packets
Don't print packets in listing mode.
-u, --spu
This option is used to extract DVD subtitles. It is necessary
because the subtitle streams on DVD don't contain all the
timing information (the time stamps in the packet headers
are required). If this option is used during demultiplexing,
the output files for all substreams are written in the
following format:
"SPU " (4 bytes)
PTS (8 bytes, MSB first)
SPU packet
PTS (8 bytes)
SPU packet
and so on
-x, --split
Split the remuxed stream at sequence boundaries. This option is
only meaningful in remuxing mode. It can not be used together
with the -e option. The individual sequences are written to
files whose name was set with the -b option.