hogg: Library and tools to manipulate the Ogg container format

[ bsd3, codec, library, program ] [ Propose Tags ]

The HOgg package provides a commandline tool for manipulating Ogg files. It supports chained and multiplexed Ogg bitstreams and Ogg Skeleton. HOgg also includes a library that may be used by other packages for handling the Ogg container format.


[Skip to Readme]

Flags

Automatic Flags
NameDescriptionDefault
splitbase

Choose the new smaller, split-up base package introduced with GHC 6.8.

Enabled
http

HTTP1 with lazy bytestring support, from: http://www.dtek.chalmers.se/~tox/site/http.php4. This is optional and off by default.

Disabled

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.2.0, 0.3.0, 0.4.1, 0.4.1.1, 0.4.1.2
Dependencies array, base, bytestring, containers, HTTP1, HUnit, mtl, old-locale, random, time [details]
License BSD-3-Clause
Copyright Conrad Parker, 2007-2011
Author Conrad Parker
Maintainer Conrad Parker <conrad@metadecks.org>
Category Codec
Home page http://www.kfish.org/software/hogg/
Source repo head: git clone git://github.com/kfish/hogg.git
Uploaded by ConradParker at 2012-08-28T00:33:54Z
Distributions
Reverse Dependencies 1 direct, 0 indirect [details]
Executables ListMergeTest, hogg
Downloads 4152 total (11 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]

Readme for hogg-0.4.1.2

[back to package description]
------------------------------------------------------------
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