<div dir="ltr">Hi there<div><br></div><div>Thanks Thomas. I was hoping to avoid remuxing as my objective is to run an extremely lightweight server. Just tested and the CPU runs between 9% and 23% for a lecture of 90 minutes - took 18sec. Yes it's a lightweight server, but like I said, that's the objective, and quite a nice challenge :-) CPU = cost and if you have to remux for 1000 clients in a day, integrity of live streams currently running are at risk. Going to put some more thinking into it.</div><div><br></div><div><b>You mentioned:</b></div><div>"Does this mean you are using the dump feature to write the complete<br>stream to a file on the machine running Icecast?"<span class="gmail-im" style="color:rgb(80,0,80)"><br></span></div><div><br></div><div><b><i>Yes</i></b>. Curious as to why you ask. Can one perhaps point it to a named pipe and pass to ffmpeg to remux and be a little more efficient on CPU? Alternatively, can you do <dump-file>ffmpeg -c copy .....</dump-file> ? Is it supported? Have been on Linux for less than a year so not sure if at all possible? I have no idea yet what a 1000 fifo's will do.</div><div><br></div><div><b>On another note:</b></div><div>The other BIG issue is to support apple users. iOS/Safari seems to be 11% of the market (<a href="https://caniuse.com/#search=HLS">https://caniuse.com/#search=HLS</a>) and I cant ignore them. Will have to use HLS to keep them happy but again the CPU overhead is imminent as vorbis/VP8 is miles away from AAC/H.264. Icecast is very CPU efficient ingesting, streaming and writing out a webm file, CPU 1-2%. Same efficiency situation with nginx and RTMP streaming in and serving HLS to iOS users. I read somewhere that MP4 is not supported on icecast, which is a pity. I have invested a lot in an icecast based audio solution and want expand it with video. </div><div><br></div><div><b>So my question is now: </b> <br></div><div>MP4 (H.264) is a close relative of HLS (can also be H.264) which brings me very close to a solution. If webm/ogv is supported but mp4 not, what is the technical differences in how icecast handles the one and not the other? What does icecast manage/do for supported formats as opposed to unsupported ones?</div><div><br></div><div>Best regards</div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, May 1, 2019 at 4:39 PM Thomas B. Rücker <<a href="mailto:thomas@ruecker.fi">thomas@ruecker.fi</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi,<br>
<br>
On 5/1/19 9:58 AM, Sytze Visser wrote:<br>
> I am streaming live with webm with ffmpeg to icecast 2.4.2. After the<br>
> stream ends, I am unable to determine the duration of the file using<br>
> ffprobe or mediainfo. Not sure but it seems that this has to do with<br>
> headers?<br>
<br>
<br>
It's a fundamental limitation of this type of streaming that the<br>
duration can not be determined beforehand and there is no way for a<br>
simple client to append necessary information.<br>
<br>
<br>
<br>
> Should icecast be writing the duration into the header or should this<br>
> somehow be passed from ffmpeg?<br>
<br>
<br>
Does this mean you are using the dump feature to write the complete<br>
stream to a file on the machine running Icecast?<br>
<br>
<br>
<br>
> The requirement is really to determine the duration of the streamed<br>
> event (i.e. not radio).<br>
<br>
<br>
I'm not sure how to interpret this, there seem to be some unstated<br>
assumptions, as e.g. radio broadcast has the same fundamental issues.<br>
<br>
Nevertheless there is a trivial solution to address a file that is<br>
missing such information: remux it.<br>
This does not change the payload in any way, the Video and Audio (and<br>
any other) bit-streams will not be changed. Only the WebM container<br>
information gets rewritten. If there are malformed portions of the<br>
stream (caused by e.g. CPU starved encoder or network stall), then those<br>
might get removed though as a player wouldn't play them properly either.<br>
<br>
There are many dedicated tools for remuxing MKV and or WebM.<br>
A somewhat brute-force quick fix is of course: `ffmpeg -i foo.webm -c<br>
copy bar.webm`<br>
<br>
<br>
Cheers,<br>
<br>
TBR<br>
<br>
<br>
<br>
_______________________________________________<br>
Icecast mailing list<br>
<a href="mailto:Icecast@xiph.org" target="_blank">Icecast@xiph.org</a><br>
<a href="http://lists.xiph.org/mailman/listinfo/icecast" rel="noreferrer" target="_blank">http://lists.xiph.org/mailman/listinfo/icecast</a><br>
</blockquote></div>