Discussion:
[Icecast] multiple mounts each varying bitrates
David Mehler
2018-09-28 03:56:04 UTC
Permalink
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.
jake
2018-09-28 09:56:47 UTC
Permalink
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.
Post by David Mehler
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
http://lists.xiph.org/mailman/listinfo/icecast
jake
2018-09-28 10:00:51 UTC
Permalink
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< --------
***@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)


***@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
Post by David Mehler
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
http://lists.xiph.org/mailman/listinfo/icecast
David Mehler
2018-09-28 17:20:25 UTC
Permalink
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.
Post by jake
I just realised my previous email didn't go to the list for some reason.
Currently, I have three liquadsoap ".liq" files, and they all look very
-------- 8< --------
#!/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)
-------- 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
Post by David Mehler
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
http://lists.xiph.org/mailman/listinfo/icecast
Jake
2018-09-28 18:07:45 UTC
Permalink
Awesome :)

I have nothing for the lyrics. The source should send metadata to icecast though, and icecast should update the metadata to any listening clients. Kodi will show that metadata, and so will Audacious, and I presume almost any client will.

I've never used ices2 but presumably it can send metadata?

Jake

---- David Mehler wrote ----
Post by David Mehler
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.
Post by jake
I just realised my previous email didn't go to the list for some reason.
Currently, I have three liquadsoap ".liq" files, and they all look very
-------- 8< --------
#!/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)
-------- 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
Post by David Mehler
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
http://lists.xiph.org/mailman/listinfo/icecast
Paul Martin
2018-09-30 16:55:53 UTC
Permalink
Post by David Mehler
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 <***@nowster.me.uk>
Continue reading on narkive:
Search results for '[Icecast] multiple mounts each varying bitrates' (Questions and Answers)
6
replies
Can some one tell what is exact difference between CDMA and GSM?
started 2007-06-04 02:13:59 UTC
cell phones & plans
Loading...