From kengroups at icloud.com Sat May 1 17:39:25 2021 From: kengroups at icloud.com (Ken Gillett) Date: Sat, 1 May 2021 18:39:25 +0100 Subject: [Icecast] failure to relay Message-ID: <34B81430-40FB-4B1E-AB71-8A0C2DABD769@icloud.com> I?m trying to relay a radio station (for internal use around the home), but it?s not working and I could do with some assistance. The station URL is:- http://totalbroadcast.net/zenith/zenith128.pls but when I try to ?listen? to the Icecast re-broadcast in a browser, I just get:- 404 - Mount unavailable When I check the Icecast logs I see:- [2021-04-29 21:04:11] INFO slave/start_relay_stream Starting relayed source at mountpoint "/zenith" [2021-04-29 21:04:11] INFO slave/open_relay_connection connecting to totalbroadcast.net:80 [2021-04-29 21:04:11] WARN format/format_get_type Unsupported or legacy stream type: "audio/x-scpls". Falling back to generic minimal handler for best effort. [2021-04-29 21:04:11] INFO source/get_next_buffer End of Stream /zenith [2021-04-29 21:04:11] INFO source/source_main listener count on /zenith now 1 [2021-04-29 21:04:11] INFO source/source_shutdown Source from totalbroadcast.net at "/zenith" exiting The source URL is correct and I can browse directly to it no problem and I know it plays perfectly in several players I have around the house. Could anyone please advise? Is there a way around this? Ken G i l l e t t _/_/_/_/_/_/_/_/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From petr.pisar at atlas.cz Sat May 1 18:04:35 2021 From: petr.pisar at atlas.cz (Petr Pisar) Date: Sat, 1 May 2021 20:04:35 +0200 Subject: [Icecast] failure to relay In-Reply-To: <34B81430-40FB-4B1E-AB71-8A0C2DABD769@icloud.com> References: <34B81430-40FB-4B1E-AB71-8A0C2DABD769@icloud.com> Message-ID: V?Sat, May 01, 2021 at 06:39:25PM +0100,?Ken Gillett napsal(a): > I?m trying to relay a radio station (for internal use around the home), but it?s not working and I could do with some assistance. > > The station URL is:- > > http://totalbroadcast.net/zenith/zenith128.pls > > but when I try to ?listen? to the Icecast re-broadcast in a browser, I just get:- > > 404 - Mount unavailable > > When I check the Icecast logs I see:- > > [2021-04-29 21:04:11] INFO slave/start_relay_stream Starting relayed source at mountpoint "/zenith" > [2021-04-29 21:04:11] INFO slave/open_relay_connection connecting to totalbroadcast.net:80 > [2021-04-29 21:04:11] WARN format/format_get_type Unsupported or legacy stream type: "audio/x-scpls". Falling back to generic minimal handler for best effort. is not an address of the stream. It's a playlist. The warning from the log confirms the type. You need supply an address of the stream to icecast. The address can be found in the playlist document. Look: $ wget -q -O - http://totalbroadcast.net/zenith/zenith128.pls [playlist] NumberOfEntries=8 File1=http://148.163.81.10:8001/zenith128 File2=http://148.163.81.10:8001/zenith128 File3=http://148.163.81.10:8001/zenith128 File4=http://148.163.81.10:8001/zenith128 File5=http://91.189.64.188:3644/zenith128mp3 File6=http://91.189.64.188:3644/zenith128mp3 File7=http://91.189.64.188:3644/zenith128mp3 File8=http://91.189.64.188:3644/zenith128mp3 So there are exactly two unique addresses. Pick one of them for the icecast configuration file. -- Petr -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 833 bytes Desc: not available URL: From kengroups at icloud.com Sat May 1 18:25:45 2021 From: kengroups at icloud.com (Ken Gillett) Date: Sat, 1 May 2021 19:25:45 +0100 Subject: [Icecast] failure to relay In-Reply-To: References: <34B81430-40FB-4B1E-AB71-8A0C2DABD769@icloud.com> Message-ID: <04751A79-2381-437C-B577-F1B678DF81CB@icloud.com> Brilliant thanks. I knew it was a playlist file, but assumed Icecast could sort that out and I couldn?t readily access the actual pls as Safari insisted on dealing with it and wouldn?t show the text of the file. But I found another way. I could have copied a URL from your post, but where?s the fun in that. Joking aside, I need to be able to access files like this in future now I know I need to do this in order to set up an Icecast relay when I only have a playlist URL. All understood and working now. Thank you for the prompt response. Ken G i l l e t t _/_/_/_/_/_/_/_/ > On 1 May 2021, at 19:04, Petr Pisar wrote: > > V Sat, May 01, 2021 at 06:39:25PM +0100, Ken Gillett napsal(a): >> I?m trying to relay a radio station (for internal use around the home), but it?s not working and I could do with some assistance. >> >> The station URL is:- >> >> http://totalbroadcast.net/zenith/zenith128.pls >> >> but when I try to ?listen? to the Icecast re-broadcast in a browser, I just get:- >> >> 404 - Mount unavailable >> >> When I check the Icecast logs I see:- >> >> [2021-04-29 21:04:11] INFO slave/start_relay_stream Starting relayed source at mountpoint "/zenith" >> [2021-04-29 21:04:11] INFO slave/open_relay_connection connecting to totalbroadcast.net:80 >> [2021-04-29 21:04:11] WARN format/format_get_type Unsupported or legacy stream type: "audio/x-scpls". Falling back to generic minimal handler for best effort. > > is not an address of the > stream. It's a playlist. The warning from the log confirms the type. > > You need supply an address of the stream to icecast. The address can be found > in the playlist document. Look: > > $ wget -q -O - http://totalbroadcast.net/zenith/zenith128.pls > [playlist] > NumberOfEntries=8 > File1=http://148.163.81.10:8001/zenith128 > File2=http://148.163.81.10:8001/zenith128 > File3=http://148.163.81.10:8001/zenith128 > File4=http://148.163.81.10:8001/zenith128 > File5=http://91.189.64.188:3644/zenith128mp3 > File6=http://91.189.64.188:3644/zenith128mp3 > File7=http://91.189.64.188:3644/zenith128mp3 > File8=http://91.189.64.188:3644/zenith128mp3 > > So there are exactly two unique addresses. Pick one of them for the icecast > configuration file. > > -- Petr > > > _______________________________________________ > Icecast mailing list > Icecast at xiph.org > http://lists.xiph.org/mailman/listinfo/icecast From kengroups at icloud.com Sun May 2 08:25:56 2021 From: kengroups at icloud.com (Ken Gillett) Date: Sun, 2 May 2021 09:25:56 +0100 Subject: [Icecast] failure to relay again In-Reply-To: References: <34B81430-40FB-4B1E-AB71-8A0C2DABD769@icloud.com> Message-ID: I?ve managed to successfully relay several stations now, but am having a problem with one of them. It is using https and so far I have been unable to get Icecast to connect to the source server. I have read that Icecast cannot relay from an https source. Is this true? Is there any way around this problem? Ken G i l l e t t _/_/_/_/_/_/_/_/ From petr.pisar at atlas.cz Sun May 2 09:41:34 2021 From: petr.pisar at atlas.cz (Petr Pisar) Date: Sun, 2 May 2021 11:41:34 +0200 Subject: [Icecast] failure to relay again In-Reply-To: References: <34B81430-40FB-4B1E-AB71-8A0C2DABD769@icloud.com> Message-ID: V?Sun, May 02, 2021 at 09:25:56AM +0100,?Ken Gillett napsal(a): > I have read that Icecast cannot relay from an https source. Is this true? Yes. . > Is there any way around this problem? Maybe you could set up an SSL tunnel, e.g. with stunnel tool. Then icacast would connect to the tunnel server and the tunnel server would connect to the original source. But there could be a problem with a Host header sent by icecast because it would not match what the real source expects. But if the source did not care, it could work. -- Petr -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 833 bytes Desc: not available URL: From kengroups at icloud.com Sun May 2 11:57:23 2021 From: kengroups at icloud.com (Ken Gillett) Date: Sun, 2 May 2021 12:57:23 +0100 Subject: [Icecast] failure to relay again In-Reply-To: References: <34B81430-40FB-4B1E-AB71-8A0C2DABD769@icloud.com> Message-ID: <3F338C93-087D-4B9F-A398-32EFEB58E42D@icloud.com> That?s what I feared, but thanks for confirming it. I?ll have to think about this. Ken G i l l e t t _/_/_/_/_/_/_/_/ > On 2 May 2021, at 10:41, Petr Pisar wrote: > > V Sun, May 02, 2021 at 09:25:56AM +0100, Ken Gillett napsal(a): >> I have read that Icecast cannot relay from an https source. Is this true? > > Yes. . > >> Is there any way around this problem? > > Maybe you could set up an SSL tunnel, e.g. with stunnel tool. Then icacast > would connect to the tunnel server and the tunnel server would connect to the > original source. But there could be a problem with a Host header sent by > icecast because it would not match what the real source expects. But if > the source did not care, it could work. > > -- Petr > _______________________________________________ > Icecast mailing list > Icecast at xiph.org > http://lists.xiph.org/mailman/listinfo/icecast From kengroups at icloud.com Sat May 8 19:55:21 2021 From: kengroups at icloud.com (Ken Gillett) Date: Sat, 8 May 2021 20:55:21 +0100 Subject: [Icecast] relay mount URL Message-ID: I?ve been able to stream from a satellite feed, via a SAT>IP server to VLC and also to an IP radio player that supports mp2 file format. However, I cannot use that URL as a relay mount in Icecast:- servername 8080 /?&freq=10802.75&pol=h&msys=dvbs&sr=22000&pids=0,265,6301 which is actually BBC Radio 2 from FreeSAT in the UK. As I said, this URL works perfectly for players, but Icecast complains on startup:- /etc/icecast2/icecast.xml:178: parser error : EntityRef: expecting ';' /?freq=10802.75&pol=h&msys=dvbs&sr=22000&pids=0,265,6301 ^ It obviously objects to the URL having those ?=? characters in the mount. There?s an error for each one (^ in different place). Is there any way I can encode this URL as a mount for a relay, or is Icecast unable to deal with a URL like this? Ken G i l l e t t _/_/_/_/_/_/_/_/ From epirat07 at gmail.com Sat May 8 21:30:50 2021 From: epirat07 at gmail.com (Marvin Scholz) Date: Sat, 08 May 2021 23:30:50 +0200 Subject: [Icecast] relay mount URL In-Reply-To: References: Message-ID: <5BC24B39-028A-405D-BEE7-F14A583CC891@gmail.com> Hi, On 8 May 2021, at 21:55, Ken Gillett wrote: > I?ve been able to stream from a satellite feed, via a SAT>IP server > to VLC and also to an IP radio player that supports mp2 file format. > However, I cannot use that URL as a relay mount in Icecast:- > > servername > 8080 > /?&freq=10802.75&pol=h&msys=dvbs&sr=22000&pids=0,265,6301 > > which is actually BBC Radio 2 from FreeSAT in the UK. > > As I said, this URL works perfectly for players, but Icecast complains > on startup:- > > /etc/icecast2/icecast.xml:178: parser error : EntityRef: expecting > ';' > /?freq=10802.75&pol=h&msys=dvbs&sr=22000&pids=0,265,6301 > As the Icecast config is standard XML format, you need to properly escape characters that have special meaning for XML (in this case the &), so IIRC it should be escaped like so: /?&freq=10802.75&pol=h&msys=dvbs&sr=22000&pids=0,265,6301 > ^ > > It obviously objects to the URL having those ?=? characters in the > mount. There?s an error for each one (^ in different place). > > Is there any way I can encode this URL as a mount for a relay, or is > Icecast unable to deal with a URL like this? > > > > Ken G i l l e t t > > _/_/_/_/_/_/_/_/ > > > > _______________________________________________ > Icecast mailing list > Icecast at xiph.org > http://lists.xiph.org/mailman/listinfo/icecast From kengroups at icloud.com Sun May 9 10:12:52 2021 From: kengroups at icloud.com (Ken Gillett) Date: Sun, 9 May 2021 11:12:52 +0100 Subject: [Icecast] relay mount URL In-Reply-To: <5BC24B39-028A-405D-BEE7-F14A583CC891@gmail.com> References: <5BC24B39-028A-405D-BEE7-F14A583CC891@gmail.com> Message-ID: <70992C5F-D31C-4E76-9EF6-D8656A32A65E@icloud.com> Yes indeed, it was the ?&?. I knew it would be something like that, but it was late after a long day and obviously not thinking clearly, so apologies. Thanks for that. I am now able to icecast the satellite radio feed, albeit still in mp2 which is no good for my needs, but I?m working on that. Ken G i l l e t t _/_/_/_/_/_/_/_/ > On 8 May 2021, at 22:30, Marvin Scholz wrote: > > Hi, > > On 8 May 2021, at 21:55, Ken Gillett wrote: > >> I?ve been able to stream from a satellite feed, via a SAT>IP server to VLC and also to an IP radio player that supports mp2 file format. However, I cannot use that URL as a relay mount in Icecast:- >> >> servername >> 8080 >> /?&freq=10802.75&pol=h&msys=dvbs&sr=22000&pids=0,265,6301 >> >> which is actually BBC Radio 2 from FreeSAT in the UK. >> >> As I said, this URL works perfectly for players, but Icecast complains on startup:- >> >> /etc/icecast2/icecast.xml:178: parser error : EntityRef: expecting ';' >> /?freq=10802.75&pol=h&msys=dvbs&sr=22000&pids=0,265,6301 >> > > As the Icecast config is standard XML format, you need to properly escape characters > that have special meaning for XML (in this case the &), so IIRC it should be escaped > like so: > > /?&freq=10802.75&pol=h&msys=dvbs&sr=22000&pids=0,265,6301 > >> ^ >> >> It obviously objects to the URL having those ?=? characters in the mount. There?s an error for each one (^ in different place). >> >> Is there any way I can encode this URL as a mount for a relay, or is Icecast unable to deal with a URL like this? >> >> >> >> Ken G i l l e t t >> >> _/_/_/_/_/_/_/_/ >> >> >> >> _______________________________________________ >> Icecast mailing list >> Icecast at xiph.org >> http://lists.xiph.org/mailman/listinfo/icecast > _______________________________________________ > Icecast mailing list > Icecast at xiph.org > http://lists.xiph.org/mailman/listinfo/icecast -------------- next part -------------- An HTML attachment was scrubbed... URL: From kengroups at icloud.com Sun May 9 10:45:39 2021 From: kengroups at icloud.com (Ken Gillett) Date: Sun, 9 May 2021 11:45:39 +0100 Subject: [Icecast] Transcoding Message-ID: Despite success in one area, I am now disappointed to realise that although Icecast can run a script when a source connects and/or disconnects, it doesn?t seem able to do this for listeners. Although the actual source is a SAT>IP server that stops streaming and frees up the tuners when no more listeners (like Icecast does with relays) and Icecast will stop streaming when no more listeners, the required intermediate transcoding process knows nothing of all this. I was under the impression that Icecast could run scripts at the suitable times and I planned to write the script to handle this, starting and stopping an ffmpeg process doing the transcoding. But for this to work, I have to know when the first listener connects and when the last listener disconnects. Anyone with deeper knowledge of Icecast suggest how I could achieve that? Sent from my iPad From kengroups at icloud.com Sun May 9 15:04:03 2021 From: kengroups at icloud.com (Ken Gillett) Date: Sun, 9 May 2021 16:04:03 +0100 Subject: [Icecast] Transcoding Message-ID: <8307399E-D5C9-4E0F-8418-CE0F96E45DD0@icloud.com> Despite success in one area, I am now disappointed to realise that although Icecast can run a script when a source connects and/or disconnects, it doesn?t seem able to do this for listeners. Although the actual source is a SAT>IP server that stops streaming and frees up the tuners when no more listeners (like Icecast does with relays) and Icecast will stop streaming when no more listeners, the required intermediate transcoding process knows nothing of all this. I was under the impression that Icecast could run scripts at the suitable times and I planned to write the script to handle this, starting and stopping an ffmpeg process doing the transcoding. But for this to work, I have to know when the first listener connects and when the last listener disconnects. Anyone with deeper knowledge of Icecast suggest how I could achieve that? Ken G i l l e t t _/_/_/_/_/_/_/_/ From cf at it-flash.de Sun May 9 17:28:25 2021 From: cf at it-flash.de (Christian 'flash2' Fladung) Date: Sun, 09 May 2021 19:28:25 +0200 Subject: [Icecast] Fwd: Transcoding In-Reply-To: <8307399E-D5C9-4E0F-8418-CE0F96E45DD0@icloud.com> References: <8307399E-D5C9-4E0F-8418-CE0F96E45DD0@icloud.com> Message-ID: <97a0dd41d1844a45aa3a27ea7f584f78@it-flash.de> I just transcode in opam/liquidsoap. https://necta.it-flash.de for mobile devices ;) -------- Original Message -------- Subject: [Icecast] Transcoding Date: 2021-05-09 17:04 From: Ken Gillett To: Icecast streaming server user discussions Reply-To: Icecast streaming server user discussions Despite success in one area, I am now disappointed to realise that although Icecast can run a script when a source connects and/or disconnects, it doesn?t seem able to do this for listeners. Although the actual source is a SAT>IP server that stops streaming and frees up the tuners when no more listeners (like Icecast does with relays) and Icecast will stop streaming when no more listeners, the required intermediate transcoding process knows nothing of all this. I was under the impression that Icecast could run scripts at the suitable times and I planned to write the script to handle this, starting and stopping an ffmpeg process doing the transcoding. But for this to work, I have to know when the first listener connects and when the last listener disconnects. Anyone with deeper knowledge of Icecast suggest how I could achieve that? Ken G i l l e t t _/_/_/_/_/_/_/_/ _______________________________________________ Icecast mailing list Icecast at xiph.org http://lists.xiph.org/mailman/listinfo/icecast -- MfG, Christian 'flash2'Fladung ("`-''-/").___..--''"`-._ `6_ 6 ) `-. ( ).`-.__.`) (_Y_.)' ._ ) `._ `. ``-..-' _..`--'_..-_/ /--'_.' ,' (il),-'' (li),' ((!.-' o_) >>> eoo Hey! My Name IS NEO. Trinity : Hello Neo. Neo : How do you know that name? Trinity ... https://lab.spacecourt.org/sesamstra__e_-_ernie_als_friseur_-_ernie___bert_3_mal-nbixe6tbxq4.mp4 *lufthol* => https://lab.spacecourt.org/mr._hankey_-_der_kreislauf_des_kot_s-ejrfmak01ie.mp4 From cf at it-flash.de Sun May 9 17:45:47 2021 From: cf at it-flash.de (Christian 'flash2' Fladung) Date: Sun, 09 May 2021 19:45:47 +0200 Subject: [Icecast] Fwd: Transcoding In-Reply-To: <8307399E-D5C9-4E0F-8418-CE0F96E45DD0@icloud.com> References: <8307399E-D5C9-4E0F-8418-CE0F96E45DD0@icloud.com> Message-ID: I guess you mean something like on-demand transcoding? I don't get your purpose right ;-) -------- Original Message -------- Subject: [Icecast] Transcoding Date: 2021-05-09 17:04 From: Ken Gillett To: Icecast streaming server user discussions Reply-To: Icecast streaming server user discussions Despite success in one area, I am now disappointed to realise that although Icecast can run a script when a source connects and/or disconnects, it doesn?t seem able to do this for listeners. Although the actual source is a SAT>IP server that stops streaming and frees up the tuners when no more listeners (like Icecast does with relays) and Icecast will stop streaming when no more listeners, the required intermediate transcoding process knows nothing of all this. I was under the impression that Icecast could run scripts at the suitable times and I planned to write the script to handle this, starting and stopping an ffmpeg process doing the transcoding. But for this to work, I have to know when the first listener connects and when the last listener disconnects. Anyone with deeper knowledge of Icecast suggest how I could achieve that? Ken G i l l e t t _/_/_/_/_/_/_/_/ _______________________________________________ Icecast mailing list Icecast at xiph.org http://lists.xiph.org/mailman/listinfo/icecast -- Deprecated: Automatically populating $HTTP_RAW_POST_DATA is deprecated and will be removed in a future version. To avoid this warning set 'always_populate_raw_post_data' to '-1' in php.ini and use the php://input stream instead. in Unknown on line 0 Warning: Cannot modify header information - headers already sent in Unknown on line 0 MfG, Christian 'flash2'Fladung ("`-''-/").___..--''"`-._ `6_ 6 ) `-. ( ).`-.__.`) (_Y_.)' ._ ) `._ `. ``-..-' _..`--'_..-_/ /--'_.' ,' (il),-'' (li),' ((!.-' o_) >>> eoo Hey! My Name IS NEO. Trinity : Hello Neo. Neo : How do you know that name? Trinity ... => https://dragonfly.it-flash.de/modules/coppermine/albums/userpics/10000/normal_t001_282129.jpg => https://lab.spacecourt.org/bob_marley_vs._funkstar_deluxe_-_sun_is_shining.mp3 https://dragonfly.it-flash.de/uploads/forums/ice_mc_-_take_away_the_colour.mp3 From kengroups at icloud.com Sun May 9 18:15:14 2021 From: kengroups at icloud.com (Ken Gillett) Date: Sun, 9 May 2021 19:15:14 +0100 Subject: [Icecast] Transcoding In-Reply-To: References: <8307399E-D5C9-4E0F-8418-CE0F96E45DD0@icloud.com> Message-ID: <0DBF28D1-DAD8-4A07-BD5B-4F9FB40FD046@icloud.com> This is for streaming radio stations broadcast from satellite and when there are no listeners, tuners must be free for use by other (Icecast) listeners or even TV. Although both the SAT>IP server (minisatip) and Icecast know when they have at least one listener (and stop streaming when not), a separate intermediate transcoding process does not, but needs to be started and stopped, according to listener demand. Otherwise, it will stream continuously and minisatip will remain locked onto that tuner and both tuners (or however many there) will be permanently in use even when no-one is listening. Everything HAS to stop when there are no listeners. As I understand it, Icecast will not be broadcasting any stream when there are no listeners, but the transcode process will continue transcoding and pulling the stream from minisatip, which will lock that tuner from any other usage. So somehow the transcoding process has to be stopped when there are no more listeners and likewise needs to be started when the first listener connects and right now I can see no way to do either. Ken G i l l e t t _/_/_/_/_/_/_/_/ > On 9 May 2021, at 18:45, Christian 'flash2' Fladung wrote: > > I guess you mean something like on-demand transcoding? > I don't get your purpose right ;-) > >> -------- Original Message -------- >> Subject: [Icecast] Transcoding >> Date: 2021-05-09 17:04 >> From: Ken Gillett >> To: Icecast streaming server user discussions >> Reply-To: Icecast streaming server user discussions >> >> Despite success in one area, I am now disappointed to realise that although Icecast can run a script when a source connects and/or disconnects, it doesn?t seem able to do this for listeners. >> >> Although the actual source is a SAT>IP server that stops streaming and frees up the tuners when no more listeners (like Icecast does with relays) and Icecast will stop streaming when no more listeners, the required intermediate transcoding process knows nothing of all this. I was under the impression that Icecast could run scripts at the suitable times and I planned to write the script to handle this, starting and stopping an ffmpeg process doing the transcoding. But for this to work, I have to know when the first listener connects and when the last listener disconnects. >> >> Anyone with deeper knowledge of Icecast suggest how I could achieve that? >> From lr at pripple.de Sun May 9 19:09:26 2021 From: lr at pripple.de (Lorenz Reichelt) Date: Sun, 9 May 2021 21:09:26 +0200 Subject: [Icecast] Transcoding In-Reply-To: <0DBF28D1-DAD8-4A07-BD5B-4F9FB40FD046@icloud.com> References: <0DBF28D1-DAD8-4A07-BD5B-4F9FB40FD046@icloud.com> Message-ID: Hi Ken, I suggest you poll the statistics every time the log file changes (? file system event) and compare the list of streams with at least one listener with the list of active transcoders. So far for a workaround. I agree, though, that a on-listener-(dis)connect hook could be useful. ? Lorenz From kengroups at icloud.com Mon May 10 08:05:19 2021 From: kengroups at icloud.com (Ken Gillett) Date: Mon, 10 May 2021 09:05:19 +0100 Subject: [Icecast] Transcoding In-Reply-To: References: <0DBF28D1-DAD8-4A07-BD5B-4F9FB40FD046@icloud.com> Message-ID: <59742D87-12E6-4140-8825-4F81A860A14C@icloud.com> Yes I was thinking the same about about polling the stats etc, but messy, really messy. As you say, what is needed are listener (dis)connect hooks. But I guess slim chance of that. Even then there would need to be some additional code to figure out how many listeners to that stream to determine whether transcoder needs to be started or stopped. While this sort of thing can be done ?externally?, far better if Icecast handled it internally and provided hooks for ?first listener connect? and ?last listener disconnect? that could be placed within the section. Even less chance of that. ?? Ken G i l l e t t _/_/_/_/_/_/_/_/ > On 9 May 2021, at 20:09, Lorenz Reichelt wrote: > > Hi Ken, I suggest you poll the statistics every time the log file changes (? file system event) and compare the list of streams with at least one listener with the list of active transcoders. So far for a workaround. I agree, though, that a on-listener-(dis)connect hook could be useful. ? Lorenz From lr at pripple.de Mon May 10 08:16:07 2021 From: lr at pripple.de (Lorenz Reichelt) Date: Mon, 10 May 2021 10:16:07 +0200 Subject: [Icecast] Transcoding In-Reply-To: <59742D87-12E6-4140-8825-4F81A860A14C@icloud.com> References: <0DBF28D1-DAD8-4A07-BD5B-4F9FB40FD046@icloud.com> <59742D87-12E6-4140-8825-4F81A860A14C@icloud.com> Message-ID: <634A8675-7274-48F7-99E9-DA4EB6743C56@pripple.de> I know. My contribution to a temporary solution for your task could be that subscribing to a file system event on the log file would avoid polling every second when there is no need for it. ;) From kengroups at icloud.com Tue May 11 17:47:51 2021 From: kengroups at icloud.com (Ken Gillett) Date: Tue, 11 May 2021 18:47:51 +0100 Subject: [Icecast] Transcoding In-Reply-To: <59742D87-12E6-4140-8825-4F81A860A14C@icloud.com> References: <0DBF28D1-DAD8-4A07-BD5B-4F9FB40FD046@icloud.com> <59742D87-12E6-4140-8825-4F81A860A14C@icloud.com> Message-ID: <476A1BEC-3783-45FD-AE02-52AA36F6056B@icloud.com> I was thinking more about the on-connect and disconnect options. The Icecast docs/guide say the specified scripts are run when that source (dis)connects, but how does that work for a relay mount, where the actual source does no such thing. When are those triggers actually run for a relay type mount? I saw something on Stackexchange that rather suggests these are in fact triggered when the connection is made to (and broken from) the relayed server, i.e. the source in this case. So the triggers occur when a connection is made (and broken) between the source and Icecast and independent of which end initiated the action. This seems to me to make sense. What else could they be in a relay mount. The reason this is then very interesting is that for a relay mount, that connection would be made (and broken) when the first listener connects and when the last listener disconnects as that is what Icecast uses to (dis)connect the relayed source and that is EXACTLY when I need to start and stop the transcoder. Could anyone possible confirm this. For a relay mount, are the on-connect and on-disconnect scripts triggered when Icecast connects to and disconnects from the relayed source? Ken G i l l e t t _/_/_/_/_/_/_/_/ > On 10 May 2021, at 09:05, Ken Gillett wrote: > > Yes I was thinking the same about about polling the stats etc, but messy, really messy. As you say, what is needed are listener (dis)connect hooks. But I guess slim chance of that. > > Even then there would need to be some additional code to figure out how many listeners to that stream to determine whether transcoder needs to be started or stopped. While this sort of thing can be done ?externally?, far better if Icecast handled it internally and provided hooks for ?first listener connect? and ?last listener disconnect? that could be placed within the section. > > Even less chance of that. ?? > > > Ken G i l l e t t > > _/_/_/_/_/_/_/_/ > > > >> On 9 May 2021, at 20:09, Lorenz Reichelt wrote: >> >> Hi Ken, I suggest you poll the statistics every time the log file changes (? file system event) and compare the list of streams with at least one listener with the list of active transcoders. So far for a workaround. I agree, though, that a on-listener-(dis)connect hook could be useful. ? Lorenz > From kengroups at icloud.com Wed May 12 08:16:04 2021 From: kengroups at icloud.com (Ken Gillett) Date: Wed, 12 May 2021 09:16:04 +0100 Subject: [Icecast] Transcoding In-Reply-To: <476A1BEC-3783-45FD-AE02-52AA36F6056B@icloud.com> References: <0DBF28D1-DAD8-4A07-BD5B-4F9FB40FD046@icloud.com> <59742D87-12E6-4140-8825-4F81A860A14C@icloud.com> <476A1BEC-3783-45FD-AE02-52AA36F6056B@icloud.com> Message-ID: <91C41692-3743-453F-8887-77D5986ECF90@icloud.com> Another couple of questions occur to me:- 1. Can Icecast relay itself? So could a relay mount be specified that relays from a normal mountpoint of the same Icecast server? 2. Is it possible to stream TO a relay mount? In this case, a relay mount is configured, but what happens if a source client sends a stream to that mountpoint? Anyone? Ken G i l l e t t _/_/_/_/_/_/_/_/ > On 11 May 2021, at 18:47, Ken Gillett wrote: > > I was thinking more about the on-connect and disconnect options. The Icecast docs/guide say the specified scripts are run when that source (dis)connects, but how does that work for a relay mount, where the actual source does no such thing. When are those triggers actually run for a relay type mount? > > I saw something on Stackexchange that rather suggests these are in fact triggered when the connection is made to (and broken from) the relayed server, i.e. the source in this case. So the triggers occur when a connection is made (and broken) between the source and Icecast and independent of which end initiated the action. This seems to me to make sense. What else could they be in a relay mount. > > The reason this is then very interesting is that for a relay mount, that connection would be made (and broken) when the first listener connects and when the last listener disconnects as that is what Icecast uses to (dis)connect the relayed source and that is EXACTLY when I need to start and stop the transcoder. > > Could anyone possible confirm this. For a relay mount, are the on-connect and on-disconnect scripts triggered when Icecast connects to and disconnects from the relayed source? > > > Ken G i l l e t t > > _/_/_/_/_/_/_/_/ > > > >> On 10 May 2021, at 09:05, Ken Gillett wrote: >> >> Yes I was thinking the same about about polling the stats etc, but messy, really messy. As you say, what is needed are listener (dis)connect hooks. But I guess slim chance of that. >> >> Even then there would need to be some additional code to figure out how many listeners to that stream to determine whether transcoder needs to be started or stopped. While this sort of thing can be done ?externally?, far better if Icecast handled it internally and provided hooks for ?first listener connect? and ?last listener disconnect? that could be placed within the section. >> >> Even less chance of that. ?? >> >> >> Ken G i l l e t t >> >> _/_/_/_/_/_/_/_/ >> >> >> >>> On 9 May 2021, at 20:09, Lorenz Reichelt wrote: >>> >>> Hi Ken, I suggest you poll the statistics every time the log file changes (? file system event) and compare the list of streams with at least one listener with the list of active transcoders. So far for a workaround. I agree, though, that a on-listener-(dis)connect hook could be useful. ? Lorenz >> > From ron at hartegroeten.nl Fri May 14 17:13:07 2021 From: ron at hartegroeten.nl (Ron Otten) Date: Fri, 14 May 2021 19:13:07 +0200 Subject: [Icecast] no sound for client Message-ID: Hi there, Can someone please help me. I have made a fresh Rasphian install on a Pi 3b and installed Icecast 2.4.4. Made the necessary adjustments in the config and connected with BroadcastMySelf 9,12 as source. When a connection is made, I see the mount with the right source appear on the Icecast Admin screen. When I login with a browser (Chrome and Firefox) with IP:8000 I get an Icecast Statuscreeen with information about the mount but no sound. Even when I click on the M3U, this is opened, but no sound. What could be the mistake? I would like to create a broadcastingsystem for a LAN not connected to the internet. thanks for all attention and help, Ron -------------- next part -------------- An HTML attachment was scrubbed... URL: From jordan at coolmic.net Fri May 14 17:29:12 2021 From: jordan at coolmic.net (Jordan Erickson) Date: Fri, 14 May 2021 10:29:12 -0700 Subject: [Icecast] no sound for client In-Reply-To: References: Message-ID: Hi Ron, Try IP:8000/WhateverMyMountNameIs.[ogg|opus|etc] You need to specify the mount name in addition to the servername+port as Icecast can broadcast many source streams simultaneously. Cheers, Jordan Erickson On 5/14/21 10:13 AM, Ron Otten wrote: > Hi there, > > Can someone please help me. > I have made a fresh Rasphian install on a Pi 3b and installed Icecast > 2.4.4. Made the necessary?adjustments in the config and connected with > BroadcastMySelf 9,12 as source. When a connection is made, I see the > mount with the right source appear on the Icecast Admin screen. When I > login with a browser (Chrome and Firefox) with IP:8000 I get an Icecast > Statuscreeen?with information about the mount but no sound. Even when I > click on the M3U, this is opened, but no sound. What could be the mistake? > > I would like to create a broadcastingsystem?for a LAN not connected to > the internet. > > thanks for all attention and help, > Ron > > _______________________________________________ > Icecast mailing list > Icecast at xiph.org > http://lists.xiph.org/mailman/listinfo/icecast > From zer0___ at hotmail.com Fri May 14 19:33:23 2021 From: zer0___ at hotmail.com (_zer0_ gravity) Date: Fri, 14 May 2021 19:33:23 +0000 Subject: [Icecast] no sound for client In-Reply-To: References: Message-ID: Are you trying to play the stream in the browser ? Most modern browsers should support that if you are using the actual stream url, and not the status page. You can try opening the url in VLC player for example. http://x.x.x.x:8000/mount If the streams opens without an error but you still don?t have any sound, you should check the BroadcastMyself settings. Grtz, Paul Van: Icecast Namens Ron Otten Verzonden: Friday, 14 May 2021 19:13 Aan: icecast at xiph.org Onderwerp: [Icecast] no sound for client Hi there, Can someone please help me. I have made a fresh Rasphian install on a Pi 3b and installed Icecast 2.4.4. Made the necessary adjustments in the config and connected with BroadcastMySelf 9,12 as source. When a connection is made, I see the mount with the right source appear on the Icecast Admin screen. When I login with a browser (Chrome and Firefox) with IP:8000 I get an Icecast Statuscreeen with information about the mount but no sound. Even when I click on the M3U, this is opened, but no sound. What could be the mistake? I would like to create a broadcastingsystem for a LAN not connected to the internet. thanks for all attention and help, Ron -------------- next part -------------- An HTML attachment was scrubbed... URL: From daddyo323 at gmail.com Fri May 14 22:04:03 2021 From: daddyo323 at gmail.com (Rick Keniuk) Date: Fri, 14 May 2021 17:04:03 -0500 Subject: [Icecast] no sound for client In-Reply-To: References: Message-ID: Tried latest Firefox yesterday and streaming OPUS and FLAC do not play. They appear to download rather than play. MP3 and AAC were playing. Chrome was OK. On Fri, May 14, 2021, 2:33 PM _zer0_ gravity wrote: > Are you trying to play the stream in the browser ? > > Most modern browsers should support that if you are using the actual > stream url, and not the status page. > > You can try opening the url in VLC player for example. > > http://x.x.x.x:8000/mount > > If the streams opens without an error but you still don?t have any sound, > you should check the BroadcastMyself settings. > > > > Grtz, Paul > > > > *Van:* Icecast *Namens * Ron Otten > *Verzonden:* Friday, 14 May 2021 19:13 > *Aan:* icecast at xiph.org > *Onderwerp:* [Icecast] no sound for client > > > > Hi there, > > > > Can someone please help me. > > I have made a fresh Rasphian install on a Pi 3b and installed Icecast > 2.4.4. Made the necessary adjustments in the config and connected with > BroadcastMySelf 9,12 as source. When a connection is made, I see the mount > with the right source appear on the Icecast Admin screen. When I login with > a browser (Chrome and Firefox) with IP:8000 I get an Icecast > Statuscreeen with information about the mount but no sound. Even when I > click on the M3U, this is opened, but no sound. What could be the mistake? > > > > I would like to create a broadcastingsystem for a LAN not connected to the > internet. > > > > thanks for all attention and help, > > Ron > _______________________________________________ > Icecast mailing list > Icecast at xiph.org > http://lists.xiph.org/mailman/listinfo/icecast > -------------- next part -------------- An HTML attachment was scrubbed... URL: From ron at hartegroeten.nl Sat May 15 15:29:13 2021 From: ron at hartegroeten.nl (Ron Otten) Date: Sat, 15 May 2021 17:29:13 +0200 Subject: [Icecast] no sound for client In-Reply-To: References: Message-ID: Thanks everyone, I didn't name the mountpoint and had to figure it out how to do that. I set it in the config of the source and now it's working fine but I think I will also make a named mount in the icecast.xml for it. Next steps are to auto start icecast on startup Raspberry Pi, provide a verbal url for easy communication to clients and a fall-back mount for clients in case the first one gets lost. I am open to all suggestions and will highly appreciate your advice. best, Ron On Sat, 15 May 2021 at 00:04, Rick Keniuk wrote: > Tried latest Firefox yesterday and streaming OPUS and FLAC do not play. > They appear to download rather than play. MP3 and AAC were playing. > Chrome was OK. > > On Fri, May 14, 2021, 2:33 PM _zer0_ gravity wrote: > >> Are you trying to play the stream in the browser ? >> >> Most modern browsers should support that if you are using the actual >> stream url, and not the status page. >> >> You can try opening the url in VLC player for example. >> >> http://x.x.x.x:8000/mount >> >> If the streams opens without an error but you still don?t have any sound, >> you should check the BroadcastMyself settings. >> >> >> >> Grtz, Paul >> >> >> >> *Van:* Icecast *Namens * Ron Otten >> *Verzonden:* Friday, 14 May 2021 19:13 >> *Aan:* icecast at xiph.org >> *Onderwerp:* [Icecast] no sound for client >> >> >> >> Hi there, >> >> >> >> Can someone please help me. >> >> I have made a fresh Rasphian install on a Pi 3b and installed Icecast >> 2.4.4. Made the necessary adjustments in the config and connected with >> BroadcastMySelf 9,12 as source. When a connection is made, I see the mount >> with the right source appear on the Icecast Admin screen. When I login with >> a browser (Chrome and Firefox) with IP:8000 I get an Icecast >> Statuscreeen with information about the mount but no sound. Even when I >> click on the M3U, this is opened, but no sound. What could be the mistake? >> >> >> >> I would like to create a broadcastingsystem for a LAN not connected to >> the internet. >> >> >> >> thanks for all attention and help, >> >> Ron >> _______________________________________________ >> Icecast mailing list >> Icecast at xiph.org >> http://lists.xiph.org/mailman/listinfo/icecast >> > _______________________________________________ > Icecast mailing list > Icecast at xiph.org > http://lists.xiph.org/mailman/listinfo/icecast > -------------- next part -------------- An HTML attachment was scrubbed... URL: From cf at it-flash.de Sat May 15 20:16:51 2021 From: cf at it-flash.de (Christian 'flash2' Fladung) Date: Sat, 15 May 2021 22:16:51 +0200 Subject: [Icecast] Fwd: Re: no sound for client In-Reply-To: References: Message-ID: For me the whole libshout for sending to server is broken. The complete library. Retry is standing there Mr. ;-) flash at xiph.org -------- Original Message -------- Subject: Re: [Icecast] no sound for client Date: 2021-05-15 17:29 From: Ron Otten To: Icecast streaming server user discussions Reply-To: Icecast streaming server user discussions Thanks everyone, I didn't name the mountpoint and had to figure it out how to do that. I set it in the config of the source and now it's working fine but I think I will also make a named mount in the icecast.xml for it. Next steps are to auto start icecast on startup Raspberry Pi, provide a verbal url for easy communication to clients and a fall-back mount for clients in case the first one gets lost. I am open to all suggestions and will highly appreciate your advice. best, Ron On Sat, 15 May 2021 at 00:04, Rick Keniuk wrote: > Tried latest Firefox yesterday and streaming OPUS and FLAC do not > play. They appear to download rather than play. MP3 and AAC were > playing. Chrome was OK. > > On Fri, May 14, 2021, 2:33 PM _zer0_ gravity > wrote: > >> Are you trying to play the stream in the browser ? >> >> Most modern browsers should support that if you are using the actual >> stream url, and not the status page. >> >> You can try opening the url in VLC player for example. >> >> http://x.x.x.x:8000/mount >> >> If the streams opens without an error but you still don?t have any >> sound, you should check the BroadcastMyself settings. >> >> Grtz, Paul >> >> Van: Icecast Namens Ron Otten >> Verzonden: Friday, 14 May 2021 19:13 >> Aan: icecast at xiph.org >> Onderwerp: [Icecast] no sound for client >> >> Hi there, >> >> Can someone please help me. >> >> I have made a fresh Rasphian install on a Pi 3b and installed >> Icecast 2.4.4. Made the necessary adjustments in the config and >> connected with BroadcastMySelf 9,12 as source. When a connection is >> made, I see the mount with the right source appear on the Icecast >> Admin screen. When I login with a browser (Chrome and Firefox) with >> IP:8000 I get an Icecast Statuscreeen with information about the >> mount but no sound. Even when I click on the M3U, this is opened, >> but no sound. What could be the mistake? >> >> I would like to create a broadcastingsystem for a LAN not connected >> to the internet. >> >> thanks for all attention and help, >> >> Ron _______________________________________________ >> Icecast mailing list >> Icecast at xiph.org >> http://lists.xiph.org/mailman/listinfo/icecast > _______________________________________________ > Icecast mailing list > Icecast at xiph.org > http://lists.xiph.org/mailman/listinfo/icecast _______________________________________________ Icecast mailing list Icecast at xiph.org http://lists.xiph.org/mailman/listinfo/icecast -- Deprecated: Automatically populating $HTTP_RAW_POST_DATA is deprecated and will be removed in a future version. To avoid this warning set 'always_populate_raw_post_data' to '-1' in php.ini and use the php://input stream instead. in Unknown on line 0 Warning: Cannot modify header information - headers already sent in Unknown on line 0 MfG, Christian 'flash2'Fladung ("`-''-/").___..--''"`-._ `6_ 6 ) `-. ( ).`-.__.`) (_Y_.)' ._ ) `._ `. ``-..-' _..`--'_..-_/ /--'_.' ,' (il),-'' (li),' ((!.-' o_) >>> eoo Hey! My Name IS NEO. Trinity : Hello Neo. Neo : How do you know that name? Trinity ... => https://dragonfly.it-flash.de/modules/coppermine/albums/userpics/10000/normal_t001_282129.jpg => https://lab.spacecourt.org/bob_marley_vs._funkstar_deluxe_-_sun_is_shining.mp3 From cf at it-flash.de Sat May 15 20:22:05 2021 From: cf at it-flash.de (Christian 'flash2' Fladung) Date: Sat, 15 May 2021 22:22:05 +0200 Subject: [Icecast] Fwd: Fwd: Re: no sound for client In-Reply-To: References: Message-ID: For ME and with ME xiph.org is sleeping with the NSA. Not only because of me, yes: WITH ME! Libshout got transfered and the Origin has to follow his principles. -------- Original Message -------- Subject: [Icecast] Fwd: Re: no sound for client Date: 2021-05-15 22:16 From: Christian 'flash2' Fladung To: icecast at xiph.org Reply-To: Icecast streaming server user discussions For me the whole libshout for sending to server is broken. The complete library. Retry is standing there Mr. ;-) flash at xiph.org -------- Original Message -------- Subject: Re: [Icecast] no sound for client Date: 2021-05-15 17:29 From: Ron Otten To: Icecast streaming server user discussions Reply-To: Icecast streaming server user discussions Thanks everyone, I didn't name the mountpoint and had to figure it out how to do that. I set it in the config of the source and now it's working fine but I think I will also make a named mount in the icecast.xml for it. Next steps are to auto start icecast on startup Raspberry Pi, provide a verbal url for easy communication to clients and a fall-back mount for clients in case the first one gets lost. I am open to all suggestions and will highly appreciate your advice. best, Ron On Sat, 15 May 2021 at 00:04, Rick Keniuk wrote: > Tried latest Firefox yesterday and streaming OPUS and FLAC do not > play. They appear to download rather than play. MP3 and AAC were > playing. Chrome was OK. > > On Fri, May 14, 2021, 2:33 PM _zer0_ gravity > wrote: > >> Are you trying to play the stream in the browser ? >> >> Most modern browsers should support that if you are using the actual >> stream url, and not the status page. >> >> You can try opening the url in VLC player for example. >> >> http://x.x.x.x:8000/mount >> >> If the streams opens without an error but you still don?t have any >> sound, you should check the BroadcastMyself settings. >> >> Grtz, Paul >> >> Van: Icecast Namens Ron Otten >> Verzonden: Friday, 14 May 2021 19:13 >> Aan: icecast at xiph.org >> Onderwerp: [Icecast] no sound for client >> >> Hi there, >> >> Can someone please help me. >> >> I have made a fresh Rasphian install on a Pi 3b and installed >> Icecast 2.4.4. Made the necessary adjustments in the config and >> connected with BroadcastMySelf 9,12 as source. When a connection is >> made, I see the mount with the right source appear on the Icecast >> Admin screen. When I login with a browser (Chrome and Firefox) with >> IP:8000 I get an Icecast Statuscreeen with information about the >> mount but no sound. Even when I click on the M3U, this is opened, >> but no sound. What could be the mistake? >> >> I would like to create a broadcastingsystem for a LAN not connected >> to the internet. >> >> thanks for all attention and help, >> >> Ron _______________________________________________ >> Icecast mailing list >> Icecast at xiph.org >> http://lists.xiph.org/mailman/listinfo/icecast > _______________________________________________ > Icecast mailing list > Icecast at xiph.org > http://lists.xiph.org/mailman/listinfo/icecast _______________________________________________ Icecast mailing list Icecast at xiph.org http://lists.xiph.org/mailman/listinfo/icecast -- Deprecated: Automatically populating $HTTP_RAW_POST_DATA is deprecated and will be removed in a future version. To avoid this warning set 'always_populate_raw_post_data' to '-1' in php.ini and use the php://input stream instead. in Unknown on line 0 Warning: Cannot modify header information - headers already sent in Unknown on line 0 MfG, Christian 'flash2'Fladung ("`-''-/").___..--''"`-._ `6_ 6 ) `-. ( ).`-.__.`) (_Y_.)' ._ ) `._ `. ``-..-' _..`--'_..-_/ /--'_.' ,' (il),-'' (li),' ((!.-' o_) >>> eoo Hey! My Name IS NEO. Trinity : Hello Neo. Neo : How do you know that name? Trinity ... => https://dragonfly.it-flash.de/modules/coppermine/albums/userpics/10000/normal_t001_282129.jpg => https://lab.spacecourt.org/bob_marley_vs._funkstar_deluxe_-_sun_is_shining.mp3 _______________________________________________ Icecast mailing list Icecast at xiph.org http://lists.xiph.org/mailman/listinfo/icecast -- Deprecated: Automatically populating $HTTP_RAW_POST_DATA is deprecated and will be removed in a future version. To avoid this warning set 'always_populate_raw_post_data' to '-1' in php.ini and use the php://input stream instead. in Unknown on line 0 Warning: Cannot modify header information - headers already sent in Unknown on line 0 MfG, Christian 'flash2'Fladung ("`-''-/").___..--''"`-._ `6_ 6 ) `-. ( ).`-.__.`) (_Y_.)' ._ ) `._ `. ``-..-' _..`--'_..-_/ /--'_.' ,' (il),-'' (li),' ((!.-' o_) >>> eoo Hey! My Name IS NEO. Trinity : Hello Neo. Neo : How do you know that name? Trinity ... => https://dragonfly.it-flash.de/modules/coppermine/albums/userpics/10000/normal_t001_282129.jpg => https://lab.spacecourt.org/bob_marley_vs._funkstar_deluxe_-_sun_is_shining.mp3 From cf at it-flash.de Sat May 15 20:29:12 2021 From: cf at it-flash.de (Christian 'flash2' Fladung) Date: Sat, 15 May 2021 22:29:12 +0200 Subject: [Icecast] Fwd: Fwd: Fwd: Re: no sound for client In-Reply-To: References: Message-ID: <75ac4a26bd77556502db86bf2e168ee0@it-flash.de> right? right? right: yeah! -------- Original Message -------- Subject: [Icecast] Fwd: Fwd: Re: no sound for client Date: 2021-05-15 22:22 From: Christian 'flash2' Fladung To: icecast at xiph.org Reply-To: Icecast streaming server user discussions For ME and with ME xiph.org is sleeping with the NSA. Not only because of me, yes: WITH ME! Libshout got transfered and the Origin has to follow his principles. -------- Original Message -------- Subject: [Icecast] Fwd: Re: no sound for client Date: 2021-05-15 22:16 From: Christian 'flash2' Fladung To: icecast at xiph.org Reply-To: Icecast streaming server user discussions For me the whole libshout for sending to server is broken. The complete library. Retry is standing there Mr. ;-) flash at xiph.org -------- Original Message -------- Subject: Re: [Icecast] no sound for client Date: 2021-05-15 17:29 From: Ron Otten To: Icecast streaming server user discussions Reply-To: Icecast streaming server user discussions Thanks everyone, I didn't name the mountpoint and had to figure it out how to do that. I set it in the config of the source and now it's working fine but I think I will also make a named mount in the icecast.xml for it. Next steps are to auto start icecast on startup Raspberry Pi, provide a verbal url for easy communication to clients and a fall-back mount for clients in case the first one gets lost. I am open to all suggestions and will highly appreciate your advice. best, Ron On Sat, 15 May 2021 at 00:04, Rick Keniuk wrote: > Tried latest Firefox yesterday and streaming OPUS and FLAC do not > play. They appear to download rather than play. MP3 and AAC were > playing. Chrome was OK. > > On Fri, May 14, 2021, 2:33 PM _zer0_ gravity > wrote: > >> Are you trying to play the stream in the browser ? >> >> Most modern browsers should support that if you are using the actual >> stream url, and not the status page. >> >> You can try opening the url in VLC player for example. >> >> http://x.x.x.x:8000/mount >> >> If the streams opens without an error but you still don?t have any >> sound, you should check the BroadcastMyself settings. >> >> Grtz, Paul >> >> Van: Icecast Namens Ron Otten >> Verzonden: Friday, 14 May 2021 19:13 >> Aan: icecast at xiph.org >> Onderwerp: [Icecast] no sound for client >> >> Hi there, >> >> Can someone please help me. >> >> I have made a fresh Rasphian install on a Pi 3b and installed >> Icecast 2.4.4. Made the necessary adjustments in the config and >> connected with BroadcastMySelf 9,12 as source. When a connection is >> made, I see the mount with the right source appear on the Icecast >> Admin screen. When I login with a browser (Chrome and Firefox) with >> IP:8000 I get an Icecast Statuscreeen with information about the >> mount but no sound. Even when I click on the M3U, this is opened, >> but no sound. What could be the mistake? >> >> I would like to create a broadcastingsystem for a LAN not connected >> to the internet. >> >> thanks for all attention and help, >> >> Ron _______________________________________________ >> Icecast mailing list >> Icecast at xiph.org >> http://lists.xiph.org/mailman/listinfo/icecast > _______________________________________________ > Icecast mailing list > Icecast at xiph.org > http://lists.xiph.org/mailman/listinfo/icecast _______________________________________________ Icecast mailing list Icecast at xiph.org http://lists.xiph.org/mailman/listinfo/icecast -- Deprecated: Automatically populating $HTTP_RAW_POST_DATA is deprecated and will be removed in a future version. To avoid this warning set 'always_populate_raw_post_data' to '-1' in php.ini and use the php://input stream instead. in Unknown on line 0 Warning: Cannot modify header information - headers already sent in Unknown on line 0 MfG, Christian 'flash2'Fladung ("`-''-/").___..--''"`-._ `6_ 6 ) `-. ( ).`-.__.`) (_Y_.)' ._ ) `._ `. ``-..-' _..`--'_..-_/ /--'_.' ,' (il),-'' (li),' ((!.-' o_) >>> eoo Hey! My Name IS NEO. Trinity : Hello Neo. Neo : How do you know that name? Trinity ... => https://dragonfly.it-flash.de/modules/coppermine/albums/userpics/10000/normal_t001_282129.jpg => https://lab.spacecourt.org/bob_marley_vs._funkstar_deluxe_-_sun_is_shining.mp3 _______________________________________________ Icecast mailing list Icecast at xiph.org http://lists.xiph.org/mailman/listinfo/icecast -- Deprecated: Automatically populating $HTTP_RAW_POST_DATA is deprecated and will be removed in a future version. To avoid this warning set 'always_populate_raw_post_data' to '-1' in php.ini and use the php://input stream instead. in Unknown on line 0 Warning: Cannot modify header information - headers already sent in Unknown on line 0 MfG, Christian 'flash2'Fladung ("`-''-/").___..--''"`-._ `6_ 6 ) `-. ( ).`-.__.`) (_Y_.)' ._ ) `._ `. ``-..-' _..`--'_..-_/ /--'_.' ,' (il),-'' (li),' ((!.-' o_) >>> eoo Hey! My Name IS NEO. Trinity : Hello Neo. Neo : How do you know that name? Trinity ... => https://dragonfly.it-flash.de/modules/coppermine/albums/userpics/10000/normal_t001_282129.jpg => https://lab.spacecourt.org/bob_marley_vs._funkstar_deluxe_-_sun_is_shining.mp3 _______________________________________________ Icecast mailing list Icecast at xiph.org http://lists.xiph.org/mailman/listinfo/icecast -- Deprecated: Automatically populating $HTTP_RAW_POST_DATA is deprecated and will be removed in a future version. To avoid this warning set 'always_populate_raw_post_data' to '-1' in php.ini and use the php://input stream instead. in Unknown on line 0 Warning: Cannot modify header information - headers already sent in Unknown on line 0 MfG, Christian 'flash2'Fladung ("`-''-/").___..--''"`-._ `6_ 6 ) `-. ( ).`-.__.`) (_Y_.)' ._ ) `._ `. ``-..-' _..`--'_..-_/ /--'_.' ,' (il),-'' (li),' ((!.-' o_) >>> eoo Hey! My Name IS NEO. Trinity : Hello Neo. Neo : How do you know that name? Trinity ... => https://dragonfly.it-flash.de/modules/coppermine/albums/userpics/10000/normal_t001_282129.jpg => https://lab.spacecourt.org/bob_marley_vs._funkstar_deluxe_-_sun_is_shining.mp3 From mvandop at xs4all.nl Sat May 15 20:40:44 2021 From: mvandop at xs4all.nl (Michel van Dop) Date: Sat, 15 May 2021 22:40:44 +0200 Subject: [Icecast] Fwd: Fwd: Fwd: Re: no sound for client In-Reply-To: <75ac4a26bd77556502db86bf2e168ee0@it-flash.de> References: <75ac4a26bd77556502db86bf2e168ee0@it-flash.de> Message-ID: You need to use the extention in de mountpoint name. Like /high.flac And /opus.opus See here a example https://secure.live-streams.nl/status.xsl Best regards, Michel > Op 15 mei 2021 om 22:30 heeft Christian 'flash2' Fladung het volgende geschreven: > > ?right? right? right: yeah! > > -------- Original Message -------- > Subject: [Icecast] Fwd: Fwd: Re: no sound for client > Date: 2021-05-15 22:22 > From: Christian 'flash2' Fladung > To: icecast at xiph.org > Reply-To: Icecast streaming server user discussions > > For ME and with ME xiph.org is sleeping with the NSA. > Not only because of me, yes: WITH ME! > Libshout got transfered and the Origin has to follow his principles. > > -------- Original Message -------- > Subject: [Icecast] Fwd: Re: no sound for client > Date: 2021-05-15 22:16 > From: Christian 'flash2' Fladung > To: icecast at xiph.org > Reply-To: Icecast streaming server user discussions > > For me the whole libshout for sending to server is broken. > The complete library. > Retry is standing there Mr. ;-) > flash at xiph.org > > -------- Original Message -------- > Subject: Re: [Icecast] no sound for client > Date: 2021-05-15 17:29 > From: Ron Otten > To: Icecast streaming server user discussions > Reply-To: Icecast streaming server user discussions > > Thanks everyone, > > I didn't name the mountpoint and had to figure it out how to do that. I > set it in the config of the source and now it's working fine but I think > I will also make a named mount in the icecast.xml for it. > Next steps are to auto start icecast on startup Raspberry Pi, provide a > verbal url for easy communication to clients and a fall-back mount for > clients in case the first one gets lost. > > I am open to all suggestions and will highly appreciate your advice. > > best, > Ron > >> On Sat, 15 May 2021 at 00:04, Rick Keniuk wrote: >> >> Tried latest Firefox yesterday and streaming OPUS and FLAC do not >> play. They appear to download rather than play. MP3 and AAC were >> playing. Chrome was OK. >>> On Fri, May 14, 2021, 2:33 PM _zer0_ gravity >>> wrote: >>> Are you trying to play the stream in the browser ? >>> Most modern browsers should support that if you are using the actual >>> stream url, and not the status page. >>> You can try opening the url in VLC player for example. >>> http://x.x.x.x:8000/mount >>> If the streams opens without an error but you still don?t have any >>> sound, you should check the BroadcastMyself settings. >>> Grtz, Paul >>> Van: Icecast Namens Ron Otten >>> Verzonden: Friday, 14 May 2021 19:13 >>> Aan: icecast at xiph.org >>> Onderwerp: [Icecast] no sound for client >>> Hi there, >>> Can someone please help me. >>> I have made a fresh Rasphian install on a Pi 3b and installed >>> Icecast 2.4.4. Made the necessary adjustments in the config and >>> connected with BroadcastMySelf 9,12 as source. When a connection is >>> made, I see the mount with the right source appear on the Icecast >>> Admin screen. When I login with a browser (Chrome and Firefox) with >>> IP:8000 I get an Icecast Statuscreeen with information about the >>> mount but no sound. Even when I click on the M3U, this is opened, >>> but no sound. What could be the mistake? >>> I would like to create a broadcastingsystem for a LAN not connected >>> to the internet. >>> thanks for all attention and help, >>> Ron _______________________________________________ >>> Icecast mailing list >>> Icecast at xiph.org >>> http://lists.xiph.org/mailman/listinfo/icecast >> _______________________________________________ >> Icecast mailing list >> Icecast at xiph.org >> http://lists.xiph.org/mailman/listinfo/icecast > _______________________________________________ > Icecast mailing list > Icecast at xiph.org > http://lists.xiph.org/mailman/listinfo/icecast > > -- > Deprecated: Automatically populating $HTTP_RAW_POST_DATA is deprecated and > will be removed in a future version. To avoid this warning set > 'always_populate_raw_post_data' to '-1' in php.ini and use the php://input > stream instead. in Unknown on line 0 > > Warning: Cannot modify header information - headers already sent in Unknown > on line 0 > > MfG, > Christian 'flash2'Fladung > ("`-''-/").___..--''"`-._ > `6_ 6 ) `-. ( ).`-.__.`) > (_Y_.)' ._ ) `._ `. ``-..-' > _..`--'_..-_/ /--'_.' ,' > (il),-'' (li),' ((!.-' o_) >>> eoo > Hey! My Name IS NEO. > Trinity : Hello Neo. Neo : How do you know that name? Trinity ... > => > https://dragonfly.it-flash.de/modules/coppermine/albums/userpics/10000/normal_t001_282129.jpg > => > https://lab.spacecourt.org/bob_marley_vs._funkstar_deluxe_-_sun_is_shining.mp3 > _______________________________________________ > Icecast mailing list > Icecast at xiph.org > http://lists.xiph.org/mailman/listinfo/icecast > > -- > Deprecated: Automatically populating $HTTP_RAW_POST_DATA is deprecated and > will be removed in a future version. To avoid this warning set > 'always_populate_raw_post_data' to '-1' in php.ini and use the php://input > stream instead. in Unknown on line 0 > > Warning: Cannot modify header information - headers already sent in Unknown > on line 0 > > MfG, > Christian 'flash2'Fladung > ("`-''-/").___..--''"`-._ > `6_ 6 ) `-. ( ).`-.__.`) > (_Y_.)' ._ ) `._ `. ``-..-' > _..`--'_..-_/ /--'_.' ,' > (il),-'' (li),' ((!.-' o_) >>> eoo > Hey! My Name IS NEO. > Trinity : Hello Neo. Neo : How do you know that name? Trinity ... > => > https://dragonfly.it-flash.de/modules/coppermine/albums/userpics/10000/normal_t001_282129.jpg > => > https://lab.spacecourt.org/bob_marley_vs._funkstar_deluxe_-_sun_is_shining.mp3 > _______________________________________________ > Icecast mailing list > Icecast at xiph.org > http://lists.xiph.org/mailman/listinfo/icecast > > -- > Deprecated: Automatically populating $HTTP_RAW_POST_DATA is deprecated and > will be removed in a future version. To avoid this warning set > 'always_populate_raw_post_data' to '-1' in php.ini and use the php://input > stream instead. in Unknown on line 0 > > Warning: Cannot modify header information - headers already sent in Unknown > on line 0 > > MfG, > Christian 'flash2'Fladung > ("`-''-/").___..--''"`-._ > `6_ 6 ) `-. ( ).`-.__.`) > (_Y_.)' ._ ) `._ `. ``-..-' > _..`--'_..-_/ /--'_.' ,' > (il),-'' (li),' ((!.-' o_) >>> eoo > Hey! My Name IS NEO. > Trinity : Hello Neo. Neo : How do you know that name? Trinity ... > => > https://dragonfly.it-flash.de/modules/coppermine/albums/userpics/10000/normal_t001_282129.jpg > => > https://lab.spacecourt.org/bob_marley_vs._funkstar_deluxe_-_sun_is_shining.mp3 > _______________________________________________ > Icecast mailing list > Icecast at xiph.org > http://lists.xiph.org/mailman/listinfo/icecast -------------- next part -------------- An HTML attachment was scrubbed... URL: From cf at it-flash.de Sat May 15 20:52:12 2021 From: cf at it-flash.de (Christian 'flash2' Fladung) Date: Sat, 15 May 2021 22:52:12 +0200 Subject: [Icecast] Fwd: Re: Fwd: Fwd: Fwd: Re: no sound for client In-Reply-To: References: <75ac4a26bd77556502db86bf2e168ee0@it-flash.de> Message-ID: <52c9ffc447569eefcb4b167908a0319b@it-flash.de> Are you pretty sure? Iam very disappointed from this / and // mountpoint. fuck :) Sorry please talk wise :) -------- Original Message -------- Subject: Re: [Icecast] Fwd: Fwd: Fwd: Re: no sound for client Date: 2021-05-15 22:40 From: Michel van Dop To: Icecast streaming server user discussions Reply-To: Icecast streaming server user discussions You need to use the extention in de mountpoint name. Like /high.flac And /opus.opus See here a example https://secure.live-streams.nl/status.xsl Best regards, Michel > Op 15 mei 2021 om 22:30 heeft Christian 'flash2' Fladung > het volgende geschreven: > ?right? right? right: yeah! > > -------- Original Message -------- > Subject: [Icecast] Fwd: Fwd: Re: no sound for client > Date: 2021-05-15 22:22 > From: Christian 'flash2' Fladung > To: icecast at xiph.org > Reply-To: Icecast streaming server user discussions > > For ME and with ME xiph.org is sleeping with the NSA. > Not only because of me, yes: WITH ME! > Libshout got transfered and the Origin has to follow his principles. > > -------- Original Message -------- > Subject: [Icecast] Fwd: Re: no sound for client > Date: 2021-05-15 22:16 > From: Christian 'flash2' Fladung > To: icecast at xiph.org > Reply-To: Icecast streaming server user discussions > > For me the whole libshout for sending to server is broken. > The complete library. > Retry is standing there Mr. ;-) > flash at xiph.org > > -------- Original Message -------- > Subject: Re: [Icecast] no sound for client > Date: 2021-05-15 17:29 > From: Ron Otten > To: Icecast streaming server user discussions > Reply-To: Icecast streaming server user discussions > > Thanks everyone, > > I didn't name the mountpoint and had to figure it out how to do that. > I > set it in the config of the source and now it's working fine but I > think > I will also make a named mount in the icecast.xml for it. > Next steps are to auto start icecast on startup Raspberry Pi, provide > a > verbal url for easy communication to clients and a fall-back mount for > clients in case the first one gets lost. > > I am open to all suggestions and will highly appreciate your advice. > > best, > Ron > > On Sat, 15 May 2021 at 00:04, Rick Keniuk wrote: > >> Tried latest Firefox yesterday and streaming OPUS and FLAC do not > >> play. They appear to download rather than play. MP3 and AAC were > >> playing. Chrome was OK. > >> On Fri, May 14, 2021, 2:33 PM _zer0_ gravity > >> wrote: > Are you trying to play the stream in the browser ? >> Most modern browsers should support that if you are using the actual >> stream url, and not the status page. >> You can try opening the url in VLC player for example. >> http://x.x.x.x:8000/mount >> If the streams opens without an error but you still don?t have any >> sound, you should check the BroadcastMyself settings. >> Grtz, Paul >> Van: Icecast Namens Ron Otten >> Verzonden: Friday, 14 May 2021 19:13 >> Aan: icecast at xiph.org >> Onderwerp: [Icecast] no sound for client >> Hi there, >> Can someone please help me. >> I have made a fresh Rasphian install on a Pi 3b and installed >> Icecast 2.4.4. Made the necessary adjustments in the config and >> connected with BroadcastMySelf 9,12 as source. When a connection is >> made, I see the mount with the right source appear on the Icecast >> Admin screen. When I login with a browser (Chrome and Firefox) with >> IP:8000 I get an Icecast Statuscreeen with information about the >> mount but no sound. Even when I click on the M3U, this is opened, >> but no sound. What could be the mistake? >> I would like to create a broadcastingsystem for a LAN not connected >> to the internet. >> thanks for all attention and help, >> Ron _______________________________________________ >> Icecast mailing list >> Icecast at xiph.org >> http://lists.xiph.org/mailman/listinfo/icecast > _______________________________________________ > Icecast mailing list > Icecast at xiph.org > http://lists.xiph.org/mailman/listinfo/icecast _______________________________________________ Icecast mailing list Icecast at xiph.org http://lists.xiph.org/mailman/listinfo/icecast -- Deprecated: Automatically populating $HTTP_RAW_POST_DATA is deprecated and will be removed in a future version. To avoid this warning set 'always_populate_raw_post_data' to '-1' in php.ini and use the php://input stream instead. in Unknown on line 0 Warning: Cannot modify header information - headers already sent in Unknown on line 0 MfG, Christian 'flash2'Fladung ("`-''-/").___..--''"`-._ `6_ 6 ) `-. ( ).`-.__.`) (_Y_.)' ._ ) `._ `. ``-..-' _..`--'_..-_/ /--'_.' ,' (il),-'' (li),' ((!.-' o_) >>> eoo Hey! My Name IS NEO. Trinity : Hello Neo. Neo : How do you know that name? Trinity ... => https://dragonfly.it-flash.de/modules/coppermine/albums/userpics/10000/normal_t001_282129.jpg => https://lab.spacecourt.org/bob_marley_vs._funkstar_deluxe_-_sun_is_shining.mp3 _______________________________________________ Icecast mailing list Icecast at xiph.org http://lists.xiph.org/mailman/listinfo/icecast -- Deprecated: Automatically populating $HTTP_RAW_POST_DATA is deprecated and will be removed in a future version. To avoid this warning set 'always_populate_raw_post_data' to '-1' in php.ini and use the php://input stream instead. in Unknown on line 0 Warning: Cannot modify header information - headers already sent in Unknown on line 0 MfG, Christian 'flash2'Fladung ("`-''-/").___..--''"`-._ `6_ 6 ) `-. ( ).`-.__.`) (_Y_.)' ._ ) `._ `. ``-..-' _..`--'_..-_/ /--'_.' ,' (il),-'' (li),' ((!.-' o_) >>> eoo Hey! My Name IS NEO. Trinity : Hello Neo. Neo : How do you know that name? Trinity ... => https://dragonfly.it-flash.de/modules/coppermine/albums/userpics/10000/normal_t001_282129.jpg => https://lab.spacecourt.org/bob_marley_vs._funkstar_deluxe_-_sun_is_shining.mp3 _______________________________________________ Icecast mailing list Icecast at xiph.org http://lists.xiph.org/mailman/listinfo/icecast -- Deprecated: Automatically populating $HTTP_RAW_POST_DATA is deprecated and will be removed in a future version. To avoid this warning set 'always_populate_raw_post_data' to '-1' in php.ini and use the php://input stream instead. in Unknown on line 0 Warning: Cannot modify header information - headers already sent in Unknown on line 0 MfG, Christian 'flash2'Fladung ("`-''-/").___..--''"`-._ `6_ 6 ) `-. ( ).`-.__.`) (_Y_.)' ._ ) `._ `. ``-..-' _..`--'_..-_/ /--'_.' ,' (il),-'' (li),' ((!.-' o_) >>> eoo Hey! My Name IS NEO. Trinity : Hello Neo. Neo : How do you know that name? Trinity ... => https://dragonfly.it-flash.de/modules/coppermine/albums/userpics/10000/normal_t001_282129.jpg => https://lab.spacecourt.org/bob_marley_vs._funkstar_deluxe_-_sun_is_shining.mp3 _______________________________________________ Icecast mailing list Icecast at xiph.org http://lists.xiph.org/mailman/listinfo/icecast _______________________________________________ Icecast mailing list Icecast at xiph.org http://lists.xiph.org/mailman/listinfo/icecast -- Deprecated: Automatically populating $HTTP_RAW_POST_DATA is deprecated and will be removed in a future version. To avoid this warning set 'always_populate_raw_post_data' to '-1' in php.ini and use the php://input stream instead. in Unknown on line 0 Warning: Cannot modify header information - headers already sent in Unknown on line 0 MfG, Christian 'flash2'Fladung ("`-''-/").___..--''"`-._ `6_ 6 ) `-. ( ).`-.__.`) (_Y_.)' ._ ) `._ `. ``-..-' _..`--'_..-_/ /--'_.' ,' (il),-'' (li),' ((!.-' o_) >>> eoo Hey! My Name IS NEO. Trinity : Hello Neo. Neo : How do you know that name? Trinity ... => https://dragonfly.it-flash.de/modules/coppermine/albums/userpics/10000/normal_t001_282129.jpg => https://lab.spacecourt.org/bob_marley_vs._funkstar_deluxe_-_sun_is_shining.mp3 From kengroups at icloud.com Fri May 21 13:27:52 2021 From: kengroups at icloud.com (Ken Gillett) Date: Fri, 21 May 2021 14:27:52 +0100 Subject: [Icecast] fallback loop Message-ID: <3BEC388D-CAE0-47F5-B22D-E3166E2B68F1@icloud.com> I?m trying to set up a fallback that plays a file - just silence in fact as it really is just a way of getting Icecast to wait instead of chucking off the listeners. Anyway? I?ve created an AAC file (same format as actual stream) of 10 secs of silence (using ffmpeg). I?m using ffplay to test this as it?s easy to see any errors and when I use that to connect, it plays once (i.e. for 10 secs) then I see this error:- Found duplicated MOOV Atom. Skipped it Which then rapidly repeats until I stop the process. Since the MOOV atom is required in such a file and simply looping it will inevitably cause the player to see repeated MOOVs as it receives the continuous stream, I cannot see how to prevent this. Yet Icecast docs are clear that the fallback file will be simply looped until the real intended source is again available. How can this work? How can I eliminate the duplicate MOOVs? Obviously I could make a longer file, i.e. that will last longer than any likely discontinuity in the source and hence no need to loop, but that requires prior knowledge of how long that might be and also:- If fallback-override is specified, will it switch back to the original mount (due to that source becoming available) in the middle of playing the fallback file, or will it have to wait until the end of the file? Ken G i l l e t t _/_/_/_/_/_/_/_/ From lr at pripple.de Fri May 21 13:35:18 2021 From: lr at pripple.de (Lorenz Reichelt) Date: Fri, 21 May 2021 15:35:18 +0200 Subject: [Icecast] fallback loop In-Reply-To: <3BEC388D-CAE0-47F5-B22D-E3166E2B68F1@icloud.com> References: <3BEC388D-CAE0-47F5-B22D-E3166E2B68F1@icloud.com> Message-ID: <82C55A8F-ABB9-42AB-AEF5-4977B55D2ACB@pripple.de> Hi Ken, it is best practice to actually stream the fallback file. If you specify it directly, it will be sent many times, fill up the client?s buffer, play silence for a long time before the program is played. I haven?t come across your problem, but it might be gone once you follow this best practice. The steps I took on my Ubuntu server: 1. "apt install ezstream" 2. Write a very simple ezstream.xml with the following contents: HTTP 127.0.0.1 8000 hackme fallback MP3 file /path/to/fallback.mp3 3. Update your icecast.xml like this: 10 <---- increase this value ? at least I ran into problems of not being able to connect with the live stream source with the default limit to 2 ----> <-- ? --> <-- ? --> /live /fallback 1 1 /live_intro.mp3 /fallback /absolute_fallback.mp3 <---- I chose a different track here so I can tell if ezstream is working or not ----> 1 1 /fallback_intro.mp3 4. Add "ezstream -c path/to/ezstream.xml" as a service and start it (I had to write my own ezstream.service and install it via systemctl, but I?m not sure if I am following best practice with it, so I don?t provide it here) 5. When you restart the icecast service, restart the ezstream service, too (some time later) ? else, for me, it stops working ? of course, there might be better/best practice solutions for that Best regards, Lorenz -------------- next part -------------- An HTML attachment was scrubbed... URL: From kengroups at icloud.com Fri May 21 14:18:27 2021 From: kengroups at icloud.com (Ken Gillett) Date: Fri, 21 May 2021 15:18:27 +0100 Subject: [Icecast] fallback loop In-Reply-To: <82C55A8F-ABB9-42AB-AEF5-4977B55D2ACB@pripple.de> References: <3BEC388D-CAE0-47F5-B22D-E3166E2B68F1@icloud.com> <82C55A8F-ABB9-42AB-AEF5-4977B55D2ACB@pripple.de> Message-ID: <1965DDA2-2AB3-4792-883B-32590F4701EB@icloud.com> Ah, the problem is that there has to be NOTHING running when there are no listeners. Well Icecast of course, but no streaming or transocding. So I wouldn?t want ezstream running constantly for what is in effect just a method of delaying Icecast occasionally for a few seconds. It?s annoying that Icecast immediately refuses listener connections if the source is not already streaming. There needs to be some configuration parameter to make it wait a specified time before actually refusing the connection. However, all that aside, Icecast claims it CAN simply loop a fallback file, yet in reality seems unable to do so, at least as far as I have been able to determine. Ken G i l l e t t _/_/_/_/_/_/_/_/ > On 21 May 2021, at 14:35, Lorenz Reichelt wrote: > > Hi Ken, it is best practice to actually stream the fallback file. If you specify it directly, it will be sent many times, fill up the client?s buffer, play silence for a long time before the program is played. > > I haven?t come across your problem, but it might be gone once you follow this best practice. > > The steps I took on my Ubuntu server: > > 1. "apt install ezstream" > > 2. Write a very simple ezstream.xml with the following contents: > > > > > HTTP > 127.0.0.1 > 8000 > hackme > > > > > fallback > MP3 > > > > > file > /path/to/fallback.mp3 > > > > > 3. Update your icecast.xml like this: > > > 10 <---- increase this value ? at least I ran into problems of not being able to connect with the live stream source with the default limit to 2 ----> > <-- ? --> > > <-- ? --> > > /live > /fallback > 1 > 1 > /live_intro.mp3 > > > /fallback > /absolute_fallback.mp3 <---- I chose a different track here so I can tell if ezstream is working or not ----> > 1 > 1 > /fallback_intro.mp3 > > > 4. Add "ezstream -c path/to/ezstream.xml" as a service and start it (I had to write my own ezstream.service and install it via systemctl, but I?m not sure if I am following best practice with it, so I don?t provide it here) > > 5. When you restart the icecast service, restart the ezstream service, too (some time later) ? else, for me, it stops working ? of course, there might be better/best practice solutions for that > > Best regards, > > Lorenz > > _______________________________________________ > Icecast mailing list > Icecast at xiph.org > http://lists.xiph.org/mailman/listinfo/icecast -------------- next part -------------- An HTML attachment was scrubbed... URL: From lr at pripple.de Fri May 21 14:31:56 2021 From: lr at pripple.de (Lorenz Reichelt) Date: Fri, 21 May 2021 16:31:56 +0200 Subject: [Icecast] fallback loop In-Reply-To: <1965DDA2-2AB3-4792-883B-32590F4701EB@icloud.com> References: <3BEC388D-CAE0-47F5-B22D-E3166E2B68F1@icloud.com> <82C55A8F-ABB9-42AB-AEF5-4977B55D2ACB@pripple.de> <1965DDA2-2AB3-4792-883B-32590F4701EB@icloud.com> Message-ID: <4A2C8994-D330-4212-9D65-9CA7EF260F3D@pripple.de> The problem is actually that it loops too fast: It sends as many loops as it can according to the connection speed. You could have one ezstream instance streaming to one fallback mount and specify that fallback mount for all other mounts. You don?t need one instance per mount. From epirat07 at gmail.com Fri May 21 14:41:37 2021 From: epirat07 at gmail.com (Marvin Scholz) Date: Fri, 21 May 2021 16:41:37 +0200 Subject: [Icecast] fallback loop In-Reply-To: <3BEC388D-CAE0-47F5-B22D-E3166E2B68F1@icloud.com> References: <3BEC388D-CAE0-47F5-B22D-E3166E2B68F1@icloud.com> Message-ID: <6015FDF7-DE3F-4FF8-B454-A3F4104F237F@gmail.com> Hi, On 21 May 2021, at 15:27, Ken Gillett wrote: > I?m trying to set up a fallback that plays a file - just silence in > fact as it really is just a way of getting Icecast to wait instead of > chucking off the listeners. Anyway? > > I?ve created an AAC file (same format as actual stream) of 10 secs > of silence (using ffmpeg). I?m using ffplay to test this as it?s > easy to see any errors and when I use that to connect, it plays once > (i.e. for 10 secs) then I see this error:- > > Found duplicated MOOV Atom. Skipped it > You stream is not supposed to contain any MOOV atoms, you can not stream m4a or mov as it is not a streamable format. (Except for CMAF but that currently is not supported by Icecast nor any source clients) What you need to stream is ADTS, so the raw AAC stream without the m4a container, same for the fallback stream. > Which then rapidly repeats until I stop the process. Since the MOOV > atom is required in such a file and simply looping it will inevitably > cause the player to see repeated MOOVs as it receives the continuous > stream, I cannot see how to prevent this. Yet Icecast docs are clear > that the fallback file will be simply looped until the real intended > source is again available. > > How can this work? How can I eliminate the duplicate MOOVs? > > Obviously I could make a longer file, i.e. that will last longer than > any likely discontinuity in the source and hence no need to loop, but > that requires prior knowledge of how long that might be and also:- > > If fallback-override is specified, will it switch back to the original > mount (due to that source becoming available) in the middle of playing > the fallback file, or will it have to wait until the end of the file? > > > Ken G i l l e t t > > _/_/_/_/_/_/_/_/ > > > > _______________________________________________ > Icecast mailing list > Icecast at xiph.org > http://lists.xiph.org/mailman/listinfo/icecast From geoff at QuiteLikely.com Fri May 21 15:15:00 2021 From: geoff at QuiteLikely.com (Geoff Shang) Date: Fri, 21 May 2021 18:15:00 +0300 (IDT) Subject: [Icecast] fallback loop In-Reply-To: <1965DDA2-2AB3-4792-883B-32590F4701EB@icloud.com> References: <3BEC388D-CAE0-47F5-B22D-E3166E2B68F1@icloud.com> <82C55A8F-ABB9-42AB-AEF5-4977B55D2ACB@pripple.de> <1965DDA2-2AB3-4792-883B-32590F4701EB@icloud.com> Message-ID: On Fri, 21 May 2021, Ken Gillett wrote: > Ah, the problem is that there has to be NOTHING running when there are no listeners. Why? Ezstream configured as suggested does not transcode so the CPU usage is negligible. Cheers, Geoff. From kengroups at icloud.com Fri May 21 15:52:43 2021 From: kengroups at icloud.com (Ken Gillett) Date: Fri, 21 May 2021 16:52:43 +0100 Subject: [Icecast] fallback loop In-Reply-To: References: <3BEC388D-CAE0-47F5-B22D-E3166E2B68F1@icloud.com> <82C55A8F-ABB9-42AB-AEF5-4977B55D2ACB@pripple.de> <1965DDA2-2AB3-4792-883B-32590F4701EB@icloud.com> Message-ID: I realise some may not feel the same way, but I am opposed to processes running 24/7 while actually utilised for what may amount to only a few seconds in a day and maybe not at all. This is supposed to be a barebones media server just for producing video and/or audio streams with minimum ?effort?, as quiet as possible and as cool as possible (so no fans spinning). Anything running while not being used is to be avoided at all cost. The problem is that the audio stream from the satellite is mp2 and I need it to be mp3 or aac. So I have to transcode it and while I am able to do that manually, so far I have not been able to get Icecast to start (and stop) the transcode process on demand. Ken G i l l e t t _/_/_/_/_/_/_/_/ > On 21 May 2021, at 16:15, Geoff Shang wrote: > > On Fri, 21 May 2021, Ken Gillett wrote: > >> Ah, the problem is that there has to be NOTHING running when there are no listeners. > > Why? Ezstream configured as suggested does not transcode so the CPU usage is negligible. > > Cheers, > Geoff. > > _______________________________________________ > Icecast mailing list > Icecast at xiph.org > http://lists.xiph.org/mailman/listinfo/icecast From kengroups at icloud.com Fri May 21 15:59:07 2021 From: kengroups at icloud.com (Ken Gillett) Date: Fri, 21 May 2021 16:59:07 +0100 Subject: [Icecast] fallback loop In-Reply-To: <6015FDF7-DE3F-4FF8-B454-A3F4104F237F@gmail.com> References: <3BEC388D-CAE0-47F5-B22D-E3166E2B68F1@icloud.com> <6015FDF7-DE3F-4FF8-B454-A3F4104F237F@gmail.com> Message-ID: Yes I had thought that. I tried to produce the silence in ADTS format, but Icecast couldn?t play that at all. I?ll try again. However, it has to be said that the Icecast docs are being very economical with the truth regarding the use of a fallback file. Simply stating it should be the same format, with no mention of not being able to use a normal file even when encoded the same way. Ken G i l l e t t _/_/_/_/_/_/_/_/ > On 21 May 2021, at 15:41, Marvin Scholz wrote: > > Hi, > > On 21 May 2021, at 15:27, Ken Gillett wrote: > >> I?m trying to set up a fallback that plays a file - just silence in fact as it really is just a way of getting Icecast to wait instead of chucking off the listeners. Anyway? >> >> I?ve created an AAC file (same format as actual stream) of 10 secs of silence (using ffmpeg). I?m using ffplay to test this as it?s easy to see any errors and when I use that to connect, it plays once (i.e. for 10 secs) then I see this error:- >> >> Found duplicated MOOV Atom. Skipped it >> > > You stream is not supposed to contain any MOOV atoms, you can not stream m4a or mov as it is not a streamable format. > (Except for CMAF but that currently is not supported by Icecast nor any source clients) > > What you need to stream is ADTS, so the raw AAC stream without the m4a container, same for the fallback stream. -------------- next part -------------- An HTML attachment was scrubbed... URL: From kengroups at icloud.com Fri May 21 16:40:00 2021 From: kengroups at icloud.com (Ken Gillett) Date: Fri, 21 May 2021 17:40:00 +0100 Subject: [Icecast] fallback loop In-Reply-To: References: <3BEC388D-CAE0-47F5-B22D-E3166E2B68F1@icloud.com> <6015FDF7-DE3F-4FF8-B454-A3F4104F237F@gmail.com> Message-ID: <732E51F9-F946-41F0-9816-6008A49A26F6@icloud.com> Created a new file of silence encoded with AAC and format ADTS with .aac extension. This plays fine, apparently indefinitely and no MOOV complaints. Not sure what i did wrong last time. On to the next problem - new post for that. Ken G i l l e t t _/_/_/_/_/_/_/_/ > On 21 May 2021, at 16:59, Ken Gillett wrote: > > Yes I had thought that. I tried to produce the silence in ADTS format, but Icecast couldn?t play that at all. I?ll try again. > > However, it has to be said that the Icecast docs are being very economical with the truth regarding the use of a fallback file. Simply stating it should be the same format, with no mention of not being able to use a normal file even when encoded the same way. > > > Ken G i l l e t t > > _/_/_/_/_/_/_/_/ > > > >> On 21 May 2021, at 15:41, Marvin Scholz > wrote: >> >> Hi, >> >> On 21 May 2021, at 15:27, Ken Gillett wrote: >> >>> I?m trying to set up a fallback that plays a file - just silence in fact as it really is just a way of getting Icecast to wait instead of chucking off the listeners. Anyway? >>> >>> I?ve created an AAC file (same format as actual stream) of 10 secs of silence (using ffmpeg). I?m using ffplay to test this as it?s easy to see any errors and when I use that to connect, it plays once (i.e. for 10 secs) then I see this error:- >>> >>> Found duplicated MOOV Atom. Skipped it >>> >> >> You stream is not supposed to contain any MOOV atoms, you can not stream m4a or mov as it is not a streamable format. >> (Except for CMAF but that currently is not supported by Icecast nor any source clients) >> >> What you need to stream is ADTS, so the raw AAC stream without the m4a container, same for the fallback stream. > -------------- next part -------------- An HTML attachment was scrubbed... URL: From kengroups at icloud.com Fri May 21 17:28:42 2021 From: kengroups at icloud.com (Ken Gillett) Date: Fri, 21 May 2021 18:28:42 +0100 Subject: [Icecast] falling back Message-ID: I?m afraid this will be a little long, but hope some can put in the time to read and help. As I mentioned, I need to transcode and want Icecast to start and stop according to listeners. So this is what I?m trying:- 127.0.0.1 8127 /BBCR2.aac /BBCR2 /BBCR2 0 /usr/local/bin/transtart /usr/local/bin/transtop /BBCR2.aac 0 /silence.aac 1 So the first 2 blocks are the relay mount that ?pulls? from the mount configured in the 3rd block. Yes, this does work, Icecast CAN relay from itself. The reason why I do this is to take advantage of the on-(dis)connect scripts and the fact that an Icecast relay only ?pulls? when there are listeners for that mountpoint. Testing with a player (ffplay) to connect to the BBCR2 (relay) mount, it plays silence and this is what Icecast says:- [2021-05-21 17:20:53] INFO slave/start_relay_stream Starting relayed source at mountpoint "/BBCR2" [2021-05-21 17:20:53] INFO slave/open_relay_connection connecting to 127.0.0.1:8127 [2021-05-21 17:20:53] INFO source/source_main listener count on /silence.aac now 1 [2021-05-21 17:20:53] WARN format/format_get_type Unsupported or legacy stream type: "audio/aac". Falling back to generic minimal handler for best effort. [2021-05-21 17:20:54] INFO source/source_main listener count on /BBCR2 now 1 Ignoring the legacy WARN, when the listener connects to BBCR2, it tries to relay from BBCR2.aac which has no source and so plays the silence.aac (ADTS format) file. All correct so far, except the on-connect script (that starts transcoding and streaming to BBCR2.aac) is not run. More on that later. However, about 35 seconds after this first starts (i.e. listener connects to BBCR2), Icecast logs this:- [2021-05-21 17:21:28] INFO source/send_to_listener Client 377 (xxx.xxx.xxx.xxx) has fallen too far behind, removing [2021-05-21 17:21:28] INFO source/source_main listener count on /BBCR2 now 0 [2021-05-21 17:21:28] INFO source/source_shutdown Source from 127.0.0.1 at "/BBCR2" exiting [2021-05-21 17:21:28] INFO source/source_main listener count on /silence.aac now 0 So Icecast kills everything, but the listener (ffplay) doesn?t know this and continues running, obviously still silent so I cannot tell what it actually thinks it is playing. Why does Icecast say the Client (ffplay on my Mac at xxx.xxx.xxx.xxx) is too far behind? Surely the fallback file should simply loop indefinitely until the real source comes on line - which it doesn?t as the script is not run. Now I try the same thing, but manually running the script that will start the transcoder and send the stream to Icecast?s BBCR2.aac mount:- [2021-05-21 17:23:48] INFO slave/start_relay_stream Starting relayed source at mountpoint "/BBCR2" [2021-05-21 17:23:48] INFO slave/open_relay_connection connecting to 127.0.0.1:8127 [2021-05-21 17:23:48] INFO source/source_main listener count on /silence.aac now 1 [2021-05-21 17:23:48] WARN format/format_get_type Unsupported or legacy stream type: "audio/aac". Falling back to generic minimal handler for best effort. [2021-05-21 17:23:49] INFO source/source_main listener count on /BBCR2 now 1 [2021-05-21 17:24:04] INFO connection/_handle_source_request Source logging in at mountpoint "/BBCR2.aac" from 127.0.0.1 [2021-05-21 17:24:04] WARN format/format_get_type Unsupported or legacy stream type: "audio/aac". Falling back to generic minimal handler for best effort. [2021-05-21 17:24:04] INFO source/source_move_clients passing 1 listeners to "/BBCR2.aac" [2021-05-21 17:24:04] INFO source/source_main listener count on /BBCR2.aac now 1 [2021-05-21 17:24:04] INFO source/source_main listener count on /silence.aac now 0 So initially the same as the first run, but then it sees the source for BBCR2.aac and switches the listener from the file to that mount - as it should. But I still don?t hear the actual radio stream because same as last time:- [2021-05-21 17:24:23] INFO source/send_to_listener Client 380 (xxx.xxx.xxx.xxx) has fallen too far behind, removing [2021-05-21 17:24:23] INFO source/source_main listener count on /BBCR2 now 0 [2021-05-21 17:24:23] INFO source/source_shutdown Source from 127.0.0.1 at "/BBCR2" exiting [2021-05-21 17:24:23] INFO source/source_main listener count on /BBCR2.aac now 0 Leaving me to manually stop ffplay and run the transcode stop script. So several questions:- Why does Icecast complain about the client being ?too far behind? and how can I prevent this? Surely the fallback should simply operate as long as necessary? Is this the ?looping too fast? problem that is swamping the client? How is this fallback file feature supposed to work? Why when switching the listener back from the fallback file to the actual streaming source do I still not hear that? Is this perhaps just because of the previous issue? Why are the scripts not run? It seems to me that when the relay receives anything, whether from the relayed mount (BBCR2.aac in this case) or its fallback file, that event is the source connecting and should trigger the on-connect script. But it does not. The script writes a log and I can see it is simply not being run at all (unless I run it manually). As I said, sorry it?s a bit of a long one, but hope some more experienced in Icecast than me can shed some light on this. Ken G i l l e t t _/_/_/_/_/_/_/_/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From petr.pisar at atlas.cz Fri May 21 19:50:16 2021 From: petr.pisar at atlas.cz (Petr Pisar) Date: Fri, 21 May 2021 21:50:16 +0200 Subject: [Icecast] falling back In-Reply-To: References: Message-ID: V?Fri, May 21, 2021 at 06:28:42PM +0100,?Ken Gillett napsal(a): > As I mentioned, I need to transcode and want Icecast to start and stop > according to listeners. So this is what I?m trying:- > > > 127.0.0.1 > 8127 > /BBCR2.aac > /BBCR2 > > > /BBCR2 > 0 > /usr/local/bin/transtart > /usr/local/bin/transtop > > > > /BBCR2.aac > 0 > /silence.aac > 1 > > > So the first 2 blocks are the relay mount that ?pulls? from the mount > configured in the 3rd block. Yes, this does work, Icecast CAN relay from > itself. The reason why I do this is to take advantage of the on-(dis)connect > scripts and the fact that an Icecast relay only ?pulls? when there are > listeners for that mountpoint. > In my opinion you cannot achieve what you want with Icecast because it goes against its design. Icecast has two types of mount points: source-mounts which content is pushed into Icecast and relay-mounts which content is pulled by Icacast. A transmission of the content which is pulled can only be initiated by Icecast. On the other hand, the pushed content cannot be initiated by Icecast. The pushed content is always initated by an external stream source (transcode in your case). Basically, Icecast is a streaming proxy of which task is to multiply an external source to multiple clients at the same time. The external source is either pushed or pulled content. Streaming local files is only a trivial tool for providing a fallback when the external source is unavailable. What you need is an transcoder which waits on a connection from an ICY client and then it opens a tunner and starts transcoding. And similarly it will close the tunner after the client disconnects. The transcoder does not need and should not be able to handle multiple clients. It should be a trivial program for one tunner and one client. After having this setup, you can place Icecast between the transcoder and the (thousands of) clients. I cannot recommend you any ready-made transcoder because I have no experience in this area. But I believe there exist plenty of transcoders which can work as a source-client for Icecast and thus it should be easy to enhance them to implement a one-client ICY server (the pull model from Icecast point of view) in addition. (Technically it could be possible to introduce a third type of a mount type to Icecast: It would execute an external command for the first client, streamed its standard output and terminated the command with the last client. But handling execution of possibly blocking commands adds more complexity and from security point of view its not wise to give Icecast server a permission to access various hardware (e.g. tunners) directly.) > However, about 35 seconds after this first starts (i.e. listener connects to > BBCR2), Icecast logs this:- > > [2021-05-21 17:21:28] INFO source/send_to_listener Client 377 (xxx.xxx.xxx.xxx) has fallen too far behind, removing > [2021-05-21 17:21:28] INFO source/source_main listener count on /BBCR2 now 0 > [2021-05-21 17:21:28] INFO source/source_shutdown Source from 127.0.0.1 at "/BBCR2" exiting > [2021-05-21 17:21:28] INFO source/source_main listener count on /silence.aac now 0 > > So Icecast kills everything, but the listener (ffplay) doesn?t know this and > continues running, obviously still silent so I cannot tell what it actually > thinks it is playing. Why does Icecast say the Client (ffplay on my Mac at > xxx.xxx.xxx.xxx) is too far behind? I think this message means that the client does not consume the stream. So an output buffer on the server has been filling up and after 35 seconds reached a limit and thus the server disconnected the client. I recommend you either to replace the silent stream with something audiable, or better use a network analyzer tool (e.g. tcpdump) to see whether the stream flows from the server to the client or not. I suspect that either the client misunderstands the stream, or the server misunderstands the /silence.aac file. > Why are the scripts not run? It seems to me that when the relay receives > anything, whether from the relayed mount (BBCR2.aac in this case) or its > fallback file, that event is the source connecting and should trigger the > on-connect script. But it does not. The script writes a log and I can see it > is simply not being run at all (unless I run it manually). > Does something change if you remove the second block (mount at /BBCR2)? I think it does not call the scripts because you defined /BBCR2 twice. Maybe Icecast parser does not expect having them twice, ignores the second block and uses only the first one. -- Petr -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 833 bytes Desc: not available URL: From epirat07 at gmail.com Fri May 21 20:18:28 2021 From: epirat07 at gmail.com (Marvin Scholz) Date: Fri, 21 May 2021 22:18:28 +0200 Subject: [Icecast] falling back In-Reply-To: References: Message-ID: As Petr Pisar already mentioned, what you are trying to do is really something Icecast is not really made for currently, so it might be very tricky to get it working properly. To the problem about the client falling behind, this can be caused by mostly two thinks in this case, that I can think of: 1. If you are not streaming the fallback mount to Icecast, it will not pace it but just send it as fast as possible to the client. That means the client will eventually have lots of data that it has to play first, possibly causing it to get delayed too much due to buffer size limits in the client. 2. If the stream is absolute silence, like Petr mentioned, the compression can be so efficient that you kind of end up with a similar problem as in 1. so its usually recommended to not do complete silence as fallback but some comfort noise. So the issue you are facing is probably one of the two above or even a combination of those. On 21 May 2021, at 21:50, Petr Pisar wrote: > V?Fri, May 21, 2021 at 06:28:42PM +0100,?Ken Gillett napsal(a): >> As I mentioned, I need to transcode and want Icecast to start and >> stop >> according to listeners. So this is what I?m trying:- >> >> >> 127.0.0.1 >> 8127 >> /BBCR2.aac >> /BBCR2 >> >> >> /BBCR2 >> 0 >> /usr/local/bin/transtart >> /usr/local/bin/transtop >> >> >> >> /BBCR2.aac >> 0 >> /silence.aac >> 1 >> >> >> So the first 2 blocks are the relay mount that ?pulls? from the >> mount >> configured in the 3rd block. Yes, this does work, Icecast CAN relay >> from >> itself. The reason why I do this is to take advantage of the >> on-(dis)connect >> scripts and the fact that an Icecast relay only ?pulls? when >> there are >> listeners for that mountpoint. >> > In my opinion you cannot achieve what you want with Icecast because it > goes > against its design. > > Icecast has two types of mount points: source-mounts which content is > pushed > into Icecast and relay-mounts which content is pulled by Icacast. > A transmission of the content which is pulled can only be initiated by > Icecast. > On the other hand, the pushed content cannot be initiated by Icecast. > The > pushed content is always initated by an external stream source > (transcode in > your case). > > Basically, Icecast is a streaming proxy of which task is to multiply > an external > source to multiple clients at the same time. The external source is > either > pushed or pulled content. Streaming local files is only a trivial tool > for > providing a fallback when the external source is unavailable. > > What you need is an transcoder which waits on a connection from an ICY > client > and then it opens a tunner and starts transcoding. And similarly it > will close > the tunner after the client disconnects. The transcoder does not need > and > should not be able to handle multiple clients. It should be a trivial > program > for one tunner and one client. After having this setup, you can place > Icecast > between the transcoder and the (thousands of) clients. > > I cannot recommend you any ready-made transcoder because I have no > experience > in this area. But I believe there exist plenty of transcoders which > can work > as a source-client for Icecast and thus it should be easy to enhance > them to > implement a one-client ICY server (the pull model from Icecast point > of view) > in addition. > > (Technically it could be possible to introduce a third type of a mount > type > to Icecast: It would execute an external command for the first client, > streamed its standard output and terminated the command with the last > client. > But handling execution of possibly blocking commands adds more > complexity and > from security point of view its not wise to give Icecast server a > permission > to access various hardware (e.g. tunners) directly.) > >> However, about 35 seconds after this first starts (i.e. listener >> connects to >> BBCR2), Icecast logs this:- >> >> [2021-05-21 17:21:28] INFO source/send_to_listener Client 377 >> (xxx.xxx.xxx.xxx) has fallen too far behind, removing >> [2021-05-21 17:21:28] INFO source/source_main listener count on >> /BBCR2 now 0 >> [2021-05-21 17:21:28] INFO source/source_shutdown Source from >> 127.0.0.1 at "/BBCR2" exiting >> [2021-05-21 17:21:28] INFO source/source_main listener count on >> /silence.aac now 0 >> >> So Icecast kills everything, but the listener (ffplay) doesn?t know >> this and >> continues running, obviously still silent so I cannot tell what it >> actually >> thinks it is playing. Why does Icecast say the Client (ffplay on my >> Mac at >> xxx.xxx.xxx.xxx) is too far behind? > > I think this message means that the client does not consume the > stream. So an > output buffer on the server has been filling up and after 35 seconds > reached > a limit and thus the server disconnected the client. > > I recommend you either to replace the silent stream with something > audiable, > or better use a network analyzer tool (e.g. tcpdump) to see whether > the stream > flows from the server to the client or not. > > I suspect that either the client misunderstands the stream, or the > server > misunderstands the /silence.aac file. > >> Why are the scripts not run? It seems to me that when the relay >> receives >> anything, whether from the relayed mount (BBCR2.aac in this case) or >> its >> fallback file, that event is the source connecting and should trigger >> the >> on-connect script. But it does not. The script writes a log and I can >> see it >> is simply not being run at all (unless I run it manually). >> > Does something change if you remove the second block (mount at > /BBCR2)? > > I think it does not call the scripts because you defined /BBCR2 twice. > Maybe > Icecast parser does not expect having them twice, ignores the second > block and uses only the first one. > > -- Petr > > _______________________________________________ > Icecast mailing list > Icecast at xiph.org > http://lists.xiph.org/mailman/listinfo/icecast From kengroups at icloud.com Sat May 22 09:07:26 2021 From: kengroups at icloud.com (Ken Gillett) Date: Sat, 22 May 2021 10:07:26 +0100 Subject: [Icecast] falling back In-Reply-To: References: Message-ID: <2C63F489-E7F2-4E7A-AEB1-74C1B571EB43@icloud.com> Thanks for the comments Petr and Marvin. I know Icecast was not specifically designed for this, but I am sure that I am not asking it to do anything (apart from triggering scripts) that it cannot do. I understand about the different mounts, but each is independent of the other and as I have found, Icecast does not care that it is relaying from itself. That works. If I start the transcode process to BBCR2.aac first, I can then connect/listen to the BBCR2 mount. This works perfectly, so Icecast has no problem with this setup. The reason for multiple mounts like this is because a block of the same name to contain all its other required parameters, as that stuff cannot be held within the block. So unless anyone can explain how the docs are incorrect, I am sure that this is correct. The problem I have with this Icecast setup is as I said, triggering the transcode script and the streaming fallback file. The latter seems likely to be as suggested and my next test will involve a file of some sound(s) that will not compress so much and hopefully not fill up the buffers. However it is interesting that I have read many mentions of the use of a file of silence specifically for this exact task, even though it clearly has problems. Anyway, I can try an alternative file and see how that goes. Something is required however as without the fallback file configured, any attempt to listen to the relay is immediately rejected (with a 404 I seem to recall). That leaves the on-(dis)connect issue. This is where my plan might completely fail. I am hoping that a relay mount can trigger these, however I have seen no direct evidence that it will. The standard explanation is that on-connect is triggered when the source connects, but maybe that only works when a source is pushed to a normal Icecast mountpoint and not when a relay sees the mount from which it is supposed to relay and so streams from it. In my case, the stream will actually be the fallback file, but it should still count as a source. The problem that occurs to me is that the relay mount code may simply not recognise being able to pull from the relayed mount (internal or external) as a source connect event and hence will never trigger the script. This last has always been in my mind, but no-one has yet been able to confirm how Icecast actually functions in this respect. Hence why I?ve been testing, but the absence of success so far does not confirm absolutely that it cannot work and may only indicate I have something else wrong, although I am coming to the realisation that a relay mount will not work as I require. In which case, back to the idea of the transcode process as an http streamer. This however has to be very low ?footprint? as multiple streams would mean multiple http servers, one for each transcoded stream. Better to have a single server that can handle multiple listeners and http streams. And we?re back to Icecast that is already running? If anyone can actually suggest a solution to this conundrum, please let me know as I?m all ears. Ken G i l l e t t _/_/_/_/_/_/_/_/ > On 21 May 2021, at 20:50, Petr Pisar wrote: > > V Fri, May 21, 2021 at 06:28:42PM +0100, Ken Gillett napsal(a): >> As I mentioned, I need to transcode and want Icecast to start and stop >> according to listeners. So this is what I?m trying:- >> >> >> 127.0.0.1 >> 8127 >> /BBCR2.aac >> /BBCR2 >> >> >> /BBCR2 >> 0 >> /usr/local/bin/transtart >> /usr/local/bin/transtop >> >> >> >> /BBCR2.aac >> 0 >> /silence.aac >> 1 >> >> >> So the first 2 blocks are the relay mount that ?pulls? from the mount >> configured in the 3rd block. Yes, this does work, Icecast CAN relay from >> itself. The reason why I do this is to take advantage of the on-(dis)connect >> scripts and the fact that an Icecast relay only ?pulls? when there are >> listeners for that mountpoint. >> > In my opinion you cannot achieve what you want with Icecast because it goes > against its design. > > Icecast has two types of mount points: source-mounts which content is pushed > into Icecast and relay-mounts which content is pulled by Icacast. > A transmission of the content which is pulled can only be initiated by Icecast. > On the other hand, the pushed content cannot be initiated by Icecast. The > pushed content is always initated by an external stream source (transcode in > your case). > > Basically, Icecast is a streaming proxy of which task is to multiply an external > source to multiple clients at the same time. The external source is either > pushed or pulled content. Streaming local files is only a trivial tool for > providing a fallback when the external source is unavailable. > > What you need is an transcoder which waits on a connection from an ICY client > and then it opens a tunner and starts transcoding. And similarly it will close > the tunner after the client disconnects. The transcoder does not need and > should not be able to handle multiple clients. It should be a trivial program > for one tunner and one client. After having this setup, you can place Icecast > between the transcoder and the (thousands of) clients. > > I cannot recommend you any ready-made transcoder because I have no experience > in this area. But I believe there exist plenty of transcoders which can work > as a source-client for Icecast and thus it should be easy to enhance them to > implement a one-client ICY server (the pull model from Icecast point of view) > in addition. > > (Technically it could be possible to introduce a third type of a mount type > to Icecast: It would execute an external command for the first client, > streamed its standard output and terminated the command with the last client. > But handling execution of possibly blocking commands adds more complexity and > from security point of view its not wise to give Icecast server a permission > to access various hardware (e.g. tunners) directly.) > >> However, about 35 seconds after this first starts (i.e. listener connects to >> BBCR2), Icecast logs this:- >> >> [2021-05-21 17:21:28] INFO source/send_to_listener Client 377 (xxx.xxx.xxx.xxx) has fallen too far behind, removing >> [2021-05-21 17:21:28] INFO source/source_main listener count on /BBCR2 now 0 >> [2021-05-21 17:21:28] INFO source/source_shutdown Source from 127.0.0.1 at "/BBCR2" exiting >> [2021-05-21 17:21:28] INFO source/source_main listener count on /silence.aac now 0 >> >> So Icecast kills everything, but the listener (ffplay) doesn?t know this and >> continues running, obviously still silent so I cannot tell what it actually >> thinks it is playing. Why does Icecast say the Client (ffplay on my Mac at >> xxx.xxx.xxx.xxx) is too far behind? > > I think this message means that the client does not consume the stream. So an > output buffer on the server has been filling up and after 35 seconds reached > a limit and thus the server disconnected the client. > > I recommend you either to replace the silent stream with something audiable, > or better use a network analyzer tool (e.g. tcpdump) to see whether the stream > flows from the server to the client or not. > > I suspect that either the client misunderstands the stream, or the server > misunderstands the /silence.aac file. > >> Why are the scripts not run? It seems to me that when the relay receives >> anything, whether from the relayed mount (BBCR2.aac in this case) or its >> fallback file, that event is the source connecting and should trigger the >> on-connect script. But it does not. The script writes a log and I can see it >> is simply not being run at all (unless I run it manually). >> > Does something change if you remove the second block (mount at /BBCR2)? > > I think it does not call the scripts because you defined /BBCR2 twice. Maybe > Icecast parser does not expect having them twice, ignores the second > block and uses only the first one. > > -- Petr > > _______________________________________________ > Icecast mailing list > Icecast at xiph.org > http://lists.xiph.org/mailman/listinfo/icecast From phschafft at de.loewenfelsen.net Sat May 22 10:32:44 2021 From: phschafft at de.loewenfelsen.net (Philipp Schafft) Date: Sat, 22 May 2021 10:32:44 +0000 Subject: [Icecast] The myth of the two different kinds of mounts [WAS: Re: falling back] In-Reply-To: References: Message-ID: <1ccd1758f32957503784c81dadd520c77bd80b0b.camel@de.loewenfelsen.net> Good morning, first of all, thank you Petr Pisar for you mail. It gives a good overview but I feel the need to go into details a bit more. On Fri, 2021-05-21 at 21:50 +0200, Petr Pisar wrote: > Icecast has two types of mount points: source-mounts which content is > pushed into Icecast and relay-mounts which content is pulled by > Icacast. This is actually a old myth. And I honestly don't know where it originated from. Icecast only knows one kind of mount points. Each mount can be in mounted state (a source connected) or unmounted state (no source connected). Once a client is connects Icecast first checks if the mount is part of the Admin API. If so it will handle the request via the Admin API, if not it will continue: Next it is checked if the mount point is mounted[0]. If it is, the client is connected to that source. If it is unmounted Icecast will try to auto connect a source. There are currently the following source types Icecast can auto connect: * Relays * Admin API (This is everything under /admin; And only used for Admin API) * fserve (this is "plain files" and "XSLT rendered stats") So what does that mean: If you configure a relay Icecast will start a new source client. But that is build into Icecast. That source client then forwards the data it reads from another source[1]. If nothing specific has been configured, Icecast will next try using static files with fserve. So Icecast will start a fserve source that will then send the file if there is one. If nothing could mount the mount point Icecast will send a error ("404") indicating that there is no source for the mount. This also means: You can apply all mount settings to all mount points. However those not applicable will be ignored by Icecast. (Also the Admin API ignores most settings as special rules apply for it. Mostly noticeable with auth/ACL settings.) > A transmission of the content which is pulled can only be initiated > by Icecast. On the other hand, the pushed content cannot be initiated > by Icecast. The pushed content is always initated by an external > stream source (transcode in your case). Exactly: * External sources for externally generated events (e.g.: "Someone pressed the \"on air\" button") * Internal source for internally generated events (e.g.: "Some client connected"). > Basically, Icecast is a streaming proxy of which task is to multipy > an external source to multiple clients at the same time. The external > source is either pushed or pulled content. > Streaming local files is only a trivial tool for providing a fallback > when the external source is unavailable. Actually streaming of local files is only there to provide the web interface. That you can use it for media is just because there is no difference for Icecast. To Icecast it's all sending data from a source to a sink. However to provide what you describe there is one tiny bit of extra code (it's really just a few lines!) that will loop local files when used as fallback. But this is just meant for a really last resort. Also based on what we learned above: If you want a source to be started only when there are listeners: Use a relay. The relay source will notify an external component of the demand (by requesting content). That is the way to go. To make this work with an external data source just write a tiny CGI script or similar that sends the necessary headers and start a encoder/transcoder that sends data to stdout (which is what is send back to the client for CGI). That can for example be done with just a few lines of shell. Something like: #!/bin/sh printf "some: headers\r\n\r\n"; exec myencoder blabla -o - Hope this mail was helpful everyone and people learned a bit more about Icecast. :) [0] Two little exceptions: a) everything under /admin is protected against being mounted by non-API; b) connections that try to mount a mount point are handled a bit differently. [1] Actually it splices the connection. Which gives way better performance. -- Philipp Schafft (CEO/Gesch?ftsf?hrer) Telephon: +49.3535 490 17 92 L?wenfelsen UG (haftungsbeschr?nkt) Registration number: Bickinger Stra?e 21 HRB 12308 CB 04916 Herzberg (Elster) VATIN/USt-ID: Germany DE305133015 -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 523 bytes Desc: This is a digitally signed message part URL: From kengroups at icloud.com Sat May 22 11:40:55 2021 From: kengroups at icloud.com (Ken Gillett) Date: Sat, 22 May 2021 12:40:55 +0100 Subject: [Icecast] The myth of the two different kinds of mounts [WAS: Re: falling back] In-Reply-To: <1ccd1758f32957503784c81dadd520c77bd80b0b.camel@de.loewenfelsen.net> References: <1ccd1758f32957503784c81dadd520c77bd80b0b.camel@de.loewenfelsen.net> Message-ID: <97250CB8-F5C2-45CD-BE92-38249C4C2EF0@icloud.com> Incredibly helpful Phillip, thank you. Could I ask more about this point here. Are you suggesting that the CGI script is run by an http server (being accessed by the Icecast relay mount, when first listener connects) or by Icecast directly? That would simplify the Icecast side of things, but how would that be stopped when the last Icecast listener disconnects? Icecast would then ?disconnect? from that source, but how would that then stop the CGI/transcoding? Although having done a fair bit of web design in the past, it is now quite a long time in the past, so rusty and out-of-date and would appreciate some advice here? Alternatively, is there any way to tap into Icecast's use of the internal source client for relays, to use as a trigger in the way I?m trying to use the on-(dis)connect functions to start and stop the transcode process, but which does not seem to work for a relay? Ken G i l l e t t _/_/_/_/_/_/_/_/ > On 22 May 2021, at 11:32, Philipp Schafft wrote: > > Also based on what we learned above: > If you want a source to be started only when there are listeners: Use a > relay. The relay source will notify an external component of the demand > (by requesting content). That is the way to go. > > To make this work with an external data source just write a tiny CGI > script or similar that sends the necessary headers and start a > encoder/transcoder that sends data to stdout (which is what is send > back to the client for CGI). > > That can for example be done with just a few lines of shell. Something > like: > #!/bin/sh > printf "some: headers\r\n\r\n"; > exec myencoder blabla -o - > > > Hope this mail was helpful everyone and people learned a bit more about > Icecast. :) -------------- next part -------------- An HTML attachment was scrubbed... URL: From kengroups at icloud.com Sun May 23 08:40:22 2021 From: kengroups at icloud.com (Ken Gillett) Date: Sun, 23 May 2021 09:40:22 +0100 Subject: [Icecast] The myth of the two different kinds of mounts [WAS: Re: falling back] In-Reply-To: <97250CB8-F5C2-45CD-BE92-38249C4C2EF0@icloud.com> References: <1ccd1758f32957503784c81dadd520c77bd80b0b.camel@de.loewenfelsen.net> <97250CB8-F5C2-45CD-BE92-38249C4C2EF0@icloud.com> Message-ID: <11D0AB10-0269-472C-A7CD-F99C7612086B@icloud.com> I have just discovered a feature of ffmpeg of which I was previously unaware. Instead of sending the stream somewhere (usually to a file or as an Icecast source as I?ve been trying to utilise), it can simply act as an http server and await connections. So it can act as a source for Icecast to relay. This is good news. Not so good is that it grabs its source as soon as it starts, even when nothing is sucking up that stream. This is no good for me as it locks onto the tuner until the process is actually terminated. This is THE big issue for me as the tuners have to be free for other use when not streaming/transcoding to Icecast. Hence why I?m trying to get Icecast to ?tell? me when to start the transcoder - but failing so far. However using ffmpeg I would not need any internal relay in Icecast (although it works perfectly well), but I am still left with needing to trigger the transcoder to start and stop on-demand. So I was wondering how I could start and stop this ffmpeg http server/transcode process when the Icecast relay connects to and disconnects from that address. Since I cannot seem to utilise Icecast?s on-(dis)connect triggers to do this, I was hoping to trigger it all from ?the other end? as it were. Right now, I cannot think of how to set this up, but as I said, my html development skills are old and very rusty. However, I am sure it can be done. Any pointers? Ken G i l l e t t _/_/_/_/_/_/_/_/ > On 22 May 2021, at 12:40, Ken Gillett wrote: > > Incredibly helpful Phillip, thank you. > > Could I ask more about this point here. Are you suggesting that the CGI script is run by an http server (being accessed by the Icecast relay mount, when first listener connects) or by Icecast directly? > > That would simplify the Icecast side of things, but how would that be stopped when the last Icecast listener disconnects? Icecast would then ?disconnect? from that source, but how would that then stop the CGI/transcoding? Although having done a fair bit of web design in the past, it is now quite a long time in the past, so rusty and out-of-date and would appreciate some advice here? > > Alternatively, is there any way to tap into Icecast's use of the internal source client for relays, to use as a trigger in the way I?m trying to use the on-(dis)connect functions to start and stop the transcode process, but which does not seem to work for a relay? > > > Ken G i l l e t t > > _/_/_/_/_/_/_/_/ > > > >> On 22 May 2021, at 11:32, Philipp Schafft > wrote: >> >> Also based on what we learned above: >> If you want a source to be started only when there are listeners: Use a >> relay. The relay source will notify an external component of the demand >> (by requesting content). That is the way to go. >> >> To make this work with an external data source just write a tiny CGI >> script or similar that sends the necessary headers and start a >> encoder/transcoder that sends data to stdout (which is what is send >> back to the client for CGI). >> >> That can for example be done with just a few lines of shell. Something >> like: >> #!/bin/sh >> printf "some: headers\r\n\r\n"; >> exec myencoder blabla -o - >> >> >> Hope this mail was helpful everyone and people learned a bit more about >> Icecast. :) > -------------- next part -------------- An HTML attachment was scrubbed... URL: From petr.pisar at atlas.cz Sun May 23 09:26:08 2021 From: petr.pisar at atlas.cz (Petr Pisar) Date: Sun, 23 May 2021 11:26:08 +0200 Subject: [Icecast] The myth of the two different kinds of mounts [WAS: Re: falling back] In-Reply-To: <97250CB8-F5C2-45CD-BE92-38249C4C2EF0@icloud.com> References: <1ccd1758f32957503784c81dadd520c77bd80b0b.camel@de.loewenfelsen.net> <97250CB8-F5C2-45CD-BE92-38249C4C2EF0@icloud.com> Message-ID: V?Sat, May 22, 2021 at 12:40:55PM +0100,?Ken Gillett napsal(a): > Could I ask more about this point here. Are you suggesting that the CGI > script is run by an http server (being accessed by the Icecast relay mount, > when first listener connects) or by Icecast directly? > By an HTTP server. > That would simplify the Icecast side of things, but how would that be > stopped when the last Icecast listener disconnects? Icecast would then > ?disconnect? from that source, but how would that then stop the > CGI/transcoding? When Icecast disconnects, the CGI script process, which was writing to the TCP socket on its standard output, gets a SIGPIPE signal from the kernel. If the script did not install its own handler for the signal, a default one will be invoked by kernel which terminates the process. Effectivelly the script process frees all resources, e.g. an opened tunner device. More advanced HTTP server may keep proxying data between an HTTP client (Icecast) and the CGI script. In that case the server notices a TCP disconnect and should (?) kill the CGI script. -- Petr -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 833 bytes Desc: not available URL: From kengroups at icloud.com Sun May 23 12:03:14 2021 From: kengroups at icloud.com (Ken Gillett) Date: Sun, 23 May 2021 13:03:14 +0100 Subject: [Icecast] The myth of the two different kinds of mounts [WAS: Re: falling back] In-Reply-To: References: <1ccd1758f32957503784c81dadd520c77bd80b0b.camel@de.loewenfelsen.net> <97250CB8-F5C2-45CD-BE92-38249C4C2EF0@icloud.com> Message-ID: That?s what I was hoping. I already have nginx running on this server for the admin interface, so I need to figure out how to get it to stream audio in this way (although transcode script itself I can do). As I said, my Apache is rusty, but my Nginx knowledge is sparse and experience non existent. So suggestions on Nginx setup would be appreciated. Ken G i l l e t t _/_/_/_/_/_/_/_/ > On 23 May 2021, at 10:26, Petr Pisar wrote: > > V Sat, May 22, 2021 at 12:40:55PM +0100, Ken Gillett napsal(a): >> Could I ask more about this point here. Are you suggesting that the CGI >> script is run by an http server (being accessed by the Icecast relay mount, >> when first listener connects) or by Icecast directly? >> > By an HTTP server. > >> That would simplify the Icecast side of things, but how would that be >> stopped when the last Icecast listener disconnects? Icecast would then >> ?disconnect? from that source, but how would that then stop the >> CGI/transcoding? > > When Icecast disconnects, the CGI script process, which was writing to the TCP socket > on its standard output, gets a SIGPIPE signal from the kernel. If the script > did not install its own handler for the signal, a default one will be invoked > by kernel which terminates the process. Effectivelly the script process frees all > resources, e.g. an opened tunner device. > > More advanced HTTP server may keep proxying data between an HTTP client > (Icecast) and the CGI script. In that case the server notices a TCP disconnect > and should (?) kill the CGI script. From rpm at fthiessen.de Sat May 8 13:55:48 2021 From: rpm at fthiessen.de (rpm at fthiessen.de) Date: Sat, 08 May 2021 13:55:48 -0000 Subject: [Icecast] ices 2.0.3 patch (missing fclose) Message-ID: Ahoy, this patch is from the openSUSE distribution and is used there for almost 12 years, I think it is time to upstream the patch ;-) There is a missing fclose in playlist_basic.c. Cheers Ferdinand -------------- next part -------------- A non-text attachment was scrubbed... Name: ices-missing-fclose.diff Type: text/x-patch Size: 326 bytes Desc: not available URL: