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 _/_/_/_/_/_/_/_/
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: <ezstream> <servers> <server> <protocol>HTTP</protocol> <hostname>127.0.0.1</hostname> <port>8000</port> <password>hackme</password> </server> </servers> <streams> <stream> <mountpoint>fallback</mountpoint> <format>MP3</format> </stream> </streams> <intakes> <intake> <type>file</type> <filename>/path/to/fallback.mp3</filename> </intake> </intakes> </ezstream> 3. Update your icecast.xml like this: <limits> <sources>10</sources> <---- 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 ----> <-- ? --> </limits> <-- ? --> <mount type="normal"> <mount-name>/live</mount-name> <fallback-mount>/fallback</fallback-mount> <fallback-override>1</fallback-override> <fallback-when-full>1</fallback-when-full> <intro>/live_intro.mp3</intro> </mount> <mount type="normal"> <mount-name>/fallback</mount-name> <fallback-mount>/absolute_fallback.mp3</fallback-mount> <---- I chose a different track here so I can tell if ezstream is working or not ----> <fallback-override>1</fallback-override> <fallback-when-full>1</fallback-when-full> <intro>/fallback_intro.mp3</intro> </mount> 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: <http://lists.xiph.org/pipermail/icecast/attachments/20210521/b7d2daa0/attachment.htm>
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