I have embedded a mp4 file in my webpage, that gets loaded fine and is playable by every browser and on mobile too.
<video controls src="/mymovie.mp4">
<track kind="captions"></track>
</video>
However, when I open the webpage with Safari (macOS), the only thing I can see is a black box with the size of the video and a striked through (disabled) play button in front of it. The thing is, when I refresh the page again (even without clearing the cache) the video works fine.
When I write my markup to use the source
element, the problem appears, but in a different way. Now I see no longer a black box, but a transparent one and I can press the play button, but the video won't start. I already tried to place a "not supported" text under the source
list, but the text doesn't appear.
<video controls>
<track kind="captions"></track>
<source src="/mymovie.mp4" type="video/mp4"></source>
not supported
</video>
Notice that I already tried reordering the source
element above the track
element.
Is there any known problem of this kind and a way to solve it?
Here are some more informations about my setup:
- HTTPS only (valid certificate)
- video size is around 3,5MB
- NGINX is configured to send this headers:
accept-ranges: bytes
Content-Range: bytes 262144-3411398/3411399
content-type: video/mp4
Something I notice in difference to Chrome is, that inside my devtools network tab the video source is loaded between 2 and 4 times, but just one time of it with the correct size. The other two entries are just some bytes. However, this happens in the same way, if I face the black box.