LINUX.ORG.RU
ФорумAdmin

icecast2 liquidsoap голос поверх музыки в эфире


0

1

Здрасьте.

Стоит сервер на FreeBSD, на нем крутится icecast2+ices0 , вещает в эфир музяку. Ведущий, мой друг, цепляется к icecast удаленно с компьютера с виндой через edcast standalone.

Этот же ведущий закидывает на сервак удаленно музыку по ftp.

Собственно настройкой сервера (уже третий день) занимаюсь я, а музыкой занимается ведущий.

Я собрался заменить ices0 на liquidsoap, потому что ведущий хочет джинглы вставлять, да и liquidsoap не нужно перезапускать, чтобы он подхватил новый плейлист.

Ведущий хочет вклиниваться в эфир не на фоне тишины, а поверх музыки.

Вопрос: можно ли реализовать как-то объединение голоса и музыки в один mount для icecast на стороне сервера.

Все что нашел в интернете - это горожение огородов на стороне ведущего. Про liquidsoap нашел поддержку «live DJ interventions» , но кроме этой фразы ничего не нашел даже в документации.

То есть нужно, чтобы ведущий (с опциональным собеседником на скайпе) цеплялся к серверу, сервер делал музыку потише и добавлял к музыке голос ведущего. Конечно хорошо бы чтобы ведущий мог управлять уровнем громкости музыки, но это, я так понимаю, вообще мечта.

Будьте добры, поделитесь ссылками на хоть какую-то информацию по данному вопросу, пожалуйста. Или подскажите соответствующий серверный софт. Пожалуйста.

Спасибо.

darkice умеет кастить поток с jackd, для jackd есть куча микшеров, на которые можно кидать что угодно и в любых количествах, можно даже делать автоматическую регулировки громкости голосом (через что-то типа side chain-а).

Одна проблема: это именно что огород со стороны ведущего.

lazyklimm ★★★★★
()

Собственно говоря сделать это можно, но такой геморрой делать крайне подозрительно, все это реализуется в SAM Broadcaster на стороне ведущего, не пилите огорода.

А вообще, для реализации на стороне сервера вам нужно добавить источник плейлиста подложек и источник голоса, сунуть все это в fallback между live и main_stream с transitions функцией trans, trans. В самой функции смотрим

if source.id(new) == source.id(live) then если перешли на поток ведущего, то делаем add между new (по сути live) и источником с подложками. Как громкость приглушить на нем не помню, смотрите в документации. Ну и функция обработки конца эфира делается как-то так

elsif source.id(old) == source.id(live) then
 new
else

Т.е. тут мы переходим на обычный поток музыки, который new. Итого выходит как-то так:

main_stream # основнйо поток с музыкой
live # поток от ведущего
podklad # тут у вас уже указан плейлист с музыкой для подклада
def trans(old,new)
        if source.id(new) == source.id(live) then
          log("Transition to live!")
          add([new,podklad])     # podklad обернете в функцию уменьшения громкости. 
        elsif source.id(old) == source.id(live) then
          log("Transitioning from live!")
          new
end
full =
  fallback(track_sensitive=true, transitions=[ trans, trans],
           [ live, main_stream ])

Использовать для включения ведущих http.input с icecast не очень хорошо, используйте встроенный функционал harbor. Ну и в liquidsoap есть баг феллбека на track_sensitive=false, так что смысла тут его ставить нет.

Amoled
()
1 февраля 2014 г.
Ответ на: комментарий от Amoled

есть вопрос по liauidsoap

Коллеги, нужен общественный интеллект для настройки решения.

Если кратко - арендую на хостинге сервер вещания icecast2.

У меня дома интернет. Стоит сервер. На нем развернут liquidsoap. Там идет плейлист, который подключается к icecast и транслирует плэйлист. Написан скрипт, который смешивает композиции из разных папок.

Что хочется.

Хочется с ноутбука ведущего (для простоты - он в той же локальной сети что и сервер liquidsoap) подключаться к серверу liquidsoap с микрофона и замещать на время включения плэйлист liquidsoap. Выводя в эфир голос ведущего..

Это реально?

azso
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.