Moteur de gestion des flux audio et vidéo pour les télécommunications

Un logiciel open source développé en France depuis 2001

Architecture logicielle

Mediastreamer2 est un moteur de streaming puissant et léger pour les applications de téléphonie vocale/vidéo.

Cette librairie open source est responsable de la réception et de l’envoi de tous les flux multimédia dans Linphone, y compris la capture vocale/vidéo, le codage et le décodage, ainsi que le rendu.

Mediastreamer2 intègre la librairie oRTP qui implémente le protocole Real-Time Transport (RTP – RFC 3550).

Design et Principes

Chaque entité de traitement est contenue dans un objet MSFilter. Les MSFilter(s) ont des entrées et/ou des sorties qui peuvent être utilisées pour se connecter à d'autres MSFilters.

Un exemple trivial peut illustrer cela :

  • MSRtpRecv : un MSFilter qui reçoit des paquets RTP du réseau, les dépaquétise et les poste sur sa seule sortie.
  • MSSpeexDec : un MSFilter qui prend tout ce qui se trouve à son entrée (paquets codés en Speex), les décode et met le résultat sur sa sortie.
  • MSFileRec : un MSFilter qui prend tout ce qui se trouve à son entrée et l’écrit dans un fichier wav (en supposant que l’entrée est du PCM linéaire 16 bits).

Les MSFilters peuvent être connectés ensemble pour former une chaîne de filtres. Si nous connectons les trois exemples ci-dessus, nous obtenons une chaîne de traitement qui reçoit des paquets RTP, les décode et écrit les résultats non compressés dans un fichier wav :

MSRtpRecv --> MSSpeexDec --> MSFileRec

L’exécution du traitement des médias est planifiée par un objet MSTicker, un thread qui se réveille toutes les 10 ms pour traiter les données dans toutes les chaînes de filtres MSFilter qu’il gère. Plusieurs MSTickers peuvent être utilisés simultanément, par exemple, un pour les filtres audio, un pour les filtres vidéo, ou un sur chaque processeur de la machine sur laquelle il fonctionne.

Code source

Via Gitlab

Compilation via Git

Projet Répertoire Git
Mediastreamer2 git clone https://gitlab.linphone.org/BC/public/mediastreamer2.git
oRTP git clone https://gitlab.linphone.org/BC/public/ortp.git

Documentation

Fonctionnalités et standards supportés

Historique des versions

Documentation de l'API ORTP

Modèle de licence

Mediastreamer2 est disponible en double licence

Entre licence open source ou propriétaire, c’est à vous de choisir. Nos licences propriétaires vous donnent le droit de modifier le code source tout en gardant vos sources fermées !

Licence open source

Mediastreamer2 peut être intégré dans votre projet sous les termes de la licence open source GNU / Affero GPLv3.

Licence de code source

Vous souhaitez vous affranchir des conditions de la licence GPL ? Achetez une licence de code source.

Demander un devis



    Accepter les conditions d'utilisation *

    * En cochant cette case, j'accepte les termes de la politique de confidentialité et les conditions d'utilisation de ce site.

    * : Champs obligatoire

    Formulaire protégé par reCAPTCHA.