Struggling streaming to Shoutcast

Started by GTHvidsten,

GTHvidsten

Yes! "-flush_packets 0" produced much bigger packages that Shoutcast didn't complain about. The data length received with this setting now looks like this:

10000, 2768, 10000, 10000, 10000, 2768, 8904

So the data is generally much longer (by a factor of 2.5x), but it seems Shoutcast is much happier with this, even though there are data received that is less than 4096.

So I guess the data received much be of a certain length for Shoutcast to accept it.
Maybe BassEnc.BASS_Encode_CastInit() should still have some internal buffering to ensure a certain (configurable) minimum data length, as I guess there could be other encoders that could also provoke this error (and that may not have something akin to "-flush_packets 0"). Though it's not needed for me right now it might be good for the future.

All in all, thanks for the help with the troubleshooting :)

Ian @ un4seen

I had a little try of this myself and found that it seems to be FFMPEG's ID3v2 tag (sent before the MP3 data) that the Shoutcast server doesn't like. Interestingly, older Shoutcast server versions don't seem to have a problem with it. FFMPEG's ID3v2 tag can be disabled with "-id3v2_version 0".

radio42

Might I ask, why you don't use the Broadcast halper class in BASS.NET?
See here: https://www.radio42.com/bass/help/html/b8533cef-2485-af79-61aa-1b4a637099b9.htm
at the bottom is an example given...

GTHvidsten

Quote from: Ian @ un4seenI had a little try of this myself and found that it seems to be FFMPEG's ID3v2 tag (sent before the MP3 data) that the Shoutcast server doesn't like. Interestingly, older Shoutcast server versions don't seem to have a problem with it. FFMPEG's ID3v2 tag can be disabled with "-id3v2_version 0".

That's interesting. If I return to ffmpeg I'll give this a try :)

Quote from: radio42Might I ask, why you don't use the Broadcast halper class in BASS.NET?
See here: https://www.radio42.com/bass/help/html/b8533cef-2485-af79-61aa-1b4a637099b9.htm
at the bottom is an example given...

I tried to be streaming server agnostic, and the Broadcast class needs either a Shoucast or an Icecast instance, and I didn't know which one I needed, so I used the more generic one.