HTML5 offline cache (application cache) limit and offline Video/Audio behavior for Android tablet - html5-appcache

I am validating the HTML5 application cache limit and Video/Audio behavior for Android tablets and below are my observations
Device: Samsung Galaxy Tab2 7.0 P3100
Android OS: 4.1.2
Android browser:
The maximum caching limit is 378 MB. The limit is per domain.
The Video (used mp4 format file) & Audio (used mp3 format file) elements gets cached but it does not get played in the offline mode. It only gets played in the online mode.
Chrome browser (27.0):
The maximum caching limit is 940 MB. The limit is per domain and in one time 35 MB of data can be cached. Meaning need to cache data in chunks of 35 MB and for this purpose we can either update the same manifest file with the new data or we can make use of multiple manifest files
The Video (used mp4 format file) & Audio (used mp3 format file) elements gets cached but it does not get played in the offline mode. It only gets played in the online mode.
Based on the information read on the internet I was under impression Android do support unlimited HTML5 offline caching and hence would like to confirm my above observations.
If anyone has observed any other behavior than which is mentioned above then please share the same.

Related

What options are there for low latency video streaming in the iOS webview?

I need a to display a low latency (less than 5 seconds) video stream in my HTML5 app. The app is running in a webkit webview on iOS (not mobile Safari). I have explored and eliminated the below options.
Are there any options out there for displaying a low latency video stream in a webview?
WebRTC:
JS API not implemented in webview (although now supported in mobile safari)
RTMP:
Flash players not supported in webview
RTSP:
Not supported on iOS even when tunneled through websockets (Streamedian).
HLS and/or DASH:
Latency is too high
I've been working on a project that allows low latency HLS with any normal player all the way back in 2016 for that specific reason - no support for this from at that point any of the native players.
In HLS is actually quite easy to go quite low on latency, but it does require a server working in a bit different way than a normal file server - it should present the chunks on the playlist before they appear and wait until they show up when they're requested.
I have decided to open source my efforts so you can try this here: github.com:signicode/ahead-server.
There are things to be done, so all the help is welcome.

PWA app - Store images and videos in local storage using Angular 6

I am creating a Progressive web app(PWA) using angular javascript. where I need to store images and videos downloaded from the server.
I have explored on local storage and IndexedDb, both have limitation in storage size. The official document says, Safari browser allocates max of 50 MB and Chrome mobile allocates 6% of free disk space for local storage.
Is there any option to store the images and videos of large size locally and display the same in PWA app when the device is in offline?
You can't bypass the storage constraints set by the browsers(different for each browser as you have observed). Most of the browsers will let you store more(with users permissions where applicable) but that has to be noted is, these data can also be deleted by the browser without your application having any control over preventing it.
Its a snadboxed storage your browser allocated to your app and it can always take back on different scenarios.. like when the disk space goes low, user clears cache etc.,
You can rely on it as long as you have a fallback when the file is cleared. If you are thinking of storing GBs of data, this option is not for you. But if it goes couple of hundred MBs, you should be okay with most browsers, provided user accepts to allocate the space.

HTML5 Media capture on mobile - video duration

I've implemented a mobile web page that allows users to record a video and upload to a server. I've used the HTML5 media capture input method:
<input type="file" accept="video/*;capture=camcorder">
This launches the camera as expected and I can proceed through the upload process. However on iOS I can only record 1 minute of video footage.
When I've done something similar in a native app there is no limit to the length the recording.
Is this a limit set by default on iOS due to memory and is there any way to change this?
I've searched everywhere but can not find any information about iOS limiting the duration of a video recorded via a mobile web app.
It might have to do with how much RAM is on your device and the video quality set in your device's Photos & Camera > Record Video settings. These are the options on an iPhone 6S (2G of RAM).
Higher quality video takes up more RAM/minute, at least until the video is uploaded to the web server.
Once recorded the video is compressed and uploaded. I've written an article of how Safari on iOS compresses video when recording through HTML Media Capture.
PS: There is no way to specify a limit mentioned in the HTML Media Capture Standard.

A/V sync issue - Apple's HTTP Live Streaming

When I try to stream TS chunks generated by 3rd party multiplexers (Mainconcept/Elecard) from Safari browser in IPad 2.0/1.0 I always see Audio Video synchronization issue over a period of time.
But the same clips are playing fine in standard media player in Windows PC or Macbook.
I also observe that there is no issue in IPad when I try to stream TS chunks generated by Media File Segmenter tool in MAcbook.
What is that IPad is expecting from 3rd party multiplexers?
For Ex: When I try to stream a set TS chunks in Ipad where the overall chunk duration is 5mts 35 secs (including all TS chunks), I observe audio goes out of sync after 2 mts 40 secs.
Following is the media pipeline used to generate TS chunks
Video.mp4 (Source)-> Mainconcept MPEG4 DeMultiplexer-> Mainconcept MPEG Multiplxer-> Mainconcept Sink Filter (Generates TS chunks based on time)
Can someone share some points on IPad HLS behaviour? Does IPad expects some additional parameters for synchronization?
Thanks.
In Mainconcept Multiplexer settings, enable "optimized packing". This will resolve the AV sync issue

Local video on iPhone (m4v format) - Play video at a specific time-index

I am developing a PhoneGap application, in which I'm linking directly to video files, which in turn opens up the internal player and starts playback...
Play Video
Is it possible to start linked-to videos at a specific time-index, somehow, like you would do on YouTube...?
youtube.com/watch?v=666w#t=06m12s (six minutes and twelve seconds in)
... Furthermore; is it possible to specify an end-point?
I am trying to avoid splitting up my video file to save a few megabytes. I want users to be able to download the application anywhere, so I need to limit the size to 20 megabytes or less.

Resources