PanikDB - gestion radio

Configuration pige d’antenne

L’interface de panikdb permet la récupération par les usagers d’extraits de la pige d’antenne, par exemple pour récupérer leur enregistrement après une émission en direct.

Pour permettre le téléchargement, la configuration de la pige doit être renseignée, par exemple dans /etc/panikdb/settings.d/pige.py, cet extrait définirait trois sources d’enregistrements, une pige d’antenne ainsi que les enregistrements de deux studios :

PIGES = [
{
'slug': 'pige',
'name': 'Pige d’antenne',
'base_dir': '/srv/pige/',
},
{
'slug': 'studio1',
'name': 'Studio 1',
'base_dir': '/mnt/pigedirecte/studio1/',
},
{
'slug': 'studio2',
'name': 'Studio 2',
'base_dir': '/mnt/pigedirecte/studio2/',
},
]

Il est attendu dans les répertoires renseignés une arborescence année/mois/jour/ et des fichiers audio découpés en tranche de 15 minutes, à la /srv/pige/2022/07/07/19h45.ogg.

Ces fichiers peuvent ĂŞtre au format WAV, FLAC ou Ogg Vorbis.

Configuration Liquidsoap

Liquidsoap peut être utilisé pour produire les fichiers adéquats, une configuration minimale serait la suivante :

set("log.file", false)
set("log.stdout", true)
set("frame.audio.samplerate", 48000)

radio = input.jack(clock_safe=true, id="liquidsoap_pige")

output.file(
%wav(stereo=true, samplerate=48000),
"/srv/pige/%Y/%m/%d/%Hh%M.wav",
append=true,
on_close=fun(s)->system("qwavheaderdump -F #{s}"),
reopen_when={ int_of_float(gettimeofday()/60.) mod 15 == 0 },
radio
)

L’outil qwavheaderdump est utilisé pour positionner un entête correct aux fichiers .wav créés (dans Debian cet outil vient dans le paquet quelcom).

Pour accompagner cette configuration, jack-plumbing peut être utilisé pour automatiquement relier le signal audio à liquidsoap,

(connect "system:capture_1" "liquidsoap_pige:in_0")
(connect "system:capture_2" "liquidsoap_pige:in_1")

et un service systemd peut être créé pour le démarrage automatique, /etc/systemd/system/liquidsoap.service,

[Unit]
Description=Liquidsoap
After=network.target syslog.target jackd.service

[Service]
Environment=LANG=C.UTF-8
Environment=JACK_NO_START_SERVER=no-start
User=panikdb
Group=panikdb
ExecStart=/usr/bin/liquidsoap /home/panikdb/pige.liq
KillSignal=SIGQUIT
TimeoutStartSec=0
PrivateTmp=true
Restart=on-failure
Type=exec

[Install]
WantedBy=multi-user.target

cf la page configuration de jack pour des détails à ce sujet.

Durées de conservation

PanikDB peut prendre en charge la compression automatique des fichiers d’enregistrements et leur suppression après un certain temps; cela passe par l’ajout du paramétrage retention_policy dans la configuration. Pour reprendre le début du premier extrait :

PIGES = [
{
'slug': 'pige',
'name': 'Pige d’antenne',
'base_dir': '/srv/pige/',
'retention_policy': {
'flac': 2,
'ogg': 14,
'delete': 180,
}

},
[…]

Dans cette configuration, les fichiers seront compressés en .flac à jour + 2, compressés en .ogg à jour + 14, puis supprimés à jour + 180.

Il est également possible de supprimer totalement les fichiers qui ne contiendraient que du silence, utile pour l’enregistrement continu d’un studio qui n’est pas continuellement utilisé,

   […]
{
'slug': 'studio1',
'name': 'Studio 1',
'base_dir': '/mnt/pigedirecte/studio1/',
'retention_policy': {
'delete': 7,
'remove_silent_files': True,
}
},
[…]
Dernière modification : 15 août 2022, 17:02