I'm researching for a week to find a simple and platform independent method to stream a mp4 file to any browser. In case of browser incompatibility progressive stream(direct download) method will be used. My scenario is like this:
- single mp4 file (not segmented and multiplexed(Audio+Video) )
- HTTP Byte-Range serving supported
- progressive stream (direct file download) supported in case of browser incompatibility
After studying Apple HLS, Adobe Flash Stream, Microsoft Smooth, RTSP and MPEG-DASH it seems that MPEG-DASH is the proper solution. But the problem is MPEG-DASH forcing me to split mp4 file to separate segmented files which leads to duplicate consuming space to store the mp4 file because I have to support progressive stream in case of browser incompatibility. Then storing single mp4 file with segmented mp4 files is unavoidable.
The question is: is there any way to serve a single mp4 file as http stream & progressive stream in any browser ?
MPEG-DASH protocols says it supports multiplexed files but the problem is dash.js does not support it. Is there any other javascript player which supports multiplexed and single mp4 files with byte-range requests ?
Any other solution which commits my scenario conditions is welcomed. Thanks.
REFERENCES: BitCodin.com 1 BitCodin.com 2
Default Android Browsers
. I've tested over than 4 different JS Player. None of them played the mp4 file correctly. The mp4 video is played well only in full screen state. – Behrouz.MHandBrake
to encode MP4 files,web optimized & 2-pass encoding
. Only in this case Android browsers & Chrome plays the MP4 videos. But the problem is it only works in full screen state. ref: broken-links.com/2010/07/08/… – Behrouz.M