20.12.2018

sox asterisk wav mp3

Хорошая статья по теме конвертации в mp3 для centos7. 

у меня лично возникла проблема со входящими файлами wav почему-то – sox не видел данных в них, пришлось явно указывать.

скрипт для конвертации всех файлов в каталоге в mp3

#!/usr/bin/perl
use strict;
use Proc::PID::File;

if (Proc::PID::File->running()) {
        print "Already running, exiting now\n";
        exit(0);
}


my @monitor_dirs=("/var/spool/asterisk/monitor");

foreach my $monitor_dir (@monitor_dirs) {
    opendir(my $dh,$monitor_dir) or die ("Cannot open dir $monitor_dir");
    print "Processing dir $monitor_dir\n";
    while (my $file=readdir($dh))  {

        next if $file !~m/\.wav$/;
        print "Processing file $file\n";
        my $newfile=$file;
        $newfile=~s/\.wav$/\.mp3/;

        system ("/usr/local/bin/sox -t raw -r 8000 -b 16 -e signed-integer  $monitor_dir/$file -t mp3 -C32 $monitor_dir/$newfile");
        sleep(0.01);
        if (-e "$monitor_dir/$newfile") {
            print "Coneverted sucessfully $file\n";
            unlink "$monitor_dir/$file";
        }

    }
    closedir($dh);
}

16.08.2015

SOX. WAV. ASTERISK. BATCH. Конвертнуть файлы для астериска.

Привет!

Дали wavки для заливки на астериск, если честно понятия не имею что там и как устроено в астере, но Астериск сам предлоагает сервис для конвертации WAV файлов во все нужные ему форматы. при помощи CLI “file convert”.

1. WAV нужно преобразовать в 8000 Khz и 1 канал, делается это командой: “sox input.wav -c 1 -b 8000 outout.wav”

лично я не смог потратить время с делать одной командой конвертацию файлов в каталоге поэтому поступил тупейшим образом: ls -a *.wav

скопировал результат в файлик, там произвел замену при помощи регулярных выражений например из строчки: 1.wav я получил

sox  1.wav -r 8000 -c 1 new/1.wav

и просто выполнил файлик… таким образом в каталоге new образовались уже готовые, для астериска файлы.

2.далее я создаю файлик с командами типа ” asterisk -x “file convert    transfering.wav           res/transfering.g729”

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

Кодеки должны присутствовать и быть активными конечно.

Бай.