Warum müssen Webkit-Browser das gesamte html5-Video (mp4) vor dem Abspielen herunterladen?

9

HTML5-Video dauert ziemlich lange, um mit Chrome / Safari (aktuell und Chrome Canary) zu spielen. Es scheint, dass die gesamte Videodatei heruntergeladen werden muss, bevor die Wiedergabe beginnt.

In Firefox 18.0.2 (HTML5) und IE 8,9,10 (Flash) erfolgt die Wiedergabe fast augenblicklich.

In Chrome habe ich das Problem beim Verwenden von:

gesehen

Ich finde, dass das Öffnen einer lokalen mp4 (h264) -Datei in Chrome ziemlich lange dauert: Die Tools des Entwicklernetzwerkes zeigen an, dass das Video geladen / ausstehend ist, was bei einer großen Datei 10-15 Sekunden dauert.

Als Referenz hier ein Video: Ссылка

Die vollständige Videodatei (5 MB) wird heruntergeladen, bevor die Wiedergabe beginnt. Nicht so schlecht mit diesem kleinen Video, aber ziemlich schmerzhaft mit einer großen Datei.

Ich habe zwei Fragen:

  • Unterstützt Webkit progressives Herunterladen / Wiedergeben?
  • Wenn nicht, gibt es eine bekannte Problemumgehung?

Danke

    
shackleton 18.02.2013, 22:24
quelle

2 Antworten

2

Das Problem ist weder der Codec noch der Browser ...

Das Problem ist der Meta-Block in Ihrer Videodatei!

Die meisten Browser können das Video nur abspielen, wenn sie die Metadaten heruntergeladen haben. Einige Encoding-Tools platzieren diesen Metablock am Ende der Ausgabedatei. Daher muss der Browser die gesamte Datei laden, um die Metadaten zu "sehen".

Lösung:

Ссылка

Holen Sie sich dieses kleine Tool, öffnen Sie Ihr Video und lassen Sie den MetaData Mover seine Magie wirken.

dauert nicht so lange und Ihre Datei ist bereit, gestreamt zu werden!

    
Foaster 10.07.2015, 12:23
quelle
1

Wie Foaster schon gesagt hat, muss der Metadatenblock früh im Video sein, damit das Video nicht geladen werden muss (was dazu führen kann, dass das gesamte Video geladen wird, wenn es am Ende platziert wird).

>

Sie benötigen jedoch keine black-box .exe -Datei von einer Produktwebsite, um den Metadatenblock zu verschieben. Gehen Sie folgendermaßen vor: ffmpeg :

%Vor%

Dies wird:

  1. -i input.mp4 : Nimm input.mp4 als Eingabe.
  2. -codec copy : Kopieren Sie den Stream so wie er ist (ohne Codierungs- / Decodierschritt).
  3. -movflags faststart : Verschiebe den Metadatenblock an den Anfang.
  4. -f mp4 output.mp4 : Format als MP4-Datei und Ausgabe mit dem Namen output.mp4 .

Link zu vollständiger ffmpeg Dokumentation hier . Installationsanweisungen für verschiedene Plattformen hier (ein einfacher brew install ffmpeg ist ausreichend für Mac-Benutzer).

>     
Jamie Birch 09.02.2018 10:30
quelle