PDA

Bekijk Volledige Versie : Serveren van video bestanden naar IOS (html5)



het.oosten
02/09/17, 11:36
Ik krijg met geen mogelijkheid voor elkaar dat html5 videos van mijn server worden afgespeeld op een IOS apparaat. Ik het de volgende test:


<p>
<video autoplay="true" controls="" height="360" muted="true" width="640"><!-- MP4 must be first for iPad! --><source src="http://clips.vorwaerts-gmbh.de/VfE_html5.mp4" type="video/mp4" /></video>
</p>

<p>
<video autoplay="true" controls="" height="360" muted="true" width="640"><!-- MP4 must be first for iPad! --><source src="/media/VfE_html5.mp4" type="video/mp4" /></video>
</p>

De bovenste video wordt afgespeeld (externe server), en de onderste niet. Op het moment dat de pagina wordt opgevraagd, krijg ik de volgende foutmelding in mijn logs:


2017/09/02 11:11:40 [error] 1952#0: *875 directory index of "/home/mijnsite/mijnsite/media/" is forbidden, client: 111.222.333.444, server: mijndomein.nl, request: "GET /media/ HTTP/1.1", host: "www.mijndomein.nl", referrer: "https://www.mijndomein.nl/test/"

Ik heb een Directadmin server met Nginx. Hierop draait een Django site (UWSGI). De media bestanden worden via een alias direct door Nginx geserveerd:


# Django media
location /media {
alias /home/mijnsite/mijnsite/media;
}

Ik heb tijdelijk de media directory een 777 permissie gegeven. Dit maakt geen verschil, dus een permissie probleem kan ik uitsluiten.

De mp4 extentie staat in /etc/nginx/mime.types:


video/mp4 mp4;

Als ik een curl doe voor de video, krijg ik de volgende output:



HTTP/1.1 200 OK
Server: nginx
Date: Sat, 02 Sep 2017 09:25:49 GMT
Content-Type: video/mp4
Content-Length: 5251725
Last-Modified: Sat, 02 Sep 2017 07:56:04 GMT
Connection: keep-alive
ETag: "59aa6414-50228d"
Accept-Ranges: bytes

Enig idee wat er aan de hand kan zijn?

EDIT:
Ik heb tijdelijk autoindex op on gezet. Hiermee is de foutmelding mbt directory index forbidden verdwenen. Helaas werkt het op IOS nog steeds niet.

het.oosten
02/09/17, 12:01
Ik kan helaas het bericht niet meer aanpassen.

De site is in opbouw en draait op een eigen certificaat op een testdomein (https only). Waarschijnlijk zorgt een certificaatfout ervoor dat de video niet wordt afgespeeld.

Op een ander domein op deze server werkt het wel goed.

Bij andere besturingssystemen, heb ik geen problemen met het afspelen van html5 video met een ongeldig certificaat.

stefantriep
02/09/17, 14:07
Bij andere besturingssystemen, heb ik geen problemen met het afspelen van html5 video met een ongeldig certificaat.

Ik denk dat het self signed certificaat het probleem is, Apple accepteert niet echt iets meer met een foute SSL en wil het liefste alles over SSL. Misschien kan je een echt certificaat kopen en die 30 dagen proberen? Doorgaans kan dat zover ik weet bij de grotere Amerikaanse SSL partijen.

het.oosten
02/09/17, 16:02
Het probleem met de html5 video was de laatste hobbel. Ik heb de site nu omgezet naar het goede domein (met een geldig certificaat) en alles werkt nu helemaal prima.

Ik was wel behoorlijk aan het vertwijfelen, op de IOS apparaten kreeg ik geen foutmelding, en in de logs had ik helemaal geen entry voor de mp4 film (niet in de access logs en niet in de error logs).