diff --git a/util/docker/stations/icecast/web/fallback-[128].mp3 b/util/docker/stations/icecast/web/fallback-[128].mp3 new file mode 100644 index 000000000..b56dba968 Binary files /dev/null and b/util/docker/stations/icecast/web/fallback-[128].mp3 differ diff --git a/util/docker/stations/icecast/web/fallback-[128].mp4 b/util/docker/stations/icecast/web/fallback-[128].mp4 new file mode 100644 index 000000000..e366ce9d9 Binary files /dev/null and b/util/docker/stations/icecast/web/fallback-[128].mp4 differ diff --git a/util/docker/stations/icecast/web/fallback-[128].ogg b/util/docker/stations/icecast/web/fallback-[128].ogg new file mode 100644 index 000000000..340ef0ba9 Binary files /dev/null and b/util/docker/stations/icecast/web/fallback-[128].ogg differ diff --git a/util/docker/stations/icecast/web/fallback-[128].opus b/util/docker/stations/icecast/web/fallback-[128].opus new file mode 100644 index 000000000..9be9ad788 Binary files /dev/null and b/util/docker/stations/icecast/web/fallback-[128].opus differ diff --git a/util/docker/stations/icecast/web/fallback-[192].mp3 b/util/docker/stations/icecast/web/fallback-[192].mp3 new file mode 100644 index 000000000..3d6e79097 Binary files /dev/null and b/util/docker/stations/icecast/web/fallback-[192].mp3 differ diff --git a/util/docker/stations/icecast/web/fallback-[192].mp4 b/util/docker/stations/icecast/web/fallback-[192].mp4 new file mode 100644 index 000000000..53baf7b98 Binary files /dev/null and b/util/docker/stations/icecast/web/fallback-[192].mp4 differ diff --git a/util/docker/stations/icecast/web/fallback-[192].ogg b/util/docker/stations/icecast/web/fallback-[192].ogg new file mode 100644 index 000000000..ded0c408d Binary files /dev/null and b/util/docker/stations/icecast/web/fallback-[192].ogg differ diff --git a/util/docker/stations/icecast/web/fallback-[192].opus b/util/docker/stations/icecast/web/fallback-[192].opus new file mode 100644 index 000000000..9b1e8dd1c Binary files /dev/null and b/util/docker/stations/icecast/web/fallback-[192].opus differ diff --git a/util/docker/stations/icecast/web/fallback-[256].mp3 b/util/docker/stations/icecast/web/fallback-[256].mp3 new file mode 100644 index 000000000..102b8b234 Binary files /dev/null and b/util/docker/stations/icecast/web/fallback-[256].mp3 differ diff --git a/util/docker/stations/icecast/web/fallback-[256].mp4 b/util/docker/stations/icecast/web/fallback-[256].mp4 new file mode 100644 index 000000000..5618a8176 Binary files /dev/null and b/util/docker/stations/icecast/web/fallback-[256].mp4 differ diff --git a/util/docker/stations/icecast/web/fallback-[256].ogg b/util/docker/stations/icecast/web/fallback-[256].ogg new file mode 100644 index 000000000..7babd91c1 Binary files /dev/null and b/util/docker/stations/icecast/web/fallback-[256].ogg differ diff --git a/util/docker/stations/icecast/web/fallback-[256].opus b/util/docker/stations/icecast/web/fallback-[256].opus new file mode 100644 index 000000000..b355bc618 Binary files /dev/null and b/util/docker/stations/icecast/web/fallback-[256].opus differ diff --git a/util/docker/stations/icecast/web/fallback-[320].mp3 b/util/docker/stations/icecast/web/fallback-[320].mp3 new file mode 100644 index 000000000..c0cf9cbdb Binary files /dev/null and b/util/docker/stations/icecast/web/fallback-[320].mp3 differ diff --git a/util/docker/stations/icecast/web/fallback-[320].mp4 b/util/docker/stations/icecast/web/fallback-[320].mp4 new file mode 100644 index 000000000..c014b4553 Binary files /dev/null and b/util/docker/stations/icecast/web/fallback-[320].mp4 differ diff --git a/util/docker/stations/icecast/web/fallback-[320].ogg b/util/docker/stations/icecast/web/fallback-[320].ogg new file mode 100644 index 000000000..995b00fb9 Binary files /dev/null and b/util/docker/stations/icecast/web/fallback-[320].ogg differ diff --git a/util/docker/stations/icecast/web/fallback-[320].opus b/util/docker/stations/icecast/web/fallback-[320].opus new file mode 100644 index 000000000..9180e0cc6 Binary files /dev/null and b/util/docker/stations/icecast/web/fallback-[320].opus differ diff --git a/util/docker/stations/icecast/web/fallback-[32].mp3 b/util/docker/stations/icecast/web/fallback-[32].mp3 new file mode 100644 index 000000000..31ccc5a11 Binary files /dev/null and b/util/docker/stations/icecast/web/fallback-[32].mp3 differ diff --git a/util/docker/stations/icecast/web/fallback-[32].mp4 b/util/docker/stations/icecast/web/fallback-[32].mp4 new file mode 100644 index 000000000..0093c5a3b Binary files /dev/null and b/util/docker/stations/icecast/web/fallback-[32].mp4 differ diff --git a/util/docker/stations/icecast/web/fallback-[32].opus b/util/docker/stations/icecast/web/fallback-[32].opus new file mode 100644 index 000000000..6ed2a8adc Binary files /dev/null and b/util/docker/stations/icecast/web/fallback-[32].opus differ diff --git a/util/docker/stations/icecast/web/fallback-[48].mp3 b/util/docker/stations/icecast/web/fallback-[48].mp3 new file mode 100644 index 000000000..d6da644ed Binary files /dev/null and b/util/docker/stations/icecast/web/fallback-[48].mp3 differ diff --git a/util/docker/stations/icecast/web/fallback-[48].mp4 b/util/docker/stations/icecast/web/fallback-[48].mp4 new file mode 100644 index 000000000..2bd44c6c2 Binary files /dev/null and b/util/docker/stations/icecast/web/fallback-[48].mp4 differ diff --git a/util/docker/stations/icecast/web/fallback-[48].ogg b/util/docker/stations/icecast/web/fallback-[48].ogg new file mode 100644 index 000000000..45c5b3ea8 Binary files /dev/null and b/util/docker/stations/icecast/web/fallback-[48].ogg differ diff --git a/util/docker/stations/icecast/web/fallback-[48].opus b/util/docker/stations/icecast/web/fallback-[48].opus new file mode 100644 index 000000000..ae8e33e14 Binary files /dev/null and b/util/docker/stations/icecast/web/fallback-[48].opus differ diff --git a/util/docker/stations/icecast/web/fallback-[64].mp3 b/util/docker/stations/icecast/web/fallback-[64].mp3 new file mode 100644 index 000000000..48c4eedb1 Binary files /dev/null and b/util/docker/stations/icecast/web/fallback-[64].mp3 differ diff --git a/util/docker/stations/icecast/web/fallback-[64].mp4 b/util/docker/stations/icecast/web/fallback-[64].mp4 new file mode 100644 index 000000000..90aed5533 Binary files /dev/null and b/util/docker/stations/icecast/web/fallback-[64].mp4 differ diff --git a/util/docker/stations/icecast/web/fallback-[64].ogg b/util/docker/stations/icecast/web/fallback-[64].ogg new file mode 100644 index 000000000..5913bc0a6 Binary files /dev/null and b/util/docker/stations/icecast/web/fallback-[64].ogg differ diff --git a/util/docker/stations/icecast/web/fallback-[64].opus b/util/docker/stations/icecast/web/fallback-[64].opus new file mode 100644 index 000000000..ffc0bc90c Binary files /dev/null and b/util/docker/stations/icecast/web/fallback-[64].opus differ diff --git a/util/docker/stations/icecast/web/fallback-[96].mp3 b/util/docker/stations/icecast/web/fallback-[96].mp3 new file mode 100644 index 000000000..b4ad52e69 Binary files /dev/null and b/util/docker/stations/icecast/web/fallback-[96].mp3 differ diff --git a/util/docker/stations/icecast/web/fallback-[96].mp4 b/util/docker/stations/icecast/web/fallback-[96].mp4 new file mode 100644 index 000000000..58034bc16 Binary files /dev/null and b/util/docker/stations/icecast/web/fallback-[96].mp4 differ diff --git a/util/docker/stations/icecast/web/fallback-[96].ogg b/util/docker/stations/icecast/web/fallback-[96].ogg new file mode 100644 index 000000000..5635d6145 Binary files /dev/null and b/util/docker/stations/icecast/web/fallback-[96].ogg differ diff --git a/util/docker/stations/icecast/web/fallback-[96].opus b/util/docker/stations/icecast/web/fallback-[96].opus new file mode 100644 index 000000000..6d521937d Binary files /dev/null and b/util/docker/stations/icecast/web/fallback-[96].opus differ diff --git a/util/docker/stations/icecast/web/fallback.flac b/util/docker/stations/icecast/web/fallback.flac new file mode 100644 index 000000000..d3abdc19e Binary files /dev/null and b/util/docker/stations/icecast/web/fallback.flac differ diff --git a/util/docker/stations/icecast/web/status-json.xsl b/util/docker/stations/icecast/web/status-json.xsl new file mode 100644 index 000000000..d2cbfcba8 --- /dev/null +++ b/util/docker/stations/icecast/web/status-json.xsl @@ -0,0 +1,25 @@ + + + + + + +true + + +"dummy":null} +"dummy":null} +"dummy":null} +"dummy":null} +"dummy":null} +"dummy":null} +"dummy":null} + + +"dummy":null} +"dummy":null} +"dummy":null} +"dummy":null} +"dummy":null} + + diff --git a/util/docker/stations/icecast/web/xml2json.xslt b/util/docker/stations/icecast/web/xml2json.xslt new file mode 100644 index 000000000..96233be9d --- /dev/null +++ b/util/docker/stations/icecast/web/xml2json.xslt @@ -0,0 +1,215 @@ + + + + + + + + false + + + 0123456789 + + + + + + + + + + + + + + + " + + + + " + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + false + + + + + + + + + [ + + , + + + null + + + + + + + ] + + + + + + { + + + + + + :[ + + , + + + null + + + + + + + ] + , + + } + + + + + { + + + + : + + + + null + + + + + + + , + } + + + + + + + + + + + + diff --git a/util/docker/stations/liquidsoap/generate_fallback_files.liq b/util/docker/stations/liquidsoap/generate_fallback_files.liq new file mode 100644 index 000000000..00d54d5e6 --- /dev/null +++ b/util/docker/stations/liquidsoap/generate_fallback_files.liq @@ -0,0 +1,35 @@ +input = once(single("fallback.flac")); + +clock.assign_new(sync="none",[input]) + +output.file(%mp3(samplerate=44100, stereo=true, bitrate=32, id3v2=true), "fallback-[32].mp3", input, fallible=true) +output.file(%mp3(samplerate=44100, stereo=true, bitrate=48, id3v2=true), "fallback-[48].mp3", input, fallible=true) +output.file(%mp3(samplerate=44100, stereo=true, bitrate=64, id3v2=true), "fallback-[64].mp3", input, fallible=true) +output.file(%mp3(samplerate=44100, stereo=true, bitrate=96, id3v2=true), "fallback-[96].mp3", input, fallible=true) +output.file(%mp3(samplerate=44100, stereo=true, bitrate=128, id3v2=true), "fallback-[128].mp3", input, fallible=true) +output.file(%mp3(samplerate=44100, stereo=true, bitrate=192, id3v2=true), "fallback-[192].mp3", input, fallible=true) +output.file(%mp3(samplerate=44100, stereo=true, bitrate=256, id3v2=true), "fallback-[256].mp3", input, fallible=true) +output.file(%mp3(samplerate=44100, stereo=true, bitrate=320, id3v2=true), "fallback-[320].mp3", input, fallible=true) +output.file(%vorbis.cbr(samplerate=44100, channels=2, bitrate=48), "fallback-[48].ogg", input, fallible=true) +output.file(%vorbis.cbr(samplerate=44100, channels=2, bitrate=64), "fallback-[64].ogg", input, fallible=true) +output.file(%vorbis.cbr(samplerate=44100, channels=2, bitrate=96), "fallback-[96].ogg", input, fallible=true) +output.file(%vorbis.cbr(samplerate=44100, channels=2, bitrate=128), "fallback-[128].ogg", input, fallible=true) +output.file(%vorbis.cbr(samplerate=44100, channels=2, bitrate=192), "fallback-[192].ogg", input, fallible=true) +output.file(%vorbis.cbr(samplerate=44100, channels=2, bitrate=256), "fallback-[256].ogg", input, fallible=true) +output.file(%vorbis.cbr(samplerate=44100, channels=2, bitrate=320), "fallback-[320].ogg", input, fallible=true) +output.file(%fdkaac(channels=2, samplerate=44100, bitrate=32, afterburner=false, aot="mpeg4_he_aac_v2", sbr_mode=true), "fallback-[32].mp4", input, fallible=true) +output.file(%fdkaac(channels=2, samplerate=44100, bitrate=48, afterburner=false, aot="mpeg4_he_aac_v2", sbr_mode=true), "fallback-[48].mp4", input, fallible=true) +output.file(%fdkaac(channels=2, samplerate=44100, bitrate=64, afterburner=false, aot="mpeg4_he_aac_v2", sbr_mode=true), "fallback-[64].mp4", input, fallible=true) +output.file(%fdkaac(channels=2, samplerate=44100, bitrate=96, afterburner=false, aot="mpeg4_aac_lc", sbr_mode=true), "fallback-[96].mp4", input, fallible=true) +output.file(%fdkaac(channels=2, samplerate=44100, bitrate=128, afterburner=false, aot="mpeg4_aac_lc", sbr_mode=true), "fallback-[128].mp4", input, fallible=true) +output.file(%fdkaac(channels=2, samplerate=44100, bitrate=192, afterburner=true, aot="mpeg4_aac_lc", sbr_mode=true), "fallback-[192].mp4", input, fallible=true) +output.file(%fdkaac(channels=2, samplerate=44100, bitrate=256, afterburner=true, aot="mpeg4_aac_lc", sbr_mode=true), "fallback-[256].mp4", input, fallible=true) +output.file(%fdkaac(channels=2, samplerate=44100, bitrate=320, afterburner=true, aot="mpeg4_aac_lc", sbr_mode=true), "fallback-[320].mp4", input, fallible=true) +output.file(%opus(samplerate=48000, bitrate=32, vbr="constrained", application="audio", channels=2, signal="music", complexity=10, max_bandwidth="full_band"), "fallback-[32].opus", input, fallible=true) +output.file(%opus(samplerate=48000, bitrate=48, vbr="constrained", application="audio", channels=2, signal="music", complexity=10, max_bandwidth="full_band"), "fallback-[48].opus", input, fallible=true) +output.file(%opus(samplerate=48000, bitrate=64, vbr="constrained", application="audio", channels=2, signal="music", complexity=10, max_bandwidth="full_band"), "fallback-[64].opus", input, fallible=true) +output.file(%opus(samplerate=48000, bitrate=96, vbr="constrained", application="audio", channels=2, signal="music", complexity=10, max_bandwidth="full_band"), "fallback-[96].opus", input, fallible=true) +output.file(%opus(samplerate=48000, bitrate=128, vbr="constrained", application="audio", channels=2, signal="music", complexity=10, max_bandwidth="full_band"), "fallback-[128].opus", input, fallible=true) +output.file(%opus(samplerate=48000, bitrate=192, vbr="constrained", application="audio", channels=2, signal="music", complexity=10, max_bandwidth="full_band"), "fallback-[192].opus", input, fallible=true) +output.file(%opus(samplerate=48000, bitrate=256, vbr="constrained", application="audio", channels=2, signal="music", complexity=10, max_bandwidth="full_band"), "fallback-[256].opus", input, fallible=true) +output.file(%opus(samplerate=48000, bitrate=320, vbr="constrained", application="audio", channels=2, signal="music", complexity=10, max_bandwidth="full_band"), "fallback-[320].opus", input, fallible=true) diff --git a/util/docker/stations/setup/icecast.sh b/util/docker/stations/setup/icecast.sh index 568365c3e..f665880f6 100644 --- a/util/docker/stations/setup/icecast.sh +++ b/util/docker/stations/setup/icecast.sh @@ -6,13 +6,18 @@ set -x apt-get install -q -y --no-install-recommends \ build-essential libxml2 libxslt1-dev libvorbis-dev libssl-dev libcurl4-openssl-dev openssl -mkdir -p /bd_build/stations/icecast -cd /bd_build/stations/icecast +mkdir -p /bd_build/stations/icecast_build +cd /bd_build/stations/icecast_build + +git clone https://github.com/karlheyes/icecast-kh.git . +git checkout 4e3a1ae935c2d002aa54f218465125989e563dd5 -curl -fsSL -o icecast.tar.gz https://github.com/AzuraCast/icecast-kh-ac/archive/refs/tags/2.4.0-kh15-ac2.tar.gz -tar -xzvf icecast.tar.gz --strip-components=1 ./configure make make install +# Remove build tools apt-get remove --purge -y build-essential libssl-dev libcurl4-openssl-dev + +# Copy AzuraCast Icecast customizations +cp -r /bd_build/stations/icecast/web /usr/local/share/icecast/web