HTML5 Video mp4 not playing on SOME iPads - ios

Background:
I have two iPads running the same version of iOS and Mobile Safari. The site wrapper works just fine on both. Additionally, I have multiple versions of the video for different devices (h.265 HEVC .mp4, VP9 .webM, h.264 .mp4) which all work fine in the different supported browser/OS variations including most iOS devices I've tried.
Problem:
iPad A (Gen 7 2019 iOS 13.4.1) - Correctly chooses h.265 mp4 and plays it as expected. If h.265 doesn't exist it plays the fallback mp4 correctly instead.
iPad B (iPad Mini 4 iOS 13.4.1) - Won't play either mp4 file or any of the other MP4s that make up the site. I just get the crossed out play button.
What I've tried:
I've checked the headers and the files are being served correctly with the correct MIME Type Content-Type: video/mp4
Tried multiple different hosting environments including Apache, IIS, Node Express - same problem.
Tried Chrome & FF on the iPads. - Same problem.
I tried different ways of presenting the video. The site uses VideoJS to display videos, but I removed that and used HTML 5 <video> tags in a flat HTML file. I even tried navigating directly to the video in the browser URL. In all cases iPad A is fine and iPad B fails.
All this makes me think its a video encoding error but I have the same problem regardless of which mp4 file I use (h.264 or h.265). Is there bitrate or other encoding issues with some Apple hardware that don't apply to others?
Here are the videos in question:
https://boundarywaters360.com/video/paddling.mp4 (Normal mp4)
https://boundarywaters360.com/video/paddling_h265.mp4 (h.265 version - note Chrome won't play this)

Days ago I had a similiar problem.
What it fixed this issue for me was that I adapt the video dimensions to smaller as the device screen resolution. After i've had done this the video plays without problem.
I could not find any documentation on the part of apple what confirmed this issue, but maybe you could try it and let me know if this was helpful.

Related

HTML 5 Video's Audio Muted in iOS 10 Web Apps

Audio in HMTL5 video works fine in Safari on iOS 10.3.1 on iPhone, though it doesn't in standalone web apps (same html code & video file). Video play is fine. Just no sound.
There are a few other related discussions in the past, eg, Why HTML5 video doesn't play in IOS 8 WebApp(webview)?. I tested on iOS 10 using the html provided by that post.
Not sure whether it is a new bug introduced in iOS 10, or a bug that has never been fixed by Apple since earlier versions. Does anyone experience this issue? Are there any workarounds? Thanks in advance.
I had the same question. I googled all over the place. Then I realized what was causing the problem: I had the physical "soft mute" switch (next to the volume buttons) on my iPad turned on. Infuriatingly, this muted the volume on web apps, but not Safari web pages.

playing flash videos in ios browsers

I have a scenario where I have to play videos using flash player in iOS device's browser. Offically Apple does not support flash, so is there any way of playing flash videos in iOS devices?
You could try a flash to html5 converter like Google swiffy:
https://www.google.com/doubleclick/studio/swiffy/
Swiffy has been regularly upgraded since 2011 and does a very good job, although expect much bigger file sizes.
Also, looped event sounds in your FLA files (if any) will play only once (i.e. they don't loop). What is more, event sounds play in Swiffy in PC browsers, but currently do not play on iOS devices. Stream sound isn't supported in Swiffy yet, on any device.

Mjpeg broken on recent Mobile Safari?

I am playing with live mjpeg streams from IP cameras and found that support for mjpeg seems to be broken on recent Mobile Safari releases.
I am using a simple HTML test page with an embedded image as follows:
<img src="http://[ip_address]/[path]">
This works fine on an iPhone 4S with iOS 5.1, but doesn't show anything on an iPad with iOS 7.0.3.
Can someone confirm this? Any known workarounds?
MJPEG support on iPhone (and on OSX also) has been often broken in the past, and I can confirm that right now I'm having the same problem with MJPEG streams on my iPhone 5, version 7.0.4.
You can find some threads talking about this problem in the apple website, dating from mid 2013 and with a few recent answers, like this one https://discussions.apple.com/message/22933450#22933450
This one posts a possible solution, if you can control the stream:
https://discussions.apple.com/thread/4347848
I have not tried if this solution works, because I can't change the stream itself.
And the problem was also on OSX Lion :
https://discussions.apple.com/message/19028348#19028348
They say it has been fixed in OSX, and that some bug reports has been filed for ios, but can't find if and when they will be fixed.
I can't find it again, but in a comment someone speculate that MJPEG support was disabled/limited on purpose on iPhone because some users had their mobile bandwidth consumed when forgetting mobile safari connected to a site streaming mjpeg images, but can't find a reference to that claim.

Streaming AAC+ (inside FLV) on iOS using AIR

For a streaming radio station, I have an AAC+ audio stream, inside an FLV container, delivered via HTTP. An example URL is http://3023.live.streamtheworld.com/ALTROCK_S01A_AAC. I wrote a simple AIR app (using the latest AIR and Flex SDK's) to play this stream, and it works fine on PC and Android, but doesn't play anything when deployed to the iOS simulator or a device (i.e., the bytes are loaded but there is no sound).
This is similar to Can FLV AAC stream be played in Android, but for iOS.
I wanted to use AIR in this scenario, since I need to listen for the Cue Points in the FLV - and this is easy to do if you're playing Flash in a web browser, so AIR seems like the natural choice. I have also looked at http://code.google.com/p/haxecast/ and https://code.google.com/p/project-thunder-snow/ but they all seem to use the same basic idea (parse the FLV using Netstream in "data generation mode" and feed the AAC+ data to a Video object) - and so they all hit the same wall on iOS.
I also came across this post which seems possibly related although it's not quite the same situation (e.g., it's not FLV).
Is AIR on iOS supposed to support this scenario- namely, streaming AAC+/FLV audio via HTTP?
EDIT: This post also appears to hit the same obstacle - so a lot of people are asking about this situation. Anyone from Adobe have any insight?
After much further research I've concluded that AIR on iOS just doesn't support this, and you have to build a native app (or at least use framework other than AIR) instead.

H.264 encoded MP4 presented in HTML5 plays on Safari but not iOS devices

I'm using Adobe Media Encoder CS5 to encode a FLV file to H.264 to present on the web via HTML5 and the video file plays just fine in Safari in OS X (and in Firefox encoded to OGG) but on any iOS device (iPad, iPhone) I get the play icon with the slash running through it.
Has anyone encountered this before and if so, any ideas as to why?
Thanks.
We had this problem and found that encoding the files in accordance with iPhone's webview's standards created files that played fine.
Not all H.264 encoded Mp4 files are supported by iPhone (or Chrome for that matter) and slight differences in the encoding process can produce videos that do not work. Even if the EXACT same encoding settings were used, H.264 is a variable bit-rate encoder, so different videos may exceed bitrate limits, causing some to work and other not.
The encoding settings that were successful for us were:
Only use the H.264 Baseline Profile Level 3.0
Resolution below 640 x 480 and framerate up to 30 fps
B frames are not supported in the Baseline profile.
bitrate limit of 900kb.
Here is the reference we used to arrive at those settings.
I know this has a marked answer, but we had the exact same issue.
The problem ended up being a setting on our internal network.
After turning on the safari console on the iPad, we saw that when trying to load the video we were getting a "byte_range_error_message" being logged. It seems the mobile devices request this content differently than desktop devices, by requesting certain bytes at a time. We managed to find out that the video played fine when the phones used their 3G networks, but not when they loaded the video through the internal wifi. A lot of research later led us to this MSDN article:
http://support.microsoft.com/kb/922330
Which explained how to find the setting in our firewall to allow the devices to request the video properly. We also found a similar setting on one of our D-Link routers for a separate wifi network that was also having the problem.

Resources