forked from SimplesIP/pabx-app
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
94 lines
2.6 KiB
94 lines
2.6 KiB
#!/usr/bin/php -q |
|
<?php |
|
error_reporting(E_ERROR); |
|
ini_set('display_errors', 0); |
|
|
|
/* |
|
* Inclui funçoes gené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ão existe!"); |
|
} |
|
|
|
if (!filesize($src)) { |
|
GeraExcept($msgOut = "O arquivo não possui dados ou é invá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); |
|
}
|
|
|