Hi,<br><br>I pipe mp3 data to ezstream in Linux, and I've just looked at the code to see how I do it.<br><br>I don't do any throttling at all - I just keep sending data all the time.  (I assume by throttling you mean "pipe data; sleep for estimated play-time of data; pipe data ...")  However my mp3 files are only a few seconds long (they are 4 bar loops) - that may make a difference.  I do it in Perl and the loop looks like this:
<br><br>  open(EZ, "|ezstream -c ezstream-config.xml");<br>  while (1) {<br>      if (open(MP3, $mp3file)) {<br>        while (<MP3>) {<br>          print EZ $_;  # read a chunk from the mp3 file and send it to ezstream
<br>        }<br>        close(MP3);<br>      }<br>  }<br><br>In my experience there's no need to 'sleep' - the OS takes care of it for you.  I did try calculating the sleep-time but I ended up commenting out those lines ;-)
<br><br>There's a tiny glitch between the loops but that's due to MP3 headers I think.  I never managed to get rid of that, but my ogg vorbis stream is seamless so I don't really care.<br><br>cheers,<br>Bob.<br><br><div><span class="gmail_quote">
On 4/20/06, <b class="gmail_sendername">Brandon @ LoudCity.Net IMAP</b> <<a href="mailto:brandon@loudcity.net">brandon@loudcity.net</a>> wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
I'm having  a hard time not getting mp3 data to ezstream via stdin fast<br>enough. The <a href="http://vb.net">vb.net</a> application I'm writing, ezstream and icecast are all<br>running on the same machine (Widows XP). Some where in the process, a
<br>buffer empties out and that results in a drop out when you are<br>listening. Usually the dropout happens at a song change.<br><br>At first I was chunking up the data according to bit rate and throttling<br>how much was written to ezstream. So I guess the drop outs were due to
<br>some overhead between my application and ezstream. Maybe something was<br>causing the write to stdin to take longer than my application expected.<br><br>Just for fun, I tried reading entire mp3 tracks into memory, then
<br>blasting the whole byte array to ezstream in one chunk. It sounds much<br>better, but I don't think this is the best way to do it.<br><br>How do other people usually solve this problem?<br><br><br>Thanks,<br>Brandon<br>
<br><br>_______________________________________________<br>Icecast mailing list<br><a href="mailto:Icecast@xiph.org">Icecast@xiph.org</a><br><a href="http://lists.xiph.org/mailman/listinfo/icecast">http://lists.xiph.org/mailman/listinfo/icecast
</a><br></blockquote></div><br>