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

Programmation multimédia/Jeux Python Discussion :

creer une video a partir d'une sequence d'images.


Sujet :

Programmation multimédia/Jeux Python

  1. #1
    Membre habitué Avatar de KINENVEU
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 184
    Points : 131
    Points
    131
    Par défaut creer une video a partir d'une sequence d'images.
    bonjour,

    j'aimerai creer une video a partir d'une sequence d'images.
    je cherche quelque chose de simple pour une utilisation rapide.
    je ne veux pas faire de la grande production, mais juste me faciliter la vie.

    en cherchant sur le forum, je suis tombe sur un lien : http://pymedia.org/tut/src/make_video.py.html
    mais cet exemple necessite pymedia et pygame.

    je suis sous windows avec python 2.5,
    et je n'arrive pas a installer pymedia.
    la version disponible de pymedia est compatible avec python 2.4.

    je voudrais savoir :
    - est ce que quelqu'un aurait une autre solution ?
    - est ce que pymedia est maintenu, utilise ?
    - suis-je obliger de devenir dependant de 2 bibliotheques externes pour faire une operation 'assez basique' ?

    merci par avance de vos reponses/suggestions.

  2. #2
    Expert éminent sénior
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Points : 10 067
    Points
    10 067
    Par défaut
    Pour Pymedia, il y a une version pour Python 2.5
    voir dans ce post le lien:
    http://www.developpez.net/forums/d59...jeux/utiliser/

  3. #3
    Membre habitué Avatar de KINENVEU
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 184
    Points : 131
    Points
    131
    Par défaut
    merci guigui,



    je remets le lien direct pour pymedia-python2.5 sous windows :
    http://pymedia.org/downloads/pymedia...in32-py2.5.exe

    je vais tester ca et je reviens.

  4. #4
    Membre habitué Avatar de KINENVEU
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 184
    Points : 131
    Points
    131
    Par défaut
    je n'arrive pas a faire fonctionner l'exemple :

    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
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    #! /bin/env python
    import sys, os, time
    import pymedia.video.vcodec as vcodec
    import pygame
     
    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 % i ):
          s= pygame.image.load( inPattern % i )
          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 ) # ICI !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
          i+= 1
        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()
     
     
    if __name__== '__main__':
      if len( sys.argv )!= 4:
        print "Usage: make_video <in_file_pattern> <out_file> <format>\n\tformat= { mpeg1video | mpeg2video }"
      else:
        makeVideo( sys.argv[ 1 ], sys.argv[ 2 ], sys.argv[ 3 ] )
    j'ai une erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        fw.write( d )
    TypeError: argument 1 must be string or read-only buffer, not pymedia.video.vcodec.VFrame
    d'apres la 'doc string', ca doit retourner un string, mais en fait non ...


    est-ce que quelqu'un a deja reussi a le faire tourner ?
    est-ce que quelqu'un utilise pymedia ?
    est-ce que c'est un attrappe-couillon ?

  5. #5
    Membre chevronné

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Points : 1 752
    Points
    1 752
    Par défaut
    Je ne veux pas te décourager mais moi aussi je n'ai pas réussi avec des exemples simples à utiliser pyMédia...

  6. #6
    Membre chevronné

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Points : 1 752
    Points
    1 752
    Par défaut
    Bonjour,
    je suis tombé sur ce lien : http://www.lightning-generator.org/article.php?sid=252 .
    Le document "Vos premières animations avec POV-Ray, 1ère partie" explique comment utiliser Blender, un logiciel libre de 3D, pour transformer une suite d'images en une vidéo.
    Dans le document "Vos premières animations avec POV-Ray, 2ème partie" se trouvent deux autres méthodes (mais je ne sais pas encore si elle fonctionne sous Windows).

    Je n'ai pas le temps d'étudier cela pour le moment mais peut-être qu'on peut utiliser l'une de ces méthodes à partir d'un script Python vie une ligne de commande.

  7. #7
    Membre chevronné

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Points : 1 752
    Points
    1 752
    Par défaut
    Finalement,
    voici une méthode utilisable via Python grâce à une ligne de commande.

    1) Il faut utiliser ffmpeg. Il existe une version "non officielle" compilé pour Windows ici : http://ffmpeg.arrozcru.org/ . Le lien est sur le site officiel de ffmpeg malgré tout.
    2) Une ligne de commande comme "ffmpeg -r 10 -b 1800 -i %03d.png test.mp4" créera alors une fichier mp4 à partir des images 01.png, 02.png, 03.png, ...etc . Exemple trouvé ici : http://electron.mit.edu/~gsteele/ffmpeg/ .

    Pour l'utilisation de la ligne de commande, on peut par exemple utiliser os.system("ffmpeg -r 15 -i %02d.png test.mp4") en se plaçant dans le dossier des images où on aura copié le fichier ffmpeg.exe.

    Pour moi, le sujet est clos...

  8. #8
    Membre habitué Avatar de KINENVEU
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 184
    Points : 131
    Points
    131
    Par défaut
    merci,
    je vais regarder ca des que j'ai un peu de temps.

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 30
    Points : 27
    Points
    27
    Par défaut
    Attention, ne pas oublier sous Windows de double les %

  10. #10
    Membre chevronné

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Points : 1 752
    Points
    1 752
    Par défaut
    C'est noté. Merci. Mais pourquoi faut-il faire cela ? Le % est-il un caractère d'échapement ?

  11. #11
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    1
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Exemple pyMedia.
    Bonjour,

    L'exemple comporte une erreur !
    Il ne faut pas écrire l'objet 'd' (crf. # ICI !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    ) mais 'd.data' qui est ... un string et cela marche très bien, exemple:

Discussions similaires

  1. Réponses: 4
    Dernier message: 10/10/2010, 11h46
  2. Réponses: 2
    Dernier message: 05/03/2010, 14h15
  3. creer un fichier lib à partir d'une DLL
    Par benoit70 dans le forum MFC
    Réponses: 12
    Dernier message: 28/09/2008, 22h58
  4. creer un form a partir d'une unite
    Par benta dans le forum Débuter
    Réponses: 7
    Dernier message: 11/04/2006, 12h52
  5. [VB6]Creer un autre TextBox à partir d'une Textbox Existante
    Par bb62 dans le forum VB 6 et antérieur
    Réponses: 24
    Dernier message: 18/01/2006, 08h20

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