Страница 1 из 4 123 ... ПоследняяПоследняя
Показано с 1 по 10 из 38
Like Tree26Likes

Тема: Мой вариант организации трансляции голоса

  1. #1
    Опытный
    Регистрация
    28.01.2014
    Город
    Москва
    Сообщений
    121
    Downloads
    5
    Uploads
    0

    Post Мой вариант организации трансляции голоса

    Часть 1.
    Хочу рассказать о своём опыте организации трансляции голоса. Надеюсь кому-то будет полезен.

    Всё начиналось как и у всех: захотелось принимать, слушать, записывать общение диспетчеров и пилотов в своём районе. Для этого была приобретена и установлена A0 AVIA от Радиала. От неё спуск RG213 порядка 20-ти метров. После чего стоит полосовой фильтр от PolyAntenn. Идея была не получить для каждой частоты отдельный поток, а иметь единственный поток, в котором будет результат сканирования списка частот. Т.е. нужна была либо р/ст с возможностью сканирования каналов, либо сканер. Самый большой вопрос встал в выборе оборудования. Поиспользовав один раз продукцию Uniden, в итоге серьёзно на неё подсел. В персональном парке были две модели: BC125AT и BCT15X.

    Небольшие подробности по точкам установки. Обе точки находятся в удалённых местах, доступ к которым получить можно, но не по мгновенно. Везде используются полноценные Intel Celeron с Windows 7 на борту (raspberry, odroid-ы, vaio x86 и пр. уже пройденный этап).

    Первая попытка была использовать BC125AT. Собрал блок питания от сети, установил фильтры. Решил проверить всё на столе. Под сканер есть ПО для программирования по шнурку. Более того, после пропадания питания, сканер потом снова возвращается в последний режим работы. Но одна особенность создавала неудобства: после редактировании списка каналов удалённо и заливки, сканер переходил в режим стояния ("HOLD") на одной из частот. И сдвинуть его можно было только нажав кнопку сканирования. Для удалённой установки подходило мало, но надо с чего-то начинать. Всё было установлено и запущено. И конечно же, по закону подлости, в точке установки, где никогда не было проблем с электричеством, начинаются приключения. За месяц было 3 отключения, после одного из которых сканер не вернулся в режим сканирования - пришлось ехать. Плюс любое изменение в списке каналов тоже планировалось под выезд на точку. В целом, решение неплохое, но не удобное. Прелесть была в том, что сканер не собирал столько шума, сколько свисток.

    Можно было запустить shoutcast сервер прямо на компьютере в месте установки, но не все из них на белом (а лучше ещё и статическом) IP. Дома есть Linux сервер на котором поднял IceCast сервер. С компьютера в точке установки транслировал с помощью приложения butt, которое умеет и переподключаться, и авторизоваться, и на нужный Mount point поток вещать, и с нужными настройками качества, и даже записывать (но об этом позже). Дополнительной прелестью было то, что в icecast можно создать пользователей и раздать всем друзьям персональные логины и пароли для прослушивания. Так же, вещание на слушателей с домашнего сервера, не генерировало дополнительный трафик для точки приёма, которая может быть, например, на мобильном интернете.

    Дальше появилась идея всё записывать и хранить на всякий случай, например, месяц. Делать это на компьютере в точке установки не разумно, хотя butt позволяет записывать: ограничения интернета, жёсткий диск там минимального размера. Решением оказался пакет streamripper. Который автоматически запускается с помощью supervisor, подключается к серверу вещания icecast2, на протяжении указанного промежутка времени, например, 4 часа, пишет поток в mp3 файл с датой и временем в имени. После окончания промежутка времени файл перемещается в другой каталог для хранения и streamripper запускается заново.

    Утром посмотрев в FR24 можно посмотреть, что интересного пролетало в Вашем районе за ночь. Увидев интересный борт, можно найти соответствующий файл и послушать радиообмен. Одно неудобство, искать нужный участок в 4-х часовом промежутке очень тяжело и неудобно. Особенность ночного радиообмена - отсутствие радиообмена. И нужно изловчиться не пропустить эти несколько секунд. Почти на любую проблему можно найти решение. Им оказалась программа sox, которая может заниматься автоматической обработкой аудиофайлов. Одна из функций - это удаление тишины. Поиграв с параметрами получил решение, которое удаляло тишину и превращало 4-х часовой ночной файл в 20-ти минутный с двухсекундными паузами между репликами. Точная привязка по времени при этом терялась (но было точно известно, что это произошло в нужный 4-х часовой период), но при этом возрастало удобство и уменьшалось количество используемого места для хранения. При используемом мной списке частот, днём такая функция была не нужна, потому что радиообмен идёт постоянно. Автоматический запуск такого обработчика нашёл своё место в планировщике cron. Так же туда была добавлена команда, удаляющая все файлы старше двух месяцев, что убрало необходимость делать это вручную. Период в два месяца вполне достаточен для того чтобы отпала всякая необходимость в хранимой информации.

    К этому времени захотелось изменить что-то в приёмной части. Поэтому вместо BC125AT был установлен BCT15X, имевший свой блок питания и пр. В первую очередь, из-за возможности запуска сканирования прямо из родной программы управления сканером. Как результат, отпала необходимость выездов для запуска сканирования, каналы можно было редактировать в любое удобное время.

    Однажды, при поиске альтернативной программы управления сканером, рассматривал возможность покупки другой модели, под которую нет штатной программы, наткнулся на ProScan. Сразу же подкупила функциональность. Программа рисовала переднюю панель сканера с которой можно было интерактивно управлять сканером. В итоге она могла сама определять, когда открыт шумоподав в сканере, записывать поток с микрофона и отправлять на icecast2 через интернет. Необходимость в butt пропала. Приятным дополнением стала статистика, которую программа ведёт по запрограммированным каналам: сохраняет сколько раз была активность на каждом канале. Ещё одним бонусом стала возможность сохранения каждого сеанса в отдельный файл с указанием даты, времени и имени канала. Так же настраивается количество дней хранения истории. Поиск в такой истории совсем не составляет труда. Но т.к. место и ресурсы в компьютере на точке установки ограничены, пришлось поставить небольшой период хранения. Ну и вишенкой на торте стала передача имени канала в потоке трансляции. Практически в любом плеере при проигрывании голоса отображается название канала, на котором сейчас есть активность. Теперь не надо угадывать какой из диспетчеров говорит - это видно в плеере.

    В конце концов получилась система:
    • с возможностью не жечь мобильный трафик в точке установки и раздавать друзьям доступ к трансляции

    • иметь группу каналов в одной трансляции и видеть в плеере на каком канале идёт радиообмен

    • иметь "оперативный" архив, со всеми деталями (дата, время, название канала, отдельным файлом), на компьютере в точке установки

    • иметь "долгосрочный" архив со сжатием (удалением тишины) дома


    P.S. Держать полноценный миникомпьютер на каждой точке затратно, сами сканеры не дёшевы и программа стоит денег. Моей задачей было построить то, что удобно и устраивает меня. Получившееся решение удобно для использования и, на мой взгляд, стоит своих денег.

    P.S. Можно было прицепить скриншотов и примеров, для большей наглядности, но задача была не украшать, а поделиться опытом. Если возникли вопросы - предлагаю писать в эту тему, собственно для того и создавалась.

  2. 8 пользователя(ей) сказали cпасибо:
    Disp (09.12.2016) garry72 (09.12.2016) IC7K (09.12.2016) riki (02.07.2019) Rumlin (09.12.2016) scorp1988 (09.12.2016) tutpipos (11.12.2016) UA4WIY (09.12.2016)
  3. Ksuxa ATC

  4. #2
    МегаПрофи
    Регистрация
    08.04.2016
    Город
    Симферополь
    Аэропорт
    URFF
    Сообщений
    666
    Downloads
    1
    Uploads
    0
    raspberry, odroid-ы, vaio x86 и пр. уже пройденный этап
    А чем это не устраивает?

  5. #3
    МегаПрофи
    Регистрация
    02.11.2011
    Город
    Иркутск
    Аэропорт
    UIII
    Сообщений
    593
    Downloads
    11
    Uploads
    0
    Все красиво, но у меня два вопроса:
    1. Как же так, 20 метров и без МШУ? Хоть А0 и RG213. Да к тому же потери в кабеле еще и фильтром придавливаются. Оптимальный вариант A0 - запорный виток кабеля у выхода антенны, диапазонный фильтр, добротный МШУ от тех же polyantenn, а уже от него кабель снижения RG213 к приемнику. Если усиление избыточное, то по входу приемника аттеньюатор.
    2. Где можно послушать трансляцию?

  6. #4
    Опытный
    Регистрация
    28.01.2014
    Город
    Москва
    Сообщений
    121
    Downloads
    5
    Uploads
    0
    Часть 2.
    Для запуска записи потока при каждой загрузке использую supervisor. Создал файл конфигурации для streamripper

    Код:
    cat /etc/supervisor/conf.d/airodump.conf
    
    [program:airodump]
    directory=/home/airodump
    command=/home/airodump/rip
    user=nobody
    umask=022
    autostart=True
    autorestart=True
    stdout_logfile=/home/airodump/rip.log
    stderr_logfile=/home/airodump/rip_err.log
    В скрипте запуска rip разместил следующее

    Код:
    cat /home/airodump/rip
    
    #!/bin/bash
    while :
    do
    streamripper http://user:password@127.0.0.1:7000/example -l 14400 -A -s --quiet -a %d -d /home/airodump/
    mv /home/airodump/*.mp3 /home/airodump/captured/
    rm -f /home/airodump/*.cue
    done
    Бесконечный цикл и хитрость с перемещением файлов нужна для исключения открытия файла, в который ещё пишет streamripper, sox-ом для удаления тишины. Так же перемещение файлов между каталогами на каждой стадии упрощает отладку. Файлы с расширением .cue создаёт сам streamripper. Удаляю отдельной командой, чтобы не мозолили глаза.


    Для периодического запуска sox (для удаления тишины) и скрипта удаления файлов старше нужного срока использую cron

    Код:
    00 6,12,18,23 * * * /home/airodump/cut >/dev/null 2>&1
    00 1 * * * /home/airodump/purge >/dev/null 2>&1
    Запуск удаления тишины привязан к часам минимальной активности сервера: 6:00, 12:00, 18:00, 23:00

    Скрипт cut занимается удалением тишины и содержит следующее

    Код:
    cat /home/airodump/cut
    
    #!/bin/bash
    FILES=/home/airodump/captured/*
    pid=""
    
    pid=`ps -ef | grep -v grep | grep "sox" | awk '{print $2}'`
    #echo $pid
    if ! [ -n "$pid" ]; then
            #/usr/bin/logger -t cronjob "STARTED"
            for f in $FILES; do
             if [ -f "$f" ]; then
             #echo "Processing $f file..."
             sox "$f" $(echo $f | sed s/captured/compressed/ | sed s/\.mp3/\_edited\.mp3/) -V1 silence -l 1 0.1 1% -1 2.0 1%
             rm -f "$f"
             fi
            done
    fi
    Закомментированные строчки нужны для отладки. Начальное условие проверят, на всякий пожарный, нет ли уже запущенного экземпляра sox, т.к. он отрабатывает не быстро и при неправильных интервалах можно устроить конкуренцию между процессами и т.д. "Ночные" файлы, блягодаря использованию sox, сжимаются минимум в 3-4 раза.

    Скрипт purge удаляет файлы старше определённого интервала. Например, 40 дней

    Код:
    cat /home/airodump/purge
    
    #!/bin/bash
    find /home/airodump/compressed/* -mtime +40 -type f -delete >> /var/log/purge.log
    Позволяет не думать о том, что место может закончиться.
    cemichael likes this.

  7. 2 пользователя(ей) сказали cпасибо:
    IC7K (10.12.2016) Rumlin (09.12.2016)
  8. #5
    Опытный
    Регистрация
    28.01.2014
    Город
    Москва
    Сообщений
    121
    Downloads
    5
    Uploads
    0
    Часть 3.

    Немного деталей железной части. Думаю, здесь самое уместное место.

    В самом-самом начале было желание принимать ADSB, о голосе речи не было. Тогда и пошли эксперименты с Raspberry и ODROID. Помимо проблем с библиотеками под ARM, которых просто нет на платформе x86. Были проблемы с ПО: часть софта выходило под ARM позже, часть некорректно работала и т.д. Отдельного внимания заслуживает "дружба" с 3G модемами. Любимым делом, у обоих, было терять маршрут по умолчанию после переустановки 3G соединения. Всё это покрывалось пинговалками-перезагружалками. Установка роутера с 3G модемом и подключение миникомпьютера кабелем - делала интервал чуть больше. Но тут уже добавлялись вопросы поведения самого роутера, его цена и т.д. Были проблемы ещё и с периферийными устройствами. Как раз тогда и пришло желание транслировать голос. У кого-то на борту был микрофонный вход, у кого-то нет. Алиэкспрессные USB звуковые карты добавляли проблем с драйверами под ARM и сбором шума. Итого решение работало, но было нестабильным и больным местом так же была SD карта - что по производительности и объёму, что по надёжности.

    Надумав окончательно уйти на x86 (оставаясь при этом на Linux) набрёл на VOYO Mini PC Windows 8.1 TV Box на Intel Atom (на планшетном чипсете). Изначально всё понравилось, даже аккумулятор есть! Разочарование пришло на второй день: аккумулятор есть, но изнутри его заряд не отследить, нет автозапуска после появления питания (любые изменения в BIOS вызывали полный коллапс и отказ включаться). Как решение - приёмку не прошло.

    Остановился на Gigabyte Brix GB-BXBT-2807. Получилось купить нужное количество за демократичную цену. Оборудовал каждую 32ГБ SSD винчестером и 4ГБ оперативки. На этих комплектах всё и работает до сих пор.

    Последним шагом был уход с Linux на Windows. Ключевым было: меньшее количество проблем с любой периферией (3G свистки в том числе), корректная работа троттлинга, Intel TurboBoost и пр.

    Сейчас от сканера к компьютеру подключены: аудио кабель - для передачи звука, USB-COM переходник и кабель - для управления сканером. Встроенная звуковая карта работает весьма достойно. Но и в самой программе есть полосовой фильтр - можно отрезать ненужные шумы програмно.

    Общий вид программы ProScan:
    ADSB_Proscan.jpg

    В окне как раз и видно статистику по каналам. Вся панель вверху кликабельна и интерактивна. Всегда можно в случае интересной передачи, например, на 123.450, нажать HOLD и в трансляции будет именно этот канал. Забив каналы в группы, можно оперировать группами. В общем, как и с Yaesu, если Вам "зашло" меню, то потом оно Вам будет казаться понятным и удобным. Но начать использовать без инструкции - не получится. Uniden это чисто американская торговая марка, поэтому в сканере и программе поддержки русского языка нет. Названия переводим в латиницу. Более того, стандарт разделения десятичной части - американский (через точку). Пользоваться программой получится только, переставив формат дат и чисел на американский.

    ADSB_Recording_settings.jpg

    Подставив в настройках в самое нижнее поле регулярное выражение как на картинке - получим следующую картину в каталоге, куда записывается вся активность

    ADSB_RecFiles.jpg

    В IceCast2, на домашнем сервере, точка монтирования будет выглядеть следующим образом

    ADSB_IceCast2.jpg

    Виден streamripper, который ведёт запись локально, и мой WinAmp.
    Информация о канале (metadata), на котором сейчас есть активность, в WinAmp-е и пр. выглядит так

    ADSB_Winamp.png

    Какое-то время назад, всё вместе, выглядело так

    ADSB_All.jpg
    Aleksei and tutpipos like this.

  9. 6 пользователя(ей) сказали cпасибо:
    Aleksei (09.12.2016) Disp (09.12.2016) IC7K (10.12.2016) Rumlin (09.12.2016) tutpipos (11.12.2016) UA4WIY (09.12.2016)
  10. Ksuxa ATC

  11. #6
    Опытный
    Регистрация
    28.01.2014
    Город
    Москва
    Сообщений
    121
    Downloads
    5
    Uploads
    0
    А чем это не устраивает?
    Ответ попробовал описать в третьей части.

    Все красиво, но у меня два вопроса:
    1. Как же так, 20 метров и без МШУ? Хоть А0 и RG213. Да к тому же потери в кабеле еще и фильтром придавливаются. Оптимальный вариант A0 - запорный виток кабеля у выхода антенны, диапазонный фильтр, добротный МШУ от тех же polyantenn, а уже от него кабель снижения RG213 к приемнику. Если усиление избыточное, то по входу приемника аттеньюатор.
    2. Где можно послушать трансляцию?
    1. Приблизительно на кабеле, разъёмах и фильтре теряю до 3дБ, при усилении антенны 2.15. Более или менее приемлимо. По поводу оптимизации АФУ, фильтров, предусилителей - пробовал запрашивать консультацию на этом форуме, как сделать свою установку эффективнее. Но осталось без ответа. Поэтому копаю сам. Когда буду уверен в решении - выделю бюджет, сделаю модификацию. Уже есть черновик глубокой модернизации (назовём так) с дополнительными сервисами.

    2. На публичные сервисы не транслирую. Медитирую сам и дал доступ товарищам. Делалось для себя.

  12. #7
    Профессор
    Регистрация
    09.07.2014
    Город
    Свердловская область
    Аэропорт
    USSS
    Сообщений
    289
    Downloads
    15
    Uploads
    0
    Как же так, 20 метров и без МШУ?
    Эко чудо-то? У меня стоит даймонд F22 (на межэлементной катушке добавлено 2 витка, катушка поджата по длине и изменена длина прямых отрезков), кабель такой же (старый-добрый "радиолаб" конца 90-х),длина 30 метров, разделка по уму (разъёмы Aмфенол), затухание сигнала на 130 мГц всего 3,2дб. Тысяча км борт-земля на ACARS или голос.На запад доклады бортов в ночное и утреннее время: Самара-контроль,Казань-контроль,Уфа,Пенза,Киров...Если прицелится по карте,то получается и подальше, чем на тысячу

  13. #8
    МегаПрофи
    Регистрация
    02.11.2011
    Город
    Иркутск
    Аэропорт
    UIII
    Сообщений
    593
    Downloads
    11
    Uploads
    0
    Цитата Сообщение от radarspotter2013 Посмотреть сообщение
    Как же так, 20 метров и без МШУ?
    Эко чудо-то? У меня стоит даймонд F22 (на межэлементной катушке добавлено 2 витка, катушка поджата по длине и изменена длина прямых отрезков), кабель такой же (старый-добрый "радиолаб" конца 90-х),длина 30 метров, разделка по уму (разъёмы Aмфенол), затухание сигнала на 130 мГц всего 3,2дб. Тысяча км борт-земля на ACARS или голос.На запад доклады бортов в ночное и утреннее время: Самара-контроль,Казань-контроль,Уфа,Пенза,Киров...Если прицелится по карте,то получается и подальше, чем на тысячу
    Слушайте, вы свои сказки про 1000 км "борт-земля" в УКВ-связи детишкам во дворе рассказывайте! Я этот бред даже комментировать отказываюсь.

  14. #9
    МегаПрофи
    Регистрация
    03.11.2012
    Город
    Ижевск
    Аэропорт
    USII
    Flightradar24
    T-USII1 RIP, F-UKFF4 / FlgihtAware SITE 28437, Site 33733 / RadarBox24 PGANRB300760
    Сообщений
    898
    Downloads
    16
    Uploads
    0
    Сказки про 1000 км. и более, это не сказки, но только при спорадике. Сам связывался с Краснодарским краем 28 мая 2016г., а это 1600 км. и на 5 ватт, с diamond F-23. (QSL есть).
    При нормальных условиях ~500 км. это максимум для для ВС летящего на высоте 12-13 км.

  15. #10
    Опытный
    Регистрация
    04.06.2016
    Город
    Челябинск
    Аэропорт
    USCC
    Flightradar24
    USCC7
    Сообщений
    130
    Downloads
    7
    Uploads
    0
    Цитата Сообщение от cemichael Посмотреть сообщение
    Слушайте, вы свои сказки про 1000 км "борт-земля" в УКВ-связи детишкам во дворе рассказывайте! Я этот бред даже комментировать отказываюсь.
    А хотите расскажу сказку про 1000км (KO97UX-LN09LP) земля-земля на 430МГц расскажу? Ещё знаю сказку про 1500км (KO71IM-LP51AB) на 144МГц
    И это только с двух последних российских соревнований на УКВ. Чего уж говорить, когда одна станция летит на высоте 10 тысяч метров НУМ.
    А уж если вспоминать спарадики и тропо, то там и за 8000км станции на УКВ слышатся, но это заслуга природы и явление кратковременное.

  16. Ksuxa ATC

 

 

Похожие темы

  1. Настройка VRC для трансляции
    от LehaUWSS в разделе VirtualRadarServer
    Ответов: 23
    Последнее сообщение: 20.07.2014, 21:32
  2. Вопрос о трансляции на сервер РР
    от UKLI в разделе PlanePlotter
    Ответов: 2
    Последнее сообщение: 15.06.2012, 21:01
  3. Новые трансляции в сети RadarBox
    от Netcop22 в разделе AirnavSystems RadarBox
    Ответов: 35
    Последнее сообщение: 29.04.2012, 11:41
  4. Ответов: 13
    Последнее сообщение: 31.03.2012, 17:01
  5. Оборудование для трансляции ?
    от Nikita9344 в разделе Общий
    Ответов: 1
    Последнее сообщение: 20.01.2012, 07:20

Что искали прежде чем попасть на этот форум:

Nobody landed on this page from a search engine, yet!
ADSBRADAR.ru

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •  
Powered by vBulletin®
Русский перевод: zCarot
(с) ADSBRADAR.ru 2011-2012
Текущее время: 15:27. Часовой пояс GMT +4.
Skin by CompleteVB
Яндекс.Метрика
Search Engine Optimization by vBSEO