|
|
|
|
#!/usr/bin/php -q
|
|
|
|
|
<?php
|
|
|
|
|
error_reporting(E_ERROR);
|
|
|
|
|
ini_set('display_errors', 0);
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* Inclui fun<EFBFBD>oes gen<EFBFBD>ricas.
|
|
|
|
|
*/
|
|
|
|
|
include("util/constantes.php");
|
|
|
|
|
include("util/util.php");
|
|
|
|
|
include("util/cnvrtFunctions.php");
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* Saida dos comandos para log.
|
|
|
|
|
*/
|
|
|
|
|
$cmdOut = '';
|
|
|
|
|
$msgOut = '';
|
|
|
|
|
$stOut = '';
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* Carrega os parametros.
|
|
|
|
|
*/
|
|
|
|
|
list($src, $dst, $type, $prcName, $pathLog) = CnvrtDecodeData($argv[1], false);
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* Registra o inicio do script;
|
|
|
|
|
*/
|
|
|
|
|
CnvrtLog(sprintf("Script: %s Origem: %s Destino: %s Tipo: %s IPC: %s", 'cnvrtAudio.php', $src, $dst, $type, $prcName));
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* Cria arquivo com o pid do processo corrente.
|
|
|
|
|
*/
|
|
|
|
|
_CnvrtRegPid($prcName);
|
|
|
|
|
|
|
|
|
|
if (!file_exists($src)) {
|
|
|
|
|
GeraExcept($msgOut = "O orquivo de origem n<EFBFBD>o existe!");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!filesize($src)) {
|
|
|
|
|
GeraExcept($msgOut = "O arquivo n<EFBFBD>o possui dados ou <EFBFBD> inv<EFBFBD>lido!");
|
|
|
|
|
}
|
|
|
|
|
/*
|
|
|
|
|
* Seleciona a funcao para conversao a partir do parametro type.
|
|
|
|
|
*/
|
|
|
|
|
switch ($type) {
|
|
|
|
|
case CNVRT_WAV_MP3:
|
|
|
|
|
_CnvrtWavToMp3();
|
|
|
|
|
break;
|
|
|
|
|
case CNVRT_WAV_ULAW:
|
|
|
|
|
_CnvrtWavToUlaw();
|
|
|
|
|
break;
|
|
|
|
|
case CNVRT_MP3_ULAW:
|
|
|
|
|
_CnvrtMp3ToUlaw();
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
$msgSys = error_get_last();
|
|
|
|
|
CnvrtLog(sprintf("Conversao Audio: %s msg: %s %s cmd: %s [ %s ]", date("Y:m:i"), $msg, ($stOut ? '' : "MsgSis: " . $msgSys["message"]), $cmdOut, ($stOut ? 'OK' : 'ER')));
|
|
|
|
|
} catch (Exception $ex) {
|
|
|
|
|
CnvrtLog($ex->getMessage());
|
|
|
|
|
_CnvrtWirteData(_CnvrtPrepareData(0, $ex->getMessage()), $prcName, $dst);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function _CnvrtWavToMp3() {
|
|
|
|
|
global $src, $dst, $cmdOut;
|
|
|
|
|
ExecAudio($cmdOut = sprintf('ffmpeg -y -loglevel quiet -i %s -acodec libmp3lame %s', $src, $dst));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function _CnvrtWavToUlaw() {
|
|
|
|
|
global $src, $dst, $cmdOut;
|
|
|
|
|
ExecAudio($cmdOut = sprintf('ffmpeg -y -loglevel quiet -i %s -af "highpass=f=300, lowpass=f=3400" -ar 8000 -ac 1 -ab 64k -f mulaw %s', $src, $dst));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function _CnvrtMp3ToUlaw() {
|
|
|
|
|
global $src, $dst, $cmdOut;
|
|
|
|
|
ExecAudio($cmdOut = sprintf('ffmpeg -y -loglevel quiet -i %s -ar 8000 -ac 1 -ab 64 -f mulaw %s', $src, $dst));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function ExecAudio($cmd) {
|
|
|
|
|
global $prcName, $dst, $cmdOut, $msgOut, $stOut;
|
|
|
|
|
$out = '';
|
|
|
|
|
$ret = '';
|
|
|
|
|
$stOut = true;
|
|
|
|
|
exec($cmd, $out, $ret);
|
|
|
|
|
$data = _CnvrtPrepareData(1, $msgOut = 'Arquivo convertido com sucesso!');
|
|
|
|
|
if (!file_exists($dst)) {
|
|
|
|
|
$data = _CnvrtPrepareData(0, $msgOut = "Erro ao converter arquivo!", $out, $ret);
|
|
|
|
|
$stOut = false;
|
|
|
|
|
}
|
|
|
|
|
_CnvrtWirteData($data, $prcName, $dst);
|
|
|
|
|
}
|