1,101

Re: liquidsoap

пишет EnigmA_MaN_1:

Уважаемые, кто подскажет как запустить 1 рубрику скажем в 9 утра - с повтором через час - но при том чтобы она включилась в 9 - отключилась по окончанию (1 запись mp3) и дальше играла музыка до повтора. потом повтор рубрики - далее опять музыка - у меня же получается включить рубрику и она постоянна "трындит" - не отключаясь!!!

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

http://radioheart.ru/banners/radioheart_400x40_banner.jpg
RadioHeart.ru: Функциональный радио хостинг с автодиджеем и нонстопом, а так же быстрый виртуальный хостинг. Возможность создать радио за 5 минут, подключить автодиджей и нонстоп.
Отзывы о хостинге

1,102

Re: liquidsoap

пишет Falcon:

пишет EnigmA_MaN_1:

Уважаемые, кто подскажет как запустить 1 рубрику скажем в 9 утра - с повтором через час - но при том чтобы она включилась в 9 - отключилась по окончанию (1 запись mp3) и дальше играла музыка до повтора. потом повтор рубрики - далее опять музыка - у меня же получается включить рубрику и она постоянна "трындит" - не отключаясь!!!

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

а есть с чего пример взять - в написании скриптов я не силен а вот переделать чей нибудь, это запросто.

1,103

Re: liquidsoap

а все же, как заставить воспроизвестись разово один файл рубрики в swich. чтобы потом дальше шла музыка до следующего файла рубрики именно в liquidsoap

Отредактировано EnigmA_MaN_1 (22-09-2014 14:14:28)

1,104

Re: liquidsoap

Вот так например:

example = "/mp3/some_file.mp3"
source = once(single(example))

Подробности:

liquidsoap -h once

1,105

Re: liquidsoap

Как этому засранцу подпихнуть целый плейлист, а не по одной песне? (как в request.dynamic)
В идеале хотелось бы, чтобы по окончании плейлиста он запускал внешний скрипт (который генерит pls) и начинал играть свежесозданный пелейлист.

И что есть playlist.reloadable?

Интересно, а можно как-то синхронизировать окончание трека в liquidsoap и началом трека в harbor из внешнего вещателя?

Отредактировано Ok_go_love (07-10-2014 16:01:37)

1,106

Re: liquidsoap

Как этому засранцу подпихнуть целый плейлист, а не по одной песне? (как в request.dynamic)

Выше описано и не раз

В идеале хотелось бы, чтобы по окончании плейлиста он запускал внешний скрипт (который генерит pls) и начинал играть свежесозданный пелейлист.

Вот как раз то что нужно

И что есть playlist.reloadable?

Доигрывает плейлист до конца и может остановить приложение, перезагрузить, выполнить команду, которую Вы заранее опишете, можно даже новый путь к плейлисту (например c учетом даты и времени)

Я может не совсем понимаю задачу ну подробнее пожалуйста.

Отредактировано gyurgin_1 (08-10-2014 21:04:30)

1,107

Re: liquidsoap

Вот на что наткнулся https://java.net/projects/shampoo/pages
Правда я свой проект тоже назвал Shampoo (админка для liquidsoap), печаль-печальная.

1,108

Re: liquidsoap

Вот как раз то что нужно

Дак это по одной песне (get_process_lines), а как ему скормить целый массив с URI на файлы? Там нет циклов, я не очень понимаю, как ему поочередно элементы массива отдавать.

Доигрывает плейлист до конца и может остановить приложение, перезагрузить, выполнить команду, которую Вы заранее опишете, можно даже новый путь к плейлисту (например c учетом даты и времени)

Я указывал ему в качестве функции (system("/path/to/super/script.py")), который в свою очередь генерит pls-файл, но liquidsoap не подхватывает его - пишет, что неверный URI файла.

Отредактировано Ok_go_love (09-10-2014 10:59:56)

1,109

Re: liquidsoap

пишет Ok_go_love:

Вот как раз то что нужно

Дак это по одной песне (get_process_lines), а как ему скормить целый массив с URI на файлы? Там нет циклов, я не очень понимаю, как ему поочередно элементы массива отдавать.

Доигрывает плейлист до конца и может остановить приложение, перезагрузить, выполнить команду, которую Вы заранее опишете, можно даже новый путь к плейлисту (например c учетом даты и времени)

Я указывал ему в качестве функции (system("/path/to/super/script.py")), который в свою очередь генерит pls-файл, но liquidsoap не подхватывает его - пишет, что неверный URI файла.

Я треки подсовываю так:
request = request.dynamic({ request.create(get_process_output("perl /path/to/my/script/for/get_next_track.pl"))})

Ссылки не пробовал ему подсовывать, если получится расскажи, тоже интересно. Ну и как быстро он эти ссылки воспроизводит, нет ли между ними задержки, во время которой мыло начнёт думать что всё пропало и пора дефолтный плейлист играть.

1,110

Re: liquidsoap

С метаданными в harbor печаль печальная - все сует внутрь title.
Что с этим сделать можно?

upd. Вопрос решен изменением метаданных.

Отредактировано Ok_go_love (15-10-2014 13:55:57)

1,111

Re: liquidsoap

Ну ок, коли тишина, задам еще вопрос - можно как-то заставить не срать в лог информацией о telnet-подключении и отключении?

И есть в скриптовом языке какая-то работа с регулярными выражениями или может быть как-то иначе можно обрабатывать текст?
Мне например метаданные надо расцепить. Ибо harbor кладет в title или song всю информацию целиком "artist - title". Метадату конечно изменить можно, но как бы расцепить ее, чтобы можно было распихать по правильным полям?

upd. По второму вопросу - переписал немного py-scrobbler, все теперь скробблится вне зависимости от источника. Там надо поменять буквально несколько строк и добавить одну функцию в конфиг мыла. Кому интересно - пишите.

upd.2 Так я и не врубился, можно ли как-то изменить метаданные на строку из аргумента к функции.
upd.2.1 Собственно, то, для чего это нужно было, сделано иначе (хоть и через задницу) - rewrite_metadata дает возможность поменять что угодно в метаданных.

Отредактировано Ok_go_love (15-10-2014 18:34:53)

1,112

Re: liquidsoap

Меня постигла участь сего

 Buffer overrun: Dropping 0.03s.

Увеличением буффера это не лечится.

upd. Это говно происходит только если track_sensitive= true, при false все ок.

Отредактировано Ok_go_love (16-10-2014 12:07:47)

1,113

Re: liquidsoap

Добрый день.  Сделал вот такой конфиг. Что-то я не могу сообразить как сделать плавный переход межу собственно радио и потоком от диджея. Тему я просматривал и такой вопрос встречался. А ответ на него был такой: "также как и плавный переход между треками". 

Заранее спасибо.

#!/usr/bin/liquidsoap
set("log.stdout", true)
set("log.file.path","/tmp/radio.log")
set("server.telnet",true)
set("server.telnet.bind_addr","172.16.116.20")


myplaylist = playlist("/home/kirill/radio/music.m3u")
jingles = playlist("/home/kirill/radio/jingles.m3u")
security = single("/media/mp3/jingles/rock.mp3")

radio = myplaylist
radio = rotate(weights = [2, 1],[jingles, radio])
radio = fallback(track_sensitive = false, [radio, security])

set("harbor.bind_addr","172.16.116.20")
djlive = input.harbor("test", port=8080, password="hackme")
radio = fallback(track_sensitive=false,  [djlive, radio])

output.icecast(%mp3, host = "172.16.116.29", port = 8000, password = "hackme", mount = "live",  radio)

1,114

Re: liquidsoap

Думаю, это поможет.
http://savonet.sourceforge.net/doc-svn/ … sfade.html

Вот бы кто подсказал, как это реализовать - есть следующее

playlist = mksafe(fallback(track_sensitive=true,[queue, playlist]))
playlist = mksafe(fallback(track_sensitive=false,([fallback.skip(input=live,playlist)])))

playlist = on_metadata(info2db, playlist)
playlist = on_metadata(lastfm, playlist)

При получении данных информация о треке отдается в python-скрипт, который пишет информацию в БД и отправляет на ласт.
Все чудесно работает, но проблема в следующем - при отключении лайва, не смотря на fallback.skip, песня, игравшая до подключения лайва, все же отрабатывает скрипт и получается так, что БД и на ласт отправляется ложная информация. Не могу понять, как сделать так, чтобы этого не происходило. Может быть как-то скипать старый трек в источнике playlist при отключении лайва или что-нибудь еще.
Пока в голову пришел только костыль со скриптом, но это не дело.

upd. replay_metadata = false в функции fallback Ваш друг в этом вопросе. И так всеми расхваленная mksafe() должна быть убрана, иначе описанное выше нереализуемо.

Отредактировано Ok_go_love (16-10-2014 18:10:14)

1,115

Re: liquidsoap

Да я понимаю что надо crossfade, но как конкретно применительно к моему конфигу?  Что-то я два дня бьюсь и ничего не выходит...

1,116

Re: liquidsoap

Подскажите какие пакеты нужно на сервер ставить для Debian 7, у меня стоит Icecast2, lame, libaacplus-ocaml-dynlink, libaacplus2 и сам liquidsoap

Какой еще конфиг подойдет чтобы с папки а не с плейлиста все это читалось?
Я не могу настроить ни как

1,117

Re: liquidsoap

Не обязательно собирать из исходников, хотя, учитывая стабильность Debian, в репозиториях версия наверняка доисторическая.
Вообще почитайте ./configure --help, там описано что и для чего нужно, собирать с поддержкой всех функций смысла, скорее всего, нет.
По поводу папки это выглядит так (насколько я помню). По дефолту он рандомно проигрывает файлы из папки.

playlist  = playlist ("/path/to/my/cool/music/")

1,118

Re: liquidsoap

пишет Ok_go_love:

Не обязательно собирать из исходников, хотя, учитывая стабильность Debian, в репозиториях версия наверняка доисторическая.
Вообще почитайте ./configure --help, там описано что и для чего нужно, собирать с поддержкой всех функций смысла, скорее всего, нет.
По поводу папки это выглядит так (насколько я помню). По дефолту он рандомно проигрывает файлы из папки.

#!/etc/liquidsoap -d
set("init.daemon",true)
set("init.daemon.pidfile",false)
set("log.file.path","/var/log/liquidsoap/basic.log")
set("log.stdout",true)
set("log.level",3)
set("server.telnet.bind_addr","127.0.0.1")
set("server.telnet",true)
myplaylist = mksafe(playlist(reload=360, '/home/radio/nonstop/'))
radio = myplaylist
radio = mksafe(radio)
radio = crossfade(start_next=6.0, fade_out=3.0, fade_in=3.0, radio)

output.icecast(%mp3(bitrate=256, samplerate = 44100, stereo = true),
 host = "localhost",
 port = 8000,
 name="EDM Radio 256 Kbit/s",
 genre="Elecrtonic",
 url="http://edmradio.ru/",
 description="Electronic Dance Music Radio",
 password = "Пароль",
 mount = "/autodj",
 radio)
 
# другие потоки:
url = "http://localhost:8000/live"
input = mksafe(input.http(url))

 output.icecast(
  %mp3(bitrate=192),
  mount="/192",
  host="localhost",
  name="EDM Radio 192 Kbit/s",
  genre="Elecrtonic",
  url="http://edmradio.ru/",
  description="Electronic Dance Music Radio",
  port=8000,
  password="Пароль",
  input)
  
 output.icecast(
  %mp3(bitrate=128),
  mount="/128",
  host="localhost",
  name="EDM Radio 128 Kbit/s",
  genre="Elecrtonic",
  url="http://edmradio.ru/",
  description="Electronic Dance Music Radio",
  port=8000,
  password="Пароль",
  input)

 output.icecast(
  %aacplus(channels=2, samplerate=44100, bitrate=32),
  mount="/32aac",
  host="localhost",
  port=8000,
  name="EDM Radio 32 AAC Kbit/s",
  genre="Elecrtonic",
  url="http://edmradio.ru/",
  description="Electronic Dance Music Radio",
  password="Пароль",
  input)

Разобрался немного уже, осталось сетку для резидентов сделать не могу ни как запустить, часто ругается на "radio = myplaylist" помогите

1,119

Re: liquidsoap

Да Вы в своем уме?

myplaylist = mksafe(playlist(reload=360, '/home/radio/nonstop/'))

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

1,120

Re: liquidsoap

пишет gyurgin_1:

Да Вы в своем уме?

myplaylist = mksafe(playlist(reload=360, '/home/radio/nonstop/'))

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

Если вы понимаете в этом и готовы мне помочь, буду очень признателен!
Со мной можно связаться через контакт: http://vk.com/djgelius или предложите свой вариант связи!

1,121

Re: liquidsoap

Доброе...

Сал получать ошибку при запуске liquidsoap

# /usr/bin/liquidsoap /etc/liquidsoap/liq.cfg
At line 7, char 20: the variable mksafe used here has not been previously  defined.

А раньше не ругался, что отвалилось?)

1,122

Re: liquidsoap

Конфиг меняли? Может быть обновили liquidsoap? Можно пример конфига в студию? Прокапитаню, но где-то mksafe использован не как функция, но как переменная.

1,123

Re: liquidsoap

Давайте конфиг там мелочь какая то.

1,124

Re: liquidsoap

пишет gyurgin_1:

Давайте конфиг там мелочь какая то.

#!/usr/bin/liquidsoap
#...
set("log.file.path","/home/netmaster/liq.log")

#..
myplaylist = mksafe(playlist("/home/user/music.m3u"))

#.
output.icecast(%aacplus(bitrate=16, samplerate=44100, channels=2),
  host = "192.168.1.16", port = 8888,
  password = "pass", mount = "music", myplaylist)

И так пробовал, то же самое

#!/usr/bin/liquidsoap
#...
set("log.file.path","/home/netmaster/liq.log")

#..
#myplaylist = mksafe(playlist("/home/netmaster/music.m3u"))

#.
output.icecast(%aacplus(bitrate=16, samplerate=44100, channels=2),
  host = "192.168.1.16", port = 8888,
  password = "pass", mount = "music", mksafe(playlist("/home/user/music.m3u")))

Отредактировано firefedot (12-01-2015 01:44:56)

1,125

Re: liquidsoap

Вы там в своем уме? втрой конфиг изначально не рабочий. Liquidsoap выдает ошибку - смотрите и если совсем тупняк пишите.