MP4 joue quand on y accède directement, mais pas lors de la lecture par le biais de PHP, sur iOS

J'utilise un script PHP pour valider vidéo les demandes avant de les servir. Ce script fonctionne comme prévu sur le bureau, avec Safari et Chrome. Mais sur iOS, je reçois une fracture de la touche play.

Je suis sûr que la vidéo est correctement codé pour iPhone/iPad, parce que quand j'y accéder directement, il fonctionne comme prévu.

Pertinentes du code PHP:

$file_name = 'test-video.mp4';
$file_size = (string)(filesize($file_name));
header('Content-Type: video/mp4');
header('Content-Length: '.$file_size);
readfile_chunked($file_name);
exit;

(readfile_chunked() est similaire à readfile() mais pour les très gros fichiers, trouvé dans les commentaires sur le manuel PHP page: http://php.net/manual/en/function.readfile.php. Dans tous les cas, test-video.mp4 est seulement ~5 MO, ce qui est inférieur à la limite de la mémoire, et dans ce cas je peut effectivement se substituer à la normale readfile() et produit exactement le même comportement.)

Les en-têtes que j'obtiens lorsque j'ai accès test-video.mp4 directement sont:

Accept-Ranges:bytes
Connection:Keep-Alive
Content-Length:5558749
Content-Type:video/mp4
Date:Sun, 27 Jun 2010 21:02:09 GMT
Etag:"1c04757-54d1dd-489944c5a6400"
Keep-Alive:timeout=10, max=30
Last-Modified:Tue, 22 Jun 2010 01:25:36 GMT
Server:Apache/2.2.15 (CentOS) mod_ssl/2.2.15 0.9.8l DAV/2 mod_auth_passthrough/2.1 FrontPage/5.0.2.2635

Les en-têtes du script PHP sont:

Connection:Keep-Alive
Content-Disposition:inline; filename="test-video.mp4"
Content-Length:5558749
Content-Type:video/mp4
Date:Sun, 27 Jun 2010 21:03:32 GMT
Keep-Alive:timeout=10, max=15
Server:Apache/2.2.15 (CentOS) mod_ssl/2.2.15 0.9.8l DAV/2 mod_auth_passthrough/2.1 FrontPage/5.0.2.2635
X-Powered-By:PHP/5.2.13

J'ai essayé beaucoup de différentes permutations des en-têtes, même correspondant exactement à ceux d'une demande directe, en vain.

Quelqu'un a eu le succès servant de vidéo HTML5 par le biais de PHP, sur iOS?

[Note: je voudrais essayer d'utiliser X-Sendfile, mais le site est sur un ordinateur hôte partagé avec un accès très limité.]

EDIT: j'ai lu qu'iOS peuvent être sensibles sur les extensions de fichier, j'ai donc essayé la configuration d'une règle de réécriture qui réécrit MP4 demandes de retour à mon premier script PHP, mais cela n'a pas aide non plus.

InformationsquelleAutor JKS | 2010-06-27