Search code examples
ioshtml5-videomp4video.js

HTML5 Video mp4 not playing on SOME iPads


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)


Solution

  • 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.