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

liquidsoap

 

59
Otani @Otani
у меня не Дебиан, а Убунту сервер

удалил, ибо на удаление с purge, пакета установленного у меня, найти не может

6245
Тарас @tarasian666
Otani пишет:

у меня не Дебиан, а Убунту сервер

пора б уже знать что бубунта сделана на основе дебиан

пробуй формат ogg вместо mp3 чтоб знать наверняка

59
Otani @Otani
и это я знаю, но в Убунту обычно пихают пакеты с кодеками и т.д

смысла нету, скорее всего дело в неправильном конфиге

6245
Тарас @tarasian666
убунту это дебиан который собирают китайцы :P

если не проканает с %vorbis значит liquidsoap старой версии и не читает подобный конфиг, если проканает значит нет поддержки мп3

как вариант еще делать так
output.icecast(%mp3(stereo=true, samplerate=44100, bitrate=128), и тд
у меня так работает, но также работает просто
output.icecast(%mp3 и тд или output.icecast(%vorbis и тд,
версия 1.0.0+scm, ос дебиан, так что конфиг верный (для версии 1) в том месте на который материться лог (line 12 char 15)

проверди поиск на предмет бинарников liquidsoap и удали, тогда заново собери и инсталируй

28
blade-mscl @blade-mscl
подскажите а как просмотреть список всех доступных энкодеров
я хочу отдавать поток в aac+ и пишу %aacplus
но liquidsoap ругается
[mono]Invalid value at line 6, char 16-19: No encoder found for that format.
[/mono]

конфиг
[mono]#!/usr/local/bin/liquidsoap

# где будут логи
set("log.file.path","/home/vsx/liquidsoap.log")

output.icecast(%aacplus,
host = "localhost", port = 8000,
password = "hackme", mount = "stream",
mksafe(single("/home/vsx/mixes/1.mp3")))[/mono]

Отредактировано blade-mscl - 23.10.2011
6245
Тарас @tarasian666
liquidsoap --list-plugins

Добавлено спустя 1 минуту 51 секунду:
aac+ можно пробовать еще по старинке прикрутить как внешний кодер output.icecast(%external("aacplusenc - - 64000 s",restart_on_crash=true, header=true),

но должен присутсвовать кодер aacplusenc

28
blade-mscl @blade-mscl
[mono]#!/usr/local/bin/liquidsoap

# где будут логи
set("log.file.path","/home/vsx/liquidsoap.log")

output.icecast(%external("aacplusenc - - 64000 s", restart_on_crash=true, header=true),
host = "localhost", port = 8000,
password = "hackme", mount = "stream",
mksafe(single("/home/vsx/mixes/1.mp3")))[/mono]

ругается:
[mono]vsx-virtualpc vsx # ./liquid.liq
Invalid value at line 6, char 16-86:
No format (mime) found, please specify one..[/mono]

aacplusenc установлен

может нужно подключить какой-нибудь плагин?

Отредактировано blade-mscl - 23.10.2011
28
blade-mscl @blade-mscl
Попробовал с ocaml-aacplus
вещает нормально
но 64 кбит битрэйт никак не устраивает

28
blade-mscl @blade-mscl
В принципе можно задать себе вопрос: а почему AAC а не MP3
или почему AAC а не OGG?

На этот вопрос ответ один: тесты расставят всё на свои места
Погуглив нашел пару неплохих исследований,
и хочу признать что был в неведении
********** человек сравнивает и описывает что да как с MP3 / OGG / WMA / M4A (читай AAC)
и судя по этому исследованию я пришел к выводу что самым оптимальным в битрейт/качество является OGG
если у кого нибудь есть другие сведения - поделитесь пожалуйста.

Цель - максимальное качество вещаемой музыки, при достижимом битрейте (например OGG 192)

223
Игорь @devilben
blade-mscl пишет:

вещает нормально но 64 кбит битрэйт никак не устраивает

а чем не утраивает? верхние частоты конечно срезаны немного, но качество приемлемо вполне, mp3 при таком битрейте вообще слушать невозможно

28
blade-mscl @blade-mscl
devilben пишет:

blade-mscl пишет:

вещает нормально но 64 кбит битрэйт никак не устраивает

а чем не утраивает? верхние частоты конечно срезаны немного, но качество приемлемо вполне, mp3 при таком битрейте вообще слушать невозможно

ну я не соревнуюсь с mp3 у кого лучше качество, aac+ 64 не самое лучшее качество, но приемлемое
просто есть задача: максимальное качество, в принципе ширины потока не жалко (до обозримых величин)

я тут почитал, в общем OGG 128 очень даже ничего

Отредактировано blade-mscl - 23.10.2011
6245
Тарас @tarasian666
ogg чуть хуже чем aac+

blade-mscl пишет:

vsx-virtualpc vsx # ./liquid.liq
Invalid value at line 6, char 16-86:
No format (mime) found, please specify one..

надо указать какой формат вещания format="audio/aacp", он ведь не вкурсе, но там тоже максимум 64кбит

223
Игорь @devilben
blade-mscl пишет:

просто есть задача: максимальное качество, в принципе ширины потока не жалко

Максимальное качество от чего ? От исходного файла ? Ну так Liqudsoap для этого не нужен, вещай без кодирования во что либо отличимое от проигрываемого файла на диске и будет малая потеря в качестве и менее съеден CPU.
AAC+ придумали для того что бы клиент получал относительно высокое качество при более низком битрейте

28
blade-mscl @blade-mscl
devilben пишет:

blade-mscl пишет:

просто есть задача: максимальное качество, в принципе ширины потока не жалко

Максимальное качество от чего ? От исходного файла ? Ну так Liqudsoap для этого не нужен, вещай без кодирования во что либо отличимое от проигрываемого файла на диске и будет малая потеря в качестве и менее съеден CPU.
AAC+ придумали для того что бы клиент получал относительно высокое качество при более низком битрейте

У меня весь проигрываемый материал в mp3 320, но дело в том, что далеко не каждый клиент может слушать в 320.
Да и не оптимально это, я видел выход в перекодировании mp3 320 в aac+ 160,
но тут выяснилось интересное обстоятельство, что у linux (или unix в целом) нет лицензии на вещание в aac+ выше 64 к/бит

выхода из ситуации я вижу 2:
1. вещать из под windows что автоматически нереально
2. вещать в другом формате

вот этот второй вариант я и ищу, пока остановился на ogg. Может более опытные пользователи подскажут иной путь решения проблемы.

Суть в том, что радио будет вещать deep\tech house, и слушатели очень ревностно относятся к качеству звука.

97
aPhone @aPhone
У меня идея, давайте писать сюда команды для управления ликвасупом через телнет
Хотя бы основные, чтобы база кое какая была
команда - назначение

6245
Тарас @tarasian666
команды телнета зависят от того какие параметры есть в конфиге, так что это дело индивидуально

а основные там и так понятны, чтоб вывести все возможные команды пишем help

6
Анатолий @ashum
Подскажите, пожалуйста, как сделать так, чтобы метаданные брались из внешнего текстового файла? Звук идет с линейного входа.

6245
Тарас @tarasian666
ищем на оф сайте про смену метаданных, или сдесь, помоему было
чтоб достать из файла метаданные то наверно как-то так
meta = request.dynamic({request.create("bar:foo", indicators=get_process_lines("путь к скрипту что выводит мету теги"))})

6
Анатолий @ashum
Вот такой фрагмент кода получился:
new = request.dynamic({request.create(get_process_output("1.pl"))})
log("#{new}")
def append_title(s) =
[("title","#{new}")]
end

Скрипт 1.pl выводит содержимое файла 1.txt, в котором текст в формате "Исполнитель - Песня".
Получившийся код выводит <source> вместо содержимого файла 1.txt.

Где ошибка?

6245
Тарас @tarasian666
я понял, надо просто обращение к скрипту сделать каждые пару секунд или тп