# Bild aus Video speichern



## BoTheK (7. Dezember 2005)

Hallo,
ich schreibe ein Programm in VB6, das aus einem Video ein Standbild speichern soll. Den Video lasse ich in einer PictureBox per SendMCIString anzeigen. Das klappt alles. Nur kann ich das Bild aus der Picturebox nicht speichern. Das Bild ist einfach nur schwarz.
Kann mir da jemand weiterhelfen?


----------



## Da Hacker (7. Dezember 2005)

Hi BoTheK,

also ein Bild - in deinem Fall aus einer Picture Box - speicherst du mit dem folgenden Befehl:

```
Dim gespeichert
gespeichert = SavePicture(Picturebox.Picture, "Dateiname-bzw-Pfad.jpg")
```

Da ich hier kein VB hab, hab ich das mal mit VBA ausprobiert. Kann sein, dass du den Code etwas abändern musst.

Das mit dem komplett schwarzen Bild, hat was mit der Videobeschleunigung zu tun. Beim Windows Media Player musst du diese unter "Extras - Optionen... - Videobeschleunigung" deaktivieren. Wie das allerdings mit dem SendMCIString geht... ...keine Ahnung! 

Ich hoffe ich konnte helfen.

Ciao:
Da' Hacker


----------



## BoTheK (7. Dezember 2005)

> Beim Windows Media Player musst du diese unter "Extras - Optionen... - Videobeschleunigung" deaktivieren.


 Hab ich auch schon probiert. Geht leider trotzdem nicht.

Ich speicher das Bild ja auch mit savePicture, aber das Bild ist wie gesagt schwarz.

Trotzdem Danke


----------



## Da Hacker (7. Dezember 2005)

Hi,

hmm, schade. Gut, wenn du es bereits mit "SavePicture()" probiert hast, dann probiere es doch mit einer API.
Hier der Link:
Bitte hier klicken! 

Kopier' einfach den Code und setz' das Handle auf deine Picturebox.

Ich würds ja selber testen, geht nur schlecht in der Arbeit  .

Wenn du einen Überblick über die APIs brauchst, dann kann ich dir nur das Programm "API-Guide" empfehlen, dass du über Allapi.net bekommst.

Ciao:
Da' Hacker


----------



## BoTheK (7. Dezember 2005)

Hi,

leider funktionierts mit der API auch nicht. das Bitmap ist immer schwarz.  

Wenn ich dann das Bitmap in der Bildvorschau (WinXP) öffne, und über das Video-Fenster lege, sehe ich das Video durch das bmp. als wäre das Bild durchsichtig. Aber er zeigt nur das Video. Alles andere ist schwarz. Es ist also kein Bild-bmp, sondern eher eine Maske.
Ich hoffe, du kannst mir folgen und verstehst wie ich das meine.

edit:
Danke für den API-Guide


----------



## Da Hacker (7. Dezember 2005)

Hi BoTheK,

klar verstehe ich, was du meinst. Das Problem hatte ich immer in Photoshop, als ich per ALT + DRUCK einen 'Screenie' gemacht hab - gleiches Problem: Ich konnte das PS-Fenster bewegen und der Film vom WMP hat durchgescheint.

Naja, wenn du die Videobeschleunigung schon einmal komplett deaktiviert hast, dann müsste das Speichern doch eigentlich gehen - schließlich basiert die ganze Technik doch immer auf dem gleichen   Hmm. Obwohl es natürlich auch nicht so schön ist - bei weiterem Vertrieb - den User immer darauf hinzuweisen, dass er doch bitte mal das und das deaktivieren soll(Hier gibt es allerdings das gute Beispiel "Camtasia". Die haben ein tolles Programm, weisen den User aber trotzdem daraufhin, dass er die Videobeschleunigung ausschalten soll - und sie haben anscheinend tatsächlich Erfolg mit dieser Taktik.).
Also probier mal, ob du auf normalem Wege(ALT + DRUCK) ein Screenshot erstellen kannst. Ich hab jetzt grad Mittagspause, aber wenn ich zu Hause bin, kann ich mir das ganze mal anschauen.

@API-Guide:
Ja, ist schon cool, das Programm. Schade nur, dass die Entwickler nicht mehr daran arbeiten! 

@andere Tutorials.de-User:
Mensch, lasst mich doch hier nicht alleine - ein No-ob antwortet auf eine komplizierte Frage 

Ciao:
Da' Hacker


----------



## BoTheK (7. Dezember 2005)

Hi Da Hacker,
wenn ich ein Screenshot vom Media-player mache, kann ich das Video sehen. Aber beim Screenshot von meiner Applikation nicht.

Vielen Dank für Deine Hilfe.


----------



## mage (7. Dezember 2005)

Zum Speichern hilft vielleicht dieser  "Link vbAccelerator JPG speichern" weiter.

Dort gibt es auch einen AVI Frame Extractor.


----------



## BoTheK (7. Dezember 2005)

Hi mave,
danke für die Linls, doch leider funktioniert das mit dem jpg-speichern auch nicht. Ich bekomme immer ein weißes Bild.

Mit dem AVI Frame Extractor komm ich auch nicht weiter da ich ein mpeg-Video lade. Und daraus soll das bild entstehen.


----------



## mage (7. Dezember 2005)

Das Problem beim Mediaplayer ist vermutlich, dass die Informationen direkt in den Bildspeicher der Grafikkarte geschrieben werden, dort wird schwer ranzukommen sein.

Ich kann mir höchstens vorstellen, das man mit DirektX daran kommt.
Alternativ vielleicht auch eine freies Tool, welches automatisiert Screenshots von Spielen und dergleichen anfertigt.


----------



## mage (7. Dezember 2005)

BoTheK hat gesagt.:
			
		

> Hi mave,
> Mit dem AVI Frame Extractor komm ich auch nicht weiter da ich ein mpeg-Video lade. Und daraus soll das bild entstehen.



AVI ist doch nur ein Containerformat, darin können doch auch Videos mit MPG Encodierung enthalten sein.


----------



## BoTheK (7. Dezember 2005)

mage hat gesagt.:
			
		

> AVI ist doch nur ein Containerformat, darin können doch auch Videos mit MPG Encodierung enthalten sein.


Ganz ehrlich: Keine Ahnung. Bin leider nicht so fit. Auf jeden Fall kann ich den Film im Frame Extractor nicht öffnen.


> An error occurred: Failed to open AVI file


----------

