Omisión del encabezado contenido-longitud que interrumpe la reproducción de vídeo en algunos navegadores

Problema

Los vídeos cargados en AEM Assets se reproducen correctamente en el navegador Safari de Apple a través de instancias de publicación, pero no a través de Dispatcher.  El archivo se reproduce una vez que está completamente descargado, pero no durante la descarga.

Causa

Hay muchas razones por las que se puede interrumpir la reproducción de vídeos a través de Dispatcher.  Sin embargo, las causas más comunes son los encabezados HTTP contenido-longitud, contenido-tipo o aceptar-intervalo erróneos o inexistentes.

Resolución

Los encabezados de respuesta HTTP de un vídeo se pueden comprobar utilizando la cURL para descargar el vídeo:

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

A continuación aparece el resultado completo del comando:

$ 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

Compruebe que los encabezados aceptar-intervalo y contenido-longitud están presentes y que el tipo MIME es correcto.

Si falta el encabezado contenido-longitud:

Si está utilizando el servidor web Apache y falta el encabezado contenido-longitud, es probable que se deba a una mala configuración de inclusión del servidor.  Cuando SSI está habilitado en un archivo, Apache omite el encabezado contenido-longitud.

En sus archivos .conf de Apache, busque “INCLUDES”. Es posible que encuentre una configuración incorrecta como la siguiente:

SetOutputFilter INCLUDES;DEFLATE

Si está configurado, habilita SSI en todos los archivos.  En su lugar, SSI debería estar habilitado por tipo de archivo, de la siguiente manera:

AddOutputFilter INCLUDES;DEFLATE html

Si falta el encabezado aceptar-intervalos:

Revise las configuraciones de su servidor web, ya que la mayoría de los servidores web modernos tienen la opción de intervalo habilitada de forma predeterminada.

Si está usando Apache, en los archivos .conf busque lo siguiente:

Accept-Ranges none

Si el encabezado contenido-tipo es incorrecto:

Si el tipo MIME es incorrecto, deberá actualizar la configuración de su servidor web. Consulte la documentación del servidor web en el que tiene instalado Dispatcher.

Esta es una lista pequeña no inclusiva de tipos de vídeo MIME:

Tipo

Extensión de archivo

Tipo MIME

Flash

flv

video/x-flv

MPEG-4

mp4

video/mp4

Índice de iPhone

m3u8

aplicación/x-mpegURL

Segmento de iPhone

ts

vídeo/MP2T

Móvil 3GP

3gp

video/3gpp

QuickTime

mov

video/quicktime

Windows Media

wmv

video/x-ms-wmv

Intercalación A/V

avi

video/x-msvideo