Weglassen des Content-Length-Headers unterbricht die Videowiedergabe in einigen Browsern

Problem

Videos, die in AEM Assets hochgeladen wurden, werden im Apple Safari Browser über Veröffentlichungsinstanzen korrekt wiedergegeben, jedoch nicht über den Dispatcher.  Sobald die Datei vollständig heruntergeladen ist, startet die Wiedergabe, jedoch nicht während des Downloads.

Ursache

Viele Dinge können die Videowiedergabe über den Dispatcher unterbrechen.  Die häufigsten Ursachen sind jedoch falsche oder fehlende Content-Length, Content-Type oder Accept-Ranges HTTP-Header.

Lösung

Die HTTP-Antwort-Header für ein Video können mit cURL überprüft werden, um das Video herunterzuladen:

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

Die vollständige Ausgabe des Befehls ist nachstehend ersichtlich:

$ 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

Überprüfen Sie, ob die Accept-Ranges und Content-Length-Headers vorhanden sind und ob der MIME-Typ korrekt ist.

Content-Length-Header fehlt:

Wenn Sie den Apache-Webserver verwenden und der Content-Length-Header fehlt, dann liegt es möglicherweise an einer schlechten serverseitigen Einschlusskonfiguration.  Wenn SSI für eine Datei aktiviert ist, lässt Apache den Content-Length-Header weg.

Suchen Sie in Ihren Apache.conf-Dateien nach „INCLUDES“. Möglicherweise finden Sie eine fehlerhafte Konfiguration wie diese:

SetOutputFilter INCLUDES;DEFLATE

Wenn dieser Wert festgelegt ist, wird SSI in allen Dateien aktiviert.  Stattdessen sollte SSI per Dateityp wie folgt aktiviert werden:

AddOutputFilter INCLUDES;DEFLATE html

Accept-Ranges-Header fehlt:

Überprüfen Sie die Konfigurationen Ihres Webservers, da die meisten modernen Webserver standardmäßig die Bereichsoption aktiviert haben.

Wenn Sie Apache verwenden, dann suchen Sie in den .conf-Dateien nach:

Accept-Ranges none

Content-Type-Header ist falsch:

Wenn der MIME-Typ falsch ist, dann müssen Sie Ihre Webserver-Konfiguration aktualisieren, beachten Sie die Unterlagen des Webservers, in dem Sie den Dispatcher installiert haben.

Es folgt eine kleine, nicht vollständige Liste von Video-MIME-Typen:

Typ

Dateinamenerweiterung

MIME-Typ

Flash

flv

video/x-flv

MPEG-4

mp4

video/mp4

iPhone-Index

m3u8

application/x-mpegURL

iPhone-Segment

ts

video/MP2T

3GP-Mobiltelefone

3gp

video/3gpp

QuickTime

mov

video/quicktime

Windows Media

WMV

video/x-ms-wmv

Audio Video Interleave

avi

video/x-msvideo

Adobe-Logo

Bei Ihrem Konto anmelden