Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Haskell library and tools to manipulate the Ogg container format
branch: master
Failed to load latest commit information.
Codec/Container/Ogg Serial: remove custom Random interface (issue #1)
_publish Release 0.4.1
release_notes Release
tests rename ListMerge to List, for generic list functions
tools Remove build warnings througout (default warn level)
LICENSE move everything up one level (repo is only for hogg)
README Release 0.4.1
Setup.hs use simpleUserHooks instead of defaultUserHooks, as cabal seems to pr…
TODO update TODO
hogg.1 replace hogg.1 with autogenerated version
index.html Release


HOgg -- Ogg encapsulation stuffz

        - 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:
   (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

        - HTTP1 with lazy bytestring support, from:
        To configure with HTTP support, first install the above library, then
        go install through Cabal, but run configure like

        $ runhaskell Setup configure --flags="http"


        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

        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 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
Something went wrong with that request. Please try again.