it-swarm.com.de

<Video> wird in anderen Browsern wiedergegeben, jedoch nicht in Safari

Wir haben ein MP4-Video auf unserer Website. es spielt gut in IE9 +, Firefox, Chrome und Chrome auf dem Mac. Auf Safari wird das Video jedoch überhaupt nicht abgespielt - es löst ein "angehaltenes" Ereignis aus und lädt nichts. Ich würde unseren HTML-Code posten, aber ich habe das Problem weiter verfolgt, als ich herausfand, dass Safari es nicht abspielen würde, selbst wenn er zur ursprünglichen MP4-URL navigierte. Wenn das Video lokal heruntergeladen und abgespielt wird, funktioniert das Video in Quicktime einwandfrei.

Das Merkwürdigste daran ist das aller unserer Entwickler:Ikann das Video auf Safari zum Laufen bringen, wenn ich den entsprechenden Server von meinem Entwicklungscomputer aus betreibe. Darüber hinaus haben andere MP4-Dateien im selben Verzeichnis ein ähnliches Problem. Dies war der Schlüssel zu mir, und ich habe nach einem kleinen Unterschied in der Art und Weise gesucht, in der die Videos vom Server übertragen werden - Anforderungs-/Antwort-Header, genaue Dateigröße usw. 

Aus Chrome kopierte Kopfzeilen (nur da es schwieriger ist, Safari zu kopieren/einfügen)

Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding:gzip, deflate, sdch
Accept-Language:en-US,en;q=0.8
Cache-Control:max-age=0
Connection:keep-alive
DNT:1
Host:*************:8443
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36

Response Headers
Accept-Ranges:bytes
Content-Length:44875102
Content-Type:video/mp4;charset=UTF-8
Date:Tue, 30 Dec 2014 21:11:51 GMT
ETag:W/"44875102-1419959755000"
Last-Modified:Tue, 30 Dec 2014 17:15:55 GMT
Server:Apache-Coyote/1.1

(Nur für den Fall, dass Sie an ein älteres Problem erinnert. Ich weiß, dass Safari unter Windows seit Ewigkeiten tot ist. Dieses Problem tritt unter OS X auf.)

BEARBEITEN: Neue Informationen, die vielleicht ein bisschen helfen. Ich nahm ein persönliches Video von meinem eigenen Webserver, der von dort aus mit den problematischen Safari-Browsern arbeiten konnte, und lud es in das lokale Videoverzeichnis unseres Servers herunter. Von dort trifft es auf das gleiche Problem wie bei unseren anderen Videos. Dies deutet darauf hin, dass das MP4 selbst keine Rolle spielt - dies ist wahrscheinlich ein Serverproblem mit unserem Tomcat 7-Webserver. Wir haben die Inhaltstypen korrekt registriert, was zumindest die Grundlagen abdeckt, aber ich bin neugierig, ob es andere notwendige Teile gibt.

MEHR INFOS: Ich habe anfangs nicht gedacht, das zu erwähnen, aber wir laden unsere Webseiten und Videos über eine HTTPS-Verbindung. Die meisten unserer Testserver verfügen über keine gültigen Zertifikate. Daher müssen wir die Standardbrowser-Warnung durchsehen: "Dieser Server ist möglicherweise nicht derjenige, der von ihm stammt". Wir prüfen nun, was es braucht, um auf allen unseren Servern korrekte Zertifikate zu haben.

10
Katana314

Für Safari muss der Webserver den Anforderungsheader " Range " unterstützen, damit Ihre Medieninhalte wiedergegeben werden können.

https://developer.Apple.com/library/safari/documentation/AppleApplications/Reference/SafariWebContent/CreatingVideoforSafarioniPhone/CreatingVideoforSafarioniPhone.html#//Apple_ref/doc/uid/TP40006514

Für eine legitime "Range" -Anforderungsantwort muss Ihr Webserver den Statuscode "206" zurückgeben.

13
Reeve Lau

Stellen Sie sicher, dass im HTML-Code Steuerelemente = 'true' type = 'video/mp4' angegeben sind.

<video loop controls='true' width='100%' height='100%' src='//some_video.mp4' type='video/mp4'></video>
3
John Hua

Ich habe eine neue MP4-Datei hochgeladen, die jedoch nur in SAFARI (auf meinem MAC und auf meinem iPhone) abgespielt wurde, nicht in Chrome, Oasis, Firefox oder Brave. Der HTML-Code war mit den bisherigen Erfolgen identisch. Dateigröße und Abmessungen waren in Ordnung. Die Codecs der alten Arbeitsdateien lauteten jedoch "H.264, AAC". Die Codecs der neuen, nicht funktionierenden Dateien lauteten "MPEG-4, AAC". Ich bearbeite meine Videodateien auf VideoPad. Also habe ich mir die Auswahlmöglichkeiten für die Option "Datei exportieren als" angesehen, und natürlich waren die Codecs standardmäßig auf MPEG-4 eingestellt. Ich habe H.264 ausgewählt und die Datei exportiert. Auf AWS hochgeladen und veröffentlicht. Wiederholte meine neuen Dateien in den vier Fehlerbrowsern und BINGO!, Sie funktionierten alle. Es gibt einen Gott!

2
David Shoup

Safari erfordert, dass der Server Bytebereiche unterstützt, und der Mime-Typ wird gegenüber einem Dateityp-Suffix bevorzugt.

Siehe meine Antwort unter https://stackoverflow.com/a/51901198/1047992

1
David

Dies kann in der Tat ein Problem der fehlenden Unterstützung des Bytebereichs sein, abhängig von der verwendeten Version. Es wurde dem DMSDownloadServlet in MAGNOLIA-3855 (Magnolia-Fixversion 4.4.6) hinzugefügt.

1
user667

Bitte verzeihen Sie mir, wenn Sie dieses Problem bereits gelöst haben. Ich hatte das gleiche Problem mit meinen Servervideos in Safari. Ich konnte dieses Problem mithilfe von POSTMAN/INSOMNIA lösen, um die Header zu überprüfen, die mein Server sendet. Chrome kann Sie täuschen, sobald das Video in diesem Browser einwandfrei funktioniert!

Wenn sich das Video nicht im Bereich befindet (vollständige Videoanforderung), muss Ihr Server den Status zurückgeben (200) und herausfinden, ob 'Accept-Ranges: Bytes' von Ihrem Server gesendet wird.

Server: nginx
Date: Wed, 25 Jul 2018 17:34:18 GMT
Content-Type: video/mp4
Content-Length: 22995782
Connection: keep-alive
X-Powered-By: Express
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, POST, OPTIONS, PUT, PATCH, DELETE
Access-Control-Allow-Headers: X-Requested-With,content-type
Access-Control-Allow-Credentials: true
Accept-Ranges: bytes

wenn sich das Video im Bereich befindet, muss Ihr Server den Status (206) mit Bereichskopfzeilen korrekt zurückgeben Header-Beispielstatus 206:

Server: nginx
Date: Wed, 25 Jul 2018 18:13:07 GMT
Content-Type: video/mp4
Content-Length: 1023
Connection: keep-alive
X-Powered-By: Express
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, POST, OPTIONS, PUT, PATCH, DELETE
Access-Control-Allow-Headers: X-Requested-With,content-type
Access-Control-Allow-Credentials: true
Accept-Ranges: bytes
Content-Range: bytes 1-1023/22995782

Ich hoffe das hilft dir! meine besten grüße, Paulo Durço

Vor kurzem stieß mein Team auf ein bestimmtes Problem, das zu demselben Verhalten führte. Wir verwendeten Apache 2.4 und stellten fest, dass Safari bei Aktivierung einer Authentifizierungsschicht wie .htpasswd selbst nach der Authentifizierung keine Videos anzeigen würde. Es ist fast so, als würde die anfängliche Authentifizierungsfreigabe für bestimmte Arten nachfolgender HTTP-Anforderungen nicht fortgesetzt.

Tut mir leid, ich habe nichts Technisches zu bieten, aber es ist etwas für jeden, der nur in Safari Probleme mit dem Video hat.

0
RedYetiCo

...

Nebenbei bemerkt, macht Charset überhaupt einen Sinn für den Typ video/mp4? Versuchen Sie, den Zeichensatz zu entfernen.

BEARBEITEN: Ja, Zeichensatz könnte das Problem sein, siehe: Inhaltstyp für in Magnolia hochgeladene Dokumente angeben

EDIT2: Nicht Zeichensatz, woops, Leseverständnis scheitern. Könnte ein Bytebereich sein? Um zu sagen: "[...] wir haben herausgefunden, dass Safari/iOS" HTTP-Bytebereiche für das Anfordern von Audio- und Videodateien verwendet unterstützen diese Funktion, und daher schlägt das Streaming fehl. "

0
Nexii Malthus

Was passiert, wenn Sie diese zu Ihrem .htaccess hinzufügen?

AddType video/ogg .ogv
AddType video/mp4 .mp4
AddType video/webm .webm
0
neokio

Ich bin auf dasselbe Problem gestoßen und habe es gelöst, aber es ist keine andere Antwort hier für mich, also bleibe ich hier die Lösung für jemanden, der mir folgt.

Ich habe einen eigenen Video-Streaming-Server erstellt, der in dem befragten Fall einfach eine MP4-Datei mit "Ranged" zurückgibt, und ich habe festgestellt, dass Safari aus irgendeinem Grund kein in der HTTP-Antwort mitgeführtes Video abspielt.

0
findall