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

Auteur Sujet: sfeMovie [v1.0 disponible]  (Lu 57876 fois)

0 Membres et 1 Invité sur ce sujet

informaticien77

  • Invité
Re : sfeMovie [v1.0 RC1 disponible]
« Réponse #30 le: Mai 28, 2012, 01:28:46 pm »
Bon j'ai fait quelques tests avec une vidéo 720p de 3min environ, et j'en suis arrivé à ces conclusions :

- Ouvrir une fenêtre et y afficher une vidéo marche très bien (une image sautée maximum).
- Bloquer le Framerate fait sauter une trentaine d'images, quelques saccades visible mais supportables.
- Mettre la fenêtre en plein écran cause des saccades importantes et visibles.

Pour le fait que mon PC ne puisse pas suivre, ce n'est pas possible tellement ce serait illogique vu que niveau puissance processeur et carte graphique je ne suis pas en manque. Avec Fraps, le programme qui utilise sfeMovie tourne à 800FPS environ sans Framerate.

Je ne dit pas que c'est seulement la faute de sfeMovie, mais vu que c'est en lien direct.

Bref, vu que mon programme servira à afficher une vidéo en écran de veille, ce serait ridicule de ne pas la mettre en plein écran. Si quelqu'un a une idée.

PS: La vidéo se trouve en plus sur un deuxième disque dur de données plus rapide que le premier (7200rpm au lieu de 5400rpm), et rarement utilisé sauf pour les sauvegardes de documents.
« Modifié: Mai 28, 2012, 01:37:22 pm par informaticien77 »

Ceylo

  • Hero Member
  • *****
  • Messages: 2325
    • Voir le profil
    • http://sfemovie.yalir.org/
    • E-mail
Re : sfeMovie [v1.0 RC1 disponible]
« Réponse #31 le: Mai 28, 2012, 01:36:29 pm »
Est-ce que tu peux essayer de mesurer indépendamment le temps pris par les appels window.draw(movie) et window.display() lorsque :
- tu es en fenêtre sans synchronisation verticale
- tu es en fenêtre avec synchronisation verticale
- tu es en plein écran sans synchronisation verticale
- tu es en plein écran avec synchronisation verticale

?

Vu que ça passe bien en fenêtre, le goulot d'étranglement au niveau du décodage est a priori écarté. Le chargement des données en texture, je vois pas non plus ce que le plein écran y changerait. Donc ça serait surtout au niveau du display() j'imagine. À moins que le temps supplémentaire pris par display() vienne empiéter sur le temps nécessaire au décodage ou chargement des données en texture.

Bref j'attends tes résultats :)
« Modifié: Mai 28, 2012, 01:38:06 pm par Ceylo »
Want to play movies in your SFML application? Check out sfeMovie!

informaticien77

  • Invité
Re : sfeMovie [v1.0 RC1 disponible]
« Réponse #32 le: Mai 28, 2012, 03:00:34 pm »
Vidéo 720p de 2min 52sec agrandie dans une fenêtre 1920x1080.

Ce sont des moyennes des temps calculés à chaque tour de boucle.

------------------------

Temps d'exécution de "window.draw(movie)" et "window.display()".

Fenêtre : 0.145283 Millisecondes

Fenêtre + Vsync (60FPS) : 14.9178 Millisecondes

Fenêtre + Vsync x2 (120FPS) : 6.22745 Millisecondes

Fullscreen : 0.133099 Millisecondes

Fullscreen + Vsync (60FPS) : 14.6987 Millisecondes

Fullscreen + Vsync x2 (120FPS) : 6.44322 Millisecondes

------------------------

Temps d'exécution de "window.draw(movie)".

Fenêtre : 0.0751137 Millisecondes

Fenêtre + Vsync (60FPS) : 1.55789 Millisecondes

Fullscreen : 0.0784091 Millisecondes

Fullscreen + Vsync (60FPS) : 1.44303 Millisecondes

------------------------

Temps d'exécution de "window.display()".

Fenêtre : 0.0538927 Millisecondes

Fenêtre + Vsync (60FPS) : 12.8847 Millisecondes

Fullscreen : 0.0655571 Millisecondes

Fullscreen + Vsync (60FPS) : 11.9997 Millisecondes

------------------------

Question : sfeMovie n'utilise pas l'accélération matérielle (enfin celle du GPU en particulier) ?
« Modifié: Mai 28, 2012, 04:18:54 pm par informaticien77 »

Ceylo

  • Hero Member
  • *****
  • Messages: 2325
    • Voir le profil
    • http://sfemovie.yalir.org/
    • E-mail
Re : Re : sfeMovie [v1.0 RC1 disponible]
« Réponse #33 le: Mai 28, 2012, 04:54:53 pm »
Question : sfeMovie n'utilise pas l'accélération matérielle (enfin celle du GPU en particulier) ?
Si tu parles de l'affichage, SFML utilise l'accélération graphique donc oui.
Pour ce qui est du décodage, ça dépend de ton matériel et c'est détecté lors de la compilation de FFmpeg (par exemple sur mon Mac, le décodage H.264 est accéléré de cette façon).

D'après tes chiffres il n'y a pas de différence notable entre le mode plein écran et fenêtré. La synchronisation verticale prend pas mal de temps mais c'est normal. Et même avec elle, la vidéo pourrait théoriquement être lue jusqu'à 75 FPS (1/(0,012+0,0015)). Du coup je ne vois pas où ça cloche.

Par contre je ne vais pas avoir le temps de faire des recherches approfondies là dessus avant vendredi prochain. Donc à voir si quelqu'un a des idées entre temps.
Want to play movies in your SFML application? Check out sfeMovie!

informaticien77

  • Invité
Re : sfeMovie [v1.0 RC1 disponible]
« Réponse #34 le: Mai 28, 2012, 05:49:42 pm »
J'ai trouvé l'erreur, le mode plein écran est allergique à "window.setFramerateLimit(int fps)", par contre sa a l'air de fonctionner avec "window.setVerticalSyncEnabled(true)" (aucune image qui saute, aucune saccade), mais en contrepartie, impossible de choisir un framerate personnalisé.

Un mystère de résolu.

Merci pour tout.

Ceylo

  • Hero Member
  • *****
  • Messages: 2325
    • Voir le profil
    • http://sfemovie.yalir.org/
    • E-mail
Re : sfeMovie [v1.0 RC1 disponible]
« Réponse #35 le: Mai 28, 2012, 05:52:50 pm »
Oh c'est bon à savoir ça !

Content que tout soit au poil :) .
Want to play movies in your SFML application? Check out sfeMovie!

Ceylo

  • Hero Member
  • *****
  • Messages: 2325
    • Voir le profil
    • http://sfemovie.yalir.org/
    • E-mail
Re : Re : sfeMovie [v1.0 RC1 disponible]
« Réponse #36 le: Juin 01, 2012, 05:23:51 pm »
Bonjour à toujours !

Actuellement le statut de sfeMovie pour Linux est indéfini. La raison principale étant que certains utilisateurs m'ont indiqué que sfeMovie fonctionnait sans problème chez eux, et d'autres non. J'aimerais donc mettre au clair une bonne fois pour toute cette histoire.

J'invite donc les utilisateurs de Linux à tester cette version de sfeMovie (Intel) : sfeMovie-linux-32b-1.0-rc1.tar.gz (5.1 Mo). Cette version de sfeMovie est basée sur SFML 2.0 RC.

Pour ce qui est du code source du programme de test, vous pouvez prendre l'exemple de base : main.cpp.

Je tiens à préciser que je suis relativement novice concernant la distribution sur Linux, donc s'il manque quelque chose ou qu'il y a des méthodes plus pratiques que ce que j'ai fourni là, n'hésitez pas à me le dire. Le binaire fourni ici gère les codecs FLAC, Vorbis, Theora et VP8 (et aucun autre !). C'est donc principalement sur des vidéos au format OGG/OGV/WebM que j'attends vos commentaires.

Je demande aux testeurs de m'indiquer si la version fournie fonctionne correctement ET quelle est votre configuration (OS, processeur et carte graphique en particulier).

Merci :)
Ceylo
Aucun retour à ce sujet ?
Want to play movies in your SFML application? Check out sfeMovie!

Sonkun

  • Full Member
  • ***
  • Messages: 241
    • Voir le profil
Re : sfeMovie [v1.0 RC1 disponible]
« Réponse #37 le: Juin 03, 2012, 12:19:08 am »
Ben justement, j'ai voulu testé il y a quelques jour mais le lien était cassé. J'essaie de suite :)
Interested in using SFML with Python ? Try out its Python binding!

Sonkun

  • Full Member
  • ***
  • Messages: 241
    • Voir le profil
Re : sfeMovie [v1.0 RC1 disponible]
« Réponse #38 le: Juin 03, 2012, 01:09:56 am »
J'ai mis les fichiers .so dans le repertoire lib/ et mis à jour le linker avec ldconfig.

Ensuite, en compilant j'obtiens (vous inquietez pas, c'est normal que ce ne soit pas local/lib chez moi):
g++ -Wall -o "sfeMovie" "sfeMovie.cpp" -lsfml-graphics -lsfml-window -lsfml-system -lsfeMovie (in directory: /home/sonkun/Desktop)
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../lib/libsfeMovie.so when searching for -lsfeMovie
/usr/bin/ld: skipping incompatible /usr/lib/../lib/libsfeMovie.so when searching for -lsfeMovie
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.6/../../../libsfeMovie.so when searching for -lsfeMovie
/usr/bin/ld: skipping incompatible /usr/lib/libsfeMovie.so when searching for -lsfeMovie
/usr/bin/ld: cannot find -lsfeMovie
collect2: ld returned 1 exit status
Compilation failed.

Alors j'ai cherché les sources pour compiler.
mkdir build && cd build
cmake -G "Unix Makefiles" ..

Première chose, ça compile la SFML, c'est normal? :)

Ensuite la compilation a échoué parce qu'il y avait des bibliothèques manquantes, alors j'ai installé les deux packages suivants (je suis sur Ubuntu 12.04):

  • libavdevice-dev
  • libswscale-dev

Ce n'était pas précisé dans la documentation, c'est pour ça que je le précise^^


J'ai recompilé, et cette fois il me dit qu'il ne trouve pas:
  • -lsfml-system.2.0
  • -lsfml-window.2.0
  • -lsfml-graphics.2.0
  • -lsfml-audio.2.0

J'ai alors modifié la ligne 55 du fichier CMakeLists.txt par celle là:

set (SFML_LIBRARIES ${SFML_LIBRARIES} "sfml-system" "sfml-window" "sfml-graphics" "sfml-audio")
Cette fois la compilation réussi.

J'essaie d'installer avec
sudo make install
Et il m'installe tout les fichiers de la SFML (include + lib) mais aucun fichier de sfeMovie. Alors j'ai manuellement déplacer les binaires produit dans le bon dossier, re-mis à jour le linker et retour au problème initial
g++ -Wall -o "sfeMovie" "sfeMovie.cpp" -lsfml-graphics -lsfml-window -lsfml-system -lsfeMovie (in directory: /home/sonkun/Desktop)
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../lib/libsfeMovie.so when searching for -lsfeMovie
/usr/bin/ld: skipping incompatible /usr/lib/../lib/libsfeMovie.so when searching for -lsfeMovie
...

Je suis impatient de tester la lib :)
Et bonne chance!
Interested in using SFML with Python ? Try out its Python binding!

Ceylo

  • Hero Member
  • *****
  • Messages: 2325
    • Voir le profil
    • http://sfemovie.yalir.org/
    • E-mail
Re : Re : sfeMovie [v1.0 RC1 disponible]
« Réponse #39 le: Juin 03, 2012, 02:58:02 am »
Salut Sonkun !

Tout d'abord merci pour tes retours :)

J'ai mis les fichiers .so dans le repertoire lib/ et mis à jour le linker avec ldconfig.

Ensuite, en compilant j'obtiens (vous inquietez pas, c'est normal que ce ne soit pas local/lib chez moi):
[...]
Je suppose que ton OS est en 64 bits, sauf que j'ai compilé sfeMovie en 32 bits ;D . Du coup c'est normal que tu sois obligé de recompiler oui. J'avais regardé déjà pour savoir comment compiler en 64 bits depuis ma Debian 32 bits ; mais apparemment il faut installer un cross compiler. Je ne sais pas lequel est le plus simple entre installer un cross compiler et installer une version 64 bits de Debian.

Alors j'ai cherché les sources pour compiler.
mkdir build && cd build
cmake -G "Unix Makefiles" ..

Première chose, ça compile la SFML, c'est normal? :)
Oui :P , à l'heure actuelle j'ai mis les sources de SFML plutôt que les binaires parce que j'en avais marre de devoir faire un tour sur chaque OS et compilateur pour mettre à jour les binaires de chaque OS et chaque compilateur. Là ça me faisait plus qu'un simple copié collé des sources et tout était à jour. Je changerai ça lorsque SFML 2.0 sortira en version finale.

Ensuite la compilation a échoué parce qu'il y avait des bibliothèques manquantes, alors j'ai installé les deux packages suivants (je suis sur Ubuntu 12.04):

  • libavdevice-dev
  • libswscale-dev

Ce n'était pas précisé dans la documentation, c'est pour ça que je le précise^^
Par contre la doc précise bien que tu es censé utiliser le script build.sh et non passer directement par CMake ! Ce qui explique qu'il te manquait des bibliothèques. Le script build.sh compile au préalable les 2 bibliothèques que tu as installées à part. Faudrait que j'aille cacher ce CMakeLists.txt quelque part pour que les gens n'aient pas le réflexe de l'utiliser en 1e ::).


J'ai recompilé, et cette fois il me dit qu'il ne trouve pas:
  • -lsfml-system.2.0
  • -lsfml-window.2.0
  • -lsfml-graphics.2.0
  • -lsfml-audio.2.0

J'ai alors modifié la ligne 55 du fichier CMakeLists.txt par celle là:

set (SFML_LIBRARIES ${SFML_LIBRARIES} "sfml-system" "sfml-window" "sfml-graphics" "sfml-audio")
Cette fois la compilation réussi.
Hmmm, visiblement tu as récupéré les sources de la RC. Mais il y a eu des corrections sur le dépôt Git depuis. Ce serait donc surtout à partir de ces sources que tu devrais te baser.

J'essaie d'installer avec
sudo make install
Et il m'installe tout les fichiers de la SFML (include + lib) mais aucun fichier de sfeMovie.
Cf. remarque ci-dessus.

Alors j'ai manuellement déplacer les binaires produit dans le bon dossier, re-mis à jour le linker et retour au problème initial
[...]

Je suis impatient de tester la lib :)
Et bonne chance!
C'est étrange que tu aies toujours le problème après avoir recompilé. Mais j'attends de voir ce que ça donne chez toi avec les sources du dépôt Git déjà. (pense d'abord à supprimer toutes les versions compilées de sfeMovie que tu as pu installer, au cas où)

Ceylo
« Modifié: Juin 03, 2012, 03:20:41 am par Ceylo »
Want to play movies in your SFML application? Check out sfeMovie!

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : sfeMovie [v1.0 RC1 disponible]
« Réponse #40 le: Juin 03, 2012, 09:00:26 am »
Citer
Par contre la doc précise bien que tu es censé utiliser le script build.sh et non passer directement par CMake ! Ce qui explique qu'il te manquait des bibliothèques. Le script build.sh compile au préalable les 2 bibliothèques que tu as installées à part. Faudrait que j'aille cacher ce CMakeLists.txt quelque part pour que les gens n'aient pas le réflexe de l'utiliser en 1e
Pourquoi ne pas faire le contraire : exécuter les étapes custom de ton script directement avec CMake ? Ca pourrait par exemple être un pre-build step de la target sfeMovie.
Laurent Gomila - SFML developer

Ceylo

  • Hero Member
  • *****
  • Messages: 2325
    • Voir le profil
    • http://sfemovie.yalir.org/
    • E-mail
Re : Re : sfeMovie [v1.0 RC1 disponible]
« Réponse #41 le: Juin 03, 2012, 11:07:25 am »
Pourquoi ne pas faire le contraire : exécuter les étapes custom de ton script directement avec CMake ? Ca pourrait par exemple être un pre-build step de la target sfeMovie.
Hmmm... cela impliquerait de vérifier également si les outils nécessaires sont installés, de faire la configuration de FFmpeg (choix des codecs) dans CMake. Depuis Visual Studio, si une étape lance un script shell, les messages de sortie de ce script s'affichent dans Visual Studio ?
Want to play movies in your SFML application? Check out sfeMovie!

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : sfeMovie [v1.0 RC1 disponible]
« Réponse #42 le: Juin 03, 2012, 11:47:40 am »
Citer
Hmmm... cela impliquerait de vérifier également si les outils nécessaires sont installés, de faire la configuration de FFmpeg (choix des codecs) dans CMake.
Je ne sais pas ce que font tes scripts, mais quelle différence entre les lancer depuis CMake ou les lancer manuellement ?

Citer
Depuis Visual Studio, si une étape lance un script shell, les messages de sortie de ce script s'affichent dans Visual Studio ?
Probablement, faudrait vérifier.
Laurent Gomila - SFML developer

Ceylo

  • Hero Member
  • *****
  • Messages: 2325
    • Voir le profil
    • http://sfemovie.yalir.org/
    • E-mail
Re : Re : sfeMovie [v1.0 RC1 disponible]
« Réponse #43 le: Juin 03, 2012, 11:56:47 am »
Je ne sais pas ce que font tes scripts, mais quelle différence entre les lancer depuis CMake ou les lancer manuellement ?
Tu veux dire les lancer depuis l'EDI pour lequel CMake aura généré les fichiers ?
Mon script, à l'heure actuelle, gère la compilation de FFmpeg (dont le choix des codecs), la génération des fichiers pour l'EDI choisi (via CMake lancé dans le script), et la compilation finale de sfeMovie dans le cas où l'EDI cible est les Makefiles. Mais oui, si Visual Studio gère correctement les messages de sortie du script, alors cela ne devrait pas poser problème de faire dans l'autre sens (je me fais pas de soucis pour les autres EDI).

Vais voir ça.
Want to play movies in your SFML application? Check out sfeMovie!

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : sfeMovie [v1.0 RC1 disponible]
« Réponse #44 le: Juin 03, 2012, 04:31:11 pm »
Citer
et la compilation finale de sfeMovie dans le cas où l'EDI cible est les Makefiles
Au cas où : CMake offre des commandes "standard" pour les trucs les plus communs (copier un fichier, créer un répertoire, ...), c'est lui qui s'occupe d'adapter la syntaxe à la plateforme cible. En outre, tu peux compiler ton projet quelque soit la cible avec la commande qui va bien (si je me souviens bien, "cmake -E build <dir>").
Laurent Gomila - SFML developer