L'omission de l'en-tête Content-Length interrompt la lecture de la vidéo dans certains navigateurs

Problème

Les vidéos téléchargées sur AEM Assets sont correctement lues dans le navigateur Apple Safari via des instances de publication, mais pas via le répartiteur.  Une fois le fichier entièrement téléchargé, il est lu, mais il ne peut pas être lu pendant le téléchargement.

Cause

De nombreux éléments peuvent rompre la lecture de la vidéo par le répartiteur.  Toutefois, les causes les plus courantes sont les en-têtes HTTP Content-Length, Content-Type ou Accept-Ranges manquants ou fausses.

Résolution

Les en-têtes de réponse HTTP pour une vidéo peuvent être vérifiés en utilisant cURL pour télécharger la vidéo :

curl -v http://host/content/dam/test.mp4

La sortie complète de la commande est visible ci-dessous :

$ curl -v http://host/content/dam/test.mp4
...
> GET /content/dam/test.mp4 HTTP/1.1
> User-Agent: curl/7.37.1
> Host: host
> Accept: */*
>
< HTTP/1.1 200 OK
< Date: Mon, 09 Jan 2017 20:27:50 GMT
* Server Apache is not blacklisted
< Server: Apache
< Last-Modified: Wed, 23 Nov 2016 23:22:56 GMT
< ETag: "17c0313-81a7de-542002b36d400"
< Accept-Ranges: bytes
< Content-Length: 8497118
< Content-Type: video/mp4

Vérifiez que les en-têtes Accept-Ranges et Content-Length sont présents et que le type MIME est correct.

Si l'en-tête Content-Length est manquant :

Si vous utilisez le serveur Web Apache et que l'en-tête Content-Length est manquant, cela est probablement dû à une mauvaise configuration de Server Side Include.  Lorsque SSI est activé sur un fichier, Apache omet l'en-tête Content-Length.

Recherchez vos fichiers Apache .conf pour « INCLUDES ». Une configuration incorrecte similaire à la suivante peut apparaître :

SetOutputFilter INCLUDES;DEFLATE

Si défini comme tel, SSI est activé sur tous les fichiers.  Au lieu de cela, SSI doit être activé par type de fichier, comme suit :

AddOutputFilter INCLUDES;DEFLATE html

Si l'en-tête Accept-Ranges est manquant :

Passez en revue les configurations de votre serveur Web car la plupart des serveurs Web modernes ont l'option de plage activée par défaut.

Si vous utilisez Apache, recherchez les fichiers .conf pour cela :

Accept-Ranges none

Si l'en-tête Content-Type est incorrect :

Si le type MIME est incorrect, vous devez mettre à jour la configuration de votre serveur Web. Reportez-vous à la documentation du serveur Web sur lequel le Dispatcher est installé.

Voici une petite liste non exhaustive de types MIME vidéo :

Type

Extension

Type MIME

Flash

flv

video/x-flv

MPEG-4

mp4

video/mp4

Index iPhone

m3u8

application/x-mpegURL

Segment iPhone

ts

video/MP2T

Mobile 3GP

3gp

video/3gpp

QuickTime

mov

video/quicktime

Windows Media

wmv

video/x-ms-wmv

Interleave A / V

avi

video/x-msvideo

Logo Adobe

Accéder à votre compte