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
Bilder in Video konvertieren, MEncoder, Eclipse
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: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."
Code: Alles auswählen
os.system("C:\\Programme\\....\\mencoder.exe -mf ... -ovc ... -oac ... -o ...")
Gruß
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!
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!
@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.
Wo sind denn Deine Bilder und wie heißen sie?
Ich hab' hier in der man-Page (Linux) noch den Befehl:
"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ß
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
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ß
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
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