Bien le bonjour à tous,

Pour une application que je suis entrain de développer, et qui doit permettre à l'utilisateur d'effectuer à partir d'un fichier vidéo source des traitements (uniquement graphiques) sur des images au choix, et de créer une nouvelle vidéo en sortie (en gardant la même résolution, le nombre d'images et la piste son intacte, mais en modifiant toutes les images)
Donc grosso modo je dois pouvoir :
  • Lire une vidéo d'une taille conséquente (la vidéo en entrée aura une compression avec une perte de qualité la plus faible possible, et potentiellement plusieurs dizaines (voire centaines) de milliers d'images pour une résolution "HD" voire plus)
  • Sauter à n'importe quelle image de la vidéo par son index
  • Extraire l'image
  • Écrire une vidéo compressée à partir d'images + une piste audio issue d'une autre vidéo
  • Pouvoir lire un maximum de formats (ce point n'est pas des plus importants)


Les points sans importance :
  • Mon application est en C# Windows Forms, mais peu importe s'il faut passer par du C++ managé ou non
  • Je n'ai pas besoin de jouer le son
  • Je n'ai pas besoin de jouer la vidéo en temps réel


Ce que j'ai déjà tenté et pourquoi la solution ne me convient pas totalement :
  • OpenCV (que j'utilise pour une partie du traitement) : ne prends pas en compte le son
  • Wrapper avifil32.dll : limite dans la taille des fichiers, vu que ça ne prends pas en compte l'avi 2.0
  • FFmpeg : très efficace, par contre ce sont les contraires légales qui me posent quelques soucis, puisque le projet pourrait déboucher sur un logiciel commercialisé (ça reste apparemment faisable en LGPL, mais s'il y a un autre moyen, j'aimerais autant)


Les solutions que j'envisage :
  • DirectShow (mais là j'avoue qu'avec les différentes interfaces j'y perds un peu mon latin)
  • Media Foundation (j'ai encore une visibilité assez floue à ce niveau, apparemment ça n'est pas compatible avec XP, mais ça au pire c'est pas dramatique, je peux toujours faire une version XP "light" avec avifil32.dll)
  • XNA? DirectX? (je ne sais pas si elles savent écrire des vidéos, à priori c'est pas franchement leur but)


Si quelqu'un a des conseils avisés, des remarques, des idées, je suis preneur.

Merci d'avance !

Toopee