Привет,
Знает кто то как можно сразу писать запись в mp3? Не дергать скрипт после записи или еще что то типа этого, а сразу писать в mp3 формате
скрипт такой
#!/bin/bash
recorddir="/home/asterisk"
for i in `ls $recorddir/*.wav`;
do
cd $recorddir
lame -d $i `basename $i .wav`.mp3;
done
а как конвертировать с низким приоритетом ?
exten => _XXXX,2,MixMonitor(/var/spool/asterisk/monitor/${STRFTIME(,,%Y)}/${STRFTIME(,,%m)}/${STRFTIME(,,%d)}/${STRFTIME(,,%H)}/${STRFTIME(,,%H-%M)}_${CALLERID(NUM)}_${EXTEN}.wav,b v(3) V(3) W(3),/usr/bin/lame -S -V2 /var/spool/asterisk/monitor/${STRFTIME(,,%Y)}/${STRFTIME(,,%m)}/${STRFTIME(,,%d)}/${STRFTIME(,,%H)}/${STRFTIME(,,%H-%M)}_${CALLERID(NUM)}_${EXTEN}.wav /var/spool/asterisk/monitor/${STRFTIME(,,%Y)}/${STRFTIME(,,%m)}/${STRFTIME(,,%d)}/${STRFTIME(,,%H)}/${STRFTIME(,,%H-%M)}_${CALLERID(NUM)}_${EXTEN}.mp3 && rm -f /var/spool/asterisk/monitor/${STRFTIME(,,%Y)}/${STRFTIME(,,%m)}/${STRFTIME(,,%d)}/${STRFTIME(,,%H)}/${STRFTIME(,,%H-%M)}_${CALLERID(NUM)}_${EXTEN}.wav)<br>
exten => _XXXX,3,Dial(SIP/1998,,tT)<br>
exten => _XXXX,4,StopMixMonitor() <br>
Вот ток на буя ? Проще писать в gsm да и ресурсов поменьше жрет....
объячняю почему нет смысла сразу писать
1) нагрзука на проц больше и реалтайм 2) mixmonitor пишет отдельно вод и исход, в конце миксует. тоесть логично с низким приоритетом перекодировать в конце.
обычно делается через скрипт в mixmonitor или через внешний скрипт который ночью это делает. я предпочитаю второй вариант как более коректный и менее ресурсоемкий. точнее сказать нельзя, ибо вы ничего о вашем конфиге не написали.
в люом случае это надо внешний скриптик сделать и lame поставить
хотя не очень удачная идея, нужно смотреть в использования lame из астериска
Чтобы сразу писать в mp3
extension.conf:
exten => _XXXX,1,MixMonitor(/calls/${UNIQUEID}.wav,,/usr/local/bin/conv2mp3 ${UNIQUEID})
exten => _XXXX,2,Dial(SIP/888,30,tT)
exten => _XXXX,3,Hangup
/usr/local/bin/conv2mp3:
#!/bin/sh
LAME="/usr/local/bin/lame"
UID="$1"
DIR="/calls"
$LAME -V2 $DIR/$UID.wav $DIR/$UID.mp3
rm -f $DIR/$UID.wav
Требуется lame (/usr/ports/audio/lame)
здраствуй дядя некромант. а чем твой ответ отличается от того что ниже написан не подскажешь?я бы поставил тееб минус, н ониже 1 не упадешь.
meral ( 2012-05-15 14:55:01 +0400 )редактироватьа что скажете на счёт идеи кодировать в oggenc -q0 (при -q-1 заметно значительное ухудшение качества), которое при кодировании 8 bit PCM Mono 8000 Hz дает сходное качество с lame -v. Конечно, lame -b 8 ещё меньше, но звук звук становится противным, железно-скрипучим. Кроме того .ogg, уже врятли смутит юзера как и .mp3, в отличии от .gsm или .spx.
ogg меня смутит. и 90% пользователей тоже. кодируйте мп3 с битрейтом около 20кбит.
meral ( 2012-07-15 06:20:33 +0400 )редактировать-- extensions.lua
local tpath="/tmp"
local dpath="/var/spool/asterisk/monitor/"
local bin="/usr/bin/lame"
local params=""
function record()
local dpath=string.format("%s/"..os.date("%Y/%m/%M-%S").."/%s",dpath,channel.CALLERID("num"):get():gsub("%s+", "")) -- убираем пробелы в номере на всякий случай
local pt={wav=tpath, mp3=dpath }
local f=function(e) return string.format(pt[e]..".%s",e) end
sfile=f("wav")
dfile=f("mp3")
app.mixmonitor(sfile,"b",string:format("%s %s %s %s && rm %s",bin,params,sfile,dfile,sfile))
return dfile
end
extensions={}
extensions.recordcall = { -- здесь пишем имя в CDRчик - если включен cdr_odbc то получим имя записанного файла в базе
record=function()
channel.CDR("recordname"):set(recordname)
end
}
extensions.incoming = {
["_X."]=function(p,e)
app.answer()
local recordname=record()
app.dial(string.format("SIP/%s",e),"U(recordcall,record,1)")
end
}
Задан: 2011-08-21 14:07:04 +0400
Просмотрен: 14,298 раз
Обновлен: Feb 24 '13
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.