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. Записываем эфир с созданием нового файла каждый час
#! /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")