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
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
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
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. –
Une autre option que j'ai rencontrée aujourd'hui est peut-être AForge.net - elle contient un espace de noms pour lire des vidéos. http://www.aforgenet.com/framework/samples/video.html et est publié sous licence LGPL.
Une option supplémentaire est OpenTK; pour mélanger les images fournies par un flux vidéo: http://www.opentk.com/doc/graphics
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.
- 1. comment mélanger plusieurs flux vidéo en un seul flux?
- 2. Comment analyser un flux vidéo
- 3. Ressources pour travailler avec des flux vidéo en C#
- 4. Comment mélanger deux tableaux exactement de la même manière en Perl?
- 5. conversion vidéo en C#
- 6. Extraction de plusieurs flux vidéo en direct dans WPF
- 7. Re-publier le flux vidéo en streaming FLV
- 8. Passer un identifiant vidéo youtube du flux vidéo au flash
- 9. Comment diffuser de la vidéo en direct
- 10. Comment puis-je lire un flux de réponse Http deux fois en C#?
- 11. Comment mélanger php et C++ pour l'authentification de l'utilisateur?
- 12. Enregistrer un flux vidéo MMS en utilisant .NET
- 13. mpeg1 flux dans le lecteur vidéo flash en ligne
- 14. comment lire un flux vidéo http avec libavcodec (ffmpeg)
- 15. Comment insérer des marqueurs dans un flux vidéo Silverlight LIVE?
- 16. Comment implémenter la diffusion vidéo en direct en C#?
- 17. Flux vidéo multiples H.264 dans une session RTP
- 18. chaînage des flux C++
- 19. Flux de contrôle en Objective-C
- 20. Comment joindre deux chemins en C#?
- 21. Comment convertir un flux en octet [] en C#?
- 22. Comparaison de fichiers en C#
- 23. comment obtenir la durée du fichier vidéo en C#
- 24. Comment lister les modes vidéo disponibles en utilisant C#?
- 25. Comment mélanger une liste <T>
- 26. Mélanger jsp et jsf
- 27. Flash Media Server: Problème avec l'enregistrement de 2 flux audio/vidéo en même temps?
- 28. Lecture vidéo C#
- 29. Impossible mélanger la liste en Python
- 30. Making texte en gras en utilisant Writer flux en C#
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. –