mpginfo(1) manipulate mpeg files

Other Alias

mpgtx, mpgsplit, mpgcat, mpgjoin, mpgdemux


mpgtx command [ options ] file [ range | file ] ...


mpgtx can split and join MPEG files in various ways. Three file types are currently handled (more to come): MPEG 1 Video files, MPEG 1/2 Audio files (mp1, mp2, and mp3), MPEG 1 System files (audio and video files), MPEG 2 Program files (Experimental), MPEG 2 Transport files (demultiplex and info modes only). mpgtx is a GOP (Group of Pictures) based editor. This means that mpgtx cuts MPEG files on a Group Of Picture basis, not on a frame-by-frame basis. A typical GOP duration is about 0.5 sec (approx. 15 frames), limiting the maximum accuracy of mpgtx.


prints information about files, such as duration, dimention, bitrate, etc.
joins files (ranges may be specified, see the RANGES section).
splits files according to the specified ranges (see the RANGES section).
demultiplexes composite mpeg file.
manipulates ID3v1 tags from mp3 files (see tagmp3(1)).
prints a (not so) short help message.
prints version and exit.
where # is a number, splits the given files in # parts.
enables joining of incompatible files (some players are very robust)
prevents mpgtx to try to catch SIGSEGV signal. This is usefull for debugging.

In addition, when invoked with the names mpgjoin, mpgcat, mpgsplit, mpgdemux, tagmp3 or mpginfo, mpgtx will modify its behaviour in the following ways:
mpginfo behaves as mpgtx -i
mpgsplit behaves as mpgtx -s
mpgjoin behaves as mpgtx -j
mpgcat behaves as mpgtx -j -o -
mpgdemux behaves as mpgtx -d
tagmp3 behaves as mpgtx -T


force overwriting of files, never ask.
Change aspect ratio of mpeg. Valid are 1,2,3,4 for 1:1, 4:3, 16:9, 2.2:1
Keep junk or unusual headers in splits
Desperate mode, search the whole movie for a valid PACK. In addition with Option -N no search infos will be displayed, only end summary.
Suppress progress output to the console. Speeds up operation a little on most Systems and much on Macintosh OS9.
Suppress time line check in mpginfo mode.
each output file will have the basename NAME
FILE will be used as the output file (used with the join command). if FILE is -, standard output will be used.


Each range must follow a filename or another range. A range in an MPEG file can be specified using one of this three notations: Note for OSX Users: Ranges must be enclosed in single or double Quotes!
from value a inclusive to value b inclusive. If you want half opened ranges, you may want to use ]a-b], [a-b[ or ]a-b[.
the n th part out of ntot. [1/4] would result in the first quarter of the specified file.
with a , b , ... in ascending order. Split specified file at given boundaries. {55M} therefore means from beginnig of file to 55Megs and from 55Megs to the end of file.


Values of ranges can be specified in seconds or as a byte offset.
Time Format
HH:MM:SS.SS where the HH: part can be omited
Offset Format
a number optionally followed by M for Megabytes k for kilobytes
Omitted Values
An empty value is valid and is equivalent to the corresponding file boundary:
[-10M] are the first 10 Megabytes of the file.
[1:10:04-] from 1 hour 10 minutes 4 seconds to the end of file.


All programs return 0 upon successful completion and 1 on failure.


mpgjoin movie1.mpg [-0:32] [45M-75M] movie2.mpg -o joined.mpg
joined.mpg will contain the first 32 seconds of movie1.mpg followed by 30 Megs of movie1.mpg starting at 45 Megs followed by the whole file movie2.mpg
mpgtx -124 myfile.mpg -b output
will split myfile.mpg in 124 parts with names output-001.mpg to output-124.mpg
mpgtx -i Wazzup.mp3
will print infos about given file such as duration, bitrate, but also album, track, song name if this file has an ID3 tag.
mpgcat myfile.mpg [2/2] | lpr
will redirect the second half of myfile.mpg to your printer, emptying it from toner and paper and make you be fired by your boss... Use carefully.


Plenty of them :)
GOP (Group of Picture) based: well this is not a bug but it's a limitation. As explained in the DESCRIPTION section, this limits the accuracy of mpgtx on joins and splits to approximately 15 frames, or 0.5 seconds.
Some artifacts can be seen with bad MPEG players playing joined files. These players don't take into account the broken link flag used to discard the first B frames they encounter. This is a bug in their MPEG decoding engine, not mpgtx.


Laurent Alacoque <[email protected]> CopyLeft 2001.
Modified by Chris Danis <[email protected]>, copyleft 2001.
Philipp Biermann <[email protected]>, copyleft 2002.
Erik Schanze <[email protected]>, copyleft 2004.
Get new releases and information from, and send patches, bugs, girls, money etc. to:


for your attention. Have a good day.
Godmar Back and Brent Phillips helped me to tune the command line interface.
Volker Moell patiently teach me how to build rpms. Danke Volker.
Jean Fransisco Sytem (alias Nicolas Schieli) helped me correct some nasty bugs.
Thank you guys.