2016-03-26 20 views
2

Ich versuche, ein Video Cross-Browser zu machen. Ich habe das Video mit den erforderlichen Codecs usw. codiert. Wenn Sie den Django-Server durchlaufen, zeigen sowohl Chrome als auch Firefox ihr jeweiliges Video an (Chrome zeigt .mp4 und Firefox .ogv an). Safari kann das Video jedoch nicht anzeigen. Ich weiß, dass es kein Codierungsproblem ist, denn wenn ich einfach die rohe HTML-Datei öffne und das gleiche Video manuell in das richtige Verzeichnis verschiebe, wird das Video gut geladen. Und es handelt sich nicht um einen Verweisfehler, da die mp4-Datei in Chrome problemlos abgespielt wird, wenn der Django-Entwicklungsserver ausgeführt wird.Html5 Video in Safari - Django

Ich bin mir nicht sicher, welchen Code ich geben könnte, weil keine Fehler geworfen werden, selbst im Terminal ist die Anfrage für das Video ein grüner HTTP 200, es wird einfach nicht angezeigt. Gibt es bekannte Fehler bei der Bereitstellung von Videos von django? Ich habe versucht, URLs hart zu codieren, indem ich das Video in eine statische statt in ein Medium stecke, aber nichts funktioniert.

Versionen: Neueste von allem.

Edit: Ich habe quicktime installiert, das scheint auch die Ursache dieses Problems zu sein.

Wenn ich mit der rechten Maustaste auf das leere Videofenster klicke und auf Video herunterladen klicke, wird das abspielbare Video heruntergeladen.

Wenn ich den Video-Pfad aus dem Safari-Video kopieren und in Chrome einfügen, spielt das mp4-Video in Chrom gut. Und spielt immer noch gut in Safari, wenn das Roh-HTML mit dem Video verknüpft ist.

Ich füge die Videos in meine django hochgeladen Mediendatei über Admin, könnte dies der Grund sein? (Nicht sicher, warum es gegeben würde, es ist nur Safari, die nicht funktioniert)

Nach dem Spiel ein bisschen herum habe ich diesen Fehler: OSError: [Errno 41] Protocol wrong type for socket [27/Mar/2016 05:04:01] "GET /media/media/uploads/SampleVideo25.mp4 HTTP/1.1" 500 59

Ein weiterer edit:

Nach vielen Menschen zu sehen, sagen, dass es ist nur der Django-Entwicklungsserver, auf dem ich meine Seite für Heroku eingerichtet habe. Das Gleiche passiert. Es funktioniert in Chrome und Firefox, aber nicht in Safari, und wenn man die Logs überprüft, sagt es nur, dass es das Video mit dem Status Http 200 abgerufen hat. Die einzige andere Option, die ich versuchen könnte, ist die Bereitstellung der Videos über AWS3

Antwort

0

Aus welchem ​​Grund auch immer, das Video zeigt sich gut, wenn es von der AWS3 aufgerufen wird.

0

Dies ist ein häufiges Problem für den Entwicklungsserver. Es gibt durchaus ein paar Probleme auf Django-Projekt in Bezug auf diese, aber ich denke, das im Anschluss an die am besten beschreibt, warum es nicht behandelt wird:

if we are adding runserver support for something that's not even supported by what I think is a fairly common web server, that seems like it will only encourage more people to use runserver in production.

Relevante Ausgabe #22479 aber wie oben erwähnt, Sie viele ähnliche Fragen finden können, oder könnte mit Ihrem Problem zusammenhängen.

Sie können versuchen, während der Entwicklung Video von einer externen URL zu liefern. Dies sollte eine Umgehungslösung sein. Zumindest habe ich das in der Vergangenheit getan.

+0

Danke für den Hinweis und den Link, weißt du oder hast du einen Hinweis darauf, warum dies nur in Safari passiert? Weil die Videos den anderen Browsern im Entwicklungsserver gut angezeigt werden. – Kyle

+0

Willkommen. Ich verstehe, dass das nicht viel ist, es ist so weit wie ich in Bezug auf dieses Thema gekommen bin. Mehr habe ich nicht gefunden. Es könnte der Dateityp sein oder etwas anderes mit der Anfrage des Browsers oder der Header. – Wtower