Ich entwickle eine Tube-Site und habe derzeit Probleme mit dem H.264-Format. Mir ist aufgefallen, dass YouTube ihre HD-Videos in einen MP4-Container gestellt hat, also habe ich logischerweise dasselbe getan.
Als nächstes habe ich mod_h264_streaming
lighttpd installiert , damit Streaming und Timeline-Scrubbing funktionieren.
Das Problem ist, dass große Dateien (> 500 MB bei etwas hoher Auflösung) ewig brauchen, um überhaupt mit dem Puffern zu beginnen (ich habe gelesen, dass Flowplayer und andere Flash-Player zuerst Metadaten herunterladen müssen). Ich habe das xmov-Atom mit MP4Box an den Anfang der Datei verschoben (ich habe auch Qt QuickStart ausprobiert), aber das hat nicht geholfen.
Als nächstes las ich, dass ich Audiospuren verschachteln muss, also tat ich das auch. Dies führte zu keiner Änderung: Die Videos waren immer noch langsam.
Also habe ich versucht, genau den gleichen H.264-Film in einen FLV-Container zu legen, und die Wiedergabepufferung begann fast sofort - keine Langsamkeit.
Was vermisse ich hier? Warum sollte ich einen MP4-Container mit dem Modul mod_264_streaming
, das sehr langsam erscheint, einem normalen FLV-Container mit integriertem lighttpd vorziehen mod_flv_streaming
? Natürlich wählen viele Websites den MP4-Container, aber ich verstehe nicht warum.
Und als Nebenfrage habe ich versucht, mit dem HTML5- <video>
Tag denselben H.264 MP4-Film zu testen, und das Scrubben war blitzschnell ! Ich habe in die Protokolldatei von lighttpd geschaut und festgestellt, dass Flash-Player video.mp4?start=234
jedes Mal angehängt werden, wenn die Timeline gesäubert wird, während Browser, die das native HTML5- <video>
Tag verwenden, dies nicht tun. Ist dies eine Einschränkung von Flash? Warum kann Flash-Streaming nicht so schnell sein wie HTML5-Streaming?