Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

A library and tools for working with Ogg encapsulation, with support for seeking, chopping and validation.

Merge pull request #2 from johnf/patch-1

Update doc/oggz-rip.1
latest commit bde065d041
Conrad Parker authored November 18, 2012
Octocat-spinner-32 apache add video/ogg and audio/ogg to example apache config for oggz-chop cgi, October 26, 2008
Octocat-spinner-32 bash-completion alphabetize tool names in help output and bash completion May 10, 2009
Octocat-spinner-32 doc Update doc/oggz-rip.1 November 18, 2012
Octocat-spinner-32 include add oggz_packet.h to include/oggz/Makefile.am October 08, 2009
Octocat-spinner-32 m4 add autoconfiguration for large (>2GB) file support February 24, 2006
Octocat-spinner-32 macosx Xcode project files November 29, 2009
Octocat-spinner-32 release_notes Release 1.1.1 April 29, 2010
Octocat-spinner-32 scons Added code to capture "hole in the data" warnings from ogg_stream_pac… August 22, 2006
Octocat-spinner-32 src Fix dumping streams with less than 3 headers and a hole at start May 28, 2012
Octocat-spinner-32 symbian add oggz_off_t defines for win32/ and symbian/ (untested) February 24, 2006
Octocat-spinner-32 win32 Updated Visual Studio project files (Barry Duncan) July 04, 2009
Octocat-spinner-32 AUTHORS add ogg.k.ogg.k to AUTHORS April 08, 2009
Octocat-spinner-32 COPYING Initial revision December 12, 2003
Octocat-spinner-32 ChangeLog Release 1.1.1 April 29, 2010
Octocat-spinner-32 INSTALL Initial revision December 12, 2003
Octocat-spinner-32 Makefile.am Makefile.am: update win32 filenames to distribute September 15, 2009
Octocat-spinner-32 NEWS updated to 0.8.0 December 18, 2003
Octocat-spinner-32 PATCHES README: project communication and git repo info April 10, 2010
Octocat-spinner-32 README README: project communication and git repo info April 10, 2010
Octocat-spinner-32 README.symbian addition of README.symbian with CRLF eol-style September 08, 2004
Octocat-spinner-32 README.win32 update win32 readme to indicate that the VC6 files are nolonger current April 29, 2006
Octocat-spinner-32 SConstruct Added code to capture "hole in the data" warnings from ogg_stream_pac… August 22, 2006
Octocat-spinner-32 TODO Merge branch '1.0-stable' April 30, 2010
Octocat-spinner-32 acinclude.m4 update acinclude.m4 to latest ogg.m4. Patch from Ivo Gonçalves February 12, 2008
Octocat-spinner-32 apache-install.sh rename debian-postinst.sh to apache-install.sh August 03, 2008
Octocat-spinner-32 autogen.sh Don't say we're going to run configure when we're not. July 31, 2008
Octocat-spinner-32 configure.ac Release 1.1.1 April 29, 2010
Octocat-spinner-32 oggz-uninstalled.pc.in * Makefile.am: January 12, 2007
Octocat-spinner-32 oggz.pc.in update pkg-config info, use Libs.private to pull in ogg (refer to ogg's May 31, 2007
README
Documentation files for Oggz
----------------------------

    PATCHES: Instructions for generating patches
    README: this file
    README.symbian: Instructions for building for Symbian
    README.win32: Instructions for building on Win32

Run:
----

    $ oggz help

for documentation of the various oggz commands.

About 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. Ogg is
an interleaving data container developed by Monty at Xiph.Org,
originally to support the Ogg Vorbis audio format but now used for
many free codecs including Dirac, FLAC, Speex and Theora.

Dependencies
------------

Oggz depends only on libogg, available in most free software
distributions, or in source form at: http://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.

Installation
------------

Release archives can be installed using the conventional commands:

    $ ./configure
    $ make check
    $ sudo make install

sequence. Configuration details are in the file INSTALL. If you obtained
this source by svn, first run "./autogen.sh" to create the configure script,
then run the above commands.

Read the file README.win32 for installing under MS Windows, and
README.symbian for information about building for Symbian devices.

Source layout
-------------

    doc/
    doc/liboggz        autocreated by the doxygen tool from comments
                       contained in the public C header files

    include/           public C header files

    src/
    src/liboggz/       library source code.
    src/tools/         command line tools
    src/examples/      example programs using liboggz
    src/tests/         unit and functional tests

    symbian/           files necessary to compile the library for Symbian
    win32/             files necessary to compile the library and tools for
                       Microsoft Windows

Developers
----------

liboggz is maintained in git at git://git.xiph.org/liboggz.git

A list of outstanding tasks is maintained in the TODO file of this source
distribution. When implementing anything listed in this file, please update
it by deleting that entry, and include that as part of the patch or commit
that implements the fix.

Please send patches to ogg-dev@xiph.org

Programming with liboggz
------------------------

liboggz supports the flexibility afforded by the Ogg file format while
presenting the following API niceties:

    * Full API documentation

    * Comprehensive test suite of read, write and seeking behavior.
    The entire test suite can be run under valgrind if available.

    * Developed and tested on GNU/Linux, Darwin/MacOSX, Win32 and
    Symbian OS. May work on other Unix-like systems via GNU autoconf.
    For Win32: nmake Makefiles, Visual Studio .NET 2003, 2005 and 2008
    solution files are provided in the source distribution.

    * Strict adherence to the formatting requirements of Ogg bitstreams,
    to ensure that only valid bitstreams are generated; writes can fail
    if you try to write illegally structured packets.

    * A simple, callback based open/read/close or open/write/close
    interface to raw Ogg files.

    * Writing automatically interleaves with packet queuing, and provides
    callback based notification when this queue is empty

    * A customisable seeking abstraction for seeking on multitrack Ogg
    data. Seeking works easily and reliably on multitrack and multi-codec
    streams, and can transparently parse Theora, Speex, Vorbis, FLAC,
    PCM, CMML and Ogg Skeleton headers  without requiring linking to those
    libraries. This allows efficient use on servers and other devices
    that need to parse and seek within Ogg files, but do not need to do
    a full media decode.

Full documentation of the liboggz API, customization and installation,
and mux and demux examples can be read online at:

    http://www.xiph.org/oggz/doc/

oggz tool
---------

Usage: oggz <subcommand> [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, Dirac, 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 codecs present in an Ogg file
  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 /.

License
-------

Oggz is Free Software, available under a BSD style license.

More information is available online at the Oggz homepage:

    http://xiph.org/oggz/

enjoy :)

--
Conrad Parker
http://www.annodex.net/
Something went wrong with that request. Please try again.