Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

Писать MixMonitor'ором сразу в mp3

0

Привет,

Знает кто то как можно сразу писать запись в mp3? Не дергать скрипт после записи или еще что то типа этого, а сразу писать в mp3 формате

скрипт такой

#!/bin/bash
recorddir="/home/asterisk"
for i in `ls $recorddir/*.wav`;
do
cd $recorddir
lame -d $i `basename $i .wav`.mp3;
done

а как конвертировать с низким приоритетом ?

удалить закрыть спам изменить тег редактировать

спросил 2011-08-21 14:07:04 +0400

godlike Gravatar godlike flag of Ukraine
814 92 24 62

обновил 2011-08-22 17:28:22 +0400

Comments

почему именно мп3? .gsm меньше занимает cvieri ( 2011-08-22 10:23:31 +0400 )редактировать
mp3 при качестве gsm занимает столько же. качество же в жсм не регулируется. meral ( 2011-08-22 13:15:46 +0400 )редактировать
nice -n 19 перед lame допишите. кстати ваш скрипт не рабочий. даю подсказку. он конвертит недописанный файлик. meral ( 2011-08-22 19:48:15 +0400 )редактировать

6 Ответов

0

хотя не очень удачная идея, нужно смотреть в использования lame из астериска

ссылка удалить спам редактировать

ответил 2011-08-21 17:19:59 +0400

um2010 Gravatar um2010
2056 70 13 55

Comments

я находил примеры где lame дергался сразу из экстеншена, то есть сразу в mp3 писать нельзя? godlike ( 2011-08-21 17:51:34 +0400 )редактировать
1
в миксмониторе есть параметр command - в него после завершения записи можно вставить перекодирование в mp3 , насколько я знаю сразу в мп3 писать ничем не реально, поскольку сжатие в нем устроено с ориентированием на весь файл. um2010 ( 2011-08-21 18:03:51 +0400 )редактировать
0

объячняю почему нет смысла сразу писать

1) нагрзука на проц больше и реалтайм 2) mixmonitor пишет отдельно вод и исход, в конце миксует. тоесть логично с низким приоритетом перекодировать в конце.

обычно делается через скрипт в mixmonitor или через внешний скрипт который ночью это делает. я предпочитаю второй вариант как более коректный и менее ресурсоемкий. точнее сказать нельзя, ибо вы ничего о вашем конфиге не написали.

в люом случае это надо внешний скриптик сделать и lame поставить

ссылка удалить спам редактировать

ответил 2011-08-22 13:21:57 +0400

meral Gravatar meral flag of Ukraine
23347 24 20 177
http://pro-sip.net/
0
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 да и ресурсов поменьше жрет....

ссылка удалить спам редактировать

ответил 2011-08-22 14:13:23 +0400

CheeZ Gravatar CheeZ
1205 7 6 25

обновил 2011-08-22 16:28:16 +0400

meral Gravatar meral flag of Ukraine
23347 24 20 177
http://pro-sip.net/

Comments

+1 cvieri ( 2011-08-22 15:41:33 +0400 )редактировать
ресурсы ресурсам рознь. пусть лучше жрет ночью. код ужасен. оформление еще хуже. meral ( 2011-08-22 16:27:28 +0400 )редактировать
Просто записи сразу после разговора будут вытягиваться клиентами через web интерфейс, и им как бы логичнее подсовывать mp3 а то не поймут че это за формат такой gsm godlike ( 2011-08-22 17:29:52 +0400 )редактировать
По факту установить gsm кодек под винду это не проблема и будет себе играть в медиаплеере или чего там пожелаете. CheeZ ( 2011-08-22 17:40:30 +0400 )редактировать
это я буду тысяче человек рассказывать что им надо еще чета себе куда то ставить что бы прослушать :) godlike ( 2011-08-22 18:11:16 +0400 )редактировать
это будет решение не для десятка и даже не для сотни человек godlike ( 2011-08-22 18:12:01 +0400 )редактировать
есть офрмат wav-compressed. по сути это gsm с расширением wav. ничего ставить не надо. meral ( 2011-08-22 19:47:18 +0400 )редактировать
а можно как то сказать астериску писать в этом формате? godlike ( 2011-08-23 22:51:05 +0400 )редактировать
да. расширение wav49 написать. а потом скриптом в конце переименовать в wav. meral ( 2011-08-24 02:23:24 +0400 )редактировать
0

Чтобы сразу писать в 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)

ссылка удалить спам редактировать

ответил 2012-05-15 10:48:50 +0400

ghost6639 Gravatar ghost6639
1 1

обновил 2012-05-15 10:51:02 +0400

Comments

здраствуй дядя некромант. а чем твой ответ отличается от того что ниже написан не подскажешь?я бы поставил тееб минус, н ониже 1 не упадешь.

meral ( 2012-05-15 14:55:01 +0400 )редактировать

Длинно и неудобно редактируемо.

ghost6639 ( 2012-05-16 12:25:23 +0400 )редактировать
0

а что скажете на счёт идеи кодировать в oggenc -q0 (при -q-1 заметно значительное ухудшение качества), которое при кодировании 8 bit PCM Mono 8000 Hz дает сходное качество с lame -v. Конечно, lame -b 8 ещё меньше, но звук звук становится противным, железно-скрипучим. Кроме того .ogg, уже врятли смутит юзера как и .mp3, в отличии от .gsm или .spx.

ссылка удалить спам редактировать

ответил 2012-07-14 20:18:06 +0400

thunderamur Gravatar thunderamur
444 70 12 38

Comments

ogg меня смутит. и 90% пользователей тоже. кодируйте мп3 с битрейтом около 20кбит.

meral ( 2012-07-15 06:20:33 +0400 )редактировать
0
-- 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
}
ссылка удалить спам редактировать

ответил 2013-02-24 18:04:00 +0400

octopas Gravatar octopas
111 5 1 3

Ваш ответ

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[скрыть предварительный просмотр]

Закладки и информация

Добавить закладку
2 закладки

подписаться на rss ленту новостей

Статистика

Задан: 2011-08-21 14:07:04 +0400

Просмотрен: 14,140 раз

Обновлен: Feb 24 '13

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.