mpgtx(1)

πŸ“¦
version 1.3.1 Β· 2 versions
, in debian bookworm, ubuntu jammy, ubuntu noble

πŸ’– mpgtx(1) β€” the user manual but make it slay πŸ’–

okay bestie, sit down, grab a strawberry πŸ“, because we're about to talk about mpgtx and its little friend group: mpgsplit, mpgcat, mpgjoin, mpginfo, mpgdemux. together they manipulate mpeg files. that's the whole name, that's the whole vibe. ✨


🌸 SYNOPSIS 🌸

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

like. that's it. that's the shape of your whole life now. command, options, file, and then a range or another file, and another, and another, forever. πŸ’…


πŸ¦‹ DESCRIPTION πŸ¦‹

so mpgtx can split AND join MPEG files in a bunch of different ways. iconic, honestly.

three file types are currently handled (more to come, we're manifesting 🌈):

  • 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 β€” proceed with caution bestie)
  • MPEG 2 Transport files (demultiplex and info modes only)

mpgtx is a GOP (Group of Pictures) based editor. what does that mean fr fr? it means 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), which is what limits the maximum accuracy of mpgtx. so like. precision queen but not infinite precision queen. πŸŽ€


πŸ‘‘ COMMANDS πŸ‘‘

  • -i β€” prints information about files, such as duration, dimention, bitrate, etc. (yes "dimention". we don't fix typos in this house, we respect the ancestors πŸ™ˆ)
  • -j β€” joins files (ranges may be specified, see the RANGES section, iykyk)
  • -s β€” splits files according to the specified ranges (again: RANGES section, go read it)
  • -d β€” demultiplexes composite mpeg file
  • -T β€” manipulates ID3v1 tags from mp3 files (see tagmp3(1))
  • -h β€” prints a (not so) short help message
  • -v β€” prints version and exit
  • -# β€” where # is a number, splits the given files in # parts
  • --force β€” enables joining of incompatible files (some players are very robust, highkey brave of them)
  • --no-parachute β€” prevents mpgtx to try to catch SIGSEGV signal. This is usefull for debugging. πŸͺ‚βŒ
plus!! when you invoke it under 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

not me having six whole personalities depending on what you call me. main character energy fr. πŸ’…


✨ OPTIONS ✨

  • -f β€” force overwriting of files, never ask. no questions, no small talk, just vibes.
  • -Ax β€” Change aspect ratio of mpeg. Valid are 1, 2, 3, 4 for 1:1, 4:3, 16:9, 2.2:1
  • -P β€” Keep junk or unusual headers in splits
  • -X β€” Desperate mode, search the whole movie for a valid PACK. In addition with Option -N no search infos will be displayed, only end summary. (desperate mode is a real option name and honestly, relatable 😭)
  • -N β€” 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.
  • -b NAME β€” each output file will have the basename NAME
  • -o FILE β€” FILE will be used as the output file (used with the join command). if FILE is -, standard output will be used.

πŸŽ€ RANGES πŸŽ€

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! ⚠️
  • [a-b] β€” 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[.
  • [n/ntot] β€” the n th part out of ntot. [1/4] would result in the first quarter of the specified file. πŸ•
  • {a-b-...} β€” 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.

🌈 VALID VALUES 🌈

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.

⭐ RETURN VALUE ⭐

All programs return 0 upon successful completion and 1 on failure. slay or flop, no in-between. πŸ’…


πŸ”₯ EXAMPLES πŸ”₯

  1. 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

  1. mpgtx -124 myfile.mpg -b output

will split myfile.mpg in 124 parts with names output-001.mpg to output-124.mpg

  1. 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.

  1. 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. 😭


πŸ’€ BUGS πŸ’€

Plenty of them :) (honesty! we love to see it)

  • 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. 🫢 (defending our girl's honour)

🧚 AUTHOR 🧚

  • Laurent Alacoque <laureck@users.sourceforge.net> CopyLeft 2001.
  • Modified by Chris Danis <danish@debian.org>, copyleft 2001.
  • Philipp Biermann <philipp@biermann.org>, copyleft 2002.
  • Erik Schanze <schanzi_@gmx.de>, copyleft 2004.

Get new releases and information from, and send patches, bugs, girls, money etc. to:

http://mpgtx.sourceforge.net/


🌸 THANKS 🌸

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. πŸ₯ΉπŸ’–


and that's the whole page bestie, no cap. Linux Β· DECEMBER 2004 Β· mpgtx(1) β€” yeah she's a 2004 girlie and she's still serving. go split something. mwah. πŸ’‹βœ¨

πŸ“¦ where this page comes from