Développer une application de chat vidéo avec un streaming vidéo de haute qualité

StackOverflow https://stackoverflow.com/questions/470698

  •  19-08-2019
  •  | 
  •  

Question

Je travaille pour une société dans laquelle nous développons un support de chat vidéo sur une application existante. J'ai examiné diverses solutions pour cela, comme

  1. Utilisation de la présentation directe gérée pour la capture vidéo et la diffusion en continu en C #
  2. Certains exemples de code dans le projet de code où nous prenons une image et la transmettons sur le réseau (je l'appellerais plutôt une solution grossière car cela consommerait beaucoup de bande passante.
  3. Codez un algorithme de compression à partir de zéro et utilisez-le pour compresser / décompresser une vidéo.

Maintenant, le défi est que nous cherchions à obtenir un streaming vidéo de très haute qualité et que l'application de conteneur soit codée en C # .NET

C'est ce que j'ai proposé jusqu'à présent. La logique réseau pour diffuser les données est écrite en C #, la compression vidéo à écrire dans VC ++ et appelez cette dll VC ++ à l'aide de pinvoke ou de la CLI dans la mesure du possible.

Je recherche quelqu'un de plus expérimenté que moi dans ce domaine qui peut me suggérer si je vais bien ou si cela peut encore être amélioré.

L’objectif ultime est la qualité du streaming vidéo. Le codec peut être quelque chose comme h.2633, h.264, etc.

Était-ce utile?

La solution

J’ai utilisé plusieurs méthodes pour obtenir une diffusion / conférence vidéo en continu avec .net facilement, sans avoir à fouiller dans directshow. (ok, creusez, mais pas en profondeur:)

1) Utilisation de composants Windows Media Encoder simples. Il est documenté avec des exemples dans le Kit de développement logiciel Windows Media Encoder. Bon pour toute diffusion en haute résolution, mais le délai est trop important pour une discussion en temps réel (0,5-2 secondes au mieux). Une autre option du SDK Modern Express Encoder.

2) Microsoft Research ConferenceXP http://cct.cs.washington.edu/ API de conférence, y compris la diffusion en continu d'applications. Ils ont également codé les filtres Windows Media de niveau trop bas et les ont enveloppés dans du code géré. Fonctionne bien. Facilement personnalisable. On dirait qu’un peu abandonné maintenant.

3) Client Microsoft RTC jusqu'à la version 1.3 - noyau de Windows Messenger.

avantages: échantillons gérés par Microsoft, bonne documentation, performances fiables, redistribuable librement, pile SIP compatible avec Microsoft (bonne) incluse. Les principaux fournisseurs de services de téléconférence comme Emblaze VCON ont basé leurs solutions sur ce produit dans un passé lointain, mais je sais que Tandberg a acquis une licence pour le VC-1 de Microsft.

inconvénients: les versions jusqu'à la version 1.3 prennent en charge uniquement la vidéo h261-h263. La version moderne prenant en charge le codec VC-1 (h264) n’autorise pas les connexions ip-ip directes sans serveur. Cela nécessite un serveur Microsoft Live Communications. La version plus récente du SDK ne couvre pas bien les appels de vidéoconférence.

http://msdn.microsoft.com/en -us / library / ms775892 (VS.85) .aspx

Faites-nous savoir quelle plate-forme vous avez choisie. En passant, j’ai même utilisé la partie rtp vidéo ConferenceXP avec les fonctions voix / SIP RTC 1.3 pour améliorer la qualité vidéo. Vous disposez donc d’un large choix de technologies gérées. Live Meeting est une autre chose à laquelle je n’ai pas encore eu la chance de bien regarder.

Autres conseils

Epargnez-vous le problème et utilisez VLC. Il existe quelques bons wrappers .NET ( http: //forum.videolan .org / viewtopic.php? f = 32 & amp; t = 52021 & start = 30 )

Nous utilisons C # et VLC pour un réseau IPTV. Nous prenons les entrées des satellites du réseau DISH via des périphériques de capture vidéo Osprey-450 sur un serveur Windows XP. À partir de là, nous avons écrit un composant de serveur .NET en C # qui utilise VLC en arrière-plan (démarrage de processus distincts dans .NET pour contrôler les instances de vlc.exe). Les processus VLC transcodent et diffusent les signaux sur un réseau (.h264 ou MPEG-4, nous avons réussi à faire les deux).

Du côté client, nous avons une application WinForm C # qui utilise un visualiseur VLC intégré pour afficher les signaux de multidiffusion. Cette application est principalement destinée à la commande & amp; contrôle. L'utilisation réelle des signaux de multidiffusion se produit lorsque nos décodeurs attachés à notre téléviseur décodent et affichent les flux.

Nous pensions que nous allions devoir écrire nos propres codeurs DirectX également, mais n'attendez pas trop. VLC fonctionne vraiment bien et a suffisamment de support C # pour être très utile. N'hésitez pas à m'envoyer un e-mail si vous avez des questions spécifiques sur la mise en œuvre.

Vous devriez consulter le SDK d'Ucentrik. Ce kit de développement logiciel vous permettra d’intégrer des fonctionnalités multimédias telles que la vidéo, l’audio, le chat, le partage et le contrôle sur des postes de travail distants et l’enregistrement vidéo dans vos applications. Les codecs vidéo pris en charge sont VP8 (Google), Theora et x.264. En outre, le trafic multimédia enrichi est encapsulé dans un protocole HTTP pour lui permettre de traverser les pare-feu autorisant le trafic Web normal. Cette technologie est entièrement gratuite et vous pouvez télécharger le SDK et demander une clé API pour pouvoir évaluer sans investir à tout moment dans la configuration de l’infrastructure. Au cours des prochains mois, nous publierons un composant serveur afin que vous puissiez télécharger et héberger l'infrastructure vous-même ou votre client. La technologie prend en charge les connexions un-à-plusieurs, ce qui signifie que vous pouvez créer des vidéoconférences si vous le souhaitez. Les fonctionnalités sont hautement modulaires, vous permettant d'intégrer uniquement le partage vidéo ou audio ou le partage de bureau ou une combinaison des technologies utilisant le même SDK ... Vous devez demander un SDK disponible ici: www.ucentrik.com. De plus, certaines vidéos sont ici: http://www.youtube.com/user/ucentrik

bonne chance.

Ucentrik vient de publier une application de centre d’appel open source intégrant la technologie CTX. Cette application de centre d'appels implémente la fonctionnalité de conversation texte, vidéo, audio et de bureau / application (avec contrôle) disponible à partir de l'API CTX. L'application inclut également une logique métier spécifique permettant de router les appels vers un agent disponible ou possédant un ensemble de compétences spécifique. Le projet est disponible à l'adresse http://vcca.codeplex.com . Veuillez noter que vous aurez besoin de l'accès à Ucentrik. CTX SDK disponible sur le site Web de Ucentrik (www.ucentrik.com). Bonne chance.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top