-
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 !
-
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.
-
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
-
:(
personne ?
S'il vous plaît j'aimerais vraiment faire quelque chose de très performant !
Merci encore
-
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.
-
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.
-
Merci, maintenant je sais ce que je dois faire,
je reviendrais sûrement plus tard !
Merci encore