XCV. oggvorbis

简介

The OGG/Vorbis file format, as defined by http://www.vorbis.com/ and 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.

运行时配置

本扩展模块在 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');

Context options

表格 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')

预定义常量

以下常量由本扩展模块定义,因此只有在本扩展模块被编译到 PHP 中,或者在运行时被动态加载后才有效。

表格 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.
目录
Usage --  Examples on using the ogg:// wrapper.