Переадресация вывода Трактора в Shoutcast / Icecast с использованием Транскодера на MacOS
Я пытаюсь переслать мой местный icecast
поток на внешний icecast
/ shoutcast
поток. Трактор поддерживает только 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
опам жалуется на мою версию 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%.
1 ответ
Хорошо, после еще копания я нашел безумно сложное решение, но оно работает!
Прежде всего, давайте сначала настроим виртуальную звуковую карту, используя Loopback...
(Loopback не бесплатный и стоит примерно столько же, сколько Traktor Pro, но, по крайней мере, работает)
Если вы хотите воспроизвести свой выход через набор больших громкоговорителей, добавьте некоторые правила маршрутизации здесь, чтобы направить звук на внешние громкоговорители, а также в разделе monitor audio through
, но пока только убедитесь, что он отмечен и оставьте его точно так же, как на скриншоте.
Далее, мы собираемся создать Aggregate Soundcard, чего я даже не знал, возможно на MacOS! Под Утилитами выберите Audio MIDI Setup ...
Это вызовет список аудиоустройств. Нажмите на +
внизу слева и выберите Create Aggregate Device
, Дважды щелкните по имени и переименуйте его во что-нибудь более полезное.
Убедитесь, что вы выбрали выход для наушников, а также Loopback Audio
который мы настроили ранее в Loopback.
Далее, в Traktor, убедитесь, что вы изменили свой аудиовыход на новую совокупную звуковую карту, которую мы назвали Traktor Output
Под выходной маршрутизацией происходит волшебство! Так как мы добавили две звуковые карты под Aggregate Soundcard, эти выходы теперь могут быть выбраны индивидуально в Output Monitor
а также Output Master
Далее мы собираемся использовать приклад, чтобы забрать звук с Loopback Soundcard и транслировать его.
Подводя итог, можно сказать, что Traktor выводит звук через Aggregate Soundcard, которая содержит выход для наушников, а также виртуальную звуковую карту, предоставленную Loopback. butt
затем используется для захвата звука с виртуальной звуковой карты и передачи его в потоки shoutcast или icecast. Все переключение потоков будет происходить непосредственно внутри butt
,
Наконец, ваши мелодии теперь можно прослушивать в потоковом режиме, надеюсь, когда-нибудь найдется более простое решение, не требующее 2 дополнительных программ.