Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: Utiliser FFMPEG avec SFML  (Lu 2063 fois)

0 Membres et 1 Invité sur ce sujet

christophedlr

  • Full Member
  • ***
  • Messages: 151
    • Voir le profil
    • E-mail
Utiliser FFMPEG avec SFML
« le: Février 05, 2014, 03:03:01 pm »
Bonjour,

Je souhaiterais savoir si il est possible d'utiliser la ffmpeg avec la SFML. Je pose la question, car avec ffmpeg, on obtient pour chaque image, un tableau de pixels (uint8_t), hors la SFML ne semble permettre QUE la gestion des fichiers, que se soit en mémoire, sur un flux ou sur le disque. Les sf::Image ne semblent gérer les tableaux de pixels (ce que renvoi ffmpeg) que à l'initialisation de la sf::image, ce qui voudrait dire qu'il me faudrait à chaque fois, créer une sf::image et lui fournir le tableau de pixel, l'afficher, puis la détruire (la variable), pour la recréer ensuite pour afficher l'image suivante.

Ce procédé n'est pas lourd il me semble ?

Je sais que la SDL, gère nativement les tableaux de pixels, mais ce n'est pas ce que je comprend de la doc pour la SFML.

Si tu passes par là Laurent.


Merci d'avance.

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : Utiliser FFMPEG avec SFML
« Réponse #1 le: Février 05, 2014, 03:08:50 pm »
Jette un oeil au projet sfeMovie.
Laurent Gomila - SFML developer

christophedlr

  • Full Member
  • ***
  • Messages: 151
    • Voir le profil
    • E-mail
Re : Utiliser FFMPEG avec SFML
« Réponse #2 le: Février 05, 2014, 03:30:05 pm »
Ben justement, son auteur dis ne pas utiliser ffmpeg parce que la librairie est illégale (d'après lui), c'est pourquoi j'ai pas cherché dans son code.

Ma seule question est : la sf::image permet de gérer les tableaux de pixels sans devoir le faire lors de la création de cette histoire ? J'ai pas besoin de plus d'infos qu'un oui ou non ;)

Par contre, j'ai regardé le code de ta sf::image, et je crois avoir trouvé la réponse à ma question ; à moins que j'ai mal compris ton code, il semble que le loadFromMemory ou encore loadFromStream, se contente d'utiliser un tableau de pixels (un uint8, ce que j'obtiens en effet avec ffmpeg).

En fait, j'ai eu des doutes à cause de ta phrase :
Citer
The supported image formats are bmp, png, tga, jpg, gif, psd, hdr and pic. Some format options are not supported, like progressive jpeg. If this function fails, the image is left unchanged

Cette dernière laisse donc penser qu'un autre format ne serait pas géré, hors si on  peut filer un tableau de pixels, sf::image gère n'importe quel format, du moment que quelque chose derrière s'occupe de l'image au niveau du format, et en récupère simplement les pixels.

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : Utiliser FFMPEG avec SFML
« Réponse #3 le: Février 05, 2014, 04:56:06 pm »
Citer
Ben justement, son auteur dis ne pas utiliser ffmpeg parce que la librairie est illégale (d'après lui), c'est pourquoi j'ai pas cherché dans son code.
T'as dû mal comprendre...

Sinon pour répondre à ta question : il faut utiliser sf::Texture::update pour ce que tu veux faire.
Laurent Gomila - SFML developer

christophedlr

  • Full Member
  • ***
  • Messages: 151
    • Voir le profil
    • E-mail
Re : Utiliser FFMPEG avec SFML
« Réponse #4 le: Février 05, 2014, 05:10:30 pm »
Oui il semble que j'ai mal compris car je suis tout de même allé voir son code, mais bon j'arrive toujours pas à utiliser ffmpeg, donc je laisse tombé car là ça me gonfle un max. En faisant comme le tuto ffmpeg/sdl que j'avais trouvé, j'ai une image noir donc ce n'est pas bon.

En suivant le code sfemovie, j'arrive même pas au stade de la SFML, car ffmpeg me dit qu'il ne peut lire une taille de 0 par 0.