---
name: "mpegcat"
section: "1"
platform: "linux"
package: "gopchop"
version: "1.1.8-7+b2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/mpegcat"
---

# mpegcat(1)

Extracts structural information and PES streams from an MPEG2 video file

## NAME

mpegcat - Extracts structural information and PES streams from an MPEG2 video file

## SYNOPSIS

**mpegcat** { *options* } { *file* }

## DESCRIPTION

**mpegcat** dumps detailed textual information about an MPEG2 file. It also has an option for writing out a particular Packetized Elementary Stream (PES) given its id.

The original purpose of **mpegcat** was for debugging stream parsing issues in the gopchop cuts-only MPEG2 video editor, but it has more general utility.

## OPTIONS

### GENERAL OPTIONS

- **-d,--debug**

  Report debug info

- **-D,--dvd-format**

  Enable DVD packet extensions

- **-h,-?,--help**

  Help

- **-w,--write** *FILE***,***0xID***\[,***0xSID***\]**

  Write *PES* with id *ID* (and subid *SID*) to *FILE*. Sub Picture Unit (SPU) streams such as overlays, subtitles and DVD menus extracted using this option can be displayed using the companion **gtkspu** utility.

  To find SPU streams in a .VOB ripped from a DVD:

  ```
                  $ mpegcat -iDa VTS_01_0.VOB | grep SPU
                     131086: 0xBD:  DVD Audio 0x20 (SPU 0): 2028 bytes (next marker @ 133120)
                     133134: 0xBD:  DVD Audio 0x20 (SPU 0): 2028 bytes (next marker @ 135168)
                     137230: 0xBD:  DVD Audio 0x20 (SPU 0): 190 bytes (next marker @ 137426)
                     ...
  ```

  To save a given stream:

  ```
                  $ mpegcat -iDaw dump.spu,0xBD,0x20 VTS_01_0.VOB > /dev/null
  ```

  (And to view the stream)

  ```
                  $ gtkspu dump.spu 1
                  $ gtkspu dump.spu 2
                  $ gtkspu dump.spu 3
                  ...
  ```

### PROCESSING TOGGLES

- **-V,--enter-video**

  Process video packets (forced by -t option)

### GENERAL DISPLAY TOGGLES

- **-p,--pack**

  Toggle Pack packet start display

- **-v,--video**

  Toggle video ES packet start display

- **-a,--audio**

  Toggle audio ES packet start display

- **-o,--other**

  Toggle other stream display (only show video & audio)

- **-y,--system**

  Toggle system header display

- **-e,--errors**

  Toggle packet errors

- **-i,--invert**

  Invert all display toggles

### VIDEO DISPLAY TOGGLES

- **-s,--slices**

  Toggle slice starts (default off)

- **-q,--sequence**

  Toggle sequence header display

- **-g,--GOPs**

  Toggle GOP header display

- **-f,--frames**

  Toggle Picture header display

### SHORT CUTS

- **-F,--just-frames**

  Show only video frames (same as '-Vepvaoyq')

### FILE OFFSET OPTIONS

- **-b,--begin=***NUM*

  Start reading at offset *NUM*

- **-n,--num=***NUM*

  Stop after reading *NUM* bytes

- **-t,--scan-stream**

  Scan every byte of the stream instead of using PES offsets (this can show erroneous 'start code emulation' codes)

## AUTHOR

Kees Cook, \<kees@outflux.net\>

## SEE ALSO

[gopchop(1)](/gopchop/1.md), [gtkspu(1)](/gtkspu/1.md)
