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

Я занимаюсь настройкой аудиопроцессора на удаленном удаленном ящике 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-гуру настраивает что-то подобное. В основном это вход и выход, с которыми я сталкиваюсь.

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

Дейв

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 
  • Потоковая передача FFServer H.264 от Logitech C920
  • Alsa / Pulse отключает звук через некоторое время с сетевой раковиной на raspbian
  • Как добавить данные ogg / vorbis на лету?
  • Stream Youtube с mpv, начиная с произвольной точки позже в видео
  • Создание списка воспроизведения Icecast с консоли
  • SOX обнаруживает тишину при чтении mp3 с url
  • Как смотреть видеоролики discovery.com в Linux?
  • Ограничитель выходного звука для предотвращения всплесков громкости на рабочем столе Linux?
  • Потоковая передача в Apple TV (3) из Linux
  • Создание нескольких устройств с одного устройства?
  • Показать Список USB-устройств для определения имени / dev /?
  • Interesting Posts

    Звук очень низкий (почти не слышимый) от первичной звуковой карты, Debian 8, импульсный звук

    почему useradd havent создал стандартные файлы?

    мутное странное действие

    Почему авторизованный трафик должен быть разрешен с помощью iptables для доступа к Интернету?

    Где можно найти драйвер графического контроллера Intel Xeon E3-1200 v2 / 3rd Gen Core?

    Не удалось подключиться к PPTP VPN-клиенту

    Загрузка пакета Wget и сохранение неудачных ссылок

    Как вы исправляете обновление apt-get «Несоответствие хэш-суммы»

    Несколько telnet-соединений в цикле Expect while

    Обработка текста – поиск текста до / после заданного слова

    Какова информация, присутствующая в дампе ядра ядра

    ssh для предопределенного сервера работает только после того, как я ssh к нему, набрав ip вручную

    Как вызывать привилегии root из запроса пароля в окне «Обновление программного обеспечения»?

    Замените строки в файле на основе списка строк и списка соответствующих замещений

    Преобразование update-rc.d redis_6379 по умолчанию в команду chkconfig

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