Linux Commands Examples

A great documentation place for Linux commands


Concatenate several OGG/OGM files into one big OGG/OGM file

see also : ogmmerge - ogminfo - ogmdemux - ogmsplit - dvdxchap


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

add an example, a script, a trick and tips

: email address (won't be displayed)
: name

Step 2

Thanks for this example ! - It will be moderated and published shortly.

Feel free to post other examples
Oops ! There is a tiny cockup. A damn 404 cockup. Please contact the loosy team who maintains and develops this wonderful site by clicking in the mighty feedback button on the side of the page. Say what happened. Thanks!


no example yet ...

... Feel free to add your own example above to help other Linux-lovers !


ogmcat does NOT work at the moment. It is work in progress. I included it just out of laziness (otherwise I’d have to remove it from the Makefile/configure stuff prior to releasing this version).

ogmcat can be used to concatenate several OGG/OGM files into one big file if they are of the same type. For a more in-depth description refer to the LIMITATIONS section.
, --output outname

Output to ’outname’.


Use ’inname1’, ’inname2’ etc as the sources.

-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 (see the -s option). This option can be used for each input file although it has no effect if used for the first one as well.

-s, --sync nr

Uses sync mode nr. Valid values are 0 - 4. The default value is shown on ogmcat’s help screen.

-n, --nosafetychecks

Disable the safety checks made prior to the concatenating. The resulting file may be unplayable. See the LIMITATIONS section for further details.

-v, --verbose

Be verbose and show each OGG packet. Can be used twice to increase verbosity.

-h, --help

Show this help.

-V, --version

Show version information.


Concatenating streams is difficult at the best and might even be impossible. Therefore 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.

Audio/video synchronization might not be ok 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.

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.


The newest version can always be found at <> (

see also

ogmmerge , ogminfo , ogmdemux , ogmsplit , dvdxchap


ogmcat was written by Moritz Bunkus <moritz[:at:]bunkus[:dot:]org>.

How can this site be more helpful to YOU ?

give  feedback