48 lines
1.5 KiB
Python
48 lines
1.5 KiB
Python
liquidsoap_config_template = """#!/usr/bin/liquidsoap
|
|
|
|
# Example liquidsoap streaming from op25 to icecast
|
|
# (c) 2019-2021 gnorbury@bondcar.com, wllmbecks@gmail.com
|
|
#
|
|
|
|
set("log.stdout", true)
|
|
set("log.file", false)
|
|
set("log.level", 1)
|
|
|
|
# Make the native sample rate compatible with op25
|
|
set("frame.audio.samplerate", 8000)
|
|
set("init.allow_root", true)
|
|
|
|
# ==========================================================
|
|
ICE_HOST = "${icecast_host}"
|
|
ICE_PORT = ${icecast_port}
|
|
ICE_MOUNT = "${icecast_mountpoint}"
|
|
ICE_PASSWORD = "${icecast_password}"
|
|
ICE_DESCRIPTION = "${icecast_description}"
|
|
ICE_GENRE = "${icecast_genre}"
|
|
# ==========================================================
|
|
|
|
input = mksafe(input.external(buffer=0.25, channels=2, samplerate=8000, restart_on_error=false, "./audio.py -x 2.5 -s"))
|
|
# Consider increasing the buffer value on slow systems such as RPi3. e.g. buffer=0.25
|
|
|
|
# Compression
|
|
input = compress(input, attack = 2.0, gain = 0.0, knee = 13.0, ratio = 2.0, release = 12.3, threshold = -18.0)
|
|
|
|
# Normalization
|
|
input = normalize(input, gain_max = 6.0, gain_min = -6.0, target = -16.0, threshold = -65.0)
|
|
|
|
# ==========================================================
|
|
# OUTPUT: Referencing the new variables
|
|
# ==========================================================
|
|
output.icecast(
|
|
%mp3(bitrate=16, samplerate=22050, stereo=false),
|
|
description=ICE_DESCRIPTION,
|
|
genre=ICE_GENRE,
|
|
url="",
|
|
fallible=false,
|
|
host=ICE_HOST,
|
|
port=ICE_PORT,
|
|
mount=ICE_MOUNT,
|
|
password=ICE_PASSWORD,
|
|
mean(input)
|
|
)
|
|
""" |