Xiph logo

Oggz

Oggz comprises liboggz and the tool oggz, which provides commands to inspect, edit and validate Ogg files. The oggz-chop tool can also be used to serve time ranges of Ogg media over HTTP by any web server that supports CGI.

liboggz is a C library for reading and writing Ogg files and streams. It offers various improvements over the reference libogg, including support for seeking, validation and timestamp interpretation.

oggz tool

Usage: oggz  [options] filename ...

oggz is a commandline tool for manipulating Ogg files. It supports
multiplexed files conformant with RFC3533. Oggz can parse headers for
CELT, CMML, FLAC, Kate, PCM, Speex, Theora and Vorbis, and can read and write
Ogg Skeleton logical bitstreams.

Commands:
  help          Display help for a specific subcommand (eg. "oggz help chop")

Reporting:
  codecs        Display the list of codecs found in one or more files and
                their bitstreams.
  diff          Hexdump the packets of two Ogg files and output differences.
  dump          Hexdump packets of an Ogg file, or revert an Ogg file from
                such a hexdump.
  info          Display information about one or more Ogg files and their
                bitstreams.
  scan          Scan an Ogg file and output characteristic landmarks.
  validate      Validate the Ogg framing of one or more files.

Extraction:
  rip           Extract one or more logical bitstreams from an Ogg file.

Editing:
  chop          Extract the part of an Ogg file between given start and/or
                end times.
  comment       List or edit comments in an Ogg file.
  merge         Merge Ogg files together, interleaving pages in order of
                presentation time.
  sort          Sort the pages of an Ogg file in order of presentation time.

Miscellaneous:
  known-codecs  List codecs known by this version of oggz

The script bash-completion/oggz enables completion of tool options and codec names when using the bash shell. Source it from your .profile, or install it in /etc/bash_completion.d to enable it system-wide.

oggz-chop: General usage and CGI installation

oggz-chop extracts the part of an Ogg file between given start and/or end times. The output file contains copies of the headers of the input file, and all the codec data required to correctly decode the content between the start and end times specified on the commandline. For codecs with data dependencies like video keyframes, the keyframe prior to the starting time will be included in the output.

An Apache server can be configured to use oggz-chop to handle all Ogg files (or, all Ogg files in a particular directory). An example Apache configuration is in the liboggz source tree, along with a script for installing it on a Debian server.

The oggz-chop binary checks if it is being run as a CGI script (by checking some environment variables), and if so acts based on the CGI query parameter t=, much like mod_annodex. It accepts all the time specifications that mod_annodex accepts (npt and various smpte framerates), and start and end times separated by a /.

Download

The latest version is 1.1.1, released Apr 29 2010.

Binaries

Source tarballs

Git

You can check out the current development code with:
$ git clone https://gitlab.xiph.org/xiph/liboggz.git
You can also browse this repository online: https://gitlab.xiph.org/xiph/liboggz.

Dependencies

Oggz depends only on libogg, available in most free software distributions, or in source form at https://xiph.org/downloads/.

Support is built-in for parsing the headers of and seeking to time positions in Ogg Dirac, FLAC, Speex, Theora and Vorbis. Oggz is also compatible with Annodex streams, and supports seeking on all tracks described in an Ogg Skeleton track.