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.
This extension requires PHP >= 4.3.0, libogg >= 1.0, and libvorbis >= 1.0.
This extension has no configuration directives defined in php.ini.
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');
Table 1. OGG/Vorbis tuning options
Option | Definition | Relevance | Default |
---|---|---|---|
pcm_mode | PCM byte encoding used. See constants below. | Read / Write | OGGVORBIS_PCM_S16_LE |
rate | PCM Sampling rate. Measured in Hz. | Write only | 44100 |
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 only | 128000 |
channels | Number of PCM channels. 1 == Mono, 2 == Stereo. | Write only | 2 |
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 only | Random |
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 only | array('ENCODER' => 'PHP/OggVorbis, http://pear.php.net/oggvorbis') |
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
Constant | Definition |
---|---|
OGGVORBIS_PCM_U8 | Unsigned 8-bit PCM. |
OGGVORBIS_PCM_S8 | Signed 8-bit PCM. |
OGGVORBIS_PCM_U16_LE | Unsigned 16-bit PCM. Little Endian byte order. |
OGGVORBIS_PCM_U16_BE | Unsigned 16-bit PCM. Big Endian byte order. |
OGGVORBIS_PCM_S16_LE | Signed 16-bit PCM. Little Endian byte order. |
OGGVORBIS_PCM_S16_BE | Signed 16-bit PCM. Big Endian byte order. |