@hackage hogg0.4.1.1

Library and tools to manipulate the Ogg container format


HOgg -- Ogg encapsulation stuffz

Requirements: - Cabal (tested with various version from 1.1.3 to 1.6.0)

    - Data.ByteString, included with GHC >= 6.6, and available separately
      for GHC 6.4 at:
        http://www.cse.unsw.edu.au/~dons/fps.html (version 0.7 or greater)

    If building on Debian GNU/Linux:
    $ apt-get install ghc6 libghc6-mtl-dev libghc6-hunit-dev
    $ apt-get install libghc6-cabal-dev # not needed for Debian unstable

Optional: - HTTP1 with lazy bytestring support, from: http://www.dtek.chalmers.se/~tox/site/http.php4 To configure with HTTP support, first install the above library, then go install through Cabal, but run configure like

    $ runhaskell Setup configure --flags="http"

Building:

    This package is configured by default to build with GHC 6.8.

    If you are building with GHC 6.6, you need to follow the usual Cabal
    setup but run configure like:

    $ runhaskell Setup configure --flags="-splitBase"

    If you are building with GHC 6.4, you will need to edit hogg.cabal
    by adding 'fps' to the Build-Depends line and probably remove the Cabal
    conditionals. You should consider upgrading to a more recent GHC.

    Once configured, the following procedure will build hogg:

    $ chmod +x Setup.hs
    $ ./Setup.hs configure
    $ ./Setup.hs build
    $ ./Setup.hs install

Usage: General help (lists subcommands):

            hogg help

    Help on a subcommand:

            hogg help <subcommand>

    Info about the various tracks of one or more files:

            hogg info file1.ogg file2.ogg ...

    Dump packets of an Ogg file:

            hogg dump file1.ogg file2.ogg ...

    Dump pages of an Ogg file

            hogg pagedump file1.ogg file2.ogg ...

    Dump vorbis (theora, speex) packets

            hogg dump -c vorbis file.ogg ...
            hogg pagedump -c vorbis file.ogg ...
            hogg dumpraw -c vorbis file.ogg ...

    Chop out part of a file

            hogg chop --start 01:10 --end 2:30 -o output.ogg file.ogg

    Merge

      merge pages from many input files and produce a single output file:

            hogg merge -o output.ogg file1.ogg file2.ogg file3.ogg ...

Checking stuff works:

    Rewrite a file (parse pages, rewrite page data):

            hogg rip file.ogg > newfile.ogg
            diff file.ogg newfile.ogg

    Repacket a file (parse to packets, rewrite with original segmentation):

            hogg reconstruct file.ogg > newfile.ogg
            diff file.ogg newfile.ogg