среда, 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")

понедельник, 16 октября 2017 г.

Debian 9 - возвращаем нормальные имена интерфейсам

В Debian 9 много изменений относительно Jessie, и не все лично меня устраивают. К примеру. идиотские имена интерфейсов. И потому я возвращаю прежние человеческие ethX.
 Все просто -
 открываем  /etc/default/grub, ищем строку

GRUB_CMDLINE_LINUX=""
 
и меняем ее на 
 
GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"
 
После этого применяем изменения -
 
grub-mkconfig -o /boot/grub/grub.cfg.

Все это от root, естественно. 
В /etc/network/interfaces не забываем переименовать интерфейсы в 
соответствии с тем,какими они станут после применения изменений.
Ребутаем. Все.