The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Контроль уровня звукового сигнала"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Звук / FreeBSD)
Изначальное сообщение [ Отслеживать ]

"Контроль уровня звукового сигнала"  +/
Сообщение от vfp7 email(ok) on 01-Окт-13, 17:04 
Добрый день

Возникла проблема контроля звукового сигнала на звуковой карте.

Задача отследить пропадание звукового потока подаваемого от спутникового ресивера на линейный вход звуковой карты, который перелопачивает darkice и отдает icecast
При плохой погоде сигнал от спутника ослабевает и начинает пропадать, нужно решение что бы отследить момент пропадания сигнала, для переключения звуковой системы на резервную линию.
Было бы отлично если бы можно было дополнительно отследить уровень сигнала на выходе звуковой карты, для исключения ситуации что резервная линия 1 к примеру недоступна ...
Драйвера и звуковые системы по умолчанию, FreeBSD 9.1 x64, without X11
Две звуковые карты, одна на вход по линейному входу, вторая на выход
Интересует решение средствами sh, или любым другим скриптом.

Перелопатил интернет, но решения не нашел, кто знает, подскажите в какую сторону копать ...

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Контроль уровня звукового сигнала"  +/
Сообщение от vfp7 email(ok) on 02-Окт-13, 10:38 
На текущий момент копаю в сторону использования cat /dev/dsp0.1

R A W - формат:

"Выборка" - это значение, которое подается на вход DAC или получается из ADC, обычно целое число ( 8 или 16 битов ). Выборка характеризует амплитуду звукового сигнала. Частота выдачи выборки определяется килогерцах ( HKz ), или выборок/секунду. Кроме этого, выборка может идти по одному каналу ( моно ), или двум ( стерео ), или ..., большему числу каналов. Тем самым для проигрывания выборки, кроме нее самой, необходимо знать:

    число бит на выборку ( 8/16 бит, возможно до 32 бит );
    частоту выборки ( 5Hkz/44Hkz, возможно до 48Hkz );
    число каналов ( 1/2-моно/стерео, возможно до 4 каналов ).

Если выборка стерео, это значит, что сначала идет байт первого канала, затем второго. И частота здесь характеризует выдачу обоих байт в секунду. Для стерео левый канал - первый.

Обычные характеристики RAW:
16/44/2

Походу нужен вызов по крону раз в минуту скрипта, считывающего порцию данных с dsp0.1 за 10 сек предположительно ( для исключения пауз ) , вычисляем среднее значение тупо по всем байтам ( правильнее по словам из двух байт, но так меньше загрузка CPU - типа оптимизация :) ) этой порции данных и сравниваем это среднее значение с пороговым значением.

Я думаю как то так буду кодить.
Опять как всегда мне так помогли здесь правильными советами :)

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру