| 

.NET C# Java Javascript Exception

1
Wie kann ich MPEG-Videos in Teilbilder, gegebenfalls unter Angabe eines bestimmten Abstandes, in Bilddateien zerlegen, die über das herkömmliche Bildfeld ausgebbar sind?
News:
21.04.2011
BilderFlut 11 2
1 Antwort
1
Ob es eine Lib gibt, die das schon fertig anbietet, weiß ich nicht. Was ich aber schon gemacht habe ist dafür selber etwas zu schreiben. Verwendet habe ich DirectShow dazu (Lib-Beispiel: DirectShowNet Library)

1. Schritt: Per Lib einen Filtergraphen für das Video erstellen.
2. Schritt: Als Senke ein eigenes Element erstellen (Beispiele im Netz), welches das dekomprimierte Videobild bekommt. Damit kann man das Bild dann in einen MemoryStream schreiben, nachdem man den Filtergraphen bei Position X pausiert (Hierbei wird für die Darstellung schon das entsprechende Bild gerendert).
3. Schritt: Definieren, wie viele Bilder man haben möchte, also z.B. 2x2 Matrix.
4. Schritt: Gesamtlänge des Videos durch 2x2 = 4 teilen und an den entsprechenden Stellen über die Pausefunktion das Bild extrahieren.
5. Schritt: Die extrahierten Bilder in ein Ergebnisbild kopieren (das kann auch in Schritt 4 nach jedem Bild an die richtige Position erfolgen) - Graphics hilft
6. Schritt: Das Ergebnisbild speichern (Platte oder DB) und dieses Bild dann im Bildfeld darstellen. Für on-the-fly kann dieser Vorgang bei mehreren Videos zu lange dauern.

Entsprechenden Sourcecode kann ich leider nicht zur Verfügung stellen. Hoffe, die Beschreibung des Vorgangs und der Hinweis auf die Lib helfen Dir weiter.

Methoden, wie ich binde den Mediaplayer ein und grabbe das aktuell dargestellt Bild funktionieren nicht, wenn der Vorgang im Hintergrund ablaufen soll.

Hier noch ein Beispiel von stackoverflow: How to get video frame using DirectShow.Net
21.04.2011

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH