Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> Requirements: Live streaming uses Apple’s HTTP Live Streaming (HLS) technology. HLS requires ..., or a PC with Microsoft Edge on Windows 10.

Interesting. They are limiting it to their own devices and software, except they allow Microsoft Edge. Is there a technical reason for this? Couldn't Chrome/Firefox work? Strange that they would give Edge an exception.



It's not that they gave Edge an exception, it's that only Edge, aside from Apple products, implements HLS (an Apple specification).


I think this is one of Apple's semi-standard protocols that just happens to be supported by Edge, not that Apple is "allowing" Microsoft's browser in any way.


Microsoft Edge fully supports HLS, Firefox doesn't at all, and Chrome doesn't officially support it on desktop browsers.


Chrome supports its own streaming method, MPEG-DASH with H.264 which is what Youtube runs on where possible. Firefox stated it won't support H.264 on principle (although it does now, for WebRTC). Android supports HLS, as does iOS, out of the box. HLS was designed to supersede RTSP however we also have the equally-ubiquitous RTMP, which Flash supports natively. You can get an HLS stream via Flash with an add-on to some clients so now this will work on IE, Chrome Firefox, and there are also some custom, proprietary clients out there for h.264/HLS. It's not a pleasant ecosystem right now..


To clarify a number of points:

- Chrome (and other browsers) support MPEG-DASH via javascript through the Media Source Extensions (MSE) (which Safari actually supports[1])

- Firefox does not "bundle" H.264 (because of licensing) but has recently supported it where the OS provides it[2].

- HLS and MPEG-DASH are fairly similar in theory, but in practice HLS requires complete (with header/metadata) chunks whereas MPEG-DASH can "arbitrarily" chunk a video file and just feed into a MSE video stream. Both work with manifest files detailing different resolutions/qualities and chunk sizes + offsets.

[1] https://en.wikipedia.org/wiki/Media_Source_Extensions#Browse...

[2] https://developer.mozilla.org/en-US/Apps/Build/Audio_and_vid...


Firefox supports H.264 via system codecs, and supports MPEG-DASH as of version 41 (currently beta, will be stable in a few weeks). MPEG-DASH is a more open standard, and has better support for adaptive bitrate streaming, so I think it's likely to become the defacto standard in the future. It's fairly new so isn't supported everywhere yet, but it's getting there, and seems to have a lot more industry support than other options.


Firefox supports h264 just fine and has done so for about a year.


Yes, thanks to the open source H.264 codec from Cisco. This is about open source options and I think Firefox's decisions are completely valid.

https://gigaom.com/2014/10/14/h-264-support-arrives-in-firef...


The way that article is written makes it sound like a closed-source codec, but it is actually open:

https://github.com/cisco/openh264

and the code is better than I expected from a commercial project, it even uses may_alias properly. I wonder why the decoder doesn't support CPU multithreading, though? Slice threads are pretty simple to add.


It's about the patents.

"while OpenH264 is not truly open, at least it is the most open widely used video codec"

http://andreasgal.com/2014/10/14/openh264-now-in-firefox/


Well Web rtc in firefox uses the "H.264 codec from Cisco".

Normal videos like youtube uses the operating system decoder.


Edge supports HLS, the others don't.


Actually HLS is an IETF draft [1], but I'm not sure why Apple never followed through on making it a full standard because it's got a ton of clear advantages to traditional streaming technologies. I think it's more an issue of other browsers not supporting it, rather than Apple stopping them.

1: https://tools.ietf.org/html/draft-pantos-http-live-streaming...


HLS requires you to use MPEG-2 streams[1], so it will not work with non-MPEG streams, like WebM.

DASH is more technologically neutral. For Apple however, it is NIH.

[1] - from the spec: Each media file MUST be formatted as an MPEG-2 Transport Stream or an MPEG-2 audio elementary stream [ISO_13818].


OK, this is one of things where you have to be very precise with the terminology. HLS does enforce the use of MPEG-2 Transport streams, but it does not force the use of the video encoding that is packaged in the stream. It is very typical (in fact it's the norm) to see HLS using H264 for the actual encoding work, and MPEG2 TS is actually a pretty decent specification for throwing around video streams.

I don't know that you can really say that DASH is more technologically neutral. I mean what are you saying, that HLS is not technology neutral because it forces you to use an MPEG specification, but if you opt to use an MPEG specification up-front, that's neutral?

Anyway, as someone that writes the client code for these things, I much prefer the HLS approach. If you go the DASH approach, you get into one of several potential messes. Either you have to say that you're only implementing one specific profile, in which case content providers complain that you're not supporting their chosen profile, or you have to write an absolutely massive client that can accept anything thrown at it.

Apple's affection for HLS stems from this same reasoning in my opinion. They too are more concerned about the client side - they want to keep the format simple for clients to handle, so that they don't have to bloat all of their code handling all of the different options. Because don't forget, the servers don't have to deal with this complexity - they choose which bits they want to use and go with it. Clients have to be able to handle everything in the spec correctly.


Oh yikes I didn't know that :) That's pretty bad.

But this is exactly the kind of thing where you can update the draft to support better codecs, but Apple seems to have just abandoned it.


Is there a reason you couldn't put VP-8 video and Vorbis audio into an MPEG Transport Stream?


This is the first time They've allowed Windows, I think


They don't "allow" anything. No other browsers support HLS




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: