Frage

Ich brauche etwas zu bauen, das auf halbem Weg durch die Datei mit einem H.264-codierten Video auf einen Flash-Player beginnt dient (zur Unterstützung des in dem Video zu einem Punkt übersprungen, die noch nicht gepuffert wurde).

Derzeit sind die Videos im FLV-Container-Format, sondern Umcodierung ist eine Option. Ich schaffte es die Datei-Header und Metadaten-Informationen für ein bestimmtes Byte-Offset neu zu schreiben. Dies funktioniert für ältere Videos, aber nicht für H.264 kodierte Dateien. Ich vermute, das liegt daran, dass die Video-Tags in der Datei auch geändert werden müssen, was nicht machbar ist (es wäre zu viel Rechenleistung nehmen).

Was ist die „richtige“ Art und Weise, es zu tun?

War es hilfreich?

Lösung

Der Flash Player kann nur spielen H.264 Video starten, sobald es das MOOV Atom heruntergeladen wird. Bestehende pseudo-Streaming-Anbieter Ihnen nur einen FLV-Header geben - entweder den ersten 13 Bytes der Datei oder ein fest codiert ein - und dann die Datei aus dem angegebenen Offset dienen. Wenn Sie eine H.264 pseudo-Streamer machen wollen, müssen Sie es Ausgabe der FLV-Header, dann ein MOOV Atom, und dann den Rest der Datei aus dem angegebenen Offset dienen. Wenn Sie nicht über eine FLV-Container verwenden, werden Sie die FLV-Header nicht benötigen, aber Sie werden immer noch das MOOV Atom benötigen.

Unfortunatley, ich glaube nicht, Sie in der Lage sein werden, die MOOV Atom aus der Datei auf der Festplatte zu verwenden; die darin enthaltenen Informationen werden für das Dateifragment nicht richtig sein, dass Sie dienen. So müssten Sie das vorhandene Atom analysieren und eine eigene erzeugen, die dem diente ein Teil der Datei angemessen war.

Wenn es komplizierte Strukturen innerhalb der H.264-Datei, um pseudo-Stream noch komplizierter sein könnte. Wenn Parsen der Datei nicht möglich ist, ich fürchte, Sie nicht in der Lage sein kann, um Ihre Medien Pseudo-streamen.

Andere Tipps

@yoavf - Ich denke, die OP interessiert sich für serverseitige Aspekte von Streaming-On-Demand-h.264 innerhalb von FLV-Dateien. Wiederverwendung vorhandenen Spieler würde für ihn schön sein, denke ich. Oder vielleicht, dass kommt meine eigenen Bedürfnisse aus? <: S

Von yoavf zweite Verbindung gibt es einen weiteren Link zu Tinic Uro der Was im Web Video passiert? . Ein relevantes Zitat:

  

Wird es möglich sein H.264 zu platzieren Ströme in die traditionelle FLV-Datei-Struktur? Es wird aber dringend jeden ermutigen, das neue Standard-Dateiformat zu umarmen. Es gibt funktionale Grenzen mit der FLV-Struktur, wenn H.264-Streaming, die wir nicht ohne eine Neugestaltung des Dateiformats überwinden konnte. Dies ist ein Grund, warum wir weg von der traditionellen FLV-Datei-Struktur bewegen. Insbesondere mit der Sequenz-Header und Enders zu tun ist schwierig mit FLV-Streams.

So, wie es scheint kann man entweder basteln mit ffmpeg-Codierung (wenn das, wie Sie Ihre FLV-Dateien bekommen, wie ich bin), oder man kann in das neue Format zu bekommen. Hmmmm ....

zwei Dinge, die Sie tun können:

1) verwenden lighttpd und es ist mp4 Streaming-Plug-in, werden die erforderlichen Streaming-Container on the fly generieren

2) erstellen keyframed FLV und verwenden Sie einen Pseudo-Streaming-Skript (wie XMOOV) Dateien zu streamen.

Wenn Sie mp4 / aac benötigen, können Sie sie einfach in den FLV Container setzen, viel zu Adobes Verdruss, aber es funktioniert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top