2009-08-26 16 views
2

Dans le passé, j'ai utilisé Managed Direct X et DirectShow.Net pour lire une vidéo sur une texture sur un maillage simple. J'ai ensuite utilisé cette même technique pour combiner plusieurs sources vidéo en une seule texture, en utilisant les différentes capacités exposées à travers les textures pour mélanger ces flux ensemble. Ce fut une expérience très intéressante il y a 2 ans et était tout à fait approprié pour Managed Dirext X était encore en cours de développement et de support (ce qui n'est plus le cas) et de même avec DirectShow.Net - il ne semble pas avoir été mis à jour Je cherche à m'aventurer dans cet espace et je voudrais savoir comment cela peut être fait en C#, sans utiliser d'API dépréciées ou en fin de vie et comment l'approcher au mieux.Comment puis-je mélanger deux flux de vidéo en C#?

Répondre

3

C'est très facile à faire dans WPF.

Utilisez deux contrôles MediaElement, l'un au-dessus de l'autre, et rendez le transparent supérieur à 50% transparent.

Cependant, je ne pense pas qu'il soit possible de l'enregistrer dans une nouvelle vidéo

+0

Je pense que c'est une idée vraiment intéressante pour ce qui semble être une implémentation assez simple pour ce problème. Je vais essayer de voir ce que je peux faire d'autre avec le videobrush. –

2

vous pouvez utiliser SlimDX bibliothèque open source qui est le même que presque la même que MDX et DirectShow et ont le soutien vista aussi dans win7. 0

+0

Je n'ai jamais entendu parler de cette librairie auparavant, merci de l'avoir signalé. Si je finis par descendre le sentier de levage lourd - je vais vérifier. –

0

J'ai fait exactement que vers 2003. Je devais utiliser le code dangereux, autrement dit, des pointeurs pour convertir chaque image recopié des deux flux vidéo en format RGB et moyenne de chaque valeur de pixel, puis de revenir au format d'origine. Le coup de performance est si énorme si vous n'utilisez pas de code dangereux. Ma compréhension est que lors de la gestion de flux vidéo, le DirectShow fait la magie en alignant automatiquement de nombreux codecs pour faire l'acte. Dans le même temps, ces flux d'images doivent être thread-safe et correctement synchronisés, ce qui signifie beaucoup de frais généraux. Mais quelqu'un qui sait mieux devrait intervenir.

Questions connexes