Bug 180765 - First frame of mp4 not shown before playback
Summary: First frame of mp4 not shown before playback
Status: NEW
Alias: None
Product: WebKit
Classification: Unclassified
Component: Media (show other bugs)
Version: Other
Hardware: iPhone / iPad iOS 11
: P2 Normal
Assignee: Nobody
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2017-12-13 12:09 PST by Dunstan Orchard
Modified: 2019-05-06 01:11 PDT (History)
4 users (show)

See Also:


Attachments
Screencast of safari playing back the test video (981.21 KB, video/quicktime)
2017-12-13 12:09 PST, Dunstan Orchard
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Dunstan Orchard 2017-12-13 12:09:13 PST
Created attachment 329243 [details]
Screencast of safari playing back the test video

(I don't know which version of Safari I have on my phone. It's whatever comes by default with iOS 11.2)

I have a 1.6mb mp4 set to play on a loop. In Safari on iOS 11.2 (on my iPhone) the first frame isn't shown before playback starts. The video just displays as a white box with the play button in the middle. Jer Noble reported that the video displays the first frame just fine on his phone.

Test page:
https://1976design.com/temp/videotest3.html

Code:
<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title></title>
  <style>
   div {
    width: 50%;
   }
   video {
    width: 100%;
   }
  </style>
</head>
<body>
 <div>
  <video controls src="hand.mp4" loop muted playsinline preload="auto"></video>
 </div>
</body>
</html>
Comment 1 Radar WebKit Bug Importer 2017-12-16 17:24:57 PST
<rdar://problem/36092924>
Comment 2 Terry 2019-05-06 01:11:19 PDT
Joining in on the discussion, because I've encountered a similar issue when working on iOS Safari. I've written to Jer Noble and the conclusion is that the first frame of the video is never accessible on iOS Safari because it requires support for preload="auto", which is currently missing. iOS Safari only supports preload="metadata", which does not provide sufficient information to render the first frame of the video.