Ich möchte eine Funktion hinzufügen, mit der ein Benutzer ein Video des Spiels, das er spielt, aufnehmen kann. Wie mache ich das?Wie zeichnest du ein "Spiel" (PyGame oder Tk) in ein Video ein?
Antwort
Ich habe die Lösung für dieses spezielle Problem nicht persönlich implementiert, aber ich werde versuchen, einen Vorschlag zu machen. Natürlich wird jede der Lösungen Ihr Programm kardinal verlangsamen, aber technisch ist es möglich. Also was ist es wahrscheinlich wert, zu versuchen, dass Sie pygame.image.tostring()
auf Ihrem aktuellen Frame verwenden könnten, dann schreiben Sie einfach (anhängen) jeden Frame an eine Datei. Das wird also dein Video in einem Rohformat sein. Wenn Sie nun ein bestimmtes Videoformat wünschen, sollten Sie es einfach konvertieren, am besten verwenden Sie ffmpeg
(Sie können es vor dem Spiel mit bestimmten Parametern aus Ihrem Spiel mit subprocess.Popen("ffmpeg ...")
aufrufen). Das einzige Problem hier ist, dass der Benutzer, der auf solche Weise aufnehmen möchte, ffmpeg im System installiert haben muss, damit ffmpeg über die Shell-Kommandozeile aufgerufen werden kann. Vorteil dieses Ansatzes - er sollte ziemlich schnell sein und nicht viel zusätzlichen Speicher benötigen, da Sie nur einmal (zum Beispiel wenn der Benutzer die Aufzeichnung beendet oder das Spiel beendet) aus dem binären Strom codieren.
bearbeiten: das ist nur eine allgemeine Beschreibung, natürlich sollten Sie auch für ffmpeg die wright Parameter herauszufinden, wie Bildzählwertes, Größe und so weiter, und natürlich die Rohdaten löschen, da es kann eine wirklich große Datei sein.
Es erfasst Bilder der Oberfläche richtig? Ich nehme an, ich könnte diese Bilder kombinieren, um ein Video zu bekommen. Irgendwelche Gedanken darüber, wie ich dem Video Sound hinzufügen kann? (Es ist nicht vorbestimmt und variiert basierend auf den Benutzereingaben, wie ein Auto beschleunigt oder bremst) – rohithpr
@ praroh1 Ich nicht nichts, wie Ton zu recod. Wenn ich nur einen Clip für mich machen würde, würde ich gleichzeitig Mikrofone verwenden, um Audio aufzunehmen –
- 1. Wie zeichnest du ein Gitter und Rechtecke in Python?
- 2. wxPython oder pygame für ein einfaches Kartenspiel?
- 3. Wie zeichnest du einen Sektor in Matplotlib?
- 4. Wie zeichnest du Text in DirectX 12?
- 5. Tkinter, helfen ein noob Tk Schleifen verstehen
- 6. Kann ein Spiel mit Pygame an Steam gesendet werden?
- 7. Wie zeichnest du einen normalen Kreis?
- 8. Wie machst du ein Radialdiagramm?
- 9. Wie „Crop“ ein gedrehtes Bild in Pygame
- 10. Wie starte ich ein Ruby-Tk-Projekt?
- 11. Wie bette ich ein Youtube-Video in meine App ein?
- 12. Pygame Fehler: Video System nicht initialisiert stecken in Spiel Schleife
- 13. Wie machst du ein Makefile
- 14. Wie programmierst du ein Attribut?
- 15. Wie machst du ein Netz?
- 16. Eröffne ein neues Fenster mit Pygame
- 17. Wie zeichnest du eine Zeichenkette zu einer Bitmap in Silverlight?
- 18. Pygame Wie man ein Sprite macht Ein Rect Attribut haben
- 19. Wie baue ich ein Display in 2D für ein Spiel
- 20. So fügen Sie Text in ein Pygame-Rechteck ein
- 21. Wie installierst du ein Modul in erlang?
- 22. Wie löschst du ein Stück in Go?
- 23. Wie stellst du PHP in HTML5 ein
- 24. Wie beißst du Figurobjekte in Matplotlib ein?
- 25. Wie definierst du ein @interface in Scala?
- 26. Wie öffnest du Vine mit einem URL-Schema für die Kamera oder ein vorausgewähltes Video?
- 27. Get Tk winfo_rgb() ohne ein Fenster instanziiert
- 28. Spielentwicklung: Wie machst du ein Geschichtenspiel?
- 29. Ein Tkinter Memory-Spiel machen
- 30. Wie verbinde ich ein Video?
Ich denke, dass pygame und tk nicht die Algorithms bieten, die Sie benötigen, um jede Sekunde eine so große Menge an Bilddaten auszugeben. Für Linux-Systeme gibt es jedoch ein in PyGame integriertes Kameramodul, das mit ein wenig Geschicklichkeit Ihren Bedürfnissen entsprechen kann: http://www.pygame.org/docs/ref/camera.html –
@PatricHartmann - Seine Erfassung Bilder richtig? Ich nehme an, ich könnte diese Bilder kombinieren, um ein Video zu bekommen. Irgendwelche Gedanken darüber, wie ich dem Video Sound hinzufügen kann? (Es ist nicht vorbestimmt und variiert basierend auf der Benutzereingabe, wie ein Auto beschleunigt oder bremst) – rohithpr
Das Problem ist die Geschwindigkeit seiner Bildausgabe. Du würdest auf ein paar Bilder pro Sekunde fallen. –