
You can play HLS in flash via JW player 6, (or write your own HLS to FLV in AS3 like I did) My personal favorite is to encode HLS, then use flash to play HLS for everyone else. The closest thing to an LCD is using HLS to get your iOS users, and flash for everyone else.

So if you want to deliver everywhere, we need to find the least common denominator. It may be possible to construct an moov that 'fibs' the frame sizes, but is is very wasteful bandwidth wise. But due to its format, it can not be 'flattened' until the timestamps and size of EVERY frame is known. The moov contains an index of all data in the mdat. But it is not indexed, so without the moov, it is useless.

MP4 is broken into two pieces: moov and mdat.

MP4 cannot be used for live video (NOTE: DASH is a superset of MP4, so don't get confused with that). Lets look at which browsers support what formats

There are many reasons why video and, specifically, live video is very difficult. The new answer is HLS+hls.js if you need iOS. But via adaptors like hls.js you can play Keeping it here for posterity.ĮDIT 2: As people in the comments are pointing out, things change.Īlmost all browsers will support AVC/AAC codecs. Everything below this line is out of date. > Pretend flash, iOS9 and below and IE 10 and below don't exist. Now, is to create fragmented mp4 assets, with a DASH and HLS manifest. EDIT 3: As of IOS 10, HLS will support fragmented mp4 files.
