• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

[VB.NET] Einzelne Pixel einer Video-Datei auslesen

janm

Mitglied
Hallo,

ich möchte ein kleines Programm schreiben, womit von Video-Dateien, die mit ffmpeg codiert wurden, einzelne Pixel auslesen kann und die Häufigkeit einzelner Farben nach dem 16bit Farb-System bestimmen kann. Das einzige, was ich benötige, ist die Farbhäufigkeit. Liegt eine Farbe dazwischen, so soll die nächstliegende farbe genommen werden.

Falls das funktioniert, dann schreibt bitte wie.

Ich habe noch keine Codeansätze/ähnliches.

Beachtet bitte, dass das auch bei Videos, die größer als der Arbeitsspeicher sind, klappen soll. Ja es gibt Videos, die größer als der Arbeitsspeicher sind. Nein, du fragst nicht, wieso ich das erreichen möchte. Nein, ich kenne mich mit Videodateiformaten nicht aus, und DirektX oder ähnliches funktioniert nicht mehr mit VB.NET.
 
Werbung:
Jede Form von Codierung ist genau das was das Wort sagt, "codiert", sprich in der Datei stehen NICHT Pixel für Pixel die Bilder drin, sondern eine komprimierte Version.
Um da raus einzelne Pixel zu extrahieren brauchst du zuerst eine Library, die das decodieren kann und in völlig unkomprimierte Bilder im .bmp Format umwandeln kann, die du im Programm in eine HBITMAP packen kannst.
Wenn du das noch über einen ganzen Film machen willst, egal ob der grösser ist als der Arbeitsspeicher oder nicht, brauchst du eine Library die streamen kann.
Wenn du das dann auch noch nach 16bit Farben wandeln willst brauchst du eine Profi-Library, die Bildbearbeitung kann.
Ich fürchte du wirst gar nicht erst bis hierher kommen, aber wenn doch kannst du an dieser Stelle die HBITMAP einfach mit einer Schleife durchforsten.
 
ok dann bin ich auf der suche nach einer solchen library mit streaming-funktion, aber was genau muss ich suchen? "video to bitmap library vb.net"?

Edit: Hab gerade bei google "video to bitmap converter" gesucht und das hier gefuden: http://www.softpedia.com/get/Multim...X-Related/Doremi-Video-to-BMP-Converter.shtml
Es ist mir nicht wichtig, ob die Funktion des oben genannte Programms in vb.net integriert werden kann oder nicht.
Es ist schon ok, wenn nur avi unterstützt wird, da kann man ja mit ffmpeg sonst noch umwandeln (gibts auch schon nen wrapper für)

was das konvertieren zu 16 bit angeht, ich glaube man kann doch mit ffmpeg da die bittiefe auslesen und dann das hex zu dex machen (oder andersherum), durch die bittiefe des vids teilen unddann mal 16 nehmen und anständig runden und zum schluss wieder dex zu hex machen oder so?!?
 
Zuletzt bearbeitet:
Werbung:
Zurück
Oben