CIII. oggvorbis

Introduction

The OGG/Vorbis file format, as defined by http://www.vorbis.com/, is a scheme for compressing audio streams by multiple factors with a minimum of quality loss. This extension adds Ogg Vorbis support to PHP's URL Wrappers. When used in read mode, compressed OGG/Vorbis data is expanded to raw PCM audio in one of six PCM encoding formats listed below.

Requirements

This extension requires PHP >= 4.3.0, libogg >= 1.0, and libvorbis >= 1.0.

Runtime Configuration

This extension has no configuration directives defined in php.ini.

Installation

oggvorbis is installed through the usual PECL package installation process.

  • $ pear install oggvorbis

  • Copy the resulting oggvorbis.so to an appropriate location and add extension=oggvorbis.so to your php.ini file or load it dynamically in your PHP script using dl('oggvorbis.so');

Context options

Table 1. OGG/Vorbis tuning options

OptionDefinitionRelevanceDefault
pcm_modePCM byte encoding used. See constants below.Read / WriteOGGVORBIS_PCM_S16_LE
ratePCM Sampling rate. Measured in Hz.Write only44100
bitrate Vorbis Average Bitrate Encoding / Variable Bitrate Encoding. Measured in bps (ABR) or Quality level (VBR: 0.0 to 1.0). 128000 ABR is rough equal to 0.4 VBR. Write only128000
channelsNumber of PCM channels. 1 == Mono, 2 == Stereo.Write only2
serialno Serial Number of stream within file. Must be unique within file. Because of the potential to select a duplicate serial number within a chained file, make efforts to manually assign unique numbers when encoding. Write onlyRandom
comments Associative array of file comments. Will be translated to strtoupper($name) . "=$value". Note: This context option is not available in oggvorbis-0.1 Write onlyarray('ENCODER' => 'PHP/OggVorbis, http://pear.php.net/oggvorbis')

Predefined Constants

The constants below are defined by this extension, and will only be available when the extension has either been compiled into PHP or dynamically loaded at runtime.

Table 2. OGG/Vorbis supports PCM encodings in the following formats

ConstantDefinition
OGGVORBIS_PCM_U8Unsigned 8-bit PCM.
OGGVORBIS_PCM_S8Signed 8-bit PCM.
OGGVORBIS_PCM_U16_LEUnsigned 16-bit PCM. Little Endian byte order.
OGGVORBIS_PCM_U16_BEUnsigned 16-bit PCM. Big Endian byte order.
OGGVORBIS_PCM_S16_LESigned 16-bit PCM. Little Endian byte order.
OGGVORBIS_PCM_S16_BESigned 16-bit PCM. Big Endian byte order.
Table of Contents
Usage --  Examples on using the ogg:// wrapper.