Library and tools to manipulate the Ogg container format http://www.kfish.org/software/hogg/

Latest on Hackage:

This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow stackage.org to host generated Haddocks.

BSD3 licensed by Conrad Parker
Maintained by Conrad Parker
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:
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

- 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
comments powered byDisqus