Esta extensão fornece funções nativas para codificar e decodificar áudio G.729 diretamente em PHP, utilizando a biblioteca bcg729 da Belledonne Communications.
Ideal para aplicações VoIP, proxies RTP, media servers ou sistemas de gravação/transcodificação SIP que precisam de performance e baixo overhead, sem dependência de daemons externos.
- PHP >= 8.0
- Biblioteca
bcg729
compilada estaticamente (linkada) - Ambiente de build C (gcc, make, etc.)
phpize
./configure
make
sudo make install
Ative no seu php.ini
:
extension=bcg729
Decodifica uma stream binária G.729 em blocos PCM (16-bit, 80 amostras por frame).
Parâmetros:
$input
: string binária com múltiplos de 10 bytes (cada frame = 10ms G.729)
Retorno:
array
com strings binárias de 160 bytes cada (80 samples PCM)
Codifica uma stream PCM 16-bit (160 bytes por frame) para frames G.729.
Parâmetros:
$input
: string binária com múltiplos de 160 bytes (80 samples por frame)
Retorno:
array
de arrays com:output
: frame G.729 (normalmente 10 bytes)length
: tamanho do frame em bytes
class bcg729Channel {
public function __construct() {}
public function decode(string $input): mixed {}
public function encode(string $input): mixed {}
public function info() {}
public function close() {}
}
- Proxy RTP com transcodificação G.729 ↔ PCMU (G.711)
- Gravação de chamadas VoIP com compressão
- Transformação de áudio para economia de banda
Esta extensão utiliza a biblioteca bcg729 sob GPLv3.
Projeto wrapper PHP baseado na biblioteca original mantida por Belledonne Communications.
Pull requests e melhorias são bem-vindos!