Skip to main content

Recode Ogg-Vorbis files to a different quality level

Project description

What is it?

pyrogg is a simple recoding library for Ogg-Vorbis audio files, implemented in Cython. It reads Vorbis streams from the provided input files and recodes them to the desired quality level (-1 … 10). It comes with a handy command line interface.

Example

Command line usage:

$ recode.py -d outputdir --quality=1 --parallel=3 input1.ogg input2.ogg input3.ogg

Python usage:

>>> from pyrogg import VorbisFileRecoder
>>> rec = VorbisFileRecoder("input.ogg")

>>> time = rec.recode("output.ogg", quality=1)

Since the time used for decoding is substantially lower than that used for encoding, you might want to set the following environment variable to avoid busy waiting OpenMP threads:

OMP_WAIT_POLICY=PASSIVE

Why would I use it?

  • It can recode files on the file-system as well as file-like objects.

  • It uses OpenMP to decode and encode an input stream in parallel, as well as multiprocessing to recode multiple files in parallel. So it can use all resources that your machine can provide, which makes it pretty fast.

  • Parallel recoding of separate input files is thread-safe and frees the GIL.

Why would I not use it?

  • Currently, error handling isn’t very elaborate, so unexpected errors may crash your system. This should be easy to fix with a little work, and help on this is certainly appreciated. (Fear not, it’s written in Cython, not C.)

  • It’s not meant to recode streams on the fly, just files and file-like objects. Currently, input files/objects must allow random access through seek(). This should be fixable.

How can I install it?

Using pip:

pip install pyrogg

Note that this will do a source build, so you need a properly configured C compiler on your system that can build Python extension modules, as well as the library packages libogg, libvorbis, and their corresponding development packages. Most operating systems (including all commonly used Linux distributions) will allow you to install them via the normal package management tool. For the development packages, look for packages called libogg-dev or libogg-devel.

For Windows and MacOS, however, you need to install them manually. See here:

https://www.xiph.org/downloads/

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyrogg-0.3.tar.gz (65.0 kB view details)

Uploaded Source

Built Distributions

pyrogg-0.3-cp36-cp36m-manylinux1_x86_64.whl (378.6 kB view details)

Uploaded CPython 3.6m

pyrogg-0.3-cp36-cp36m-manylinux1_i686.whl (341.2 kB view details)

Uploaded CPython 3.6m

pyrogg-0.3-cp35-cp35m-manylinux1_x86_64.whl (378.4 kB view details)

Uploaded CPython 3.5m

pyrogg-0.3-cp35-cp35m-manylinux1_i686.whl (340.0 kB view details)

Uploaded CPython 3.5m

pyrogg-0.3-cp34-cp34m-manylinux1_x86_64.whl (377.5 kB view details)

Uploaded CPython 3.4m

pyrogg-0.3-cp34-cp34m-manylinux1_i686.whl (339.0 kB view details)

Uploaded CPython 3.4m

pyrogg-0.3-cp33-cp33m-manylinux1_x86_64.whl (377.4 kB view details)

Uploaded CPython 3.3m

pyrogg-0.3-cp33-cp33m-manylinux1_i686.whl (339.1 kB view details)

Uploaded CPython 3.3m

pyrogg-0.3-cp27-cp27mu-manylinux1_x86_64.whl (375.7 kB view details)

Uploaded CPython 2.7mu

pyrogg-0.3-cp27-cp27mu-manylinux1_i686.whl (337.0 kB view details)

Uploaded CPython 2.7mu

pyrogg-0.3-cp27-cp27m-manylinux1_x86_64.whl (375.7 kB view details)

Uploaded CPython 2.7m

pyrogg-0.3-cp27-cp27m-manylinux1_i686.whl (337.0 kB view details)

Uploaded CPython 2.7m

pyrogg-0.3-cp26-cp26mu-manylinux1_x86_64.whl (375.7 kB view details)

Uploaded CPython 2.6mu

pyrogg-0.3-cp26-cp26mu-manylinux1_i686.whl (336.9 kB view details)

Uploaded CPython 2.6mu

pyrogg-0.3-cp26-cp26m-manylinux1_x86_64.whl (375.7 kB view details)

Uploaded CPython 2.6m

pyrogg-0.3-cp26-cp26m-manylinux1_i686.whl (336.9 kB view details)

Uploaded CPython 2.6m

File details

Details for the file pyrogg-0.3.tar.gz.

File metadata

  • Download URL: pyrogg-0.3.tar.gz
  • Upload date:
  • Size: 65.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for pyrogg-0.3.tar.gz
Algorithm Hash digest
SHA256 330748eb318e95e539f04a1b64b76225f77dd5b460def8d93b6bff809de19450
MD5 4fac5d96f97bc452398ac7d7c0c3b9db
BLAKE2b-256 4b24803059c6d991844aef658d9ad04c832728e8787011e149ef696970525cb5

See more details on using hashes here.

File details

Details for the file pyrogg-0.3-cp36-cp36m-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for pyrogg-0.3-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 9cbe10e2411d0dc462b135ae7d477be29a1f987d8ab491d52b538f85e1882714
MD5 2388dac75ec53ea0e871a1d17be98a32
BLAKE2b-256 88a862e381b3f7db58f63c8f1c60c9a67c27d7654037f5d3daf90b41b9ba07c7

See more details on using hashes here.

File details

Details for the file pyrogg-0.3-cp36-cp36m-manylinux1_i686.whl.

File metadata

File hashes

Hashes for pyrogg-0.3-cp36-cp36m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 109eb5a7e16787e862e68b68c101610deda49ce27c32acc328a8230424074030
MD5 60efae0a50ef4e2866c6468e5ca7c3f3
BLAKE2b-256 3f57f224eac0bd7ee492ee0e811dfbd6ee6d4b41f71a785098581bf3c8296dc2

See more details on using hashes here.

File details

Details for the file pyrogg-0.3-cp35-cp35m-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for pyrogg-0.3-cp35-cp35m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 a6a7166ba0f636f89bfbb7d5ddb5723863598b3c72446809dc50cf6cf1494cb4
MD5 271cce11570332eb0923017038acec2a
BLAKE2b-256 1d6dc17f95abed34660b71e38c989098feeb1bb502f6a70c5e9d11882efe208c

See more details on using hashes here.

File details

Details for the file pyrogg-0.3-cp35-cp35m-manylinux1_i686.whl.

File metadata

File hashes

Hashes for pyrogg-0.3-cp35-cp35m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 30320a1116ddaa28ad6ce8ce6c9e52c315baad457dded8c6de7306355034e286
MD5 e55d6c31ecaad555283980b95101395b
BLAKE2b-256 6edff0a6a936ead837a61d6210eddfbcea26dc4d673e0a6d3f54d799ff6d4b88

See more details on using hashes here.

File details

Details for the file pyrogg-0.3-cp34-cp34m-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for pyrogg-0.3-cp34-cp34m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 cbdaffdec401a4454487e9b90fe810cdb5c29cf1715c8ead1051f309ace218d8
MD5 a3e74adb4ffce0a07e541142e97398b8
BLAKE2b-256 928ab507df4aa34cc776f387369300a81c2c8b60962bdcbcbc6ec1440ec007f8

See more details on using hashes here.

File details

Details for the file pyrogg-0.3-cp34-cp34m-manylinux1_i686.whl.

File metadata

File hashes

Hashes for pyrogg-0.3-cp34-cp34m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 06481d7e13477cd92344d107a36cf1d13c0953d029f59371240816b1c7f10c5f
MD5 65d629da1f2a1a06dc99832d46728b1b
BLAKE2b-256 687ecec0c688a5dea0646cf6a97c49554eff92d28e7c57be8edd51347619e56a

See more details on using hashes here.

File details

Details for the file pyrogg-0.3-cp33-cp33m-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for pyrogg-0.3-cp33-cp33m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 90d4bf0a794d8393b2c2d8e136a20ac2c7d1e2e1ee4f28a4ea586997cc9b5fee
MD5 3e99045e5680eefbfb5a5a1992377408
BLAKE2b-256 96e9d72d02ac28b12a1422356e04af5523f7fa70201ad3b79744538414278979

See more details on using hashes here.

File details

Details for the file pyrogg-0.3-cp33-cp33m-manylinux1_i686.whl.

File metadata

File hashes

Hashes for pyrogg-0.3-cp33-cp33m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 c976af15a5be7197f0460ab5384e03848b459398976ba39abe5f40f10e8611b3
MD5 35606c5ff7b20dc00dc51a2e64074f12
BLAKE2b-256 ab63f5c1a4b591dbed3cdace7553a8c3e1ff3fc1d4248e9289f2e570b2fba665

See more details on using hashes here.

File details

Details for the file pyrogg-0.3-cp27-cp27mu-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for pyrogg-0.3-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 77ca17834f22227a39948ec6627e2bf036a3a12ed1edf314e0a1b237d32695fc
MD5 394e4f5cc221c43ca7a6a101183a15c9
BLAKE2b-256 03c30330428094abab9213dce4f9b7a8b16246f4a40b603852a656ee8af49cb5

See more details on using hashes here.

File details

Details for the file pyrogg-0.3-cp27-cp27mu-manylinux1_i686.whl.

File metadata

File hashes

Hashes for pyrogg-0.3-cp27-cp27mu-manylinux1_i686.whl
Algorithm Hash digest
SHA256 68582f8646effb572bb92985593a06514b2821da9bcb4cf61eaae117a512ee39
MD5 d8be597d7b1eb5c2477e26cd0715fcf2
BLAKE2b-256 45a9336f4202affa0b6a6dacb3e7ae31ab0ec9d02aa99a4f5d3e6ab74f33f92b

See more details on using hashes here.

File details

Details for the file pyrogg-0.3-cp27-cp27m-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for pyrogg-0.3-cp27-cp27m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 fe0b132d7c54f965a4a996c0aa1cce3eea85f216ccad9f43e607d7beb3675eff
MD5 7b9160bdb8d35e4addec8ca62f1beb66
BLAKE2b-256 608a6070420136bdd6b39ca87171ef0e2d832ed7dd72d24333de363cf37a3679

See more details on using hashes here.

File details

Details for the file pyrogg-0.3-cp27-cp27m-manylinux1_i686.whl.

File metadata

File hashes

Hashes for pyrogg-0.3-cp27-cp27m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 4655b8901bedb727e38bfe7ca532d82b5df9d6695a76c2d35ea31fbf7f701c7f
MD5 3305ca770f34d7316b133424a8e94a6d
BLAKE2b-256 050d1a5f189f0584ebe48058da9c890d0289768fccebb8aa616ea88cac6bf257

See more details on using hashes here.

File details

Details for the file pyrogg-0.3-cp26-cp26mu-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for pyrogg-0.3-cp26-cp26mu-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 3758a1343dbd44ca0a327b71e2c75e1763e83ff8135ef5c4323c3d29d82a94be
MD5 c4946ee3f01a60a44028569d3dffcc07
BLAKE2b-256 e4dd6fed679ee5a13789ae9aa051c0cd2449d347653e1b4e8bd11da4413688d4

See more details on using hashes here.

File details

Details for the file pyrogg-0.3-cp26-cp26mu-manylinux1_i686.whl.

File metadata

File hashes

Hashes for pyrogg-0.3-cp26-cp26mu-manylinux1_i686.whl
Algorithm Hash digest
SHA256 41218decbb41fc57de7fa084e431f10a3dc3971443043387e34dfbc88fce8fc6
MD5 10b37d7add967a51b649097994891c8b
BLAKE2b-256 c2e2a4bbac76334b23443265de1be2172e32a60dd47269cb9e335ea7c9dd2ca1

See more details on using hashes here.

File details

Details for the file pyrogg-0.3-cp26-cp26m-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for pyrogg-0.3-cp26-cp26m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 7d3dcc2c558910e57cefa8e9519acc7ec201d6e5dfcf200cfba5895d17f8b39e
MD5 4f2dd2e043cbc5084d31505c092110ba
BLAKE2b-256 228a93810bc8c8dc01433c36209cf1124891bf5dfb994aad5f5c15e9952ac953

See more details on using hashes here.

File details

Details for the file pyrogg-0.3-cp26-cp26m-manylinux1_i686.whl.

File metadata

File hashes

Hashes for pyrogg-0.3-cp26-cp26m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 bb99c273cc78f0dc05aef761ee9070d349938bc422140b7e856c5a26e7d75ea7
MD5 498f642db4667799b1fad21d9d688a67
BLAKE2b-256 2eddebc77122cdbf16e6f481c7751d64813d4dd72a0a4b8ce001fc4fe15cd683

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page