Переадресация вывода Трактора в Shoutcast / Icecast с использованием Транскодера на MacOS

424
Jan Vladimir Mostert

Я пытаюсь перенаправить мой локальный icecastпоток на внешний icecast/ shoutcastпоток. Traktor поддерживает только icecast, поэтому рекомендуется настроить потоковую передачу на локальный сервер Icecast и использовать потоковый транскодер для пересылки музыки в место назначения, где его слушают люди.

Настройка локального сервера Icecast была легкой частью

brew install icecast 

а потом просто настраиваю его.

Одним из предлагаемых решений вместо использования транскодера является использование чего-то вроде BUTT или LadioCast для потоковой передачи всего аудио по определенному аудиоканалу. Я попробовал это в качестве последнего средства из отчаяния - НО я получаю его для подключения и потоковой передачи, но (без каламбура) не могу открыть поток в браузере для прослушивания, он просто показывает 404. LadioCast с другой стороны, потоков, поток открывается, но я слышу только тишину, даже если выбираю все 4 мои звуковые карты. Помимо того, что эти решения не работают, они не совсем то, что я ищу, так как любой другой сигнал тревоги на компьютере будет транслироваться.

Liquidsoap был рекомендуемым решением в одной статье.

brew tap drfill/liquidsoap brew install liquidsoap --with-all 

Ошибка: вызов Hardware.is_64_bit? выключен! Использовать Hardware :: CPU.is_64_bit? вместо. /usr/local/Homebrew/Library/Taps/drfill/homebrew-liquidsoap/Formula/liquidsoap.rb:66:in `mp3? ' Пожалуйста, сообщите об этом в кран drfill / liquidsoap! Или, что еще лучше, отправьте пиар, чтобы это исправить!

brew install liquidsoap  ==> Installing liquidsoap from drfill/liquidsoap ==> Installing dependencies for drfill/liquidsoap/liquidsoap: objective-caml, ocaml, ocaml-syslog, ocaml-dtools, ocaml-pcre, ocaml-duppy, ocaml-camomile, libmagic, ocaml-magic, ocaml-easy-format, ocaml-biniou, ocaml-cppo, ocaml-yojson, ocaml-ogg, ocaml-vorbis, libzip, ocaml-gd4o, ocaml-mm ==> Installing drfill/liquidsoap/liquidsoap dependency: objective-caml ==> Downloading https://homebrew.bintray.com/bottles/ocaml-4.06.1.high_sierra.bottle.tar.gz Already downloaded: /Users/vlad/Library/Caches/Homebrew/ocaml-4.06.1.high_sierra.bottle.tar.gz ==> Pouring ocaml-4.06.1.high_sierra.bottle.tar.gz /usr/local/Cellar/ocaml/4.06.1: 1,989 files, 225.8MB 

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

brew install liquidsoap ==> Installing liquidsoap from drfill/liquidsoap ==> Installing dependencies for drfill/liquidsoap/liquidsoap: ocaml-syslog, ocaml-dtools, ocaml-pcre, ocaml-duppy, ocaml-camomile, libmagic, ocaml-magic, ocaml-easy-format, ocaml-biniou, ocaml-cppo, ocaml-yojson, ocaml-ogg, ocaml-vorbis, libzip, ocaml-gd4o, ocaml-mm ==> Installing drfill/liquidsoap/liquidsoap dependency: ocaml-syslog ==> Downloading http://ftp.de.debian.org/debian/pool/main/s/syslog-ocaml/syslog-ocaml_1.4.orig.tar.gz Already downloaded: /Users/vlad/Library/Caches/Homebrew/ocaml-syslog-1.4.tar.gz Warning: Calling ENV.j1 is deprecated! Use ENV.deparallelize instead. /usr/local/Homebrew/Library/Taps/drfill/homebrew-liquidsoap/Formula/ocaml-syslog.rb:13:in `install' Please report this to the drfill/liquidsoap tap!  ==> make Last 15 lines from /Users/vlad/Library/Logs/Homebrew/ocaml-syslog/01.make:  make  making ._bcdi/syslog.di from syslog.mli making ._d/syslog.d from syslog.ml ocamlfind ocamlc -package unix -c syslog.mli ocamlfind ocamlc -package unix -c syslog.ml File "syslog.ml", line 47, characters 8-24: Warning 3: deprecated: String.lowercase Use String.lowercase_ascii instead. File "syslog.ml", line 196, characters 50-53: Error: This expression has type bytes but an expression was expected of type string make[1]: *** [syslog.cmo] Error 2 make: *** [byte-code-library] Error 2  If reporting this issue please do so at (not Homebrew/brew or Homebrew/core): https://github.com/drfill/homebrew-liquidsoap/issues 

Переходя на github, кто-то уже сообщил о проблеме со следующим ответом: https://github.com/drfill/homebrew-liquidsoap/issues/32

В настоящее время у меня нет времени и интереса для поддержки этого крана. Сожалею! Если Вы знаете, как с этим справиться, PR исправить.

Другой вариант - установка в macOS, см. # 26

Так что теперь opamтребуется сделать это:

brew install opam opam install liquidsoap 

opam жалуется на мой OCaml версии будучи 4.06.1вместо < 4.06.0ручного понижения версии OCaml и больше вещей, просто разбомбить. Поэтому я зарегистрировал ошибку для этого: https://github.com/savonet/liquidsoap/issues/538

Таким образом, liquidsoap не работает на MacOS в данный момент

Кто-то предложил использовать Nicecast, их домашняя страница буквально говорит следующее: https://rogueamoeba.com/nicecast/

28 февраля 2018 года Nicecast был уволен из активной разработки. Nicecast будет поддерживаться до конца 2018 года, но у нас больше нет планов дальнейших обновлений.

Существующие клиенты могут продолжать использовать Nicecast на поддерживаемых системах, но, к сожалению, мы ожидаем, что изменения в будущих обновлениях MacOS сделают Nicecast полностью несовместимым. Поэтому вы должны быть осторожны при обновлении любых производственных сред.

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

Так что nicecast тоже мертв.

Используя Loopback ( https://rogueamoeba.com/loopback/ ), который создает виртуальную звуковую карту, я могу сказать BUTT транслировать виртуальную звуковую карту (которая прекрасно работает), но я не могу найти способ сказать Traktor разделить основной и мониторный выход. В результате, когда я занят предварительным микшированием и прослушиванием второй колоды, она также воспроизводится через виртуальную звуковую карту, что означает, что она также транслируется.

Любые другие предложения для трансляции моего ледяного потока на внешний сервер shoutcast? Кажется, я нашел много полуработающих решений, ни одно из которых не работает на 100%.

0

1 ответ на вопрос

0
Jan Vladimir Mostert

Хорошо, после еще копания я нашел безумно сложное решение, но оно работает!

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

(Loopback не бесплатный и стоит примерно столько же, сколько Traktor Pro, но, по крайней мере, работает)

enter image description here

Если вы хотите воспроизвести выходной сигнал также через набор больших громкоговорителей, добавьте некоторые правила маршрутизации здесь, чтобы направить звук на внешние громкоговорители, а также в разделе monitor audio through, но пока, только убедитесь, что он отмечен, и оставьте его точно так же, как в скриншот

Далее, мы собираемся создать Aggregate Soundcard, чего я даже не знал, возможно на MacOS! Под Утилитами выберите Audio MIDI Setup ...

enter image description here

enter image description here

Это вызовет список аудиоустройств. Нажмите +внизу слева и выберите Create Aggregate Device. Дважды щелкните по имени и переименуйте его во что-нибудь более полезное.

enter image description here

Убедитесь, что вы выбрали выход для наушников, а также тот, Loopback Audioкоторый мы настроили ранее в Loopback.

Затем, в Traktor, убедитесь, что вы изменили свой аудиовыход на новую совокупную звуковую карту, которую мы назвали Traktor Output

enter image description here

Под выходной маршрутизацией происходит волшебство! Так как мы добавили две звуковых карт под Агрегированной звуковой картой, эти выходы могут теперь быть выбраны индивидуально под Output MonitorиOutput Master

enter image description here

Далее мы собираемся использовать приклад для захвата звука с Loopback Soundcard и его трансляции.

enter image description here

enter image description here

Подводя итог, можно сказать, что Traktor выводит звук через агрегированную звуковую карту, которая содержит выход на наушники, а также виртуальную звуковую карту, предоставленную Loopback. buttзатем используется для захвата звука с виртуальной звуковой карты и передачи его в потоки shoutcast или icecast. Все переключение потоков будет происходить непосредственно внутри butt.

Наконец, ваши мелодии теперь можно прослушивать в потоковом режиме. Надеемся, что когда-нибудь появится более простое решение, которое не требует 2 дополнительных программ.

enter image description here