Bilder in Video konvertieren, MEncoder, Eclipse

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Mia
User
Beiträge: 3
Registriert: Dienstag 17. August 2010, 15:19

Hallo!

Ich möchte Bewegungen von Atomen simulieren. Dabei ist die Position eines Atoms zweidimensional gegeben, sagen wir durch (x,y).
Mit einem numerischen Verfahren berechne ich dann zu verschiedenen Zeitpunkten die Positionen und plotte sie am Ende. Der Plot ist aber unabhängig von der Zeit. Deswegen würde ich gerne die Positionen zu verschiedenen Zeitpunkten plotten und die Bilder dann hintereinander in einem Video absspielen!

http://matplotlib.sourceforge.net/faq/h ... ke-a-movie
Hier steht ein Beispiel dafür wie man aus Bildern ein Video macht.

Ich habe mir MEncoder und MPlayer heruntergeladen und mit dieser Anleitung
http://www.wiki.csoft.at/index.php/MEncoder
installiert und die Umgebungsvariable PATH geändert.

Ich benutze Eclipse unter Windows 7.

Wenn ich dann obiges Beispiel ausführe, bekomme ich den Fehler
"Der Befehl "mencoder" ist entweder falsch geschrieben oder konnte nicht gefunden werden."

Woran kann das denn liegen? Hat da ja jemand eine Idee?
Oder kann man den Code
os.system("mencoder 'mf://_tmp*.png' -mf type=png:fps=10 \\ -ovc lavc -lavcopts vcodec=wmv2 -oac copy -o animation.mpg")
nur unter Linux benutzen? (Davon habe ich leider wirklich keine Ahnung.)

Ich hoffe wirklich, dass mir jemand helfen kann oder einen anderne Lösungsvorschlag geben kann!
Vielen Dank im Voraus!

Viele Grüße,
Mia

P.S.: Ich habe auch die Suchfunktion benutzt und http://www.python-forum.de/viewtopic.ph ... r+in+video gefunden, aber da ist bei mir ja immernoch das Problem
problembär

Mia hat geschrieben:Ich habe mir MEncoder und MPlayer heruntergeladen und mit dieser Anleitung
http://www.wiki.csoft.at/index.php/MEncoder
installiert und die Umgebungsvariable PATH geändert.

Ich benutze Eclipse unter Windows 7.

Wenn ich dann obiges Beispiel ausführe, bekomme ich den Fehler
"Der Befehl "mencoder" ist entweder falsch geschrieben oder konnte nicht gefunden werden."
mencoder unter Windows? Hmm, noch nie probiert. Schätze, das Problem ist immer noch, daß das Python-Skript den Befehl "mencoder" nicht findet. Probier's mal mit dem absoluten Pfad:

Code: Alles auswählen

os.system("C:\\Programme\\....\\mencoder.exe -mf ... -ovc ... -oac ... -o ...")
Den doppelten Backslash ("\\") in Deinem obigen mencoder-Befehl sollte man wahrscheinlich weglassen.

Gruß
Mia
User
Beiträge: 3
Registriert: Dienstag 17. August 2010, 15:19

Hey, danke schön!

Leider bringt das auch nicht direkt was, aber ich habe es jetzt mit
\"C:\\Program Files\\MPlayer\\mencoder.exe\"
probiert. Hier tut sich was! Es kommt die Meldung:

"MEncoder Sherpya-SVN-r31878-4.2.5 (C) 2000-2010 MPlayer Team
159 audio & 347 video codecs

WARNING: OUTPUT FILE FORMAT IS _AVI_. See -of help.

Exiting...
No stream found to handle url 'mf://_tmp*.png'
Cannot open file/device."

Damit kann ich nur leider nicht wirklich was anfangen!
Weiß jemand weiter?

Danke!
Viele Grüße!
BlackJack

@Mia: Das ist einer der Unterschiede zwischen Windows' Shell und Unix-Shells: unter Unix-Shells werden die "globbing"-Muster wie '*' von der Shell zu Dateinamen expandiert. Die Windows-Shells tun das nicht.
problembär

Wo sind denn Deine Bilder und wie heißen sie?

Ich hab' hier in der man-Page (Linux) noch den Befehl:

Code: Alles auswählen

mencoder  "mf://*.jpg"  -mf fps=25 -o output.avi -ovc lavc -lavcopts vcodec=mpeg4
"mf://*.jpg" bezieht sich auf das aktuelle Verzeichnis.
Probier da erstmal "mf://1.jpg", wenn Dein erstes Bild "1.jpg" heißt und im aktuellen Verzeichnis (das Du mit Python mit "os.chdir()" ggf. wechseln kannst) ist. Das sollte erstmal ein Bild encodieren, der Rest kommt ggf. später.

Gruß
Mia
User
Beiträge: 3
Registriert: Dienstag 17. August 2010, 15:19

Vielen Dank euch allen für die Hilfe!
Soetwas wie "mf://1.jpg" habe ich auch zuerst ausprobiert, aber geklappt hat es erst, als ich die ' ' um mf://_tmp*.png weggelassen habe, also:
os.system("\"C:\\Program Files\\MPlayer\\mencoder.exe\" mf://_tmp*.png -mf type=png:fps=10 -ovc lavc -lavcopts vcodec=wmv2 -oac copy -o animation.mpg")

Damit klappt es auch direkt für alle Bilder!

So, jetzt funktioniert es für das Beispiel. Dann versuche ich mich jetzt mal daran das auf mein Problem anzuwenden.

Vielleicht melde ich mich nochmal ;)

Aber auf jeden Fall Danke schön!

Viele Grüße,
Mia
Antworten