Чтение аудиопотоков из интернет-радио и его переключение на временный файл

Я занимаюсь настройкой аудиопроцессора на удаленном удаленном ящике CentOS. Сам аудиопроцессор основан на командной строке, и после разговора с автором он объяснил мне, что он работает, читая в реальном потоке .WAV, и он также выводит live .WAV.

Теперь, в основном, сценарий, который у меня есть, таков:

У меня есть сервер крики на этом поле, используя порт 8000. Этот сервер криков – это точка, с которой соединяются ди-джеи.

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

Между ними я хотел бы использовать этот инструмент обработки звука. Ему нужно будет подключиться к первому серверу крики на порту 8000, обработать аудио, а затем отправить его на сервер на порт 8002.

Программа не может сделать это самостоятельно, к сожалению, так сказал автор программного обеспечения. Он также заявил, что этот сценарий работоспособен, и я использую правильный метод. Он предложил следующее:

  1. Инструмент командной строки, который считывает входящий поток и передает его:
  2. Инструмент командной строки, который извлекает данные MP3 в формат WAV, например, с параметром –decode.
  3. Стерео инструмент.
  4. Программа, которая кодирует WAV в MP3-данные, например, ламе.
  5. Программа, которая передает этот поток, который может обрабатывать канал как вход.

Шаг 1 + 2 может быть заменен на: «iscord», связанный с помощью «jack» с программой, которая принимает и воспроизводит входящий поток

Аналогичным образом, шаг 5 можно заменить на: «aplayer», связанный с помощью «jack» с программой, которая передает аудиоданные.

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

Я полностью потерян, чтобы быть честным, и был бы признателен вам за понимание того, как Linux-гуру настраивает что-то подобное. В основном это вход и выход, с которыми я сталкиваюсь.

Заранее благодарю за любую помощь.

Дейв

  • Устройство ввода аудио (A2DP) Bluetooth
  • Как я могу записывать потоковое радио в Linux?
  • Показать Список USB-устройств для определения имени / dev /?
  • Stream Youtube с mpv, начиная с произвольной точки позже в видео
  • Поделиться / Потоковое видео в сети LAN - малина
  • Потоковая передача в Apple TV (3) из Linux
  • Возможно ли «разблокировать» STDOUT в двух разных местах?
  • Alsa / Pulse отключает звук через некоторое время с сетевой раковиной на raspbian
  • One Solution collect form web for “Чтение аудиопотоков из интернет-радио и его переключение на временный файл”

    Я не делал этого раньше, не тестировал и не читал надлежащую документацию. И я не являюсь экспертом в аудио / видео кодеках и т. Д. Так что это скорее «это может работать», и, надеюсь, другие могут разработать.

    Я сделал быстрый поиск в Google, пытаясь найти некоторые инструменты, которые будут охватывать требования (только инструменты командной строки).

    1. Получение аудиопотока с первого сервера: icecream
    2. Декодирование из mp3 в wav: lame
    3. Стерео инструмент: stereo_tool (гипотетически)
    4. Кодировка от wav до mp3: lame
    5. Перенаправление звука на второй сервер: ezstream

    Предполагая, что ваши серверы крики работают и работают в одном окне. Мы stream2stream.sh сценарий оболочки stream2stream.sh который будет считывать из первого, обрабатывать и пересылать во второй.

     $ chmod 750 stream2stream.sh $ cat stream2stream.sh #!/bin/bash icecream --stdout http://localhost:8000 | \ lame -decode - - | \ stereo_tool | \ lame --preset cbr 128 -r -s 44.1 --bitwidth 16 - - | \ ezstream -c ~/ezstream.xml 

    Обратите внимание, что ezstream поддерживает повторное кодирование, позволяя вам определять свои собственные программы кодирования / декодирования. Поэтому мой сценарий выше может быть ненужным, и ezstream может быть достаточным сам по себе. Но я не знаком с этим инструментом, поэтому в этой реализации мы имеем простейшую конфигурацию.

     $ cat ~/ezstream.xml <ezstream> <url>http://localhost:8002</url> <sourcepassword>hackme</sourcepassword> <format>MP3</format> <filename>stdin</filename> <stream_once>1</stream_once> <svrinfoname>My Stream</svrinfoname> <svrinfourl>http://yoursiteurl/</svrinfourl> <svrinfogenre>YourGenre</svrinfogenre> <svrinfodescription>This is a stream description</svrinfodescription> <svrinfobitrate>128</svrinfobitrate> <svrinfoquality>2.0</svrinfoquality> <svrinfochannels>2</svrinfochannels> <svrinfosamplerate>44100</svrinfosamplerate> <!-- Disallow the server to advertise the stream on a public YP directory: --> <svrinfopublic>0</svrinfopublic> </ezstream> 

    Вам придется настроить параметры на ламе и ezstream по своему вкусу. Вы можете выполнить сценарий с nohup или на экране.

     screen -AmdS stereotool stream2stream.sh 
    Interesting Posts

    множество -е в подоболочке

    Проблемы с подключением дисплея Dell к Lenovo P50 Запуск Fedora 24

    Отправить только одно предупреждение, когда закрытый ключ недоступен

    MacOsx – Shell – список всех .php-файлов и их восьмеричных разрешений внутри папки specificc

    Как команда xdg-open знает, какое приложение использовать для открытия файла?

    как добавить curlcpp в библиотеку / включить путь?

    Не получайте вывод для сценария оболочки, используя if и for

    dpkg: error: невозможно удалить архитектуру «i386», используемую в настоящее время базой данных

    Понимание возможностей сборки ядра (переводчики?)

    Различия между построением из git-клона и загруженным почтовым индексом

    Как последовательно запустить командную строку Vim, чтобы сделать картографирование в любом режиме?

    Не удалось выполнить вывод в TCP через avconv

    Каковы другие алгоритмы управления перегрузками, специально разработанные для беспроводных сетей с потерями, таких как LTE и WiMax?

    Как заблокировать ключевые слова в URL-адресе https с помощью squid-прокси?

    Whoami: не может найти имя для идентификатора пользователя 0

    Linux и Unix - лучшая ОС в мире.