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

C++ Discussion :

Vidéo haute définition


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 129
    Par défaut Vidéo haute définition
    Bonjour bonjour,

    Voilà je voudrais lire un film vidéo (avi) haute définition (1024*768) sur un PC ou un MAC (whatever) et en même temps pratiquer des traitements d'images sur l'acquisition vidéo d'une webcam.
    L'affichage de ces deux flux ce fait en même temps
    J'ai d'abord essaye avec processing, mais le résultat n'était que très moyen même avec FasterMovie (library de processing)
    Puis un passage par OpenFrameWorks, mais sans résultat concluent
    Enfin, un mixe avec openCV et quicktime library s'est révélé plus rapide et puis finalement openCV et OpenFrameWorks m'ont amené à un lecture fluide sur un court temps (vidéo de 10 sec)
    Mais comme openFrameWorks charge la vidéo en mémoire, je vous laisse imaginer si je lui demande de charger 1 minute de film, la mémoire que le programme mange
    Bref comment bien gérer cette lecture de vidéo ????

    Merci d'avance à tout le monde !

    (Mes pistes sont pour le moment, le multithreading, et l'utilisation du gpu, mais comment )

    Merci encore !

  2. #2
    Membre éprouvé
    Avatar de NiamorH
    Inscrit en
    Juin 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1 309
    Par défaut
    Déjà, il faut avoir un disque dur haut débit, capable de supporter un ou deux flux HD.

    Ensuite, bien entendu, le multithreading aidera (découpe et traite autant de partie d'image que tu disposes de processeurs indépendants).

    Après, selon l'OS utilisé, il existe des apis de chargement de fichiers qui ne mettent pas en cache systeme les données (tu gagnes du temps). Si tu charge tes images avec les moyens standards C++, tu n'auras pas l'option.

    Voila, à plus.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 129
    Par défaut
    Désolé pour le retard, merci pour ces informations !
    Alors je vais approfondir ma question :

    Puis-je par exemple utiliser un Dual Core pour d'un côté opérer l'acquisition des images de la webcam et de l'autre côté faire le traitement de la vidéo et la lecture de la vidéo HD avec l'autre proc ?
    Ensuite comment puis-je être sûr que c'est le gpu qui gere aussi l'affichage de la video ?

    Au niveau de l'OS, ce sera base Linux (ubuntu certainement) et OSX.

    Donc en gros mes questions, sont, quels librairies puis-je utiliser pour mon application ?

    Merci encore

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 129
    Par défaut :(
    personne ?
    S'il vous plaît j'aimerais vraiment faire quelque chose de très performant !
    Merci encore

  5. #5
    Membre éprouvé
    Avatar de NiamorH
    Inscrit en
    Juin 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1 309
    Par défaut
    Il faut que tu tires parti au maximum des différents processeurs dont tu disposes. Je te conseille de ne pas partir sur le principe que tu vas travailler sur un Dual Core, mais sur un multicore pour des éventuelles évolution de matériel.

    Questionne la machine au démarrage de l'appli pour récupérer ce nombre de processeurs.

    Après, oui il faut paralléliser l'aquisition, le traitement et l'affichage, et ce même sur un single core. Par contre ne cherche pas à dire : ce processeur là est destiné à l'acquisition, celui là au traitement. Résonne par thread et laisse l'OS assigner le processeur au moment t.

    Pour l'affichage, si tu n'utilise pas une API graphique style openGL, le gpu n'entrera pas en jeu.

    Pour les librairies sous linux, aucune idée.

    a plus.

  6. #6
    screetch
    Invité(e)
    Par défaut
    tu n'es pas obligé de passer par OpenGl mais c'est peut etre le plus facile. mais les extensions X11 sont accélérées sur toute les cartes ou presque je pense (meme sans driver 3D). je crois que l'extension X11 s'appelle Xv.

Discussions similaires

  1. Réponses: 0
    Dernier message: 02/10/2010, 11h24
  2. Réponses: 5
    Dernier message: 18/11/2009, 14h22
  3. Réponses: 0
    Dernier message: 14/11/2009, 13h55
  4. Réponses: 8
    Dernier message: 03/10/2009, 21h36
  5. Haute Définition : Toshiba va lancer son premier lecteur Blu-ray
    Par Emmanuel Chambon dans le forum Actualités
    Réponses: 7
    Dernier message: 21/07/2009, 14h17

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