Hello, If anyone is running an Icecast server that serves at least 3 separate streams each with it's own bitrate can I get a look at your config? Thanks. Dave.
Hiya David, see my previous answer - I am sure it addresses these questions. Just to reiterate, icecast will serve whatever the source tells it to. If you have 3 separate ices0 processes running, icecast will serve 3 streams. There is a setting in icecast that can limit the maximum number of sources. On 2018-09-28 15:56, David Mehler wrote:> Hello, > > If anyone is running an Icecast server that serves at least 3 separate > streams each with it's own bitrate can I get a look at your config? > > Thanks. > Dave. > _______________________________________________ > Icecast mailing list > Icecast at xiph.org > http://lists.xiph.org/mailman/listinfo/icecast
I just realised my previous email didn't go to the list for some reason. Here it is again: Currently, I have three liquadsoap ".liq" files, and they all look very similar to this: -------- 8< -------- jake at beastie:/etc/liquidsoap$ cat jake.liq #!/usr/bin/liquidsoap #set("log.file.path","/tmp/basic-radio.log") def my_request_function() # Get the first line of my external process result list.hd( get_process_lines("/usr/bin/getrandomsong.sh /etc/liquidsoap/jakeradio.sh")) # Create and return a request using this result request.create(result) end # Create the source s = mksafe(request.dynamic(my_request_function)) sc = smart_crossfade(conservative=true, s) output.icecast(%mp3.vbr(quality=1), host = "localhost", port = 8000, password = "ICECASTPASSWORD", mount = "jake-radio.mp3", description="jakeradio - all my songs on random", name="jakeradio", sc) jake at beastie:/etc/liquidsoap$ -------- 8< -------- The important differences between the configs are the "mount", "description", and "name" in the last command. As you can see, the mp3's are re-encoded to a variable bit rate, quality set to 1, which I am sure is overkill lol There is no special config in icecast, icecast will stream whatever the streaming source tells it to - in my case, the streaming source is liquadsoap. You may want to look at the setting in icecast.xml icecast/limits/clients and/or icecast/limits/sources - mine is set to 100, I *think* sources defaults to something quite low, like 2, which bit me when I tried to stream 3 things.... Also, you'll want to look at icecast/authentication/source-password and set that to something - Above, in my liq file, you'll see 'password = "ICECASTPASSWORD"' - they need to match. I hope I've given you enough to get you on the right track :D Jake On 2018-09-28 15:56, David Mehler wrote:> Hello, > > If anyone is running an Icecast server that serves at least 3 separate > streams each with it's own bitrate can I get a look at your config? > > Thanks. > Dave. > _______________________________________________ > Icecast mailing list > Icecast at xiph.org > http://lists.xiph.org/mailman/listinfo/icecast
Hi, Thanks, that helps a lot. I'm trying to get ices2 now to do the multiple clients and sources, I'll post what I get later today. Thanks. Dave. On 9/28/18, jake <jake at jakebriggs.com> wrote:> I just realised my previous email didn't go to the list for some reason. > Here it is again: > > Currently, I have three liquadsoap ".liq" files, and they all look very > similar to this: > > -------- 8< -------- > jake at beastie:/etc/liquidsoap$ cat jake.liq > #!/usr/bin/liquidsoap > > #set("log.file.path","/tmp/basic-radio.log") > > def my_request_function() > # Get the first line of my external process > result > list.hd( > get_process_lines("/usr/bin/getrandomsong.sh > /etc/liquidsoap/jakeradio.sh")) > # Create and return a request using this result > request.create(result) > end > > # Create the source > s = mksafe(request.dynamic(my_request_function)) > > sc = smart_crossfade(conservative=true, s) > > output.icecast(%mp3.vbr(quality=1), > host = "localhost", port = 8000, > password = "ICECASTPASSWORD", mount = "jake-radio.mp3", > description="jakeradio - all my songs on random", name="jakeradio", > sc) > > > jake at beastie:/etc/liquidsoap$ > -------- 8< -------- > > The important differences between the configs are the "mount", > "description", and "name" in the last command. > As you can see, the mp3's are re-encoded to a variable bit rate, quality > set to 1, which I am sure is overkill lol > > There is no special config in icecast, icecast will stream whatever the > streaming source tells it to - in my case, the streaming source is > liquadsoap. > > You may want to look at the setting in icecast.xml > icecast/limits/clients and/or icecast/limits/sources - mine is set to > 100, I *think* sources defaults to something quite low, like 2, which > bit me when I tried to stream 3 things.... > > Also, you'll want to look at icecast/authentication/source-password and > set that to something - Above, in my liq file, you'll see 'password > "ICECASTPASSWORD"' - they need to match. > > I hope I've given you enough to get you on the right track :D > > Jake > > > On 2018-09-28 15:56, David Mehler wrote: >> Hello, >> >> If anyone is running an Icecast server that serves at least 3 separate >> streams each with it's own bitrate can I get a look at your config? >> >> Thanks. >> Dave. >> _______________________________________________ >> Icecast mailing list >> Icecast at xiph.org >> http://lists.xiph.org/mailman/listinfo/icecast >
On Thu, Sep 27, 2018 at 11:56:04PM -0400, David Mehler wrote:> If anyone is running an Icecast server that serves at least 3 separate > streams each with it's own bitrate can I get a look at your config?A live config for liquidsoap. The telnet server is used to update live metadata. #!/usr/bin/liquidsoap # Enable telnet server set("server.telnet",true) set("log.file.path","/tmp/liquid.log") set("frame.audio.samplerate",48000) source = input.alsa() source = server.insert_metadata(id="ID", source) ice_host = "127.0.0.1" ice_pass = "xxxxxxxxxxx" station = "My station" output.icecast( %ogg(%flac(samplerate=48000,compression=5)), host = ice_host, port = 8000, password = ice_pass, mount = "medium.flac", name = "My Station FLAC", icy_metadata = "true", url="", encoding="UTF-8", description = station, source ) output.icecast( %ogg(%vorbis(quality=0.0, samplerate=48000)), host = ice_host, port = 8000, password = ice_pass, mount = "medium.ogg", name = "My Station Vorbis", icy_metadata = "true", description = station, url="", encoding="UTF-8", source ) output.icecast( %ogg(%vorbis(quality=0.9, samplerate=48000)), host = ice_host, port = 8000, password = ice_pass, mount = "high.ogg", name = "My Station Vorbis High", icy_metadata = "true", description = station, url="", encoding="UTF-8", source ) output.icecast( %ogg(%opus(bitrate=128, samplerate=48000, application="audio",complexity=5)), host = ice_host, port = 8000, password = ice_pass, mount = "medium.opus", name = "My Station Opus", icy_metadata = "true", description = station, url="", encoding="UTF-8", source ) #output.icecast( # %ogg(%opus(bitrate=48, samplerate=48000, application="audio",complexity=8)), # host = ice_host, # port = 8000, # password = ice_pass, # mount = "low.opus", # name = "My Station Opus Low", # icy_metadata = "true", # description = station, # url="", # encoding="UTF-8", # source #) output.icecast( %mp3(bitrate=128, samplerate=48000), host = ice_host, port = 8000, password = ice_pass, mount = "medium.mp3", name = "My Station MP3", icy_metadata = "true", description = station, url="", encoding="UTF-8", source ) output.icecast( %fdkaac(bitrate=128, samplerate=48000, afterburner=true, aot="mpeg4_aac_lc", transmux="adts", sbr_mode=false), host = ice_host, port = 8000, password = ice_pass, mount = "medium.aac", name = "My Station AAC", icy_metadata = "true", description = station, url="", encoding="UTF-8", source ) output.icecast( %fdkaac(bitrate=64, samplerate=48000, afterburner=true, aot="mpeg4_he_aac", transmux="adts", sbr_mode=true), host = ice_host, port = 8000, password = ice_pass, mount = "low.aac", name = "My Station AAC Low", icy_metadata = "true", description = station, url="", encoding="UTF-8", source ) -- Paul Martin <pm at nowster.me.uk>