38 lines
1 KiB
Text
38 lines
1 KiB
Text
#!/usr/bin/env liquidsoap
|
|
# A simple script that will both record to file and expose an http server.
|
|
# The http server uses (aggressive) silence detection
|
|
|
|
set('log.file', false)
|
|
set('log.stdout', true)
|
|
|
|
rec_up = interactive.bool("rec_up", false)
|
|
icecast_up = interactive.bool("icecast_up", false)
|
|
def var_ok(varname) =
|
|
fun () -> ignore(server.execute("var.set #{varname} = true"))
|
|
end
|
|
def var_ko(varname) =
|
|
fun () -> ignore(server.execute("var.set #{varname} = false"))
|
|
end
|
|
|
|
|
|
audioin = in()
|
|
audioin = rewrite_metadata([("artist", "Direttoforo")], audioin)
|
|
audioin = server.rms(id="rms", audioin)
|
|
|
|
f = output.file(
|
|
id="rec",
|
|
%vorbis(quality=0.2, samplerate=44100, channels=2),
|
|
on_start=var_ok("rec_up"),
|
|
on_stop=var_ko("rec_up"),
|
|
"rec/%Y/%m/rec-%Y-%m-%d_%H-%M-%S.ogg",
|
|
audioin
|
|
)
|
|
|
|
http = output.harbor(
|
|
id="http",
|
|
mount="/stream.ogg",
|
|
password="",
|
|
fallible=true,
|
|
%vorbis(quality=0.1, samplerate=44100, channels=2),
|
|
strip_blank(id="strip", max_blank=3., min_noise=0.2, track_sensitive=false, audioin)
|
|
)
|