ОсновноеRadiotalkПользовательское
Технологии вещания, софт, скрипты
6   •   Посмотреть все темы

liquidsoap

 

419
gyurgin_ @gyurgin_
Сто раз говорим что switch это для тестов, а все мимо.

2
Raschen @Raschen
я как бы за помощью пришел на форуме инфы много только не понятно в каком направлении искать решение моей проблемы

35
pixel @pixel
Решил вернуться в тему. Не могу сообразить, например, где то читал, что при работе с радиобосс нужно плейлисты каждый раз подгонять по кросфейдам как между треками, так и между треком и джинглом, т.е. постоянно чего то подкручивать. На мыле вроде как можно с этим разобраться раз и навсегда, но на винде можно заюзать стерео тулз для улучшения и нормализации потока. В итоге что получается, на лине крутить мыло, передавать поток на винду с радиобоссом и стерео тулзом и уже после этого гнать в инет? Ну это ж гиммор сплошной. Может есть вариант улучшения звука именно на стороне все того же линя, что бы не плодить кучу звеньев?

419
gyurgin_ @gyurgin_
Что значит каждый раз подгонять? Есть понятие разметка трека, исполняете один раз и всё. Да, в liquidsoap можно реализовать интелектуальные методы кроссфейда, но ручную разметку они все равно не заменят. Впрочем, никто не мешает скормить liquidsoap треки размеченные вручную... Что касается улучшения звука - **********, пробуйте. Добиться хорошего результата можно, особенно если ресурсов сервера не жалко, а если еще и денег не жалко то уж точно все получится, хотя сомневаюсь что это Ваш случай.

35
pixel @pixel
Не могу найти, буквально вчера читал, какой то парень писал как настраивал. Говорит что выставил переходы в радиобоссе, сохранил и после, метки сместились и переход проходил коряво. Т.е. чуть ли не налету надо формировать плейлист и подгонять. Естественно, что перед тем как кормить мыло треками, их нужно разметить и данные все в БД залить. Просто транслировать треки с разными громкостями и т.п. без их компрессии - дело не благодарное. А городить огород из кучи компов, то же не вариант.

419
gyurgin_ @gyurgin_
Не надо заливать, Все там размечается и сохраняется и играет потом, надо просто понимать что делаешь. Я взял потестить, тому кто в тебе разобраться ну от силы час, ну два времени даю. С liquidsoap, ну все верно - надо вместе с файлом давать ему все данные. На выходе ladspa и огород тут никакой городить не надо из компов...

4
smooki @smooki
Прочитал всю тему и не нашел варианта. Ребят подскажите конфиг чтобы днем играла одна папка, а ночью другая. Именно папка, а не плейлист.

419
gyurgin_ @gyurgin_
Играть папку playlist = mksafe(playlist("/<path to music folder>")). С остальным сами разберетесь.

4
smooki @smooki
gyurgin_ пишет:

Играть папку playlist = mksafe(playlist("/<path to music folder>")). С остальным сами разберетесь.

Папку играть умею. Пытаюсь сделать так но не получается.
day = mksafe(playlist(reload = 3600, mode="random", "/home/***/music/deep"))
night = mksafe(playlist(reload = 3600, mode="random", "/home/***/music/chill"))
jingles = mksafe(playlist(reload = 3600, "/home/***/music/jingles"))

playlist = switch([({9h-24h}, day), ({0h-9h}, night)])
music = playlist

radio = crossfade(fade_out = 6.0, fade_in = 6.0, start_next = 8.0, music)
radio = smooth_add(normal=radio, special=switch([({ 00m0s or 30m0s }, jingles)]))

4
smooki @smooki
С плейлистами разобрался. Еще вопрос по скроблингу на ластфм. Подскажите рабочий вариант кто пользуется.

4
smooki @smooki
Кто выходил из ситуации когда при проигрывании джингла поверх музыки в лог айскаста записывается другая песня, после опять возвращается? liquidsoap 1.3.3

17
Zevs @Zevs
Спасибо разобрался

Отредактировано Zevs - 07.08.2018
17
Zevs @Zevs
Добр день .
После недели мучений, не осталось больше сил . Прошу о платной помощи.

Стоит и нормально работает Icecast 2.4.0-kh10

Стоит
* liquidsoap.service - LSB: Starts the liquidsoap daemon
Loaded: loaded (/etc/init.d/liquidsoap; bad; vendor preset: enabled)
Active: active (exited) since Thu 2018-08-16 13:01:36 MSK; 2h 29min ago
Docs: man:systemd-sysv-generator(8)
Process: 798 ExecStart=/etc/init.d/liquidsoap start (code=exited, status=0/SUCCESS)
Aug 16 13:01:36 frenchtouchfm1 systemd[1]: Starting LSB: Starts the liquidsoap daemon...
Aug 16 13:01:36 frenchtouchfm1 liquidsoap[798]: Starting liquidsoap channels: radio.liq OK
Aug 16 13:01:36 frenchtouchfm1 systemd[1]: Started LSB: Starts the liquidsoap daemon.
Aug 16 14:04:48 frenchtouchfm1 systemd[1]: Started LSB: Starts the liquidsoap daemon.

Проблемы
1) Немогу никак маунт прикрутить к icecast

output.icecast (%vorbis,
host = "localhost", port = 8000,
password = "hackme", mount = "radio.ogg",radio )

<mount>
<mount-name>/radio.ogg</mount-name>
<password>hackme</password>
<max-listeners>300</max-listeners>
</mount>

2) Немогу найти логи liquid

Пути прописаны set("log.file.path","/home/radio/liquidsoap/log/radio.log")
set("log.level",3)
set("log.stdout", true)

3) metadata не летит на плеер ********** РЕШЕНО СПС




Прошу помочь, потому-что уже 10 переустановка и каша полная в голове, сижу уже 5 дней .

Заранее благодарен.

Отредактировано Zevs - 16.08.2018
1
Павел @Sibirskiy_Volshebnik
подскажите что в моём конфиги не так? не могу добавить вторую ротацию: текст конфига #!/usr/bin/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.file",true)
set("log.level",4)
#set("server.telnet.bind_addr","127.0.0.1")
#set("server.telnet",true)
set("decoder.file_decoders",["META","MAD"])
#set("decoder.file_extensions.mad",["mp3","mp2","mp1"])
#set("decoder.mime_types.mp3",["audio/mpeg","audio/MPA"])
#set("decoder.mime_types.mp4",["audio/mp4","application/mp4"])
set("decoder.taglib.force_mpeg",false)
set("tag.encodings",["UTF-8"])
russ = mksafe(playlist(reload=1, reload_mode="rounds", mode="randomize","/home/radio/russ"))
mus = mksafe(playlist(reload=1, reload_mode="rounds", mode="randomize","/home/radio/test"))
jingle = mksafe(playlist(reload=1, reload_mode="rounds", mode="randomize","/home/radio/jingle"))
chas1 = single( "/home/radio/clock/1.mp3")
chas2 = single( "/home/radio/clock/2.mp3")
chas3 = single( "/home/radio/clock/3.mp3")
chas4 = single( "/home/radio/clock/4.mp3")
chas5 = single( "/home/radio/clock/5.mp3")
chas6 = single( "/home/radio/clock/6.mp3")
chas7 = single( "/home/radio/clock/7.mp3")
chas8 = single( "/home/radio/clock/8.mp3")
chas9 = single( "/home/radio/clock/9.mp3")
chas10 = single( "/home/radio/clock/10.mp3")
chas11 = single( "/home/radio/clock/11.mp3")
chas12 = single( "/home/radio/clock/12.mp3")
chas13 = single( "/home/radio/clock/13.mp3")
chas14 = single( "/home/radio/clock/14.mp3")
chas15 = single( "/home/radio/clock/15.mp3")
chas16 = single( "/home/radio/clock/16.mp3")
chas17 = single( "/home/radio/clock/17.mp3")
chas18 = single( "/home/radio/clock/18.mp3")
chas19 = single( "/home/radio/clock/19.mp3")
chas20 = single( "/home/radio/clock/20.mp3")
chas21 = single( "/home/radio/clock/21.mp3")
chas22 = single( "/home/radio/clock/22.mp3")
chas23 = single( "/home/radio/clock/23.mp3")
chas24 = single( "/home/radio/clock/24.mp3")
radio = rotate(weights = [2, 3],[jingle, russ])
radio2 = rotate(weights = [1, 3, 5],[jingle, russ, mus])
radio = crossfade( fade_out = 1.0, fade_in = 1.0, start_next = 1.0, radio)
radio = mksafe(radio)
default = fallback(track_sensitive=false,[switch([
({01h00m00s}, chas1),
({02h00m00s}, chas2),
({03h00m00s}, chas3),
({04h00m00s}, chas4),
({05h00m00s}, chas5),
({06h00m00s}, chas6),
({07h00m00s}, chas7),
({08h00m00s}, chas8),
({09h00m00s}, chas9),
({10h00m00s}, chas10),
({11h00m00s}, chas11),
({12h00m00s}, chas12),
({13h00m00s}, chas13),
({14h00m00s}, chas14),
({15h00m00s}, chas15),
({16h00m00s}, chas16),
({17h00m00s}, chas17),
({18h00m00s}, chas18),
({08h10m00s - 08h30m00s}, radio2),
({19h00m00s}, chas19),
({20h00m00s}, chas20),
({21h00m00s}, chas21),
({22h00m00s}, chas22),
({23h00m00s}, chas23),
({24h00m00s}, chas24)
]),
radio
])

output.icecast(%mp3(bitrate=256, samplerate=44100, stereo=true),
mount = "stream",
encoding = "UTF-8",
default,
host = "78.24.218.225", port = 8000, password = "MyPass",
genre="Various",
name="Radio_prostory_sibiri",
fallible = true,
icy_metadata="true",
public=false,
url="http://sbsmx.ru",
description="Radio_prostory_sibiri")

Отредактировано Sibirskiy_Volshebnik - 21.12.2018
1
stifutkin @stifutkin
Всем привет! Подскажите, как проигрывать файл beep.mp3 после или перед каждой позиции в плейлисте?

48
Amelion @Amelion
Amelion пишет:

Amelion пишет:

ОТБИВКИ через пару дней съезжают по времени самого трека отбивки
такая фишка выяснилась после перезагрузки соапа, отбивка срабатывает в нужно время и начинается с самого начала, проходит пару дней отбивка начинается с конца файла отбивки и заканчивается на том моменте где должен начаться конец - который проиграл уже вначале, кто нибудь сталкивался с такой проблемой?

....


Всё банально оказалось:
The first reason is external to liquidsoap: there is simply not a unique notion of time in the real world. Your computer
has an internal clock which indicates a slightly different time than your watch or another computer’s clock. Moreover,
when communicating with a remote computer, network latency causes extra time distortions. Even within a single
computer there are several clocks: notably, each soundcard has its own clock, which will tick at a slightly different
rate than the main clock of the computer. Since liquidsoap communicates with soundcards and remote computers, it
has to take those mismatches into account.
There are also some reasons that are purely internal to liquidsoap: in order to produce a stream at a given speed, a
source might need to obtain data from another source at a different rate. This is obvious for an operator that speeds up
or slows down audio (stretch). But it also holds more subtly for cross, cross as well as the derived operators:
during the lapse of time where the operator combines data from an end of track with the beginning of the other othe.
---------------------
Первая причина является внешней по отношению к Liquidsoap: в реальном мире просто нет уникального понятия времени. Твой компьютер
имеет внутренние часы, которые показывают немного другое время, чем ваши часы или часы другого компьютера. Более того,
при общении с удаленным компьютером задержка в сети вызывает дополнительные искажения времени. Даже в пределах одного
компьютера есть несколько часов: примечательно, что каждая звуковая карта имеет свои собственные часы, которые будут тикать немного по-разному.
скорость, чем основные часы компьютера. Поскольку LiquidSoap взаимодействует со звуковыми картами и удаленными компьютерами,
необходимо учитывать эти несоответствия.
Есть также несколько причин, которые являются чисто внутренними для LiquidSoap: чтобы создать поток с заданной скоростью,
источнику может потребоваться получить данные из другого источника с другой скоростью. Это очевидно для оператора, который ускоряет
или замедляет звук (растягивает). Но это также более тонко справедливо для пересечения, пересечения, а также производных операторов:
по прошествии времени, когда оператор объединяет данные с конца дорожки с началом другой дорожки