6

I have an IP camera which sends out a live stream in RTSP over UDP and I want to display this stream in the browser, and I want it to work on the major browsers and on mobile (both iOs and Android). To achieve this I want to convert the stream to HTTP Live Streaming (HLS) on the server before sending it to the client. Now I've read that not very long ago Apple added support for fragmented MP4 (fMP4) as format for the stream, whereas normally the stream would be sent in MPEG-TS format. And fMP4 is also the format that MPEG-DASH supports, and MPEG-DASH might be the industry standard in a few years.

Now my question is, what the advantages and disadvantages of both fMP4 and MPEG-TS are?

EDIT: According to the technical notes for HLS from Apple, live streams must be encoded as MPEG-TS streams (https://developer.apple.com/library/content/technotes/tn2224/_index.html#//apple_ref/doc/uid/DTS40009745-CH1-ENCODEYOURVARIANTS). Is there a reason for this or is this information outdated?

casper04
  • 63
  • 1
  • 5
  • 2
    Here's a nice document(https://sourceforge.net/p/gpac/discussion/287546/thread/53915f0e/c1e0/attachment/FRAGMNETED%20MP4%20-%2020111116-fMP4-Adobe-Microsoft.pdf ) , it seems that fmp4 is better. – Timothy Lee Feb 22 '18 at 07:39

1 Answers1

7

fMP4 is likely to replace TS as a standard. It has less overhead and is required for HEVC, but the main advantage is compatibility with DASH - i.e. you can generate both HLS and DASH using the same files, which helps with compute and storage costs. For your particular use case, HLS TS probably has the more coverage (due to old devices and players) than HLS fMP4, but HLS+DASH fMP4 is what I would choose.

Peter Tseng
  • 13,613
  • 4
  • 67
  • 57