IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

3D Python Discussion :

[VPython] Exporter une animation réalisée


Sujet :

3D Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Janvier 2007
    Messages : 21
    Par défaut [VPython] Exporter une animation réalisée
    Bonjour à tous,

    Je crois que tout est dans le titre... Donc je voullais savoir s'il était possible d'exporter "proprement" une animation réalisée avec la bibliothèque vpython.
    Si vous pouvez également m'indiquer comment fermer une fenetre d'animation ce serait gentil

    Merci @ tous d'avance

  2. #2
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Janvier 2007
    Messages : 21
    Par défaut Pour information
    En fouillant un peu plus dans la doc de vpython, j'ai vu qu'il est possible d'exporter la scene sous forme d'images au format POV. Ceci se fait à l'aide du module povexport disponible sur le site officiel.

    Pour ce qui est de la reconstitution de la séquence video, je n'ai pas encore trouvé la solution qui me satisfasse (sur le site officiel ils proposent de télécharger un logiciel payant dont je ne fairais pas la publicité ici )

    Je pense qu'il existe une solution du côté de Blender. Si vous en savez un peu plus, n'hésitez pas à m'en faire part

  3. #3
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Janvier 2007
    Messages : 21
    Par défaut A noter
    Visiblement, povexport présente un bug avec la dernière version de vpython. Pour éviter ce désagrément, il faut modifier vers la ligne 351 la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    obj_name = str(obj.__class__)
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    	if obj.__class__==box:
    		obj_name ='box'
    	elif obj.__class__==cone:
    		obj_name ='cone'
    	elif obj.__class__==sphere:
    		obj_name ='sphere'
    	elif obj.__class__==cylinder:
    		obj_name ='cylinder'
    	elif obj.__class__==curve:
    		obj_name ='curve'
    	elif obj.__class__==ring:
    		obj_name ='ring'
    	elif obj.__class__==arrow:
    		obj_name ='arrow'
    	else : obj_name=''
    Voilà voilà...

  4. #4
    Membre émérite
    Avatar de parp1
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    829
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Mai 2005
    Messages : 829
    Par défaut
    Si tu as tes images et que tu souhaites reconstruire ta vidéo, c'est simple, il suffit de faire un convertisseur Image-->video avec Pymédia....

    Il y ades source sur pymedia.org.
    [SIZE="2"]Dis moi qui tu suis, je te dirais qui je Hais!
    Heureux est l'étudiant, qui comme la rivière suit son cours sans sortir de son lit

    Mon premier Tutoriel


    A 80% des cas je résouts mon problème en rédigeant une nouvelle discussion, du coup je ne poste que 20% de mes problèmes...

  5. #5
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Janvier 2007
    Messages : 21
    Par défaut Merci
    Citation Envoyé par parp1
    Si tu as tes images et que tu souhaites reconstruire ta vidéo, c'est simple, il suffit de faire un convertisseur Image-->video avec Pymédia....

    Il y ades source sur pymedia.org.
    Merci pour l'info, je vais regarder tout de suite

  6. #6
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Janvier 2007
    Messages : 21
    Par défaut Problèmes
    Après avoir regardé un peu mieux la problèmatique, j'arrive à récupérer des fichiers .bmp issus d'une capture d'image .pov. Pour ce faire, j'ajoute le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    os.popen("D:\Program Files\POV-Ray for Windows v3.6\bin\pvengine.exe monVpython.Pov")
    Qui exporte l'image.pov en image.bmp.

    La phase suivante consite donc à utiliser pymédia comme indiqué. Or, plusieurs problèmes se posent. Tout d'abord, il est regrétable que ce module ne soit pas disponible pour Python25 Ensuite, j'ai un soucis dans le code présenté par le site officiel (même problème avec le code trouvé dans le forum ici) lors de l'écriture des données :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    def makeVideo( inPattern, outFile, outCodec ):
      # Get video stream dimensions from the image size
     
      pygame.init()
      i= 1
      # Opening mpeg file for output
     
      e= None
      i= 1
      fw= open( outFile, 'wb' )
      while i:
        if os.path.isfile( inPattern ):
          s= pygame.image.load( inPattern )
          if not e:
            if outCodec== 'mpeg1video':
              bitrate= 2700000
            else:
              bitrate= 9800000
            params= { \
              'type': 0,
              'gop_size': 12,
              'frame_rate_base': 125,
              'max_b_frames': 0,
              'height': s.get_height(),
              'width': s.get_width(),
              'frame_rate': 2997,
              'deinterlace': 0,
              'bitrate': bitrate,
              'id': vcodec.getCodecID( outCodec )
            }
            print 'Setting codec to ', params
            e= vcodec.Encoder( params )
            t= time.time()
     
          # Create VFrame
     
          ss= pygame.image.tostring(s, "RGB")
          bmpFrame= vcodec.VFrame( vcodec.formats.PIX_FMT_RGB24, s.get_size(), (ss,None,None))
          yuvFrame= bmpFrame.convert( vcodec.formats.PIX_FMT_YUV420P )
          d= e.encode( yuvFrame )
          fw.write( d )
          i= 0
        else:
          print '%d frames written in %.2f secs( %.2f fps )' % ( i, time.time()- t, float( i )/ ( time.time()- t ) )
          i= 0
     
      fw.close()
      pygame.quit()
    Erreur lors de l'écriture dans le fichier :
    fw.write( d )
    TypeError : argument 1 must be string or read-only buffer, not pymedia.video.vcodec.VFrame

    A ce stade, je ne sais plus comment faire, please help.

Discussions similaires

  1. Exporter une animation Blender vers OpenGL
    Par poliok dans le forum OpenGL
    Réponses: 23
    Dernier message: 17/01/2011, 10h27
  2. Exporter une animation
    Par slim_java dans le forum 2D
    Réponses: 6
    Dernier message: 25/03/2009, 00h35
  3. Réaliser une animation
    Par Diningdead dans le forum Flash
    Réponses: 7
    Dernier message: 08/03/2007, 08h03
  4. exporter une animation sans arrière plan
    Par fenryo dans le forum Flash
    Réponses: 2
    Dernier message: 11/12/2006, 02h50
  5. Comment réaliser une animation ?
    Par julien.jonard dans le forum MATLAB
    Réponses: 1
    Dernier message: 09/10/2006, 16h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo