mirror of
https://github.com/AzuraCast/AzuraCast.git
synced 2024-06-13 12:46:41 +00:00
Build directly from icecast-kh instead of icecast-kh-ac fork.
This commit is contained in:
parent
113f16c36d
commit
ad693362a8
BIN
util/docker/stations/icecast/web/fallback-[128].mp3
Normal file
BIN
util/docker/stations/icecast/web/fallback-[128].mp3
Normal file
Binary file not shown.
BIN
util/docker/stations/icecast/web/fallback-[128].mp4
Normal file
BIN
util/docker/stations/icecast/web/fallback-[128].mp4
Normal file
Binary file not shown.
BIN
util/docker/stations/icecast/web/fallback-[128].ogg
Normal file
BIN
util/docker/stations/icecast/web/fallback-[128].ogg
Normal file
Binary file not shown.
BIN
util/docker/stations/icecast/web/fallback-[128].opus
Normal file
BIN
util/docker/stations/icecast/web/fallback-[128].opus
Normal file
Binary file not shown.
BIN
util/docker/stations/icecast/web/fallback-[192].mp3
Normal file
BIN
util/docker/stations/icecast/web/fallback-[192].mp3
Normal file
Binary file not shown.
BIN
util/docker/stations/icecast/web/fallback-[192].mp4
Normal file
BIN
util/docker/stations/icecast/web/fallback-[192].mp4
Normal file
Binary file not shown.
BIN
util/docker/stations/icecast/web/fallback-[192].ogg
Normal file
BIN
util/docker/stations/icecast/web/fallback-[192].ogg
Normal file
Binary file not shown.
BIN
util/docker/stations/icecast/web/fallback-[192].opus
Normal file
BIN
util/docker/stations/icecast/web/fallback-[192].opus
Normal file
Binary file not shown.
BIN
util/docker/stations/icecast/web/fallback-[256].mp3
Normal file
BIN
util/docker/stations/icecast/web/fallback-[256].mp3
Normal file
Binary file not shown.
BIN
util/docker/stations/icecast/web/fallback-[256].mp4
Normal file
BIN
util/docker/stations/icecast/web/fallback-[256].mp4
Normal file
Binary file not shown.
BIN
util/docker/stations/icecast/web/fallback-[256].ogg
Normal file
BIN
util/docker/stations/icecast/web/fallback-[256].ogg
Normal file
Binary file not shown.
BIN
util/docker/stations/icecast/web/fallback-[256].opus
Normal file
BIN
util/docker/stations/icecast/web/fallback-[256].opus
Normal file
Binary file not shown.
BIN
util/docker/stations/icecast/web/fallback-[320].mp3
Normal file
BIN
util/docker/stations/icecast/web/fallback-[320].mp3
Normal file
Binary file not shown.
BIN
util/docker/stations/icecast/web/fallback-[320].mp4
Normal file
BIN
util/docker/stations/icecast/web/fallback-[320].mp4
Normal file
Binary file not shown.
BIN
util/docker/stations/icecast/web/fallback-[320].ogg
Normal file
BIN
util/docker/stations/icecast/web/fallback-[320].ogg
Normal file
Binary file not shown.
BIN
util/docker/stations/icecast/web/fallback-[320].opus
Normal file
BIN
util/docker/stations/icecast/web/fallback-[320].opus
Normal file
Binary file not shown.
BIN
util/docker/stations/icecast/web/fallback-[32].mp3
Normal file
BIN
util/docker/stations/icecast/web/fallback-[32].mp3
Normal file
Binary file not shown.
BIN
util/docker/stations/icecast/web/fallback-[32].mp4
Normal file
BIN
util/docker/stations/icecast/web/fallback-[32].mp4
Normal file
Binary file not shown.
BIN
util/docker/stations/icecast/web/fallback-[32].opus
Normal file
BIN
util/docker/stations/icecast/web/fallback-[32].opus
Normal file
Binary file not shown.
BIN
util/docker/stations/icecast/web/fallback-[48].mp3
Normal file
BIN
util/docker/stations/icecast/web/fallback-[48].mp3
Normal file
Binary file not shown.
BIN
util/docker/stations/icecast/web/fallback-[48].mp4
Normal file
BIN
util/docker/stations/icecast/web/fallback-[48].mp4
Normal file
Binary file not shown.
BIN
util/docker/stations/icecast/web/fallback-[48].ogg
Normal file
BIN
util/docker/stations/icecast/web/fallback-[48].ogg
Normal file
Binary file not shown.
BIN
util/docker/stations/icecast/web/fallback-[48].opus
Normal file
BIN
util/docker/stations/icecast/web/fallback-[48].opus
Normal file
Binary file not shown.
BIN
util/docker/stations/icecast/web/fallback-[64].mp3
Normal file
BIN
util/docker/stations/icecast/web/fallback-[64].mp3
Normal file
Binary file not shown.
BIN
util/docker/stations/icecast/web/fallback-[64].mp4
Normal file
BIN
util/docker/stations/icecast/web/fallback-[64].mp4
Normal file
Binary file not shown.
BIN
util/docker/stations/icecast/web/fallback-[64].ogg
Normal file
BIN
util/docker/stations/icecast/web/fallback-[64].ogg
Normal file
Binary file not shown.
BIN
util/docker/stations/icecast/web/fallback-[64].opus
Normal file
BIN
util/docker/stations/icecast/web/fallback-[64].opus
Normal file
Binary file not shown.
BIN
util/docker/stations/icecast/web/fallback-[96].mp3
Normal file
BIN
util/docker/stations/icecast/web/fallback-[96].mp3
Normal file
Binary file not shown.
BIN
util/docker/stations/icecast/web/fallback-[96].mp4
Normal file
BIN
util/docker/stations/icecast/web/fallback-[96].mp4
Normal file
Binary file not shown.
BIN
util/docker/stations/icecast/web/fallback-[96].ogg
Normal file
BIN
util/docker/stations/icecast/web/fallback-[96].ogg
Normal file
Binary file not shown.
BIN
util/docker/stations/icecast/web/fallback-[96].opus
Normal file
BIN
util/docker/stations/icecast/web/fallback-[96].opus
Normal file
Binary file not shown.
BIN
util/docker/stations/icecast/web/fallback.flac
Normal file
BIN
util/docker/stations/icecast/web/fallback.flac
Normal file
Binary file not shown.
25
util/docker/stations/icecast/web/status-json.xsl
Normal file
25
util/docker/stations/icecast/web/status-json.xsl
Normal file
|
@ -0,0 +1,25 @@
|
|||
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
||||
<xsl:import href="xml2json.xslt"/>
|
||||
<xsl:output indent="no" omit-xml-declaration="yes" method="text" encoding="UTF-8" media-type="application/json"/>
|
||||
<xsl:strip-space elements="*"/>
|
||||
|
||||
<!-- override imported transform variable to enable output -->
|
||||
<xsl:variable name="output">true</xsl:variable>
|
||||
|
||||
<!-- hide certain nodes from all sources -->
|
||||
<xsl:template match="icestats/source/max_listeners"><xsl:if test="not(following-sibling::*)">"dummy":null}</xsl:if></xsl:template>
|
||||
<xsl:template match="icestats/source/public"><xsl:if test="not(following-sibling::*)">"dummy":null}</xsl:if></xsl:template>
|
||||
<xsl:template match="icestats/source/source_ip"><xsl:if test="not(following-sibling::*)">"dummy":null}</xsl:if></xsl:template>
|
||||
<xsl:template match="icestats/source/listener" ><xsl:if test="not(following-sibling::*)">"dummy":null}</xsl:if></xsl:template>
|
||||
<xsl:template match="icestats/source/slow_listeners"><xsl:if test="not(following-sibling::*)">"dummy":null}</xsl:if></xsl:template>
|
||||
<xsl:template match="icestats/source/*[contains(name(), 'total_bytes')]"><xsl:if test="not(following-sibling::*)">"dummy":null}</xsl:if></xsl:template>
|
||||
<xsl:template match="icestats/source/user_agent" ><xsl:if test="not(following-sibling::*)">"dummy":null}</xsl:if></xsl:template>
|
||||
|
||||
<!-- hide certain global nodes -->
|
||||
<xsl:template match="icestats/sources"><xsl:if test="not(following-sibling::*)">"dummy":null}</xsl:if></xsl:template>
|
||||
<xsl:template match="icestats/clients"><xsl:if test="not(following-sibling::*)">"dummy":null}</xsl:if></xsl:template>
|
||||
<xsl:template match="icestats/stats"><xsl:if test="not(following-sibling::*)">"dummy":null}</xsl:if></xsl:template>
|
||||
<xsl:template match="icestats/listeners"><xsl:if test="not(following-sibling::*)">"dummy":null}</xsl:if></xsl:template>
|
||||
<xsl:template match="node()[contains(name(), 'connections')]"><xsl:if test="not(following-sibling::*)">"dummy":null}</xsl:if></xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
215
util/docker/stations/icecast/web/xml2json.xslt
Normal file
215
util/docker/stations/icecast/web/xml2json.xslt
Normal file
|
@ -0,0 +1,215 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
||||
<!--
|
||||
Copyright (c) 2006,2008 Doeke Zanstra
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer. Redistributions in binary
|
||||
form must reproduce the above copyright notice, this list of conditions and the
|
||||
following disclaimer in the documentation and/or other materials provided with
|
||||
the distribution.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
-->
|
||||
|
||||
<xsl:output indent="no" omit-xml-declaration="yes" method="text" encoding="UTF-8" media-type="application/json"/>
|
||||
<xsl:strip-space elements="*"/>
|
||||
<!--default to no output-->
|
||||
<xsl:variable name="output">false</xsl:variable>
|
||||
|
||||
<!--constant-->
|
||||
<xsl:variable name="d">0123456789</xsl:variable>
|
||||
|
||||
<!-- ignore document text -->
|
||||
<xsl:template match="text()[preceding-sibling::node() or following-sibling::node()]"/>
|
||||
|
||||
<!-- string -->
|
||||
<xsl:template match="text()">
|
||||
<xsl:call-template name="escape-string">
|
||||
<xsl:with-param name="s" select="."/>
|
||||
</xsl:call-template>
|
||||
</xsl:template>
|
||||
|
||||
<!-- Main template for escaping strings; used by above template and for object-properties
|
||||
Responsibilities: placed quotes around string, and chain up to next filter, escape-bs-string -->
|
||||
<xsl:template name="escape-string">
|
||||
<xsl:param name="s"/>
|
||||
<xsl:text>"</xsl:text>
|
||||
<xsl:call-template name="escape-bs-string">
|
||||
<xsl:with-param name="s" select="$s"/>
|
||||
</xsl:call-template>
|
||||
<xsl:text>"</xsl:text>
|
||||
</xsl:template>
|
||||
|
||||
<!-- Escape the backslash (\) before everything else. -->
|
||||
<xsl:template name="escape-bs-string">
|
||||
<xsl:param name="s"/>
|
||||
<xsl:choose>
|
||||
<xsl:when test="contains($s,'\')">
|
||||
<xsl:call-template name="escape-quot-string">
|
||||
<xsl:with-param name="s" select="concat(substring-before($s,'\'),'\\')"/>
|
||||
</xsl:call-template>
|
||||
<xsl:call-template name="escape-bs-string">
|
||||
<xsl:with-param name="s" select="substring-after($s,'\')"/>
|
||||
</xsl:call-template>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:call-template name="escape-quot-string">
|
||||
<xsl:with-param name="s" select="$s"/>
|
||||
</xsl:call-template>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
|
||||
<!-- Escape the double quote ("). -->
|
||||
<xsl:template name="escape-quot-string">
|
||||
<xsl:param name="s"/>
|
||||
<xsl:choose>
|
||||
<xsl:when test="contains($s,'"')">
|
||||
<xsl:call-template name="encode-string">
|
||||
<xsl:with-param name="s" select="concat(substring-before($s,'"'),'\"')"/>
|
||||
</xsl:call-template>
|
||||
<xsl:call-template name="escape-quot-string">
|
||||
<xsl:with-param name="s" select="substring-after($s,'"')"/>
|
||||
</xsl:call-template>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:call-template name="encode-string">
|
||||
<xsl:with-param name="s" select="$s"/>
|
||||
</xsl:call-template>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
|
||||
<!-- Replace tab, line feed and/or carriage return by its matching escape code. Can't escape backslash
|
||||
or double quote here, because they don't replace characters (� becomes \t), but they prefix
|
||||
characters (\ becomes \\). Besides, backslash should be seperate anyway, because it should be
|
||||
processed first. This function can't do that. -->
|
||||
<xsl:template name="encode-string">
|
||||
<xsl:param name="s"/>
|
||||
<xsl:choose>
|
||||
<!-- tab -->
|
||||
<xsl:when test="contains($s,'	')">
|
||||
<xsl:call-template name="encode-string">
|
||||
<xsl:with-param name="s" select="concat(substring-before($s,'	'),'\t',substring-after($s,'	'))"/>
|
||||
</xsl:call-template>
|
||||
</xsl:when>
|
||||
<!-- line feed -->
|
||||
<xsl:when test="contains($s,'
')">
|
||||
<xsl:call-template name="encode-string">
|
||||
<xsl:with-param name="s" select="concat(substring-before($s,'
'),'\n',substring-after($s,'
'))"/>
|
||||
</xsl:call-template>
|
||||
</xsl:when>
|
||||
<!-- carriage return -->
|
||||
<xsl:when test="contains($s,'
')">
|
||||
<xsl:call-template name="encode-string">
|
||||
<xsl:with-param name="s" select="concat(substring-before($s,'
'),'\r',substring-after($s,'
'))"/>
|
||||
</xsl:call-template>
|
||||
</xsl:when>
|
||||
<xsl:otherwise><xsl:value-of select="$s"/></xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
|
||||
<!-- number (no support for javascript mantissa) -->
|
||||
<xsl:template match="text()[not(string(number())='NaN' or
|
||||
(starts-with(.,'0' ) and . != '0'))]">
|
||||
<xsl:value-of select="."/>
|
||||
</xsl:template>
|
||||
|
||||
<!-- boolean, case-insensitive -->
|
||||
<xsl:template match="text()[translate(.,'TRUE','true')='true']">true</xsl:template>
|
||||
<xsl:template match="text()[translate(.,'FALSE','false')='false']">false</xsl:template>
|
||||
|
||||
<!-- objects and arrays -->
|
||||
<xsl:template match="*" name="base">
|
||||
<xsl:choose>
|
||||
<!-- complete array -->
|
||||
<xsl:when test="(count(../*[name(current())=name()])=count(../*)) and count(../*[name(current())=name()])>1">
|
||||
<xsl:variable name="el" select="name()"/>
|
||||
<xsl:if test="not(following-sibling::*[name()=$el])">
|
||||
<xsl:text>[</xsl:text>
|
||||
<xsl:for-each select="../*[name()=$el]">
|
||||
<xsl:if test="position()!=1">,</xsl:if>
|
||||
<xsl:choose>
|
||||
<xsl:when test="not(child::node())">
|
||||
<xsl:text>null</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:apply-templates select="child::node()"/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:for-each>
|
||||
<xsl:text>]</xsl:text>
|
||||
</xsl:if>
|
||||
</xsl:when>
|
||||
|
||||
<!-- partial array -->
|
||||
<xsl:when test="count(../*[name(current())=name()])>1">
|
||||
<xsl:if test="not(preceding-sibling::*)">{</xsl:if>
|
||||
<xsl:variable name="el" select="name()"/>
|
||||
<xsl:if test="not(following-sibling::*[name()=$el])">
|
||||
<xsl:call-template name="escape-string">
|
||||
<xsl:with-param name="s" select="$el"/>
|
||||
</xsl:call-template>
|
||||
<xsl:text>:[</xsl:text>
|
||||
<xsl:for-each select="../*[name()=$el]">
|
||||
<xsl:if test="position()!=1">,</xsl:if>
|
||||
<xsl:choose>
|
||||
<xsl:when test="not(child::node())">
|
||||
<xsl:text>null</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:apply-templates select="child::node()"/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:for-each>
|
||||
<xsl:text>]</xsl:text>
|
||||
<xsl:if test="following-sibling::*">,</xsl:if>
|
||||
</xsl:if>
|
||||
<xsl:if test="not(following-sibling::*)">}</xsl:if>
|
||||
</xsl:when>
|
||||
|
||||
<!-- object -->
|
||||
<xsl:otherwise>
|
||||
<xsl:if test="not(preceding-sibling::*)">{</xsl:if>
|
||||
<xsl:call-template name="escape-string">
|
||||
<xsl:with-param name="s" select="name()"/>
|
||||
</xsl:call-template>
|
||||
<xsl:text>:</xsl:text>
|
||||
<!-- check type of node -->
|
||||
<xsl:choose>
|
||||
<!-- null nodes -->
|
||||
<xsl:when test="count(child::node())=0">null</xsl:when>
|
||||
<!-- other nodes -->
|
||||
<xsl:otherwise>
|
||||
<xsl:apply-templates select="child::node()"/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
<!-- end of type check -->
|
||||
<xsl:if test="following-sibling::*">,</xsl:if>
|
||||
<xsl:if test="not(following-sibling::*)">}</xsl:if>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
|
||||
<!-- convert root element to an anonymous container -->
|
||||
<xsl:template match="/">
|
||||
<xsl:if test="$output='true'">
|
||||
<xsl:apply-templates select="node()"/>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
35
util/docker/stations/liquidsoap/generate_fallback_files.liq
Normal file
35
util/docker/stations/liquidsoap/generate_fallback_files.liq
Normal file
|
@ -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)
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue
Block a user