OGMCAT(1)

OGMCAT πŸ’– (the ogmcat manual, section 1, user commands bestie)

okay so listen, this is ogmcat β€” a little tool from the ogmtools fam that's supposed to smoosh a bunch of OGG/OGM files together into one big OGG/OGM file. that's the dream. that's the vision. the reality is... complicated (see below, i'm not gonna sugarcoat it πŸ’€).


✨ NAME ✨

ogmcat β€” concatenate several OGG/OGM files into one big OGG/OGM file πŸŽ€


🌸 SYNOPSIS 🌸

ogmcat [options] -o outname inname1 [inname2 [inname3 ...]]

πŸ’… DESCRIPTION πŸ’…

okay bestie, real talk first: ogmcat does NOT work at the moment. it's a work in progress, like a half-finished scrapbook. it got included anyway purely out of laziness β€” because otherwise the author would've had to remove it from the Makefile/configure stuff before releasing this version. iconic behavior honestly 🫢

so, in theory: ogmcat can be used to concatenate several OGG/OGM files into one big file, as long as they're of the same type. for a more in-depth description, go read the LIMITATIONS section β€” that's where the real tea is. πŸ“

the flags, one by one πŸ‘‘

  • -o, --output outname β€” output to outname. that's your destination, your final form, your main character file πŸ’–
  • inname1 β€” use inname1, inname2 etc. as the sources. stack 'em up, babe.
  • -m, --manualsync n β€” specifies a manual sync value in ms that will be added to each stream's presentation timestamps, along with the value calculated by the chosen sync algorithm (peep the -s option). this one can be used for each input file, although it has no effect if used for the first one as well. sorry to the first file, you're just built different πŸ₯²
  • -s, --sync nr β€” uses sync mode nr. valid values are 0 - 4. the default value is shown on ogmcat's help screen. go check it, it's right there 🌈
  • -n, --nosafetychecks β€” disables the safety checks made prior to the concatenating. ⚠️ the resulting file may be unplayable. see the LIMITATIONS section for further details. this is the "hold my boba" button.
  • -v, --verbose β€” be verbose and show each OGG packet. can be used twice to increase verbosity. twice! double the yapping, double the lore πŸ”₯
  • -h, --help β€” show this help.
  • -V, --version β€” show version information.

😭 LIMITATIONS 😭

ngl, concatenating streams is difficult at the best of times and might even be impossible. so ogmcat makes very strict comparisons between the streams contained in the input files. the checks done include:

  • general: all streams with the same serial number must be of the same type (video, audio, Vorbis audio or text streams).
  • general: if a stream exists in one file it must in the other files as well.
  • video streams: the codec FourCC, width, height and FPS must match.
  • Vorbis streams: the sample rate and the number of channels must match.
  • other audio streams: the codec ID, sample rate, bits per sample and number of channels must match.
  • text/subtitle streams: the 'time unit' must match.

the user can forcefully override the last four checks with the -n parameter. the checks marked as 'general' cannot be overridden this way. no cap, those are locked πŸ”’

audio/video synchronization might not be okay in the resulting file even if the source files were perfectly in sync 😭. the user can experiment with the -s parameter, which causes ogmcat to use slightly different algorithms for calculating the granulepos values for the audio and text streams. the range of valid parameters will be printed on ogmcat's help screen.

and if none of the synchronization algorithms provided works correctly? then the user can also manually add a synchronization offset using the -m option for each input file. you got this bestie πŸ’ͺ


πŸ‘‘ AUTHOR πŸ‘‘

ogmcat was written by Moritz Bunkus <moritz@bunkus.org>. shoutout to the author fr fr 🫢


πŸ¦‹ SEE ALSO πŸ¦‹

ogmmerge(1), ogminfo(1), ogmdemux(1), ogmsplit(1), dvdxchap(1)


🌈 WWW 🌈

the newest version can always be found at <http://www.bunkus.org/videotools/ogmtools/> ✨


and that's the whole page, babe β€” this was ogmcat v1.5, from November 2004, and it lives in the OGMCAT(1) era of the manual. mwah, go forth and concatenate responsibly (or don't, it literally doesn't work yet πŸ’€) πŸŽ€πŸ’œ