57 votes

Comment puis-je diffuser des vidéos webcam avec C #?

Je souhaite créer une application serveur simple où les utilisateurs peuvent se connecter à l'aide d'un client basé sur un navigateur (que je créerai plus tard) pour regarder des vidéos en streaming. Et je veux utiliser C #.

De quoi ai-je besoin pour capturer des images vidéo ou des images rapides via une webcam et les envoyer sur le réseau?

22voto

CMPalmer Points 4760

Si vous voulez une "capture/streamer dans une boîte, il y a plusieurs là comme d'autres l'ont mentionné.

Si vous souhaitez obtenir vers le bas niveau de contrôle sur tout cela, vous aurez besoin d'utiliser DirectShow comme thealliedhacker points. La meilleure façon d'utiliser DirectShow en C# est par le biais de la DirectShow.Net bibliothèque - elle enveloppe tous les DirectShow COM Api et comprend de nombreuses fonctions de raccourcis pour vous.

En plus de la capture et de diffusion, vous pouvez également faire l'enregistrement, de l'audio et de la vidéo à convertir les formats audio et vidéo les filtres en direct, et un tas de trucs.

Revendications Microsoft DirectShow est de s'en aller, mais ils ont encore à la sortie d'une nouvelle bibliothèque ou de l'API qui fait tout ce que DirectShow fournit. Je pense que beaucoup de la dernière des choses qu'ils ont sorti sont encore DirectShow sous le capot. En raison de son statut de chez Microsoft, il n'y a pas beaucoup de livres ou des références à d'autres que MSDN et ce que vous pouvez trouver sur les forums. L'année dernière, lorsque nous avons commencé un projet de l'utiliser, le meilleur livre sur le sujet a été épuisé et aller pour environ 350 $pour une copie utilisée!

Voici le livre: la Programmation de Microsoft DirectShow. Vous pouvez obtenir une nouvelle copie (au moment de cette publication) pour 299 $ou une copie utilisée pour 149 $chez Amazon!

alt text

7voto

thealliedhacker Points 415

L'habitude de l'API pour ce qui est de DirectShow.

Vous pouvez utiliser P/Invoke pour importer le C++ Api, mais je pense qu'il y a déjà quelques projets qui ont fait cela.

http://channel9.msdn.com/forums/TechOff/93476-Programatically-Using-A-Webcam-In-C/

http://www.codeproject.com/KB/directx/DirXVidStrm.aspx

Pour obtenir le streaming de partie, vous voudrez probablement utiliser DirectShow pour appliquer un codec de compression pour réduire le lag, alors vous pouvez obtenir un Flux de données et de les transmettre. Vous pourriez envisager d'utiliser la multidiffusion pour réduire la charge du réseau.

5voto

Chris Holmes Points 5475

Vous pouvez simplement utiliser VideoLAN . VideoLAN fonctionnera comme un serveur (ou vous pouvez envelopper votre propre application C # autour de celle-ci pour plus de contrôle). Il existe également des wrappers .NET pour le visualiseur que vous pouvez utiliser et ainsi intégrer dans votre client C #.

3voto

faulty Points 3342

J'ai utilisé VideoCapX pour notre projet. Il sera diffusé en tant que flux MMS / ASF pouvant être ouvert par le lecteur multimédia. Vous pouvez ensuite intégrer le lecteur multimédia à votre page Web.

Si vous n'avez pas besoin de beaucoup de contrôle ou si vous voulez essayer VideoCapX sans écrire de code, essayez U-Broadcast , ils utilisent VideoCapX en arrière-plan.

1voto

rotard Points 570

Si vous souhaitez enregistrer une vidéo à partir d'un navigateur Web, je pense que votre seule option est Flash. Nous cherchons à faire la même chose. Nous sommes également principalement une maison .NET et je ne vois pas comment utiliser .NET pour capturer la webcam _de_avec_le_browser_. Toutes les autres solutions mentionnées ici fonctionneraient probablement très bien si vous vous contentez d'une application de bureau.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X