среда, 25 октября 2017 г.

LiquidSoap - швейцарский нож для онлайн-радио

LiquidSoap - это по своей сути не программа, а язык программирования для создания собственных медиапотоков.Умеет все и немножко еще- получать медиа, конвертировать, записывать, проигрывать, отдавать поток и много чего еще. Поскольку использование "Жидкого Мыла"планируется обширное- буду копипастить сюда полезные рецепты.Если кто-то обидится на такую фривольность- не вопрос, пишите в комментах- ссылку обязательно оставлю.

Итак.
1. Записываем эфир с созданием нового файла каждый час

#! /usr/bin/liquidsoap
#строка выше - ша-бэнг. думаю. понятно зачем.если хотите запускать 
#  в фоне- добавьте ключик -d
set("log.file",true)
 #узнаем pid чтобы мониторить пациента
set("init.daemon.pidfile.path","./record.pid")
#и логгируем его
set("log.file.path","/home/asket/mixer.log")"
#подключаем входящий поток для записи
#не пытайтесь слушать- адрес взят от балды.здесь должен быть ваш источник
instream = input.http("http://stream.dcast.ru:8000/heavy")

#и собственно запись. функция mksafe  делает наш источник #100%надежным посредством добавления тишины если он 
#недоступен, иначе запись упадет
output.file(
    %mp3(stereo=true,bitrate=192,samplerate=44100),
    "%Y-%m-%d-%H_%M_%S.mp3",
    reopen_when={0m0s},
    mksafe(instream)
)

2. Захватываем поток AAC
  Сам Liquid этого не умеет, поэтому воспользуемся помощью зала в виде ffmpeg
badgers = input.external("while true; do ffmpeg -i rtsp://aacstreamingserver.com/stream_aac64 -f s16le -acodec pcm_s16le -af volume=+5 -; done")

1 комментарий: