Ich habe Probleme mit Safari und demElement in Kombination mit kürzeren qualitativ hochwertigen Videos. Für eine Showcase-Website lade ich 12-15 Sekunden .mp4
und .webm
Dateien in einenContainer mit dem <source>
Element. Wenn Sie versuchen, das Video in Chrome abzuspielen, funktioniert es einwandfrei und das Video wird fast augenblicklich wiedergegeben. Safari scheint jedoch das Video vollständig laden zu wollen, bevor es mit der Wiedergabe beginnt.Erzwingen der Wiedergabe mit kurzen HTML5-Videos in Safari
Ich habe in das Laden des Videos direkt über das src
Attribut vonuntersucht und auch das Attribut preload="auto"
hinzugefügt, um die sofortige Wiedergabe zu erzwingen.
Ich habe ein Beispiel unter Verwendung eines der Videos einrichten wir auf den Internetseiten verwenden, die um 8 MB und 12 Sekunden lang: https://jsfiddle.net/n1eac46v/
var video = document.getElementById('video');
var source = document.createElement('source');
source.src = "foo.mp4";
source.type = "video/mp4";
video.appendChild(source);
video.on("canplay canplaythrough", video.play);
Wie man sehen kann ich auch hören bin für die canplay
und die canplaythrough
Ereignisse, aber selbst das scheint nicht zu helfen. Ich habe tagelang überall nachgesehen, aber jetzt gehen mir die Optionen aus.
Danke für Ihre Antwort! Während MP4Box nicht so leicht für OSX verfügbar ist, hat Ihre Antwort mich in die richtige Richtung geführt. Am Ende habe ich [diese Antworten] (http://stackoverflow.com/a/28512437/3840022) zu einer verwandten Frage verwendet, um das Problem mit FFMPEG zu lösen. ' ' ./ffmpeg -i top.mp4 -codec kopieren -movflags faststart top-fs.mp4' Das verschiebt die Flaggen nach vorne wie Sie es erwähnt haben und löst das Problem, sogar für kürzere Videos! – Thomas
@Thomas - wahr, ich habe FFmpeg vergessen :) Froh, dass es geklappt hat. Lustig, das ist das erste Mal, dass ich mit -1: D akzeptiert werde –