151

Re: liquidsoap

суп, последняя версия. проблемы с импут.харбор. Скажите плиз какие признаки того что эта функция работает? я так понимаю если обратиться на адрес localhost:9000 там должна появиться страница супа?
дело в том что у меня никак не запускается эта функция. Вот конфиг:

set("server.telnet", true)
#localhost - цифрами - например 192.168.0.1
set("harbor.bind_addr","127.0.0.1")
set("harbor.port",9000)
set("harbor.password","pass")
live = input.harbor("live")
radiolive = fallback(track_sensitive=false,[live,radio])

BelRadio - радио Белгорода online

Меняюсь ссылками, баннерами на главной и внутренних, пишите в ЛС

152

Re: liquidsoap

пишет aPhone:

я так понимаю если обратиться на адрес localhost:9000 там должна появиться страница супа?

нет, максимум что напишет  "This page isn't available."
вот какой конфиг должен быть
live = input.harbor("live",port=9000,password="***")
radio = fallback(track_sensitive=false,[live,myplaylist])

ps не суп а мыло

153

Re: liquidsoap

Спасибо большое. такая схема заработала!!!))
а как организовать теперь кросфейд при подключении и выключении диджея?

set("harbor.bind_addr","0.0.0.0")
live = input.harbor("live",port=9000,password="111")
radio = fallback(track_sensitive=false,[live,radio])

п.с. суп просто звучит как то лучше, ведь читается как ликваСУП smile

Отредактировано aPhone (05-04-2011 11:44:02)

BelRadio - радио Белгорода online

Меняюсь ссылками, баннерами на главной и внутренних, пишите в ЛС

154

Re: liquidsoap

просто кроссфейд добавить например, так же как и на плейлист

ps читаеться скорее как лыквыдсооп

155

Re: liquidsoap

я сделал вот так:

jingles = playlist("/home/and/jingles")
music = playlist(reload=600, "/home/and/music")
music = mksafe(music)
music = crossfade( fade_out = 7.0, fade_in = 7.0, start_next = 7.0, music )
radio = smooth_add(normal=music,special=switch([({ 00m0s or 30m0s }, jingles)]))

##########################################################
set("server.telnet", true)
#localhost - цифрами - например 192.168.0.1
set("harbor.bind_addr","0.0.0.0")
live = input.harbor("live",port=9000,password="111")
live = crossfade(start_next=1.,fade_out=7.,fade_in=5., live)
radio = fallback(track_sensitive=false,[live,music])

Но вот основные косяки которые есть при такой схеме:
1) когда подключается диджей то играющая песня не затухает кросфейдом, а просто обрывается и диджей кросфейдом входит в эфир
2) когда он отключается, то выходит он кросфейдом, но вот играющая песня резко так же без кросфейда врывается в эфир и + еще она играет не сначала, а с середины или как попадет
Как сделать кросфейд нормальный? и как сделать чтобы песня проигрывалась сначало после выхода диджея?

Отредактировано aPhone (05-04-2011 12:15:04)

BelRadio - радио Белгорода online

Меняюсь ссылками, баннерами на главной и внутренних, пишите в ЛС

156

Re: liquidsoap

не туда наложил кросфейд, fallback получаеться весь кроссфейд "ламает", вообще сделать в данном случае "двухсторонний" кроссфейд сложно

чтоб сначала играл трек можно сделать track_sensitive=true но тогда и диджей включиться после того как трек доиграет

157

Re: liquidsoap

т.е. он вообще подключиться не сможет? или будет подключен но его не будет в эфире?
хм... а как же сделать то двухсторонний кросфейд, а то сейчас можно сказать как то не очень sad
crossfade (live,music) - может есть что-то типа такой схемы? smile

и еще.. а как тогда сделать чтобы когда диджей подключался, нонстоп который играет останавливался.. Т.е. потом когда диджей отключится, там уже не будет с середины играть, а будет сначало smile

Отредактировано aPhone (05-04-2011 12:29:53)

BelRadio - радио Белгорода online

Меняюсь ссылками, баннерами на главной и внутренних, пишите в ЛС

158

Re: liquidsoap

будет подключен но его не будет в эфире пока не закончиться трек

мне пока так и не удалось, но сильно не вникал так как оно мне не оч нужно

159

Re: liquidsoap

и еще.. а как тогда сделать чтобы когда диджей подключался, нонстоп который играет останавливался.. Т.е. потом когда диджей отключится, там уже не будет с середины играть, а будет сначало smile

вот еще сообщение smile

BelRadio - радио Белгорода online

Меняюсь ссылками, баннерами на главной и внутренних, пишите в ЛС

160

Re: liquidsoap

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

# Mixes two streams, with faded transitions between the state when only the
# normal stream is available and when the special stream gets added on top of
# it.
# @category Source / Track Processing
# @param ~delay   Delay before starting the special source.
# @param ~p       Portion of amplitude of the normal source in the mix.
# @param ~normal  The normal source, which could be called the carrier too.
# @param ~special The special source.
def smooth_add(~delay=0.5,~p=0.2,~normal,~special)
  d = delay
  fade.final = fade.final(duration=d*2.)
  fade.initial = fade.initial(duration=d*2.)
  q = 1. - p
  c = amplify
  fallback(track_sensitive=false,
           [special,normal],
           transitions=[
             fun(normal,special)->
               add(normalize=false,
                   [c(p,normal),
                    c(q,fade.final(type="sin",normal)),
                    sequence([blank(duration=d),c(q,special)])]),
             fun(special,normal)->
               add(normalize=false,
                   [c(p,normal),
                    c(q,fade.initial(type="sin",normal))])
           ])
end

BelRadio - радио Белгорода online

Меняюсь ссылками, баннерами на главной и внутренних, пишите в ЛС

161

Re: liquidsoap

это наложение одного потока(плейлиста) на другой

162

Re: liquidsoap

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

Отредактировано e-mc2 (06-04-2011 00:07:09)

163

Re: liquidsoap

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

164

Re: liquidsoap

tarasian666, понятно что проще, но скрипт будет выбирать песни из базы данных, и каждые 3-4 минуты делать новый запрос к базе, мне кажется весьма накладным. Проще тянуть сразу по 50-100 треков, собирать их в "плейлист", ждать пока треки кончатся, делать новый запрос и т.д. так просто экономичнее в плане ресурсов

165

Re: liquidsoap

экономичнее не будет !!! потому что список из одного трека будет куда меньше занимать памяти чем список из 100

И если будет плейлист загружать из базы то может занять время, так что такое решение мне кажеться будет хуже. Лучше в базе сделать плейлист на 50 -100 треков и пусть liquidsoap по одному треку тянет скриптом, и скрипт следит кончился ли плейлист или нет

у меня так работает - каждый раз берет один трек из базы, а там уже или рандумный или заказаный трек определяет перл скрипт

166

Re: liquidsoap

tarasian666, хм, так liquidsoap всю музыку на входе хранит в памяти как mpd? тогда дейтвительно лучше брать по одному файлу, конечно. Хотя идеальной была бы золотая середина — брать из базы плейлист но маленькими порциями, по 10 например треков, или по пять.

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

В общем, если скрипт ничего не вернул, все равно через каждую минуту/две он должен запускать скрипт и проверять если там что-то или нет. Возможно?

Отредактировано e-mc2 (06-04-2011 16:08:57)

167

Re: liquidsoap

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

Если не стирать трек из базы то ничего не кончиться )) Или сделайте резервную таблицу с плейлистом. А вот средствами liquidsoap делать будет трудно или через ж...

168

Re: liquidsoap

пишет tarasian666:

Если не стирать трек из базы то ничего не кончиться

В том то и дело что в моей ситуации они как раз ДОЛЖНЫ кончаться. Мне нужно чтобы трек из базы проигрывался только один раз. Поэтому отдавать я буду только "неигранные" треки из базы, и когда-нибудь они могут закончится. Но когда-нибудь они также и появятся, когда кто-нибудь пополнит базу, и вещание должно продолжиться

У меня не обычная радиостанция, специфическая. Проигрывает не песенки а кое-какие "логи". Как только в базе появляется новый такой "лог" он проирывается в эфир группе людей.

Единственное, что мне пока приходит в голову — отдавать путь на "тишину" длиной в минуту, в случае если нет неигранных треков в базе.

пишет tarasian666:

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

Я говорил не о возможностях liquidsoap, а о производительности. Если загрузить все разом, liquidsoap съест память, если отдавать по одному треку — постоянно мучаем базу данных каждые 3 минуты. Лучшее решение в плане производительности — отдавать по 5/10 треков (не сильно грузим память, реже мучаем базу). Вот что я имел ввиду. Жаль что, liquidsoap не настолько гибок

Отредактировано e-mc2 (06-04-2011 17:50:56)

169

Re: liquidsoap

Народ, подскажите как организовать вещание с мплеера(так понял что есть такая возможность)
mplayer = input.mplayer(id="input.mplayer",restart=true,restart_on_error=false,buffer=0.2,max=10.)
эта запись ему вообще  никак sad
вывод:
output.icecast.vorbis(mplayer,mount="mplayer",id="mplayer",name="mplayer",quality=8.,
                    host=Host,port=Port,password=Password,genre=Genre,url=Url,description=Desc,restart=true)
и есть какойто способ вывести device=dev/radio1 driver v4l2 звук идет по писиай шине с тв тюнера с заданием частоты фм
ИХМО dev/dsp не предлагать т.к. федора, тама этого чуда нету

170

Re: liquidsoap

пишет e-mc2:

Я говорил не о возможностях liquidsoap, а о производительности. Если загрузить все разом, liquidsoap съест память, если отдавать по одному треку — постоянно мучаем базу данных каждые 3 минуты. Лучшее решение в плане производительности — отдавать по 5/10 треков (не сильно грузим память, реже мучаем базу). Вот что я имел ввиду. Жаль что, liquidsoap не настолько гибок

это все решаеться внешним скриптом что связываеться с базой.
1 запрос каждых 3 минуты ни как не мучение базы, она легко выдерживает 10 запросов за секунду и даже больше. Может вы еще боитесь двойной клик на мышке делать? big_smile

пишет Dant1k:

Народ, подскажите как организовать вещание с мплеера(так понял что есть такая возможность)
mplayer = input.mplayer(id="input.mplayer",restart=true,restart_on_error=false,buffer=0.2,max=10.)
эта запись ему вообще  никак sad
вывод:
output.icecast.vorbis(mplayer,mount="mplayer",id="mplayer",name="mplayer",quality=8.,
                    host=Host,port=Port,password=Password,genre=Genre,url=Url,description=Desc,restart=true)
и есть какойто способ вывести device=dev/radio1 driver v4l2 звук идет по писиай шине с тв тюнера с заданием частоты фм
ИХМО dev/dsp не предлагать т.к. федора, тама этого чуда нету

зачем городить такой огород если есть графическая оболочка? Используйте jack и idjc

ps dev/dsp нет там где нет oss и федора тут ни при чем, есть еще /dev/adsp и /dev/audio например

171

Re: liquidsoap

пишет tarasian666:

зачем городить такой огород если есть графическая оболочка? Используйте jack и idjc

Ну тут все просто smile
на сервере нет гуишки smile

172

Re: liquidsoap

в таком случае такой замысел вообще может быть неосуществлен

173

Re: liquidsoap

Ни у кого не возникало проблемы с liquidsoap когда, трек повторяется второй раз, или через один?
Как можно с этим бороться?

Отредактировано 4ell (07-05-2011 13:06:50)

174

Re: liquidsoap

пишет 4ell:

Ни у кого не возникало проблемы с liquidsoap когда, трек повторяется второй раз, или через один?
Как можно с этим бороться?

А конфиг не хотите показать ?

175

Re: liquidsoap

Конфиг длинный выложу основное


new  = mksafe(playlist(reload=3600, mode='random', string.concat([mpath ,"new"])))
#другие категории импортируются аналогично
morning    = random(weights = [4, 2, 1],    [hot, cooled, new])
#а также создаются плейлисты на для разного времени суток
myplaylist = switch([({7h-12h}, morning), ({12h-18h}, afternoon), ({18h-24h}, evening), ({0h-7h}, night)])

radio      = rotate(weights = [1, 3], [jingles, myplaylist])
radio      = crossfade(start_next=6.,fade_out=5.,fade_in=3.,radio)
#Добавляются джинглы