Frage

Ich habe ein Winform -Programm, mit dem Benutzer Shockwave -Flash -Filme auf einen Server hochladen können. Um die Videoduration zu erhalten, erstelle ich eine Instanz der "ShockwaveFlashObjects" -ActiveX, lädt den Film und liest dann die Videoduration, bis es sich von "0.0" zu irgendetwas anderes ändert. Ich bekomme das, indem ich das GetVariable lese ("Videoduration").

Oft funktioniert es, aber manchmal sperrt oder zeigt es Informationen aus dem vorherigen Flash -Film, der geladen wurde.

Ich hatte auch Probleme, den ShockwaveFlashObject-Activex zu verteilen. Ich würde das wirklich gerne überspringen und einfach die Flash-Datei lesen und die Spiellänge des Films herausfinden.

Alle hochgeladenen Filme sind Videos, sodass sie eine bestimmte Spiellänge haben.

Diese Frage half nicht mit Antworten Eather.

Ich habe das ausgecheckt SWF-Format bei Wotsit Und nach dem, was ich sehen kann, sollte es möglich sein, die Framerate und FrameCount zu lesen und danach die Dauer zu berechnen, aber ich konnte nichts über FLV-Files finden. Vielleicht hat jemand das alles getan und kann mich auf einen schönen Code verweisen, der mir viel Zeit spart, um die Spezifikation zu verstehen?

War es hilfreich?

Lösung

Eine der Möglichkeiten ist die Verwendung von FFMPEG, um die Video-/Audio -Bitrates zu lesen. Sobald Sie diese Details haben, können Sie die Gesamtdateigröße durch die Summe der Video-/Audio -Bitrates teilen. Das gibt Ihnen eine geschätzte Anzahl von Sekunden (+/- wenige Socnds).

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