Java, Spring, Kurento et Media Services



Il existe déjà de nombreux services médiatiques, mais les gens continuent de les créer. J'ai décidé de reprendre l'invention de mon vélo.

Ayant rencontré le projet Kurento , j'ai réalisé que c'était ce dont j'avais besoin. Cet article est en partie une traduction de la Kurento Documentatin , en partie des notes sur mes expériences avec le KurentoTutorial. J'espère que les développeurs commençant à étudier cette question, ce matériel aidera à maîtriser rapidement le sujet de la création de services multimédias.

Kurento c espéranto se traduit par «flux». Conçu par Rey Spanish University
Juan Carlos Universidad . Kurento est WebRTC Media Server et un ensemble d'API client qui simplifie la création d'applications pour le Web et les smartphones. Il peut s'agir de visiophonie, de services de visioconférence, de surveiller les images de caméras avec reconnaissance de mouvement, de lire du contenu audio-vidéo à partir d'un fichier ou d'un réseau, de reconnaître des numéros de personne ou de voiture, et bien plus encore. Le code Kurento est open source, distribué sous les termes de la licence Apache version 2.0 et est disponible sur le github . Selon les créateurs de Kurento, il est similaire à Lego, de nombreuses applications utiles peuvent être faites à partir de ses blocs de programme. Les blocs peuvent être utilisés directement «prêts à l'emploi», mais vous pouvez également développer vos propres plugins si vous le souhaitez.

Des exemples d'applications Web sont donnés en Java, Node.js, JavaScript, bien qu'il puisse être développé dans n'importe quel langage, l'essentiel est que l'échange avec Kurento Media Server se fasse sur le protocole Kurento qu'il comprend. Certes, les bibliothèques ont déjà été inventées pour les langues ci-dessus, il y aura donc moins de problèmes. Et puisque j'apprends Java et Spring, mes commentaires porteront sur ces exemples.

Chaque tutoriel qui se respecte commence par l'application HelloWorld. Ce n'était pas une exception. Mais avant d'écrire la première application, vous devez installer KMS - Kurento Media Server, qui est écrit en C ++ et installé uniquement sur Ubuntu ou Linux Mint, et la version (au moment de la rédaction) doit être comprise entre 14 et 18. J'ai immédiatement installé la version Linux Mint 19 et KMS n'était pas installé, j'ai dû revenir au 18.

Eh bien, nous avons installé le système, Intellij Idea, ajouté le référentiel Kurento et installé KMS:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 5AFA7A83 

 sudo tee "/etc/apt/sources.list.d/kurento.list" >/dev/null <<EOF # Kurento Media Server - Release packages deb [arch=amd64] http://ubuntu.openvidu.io/6.7.1 $DISTRO kms6 EOF 

 sudo apt-get update 

 sudo apt-get install kurento-media-server 

Nous commençons l'équipe KMS:

 sudo service kurento-media-server start 

Clonez l'intégralité du didacticiel pour Java:

 git clone https://github.com/Kurento/kurento-tutorial-java.git 

Accédez au répertoire souhaité

 cd kurento-tutorial-java/kurento-hello-world 

Nous lançons l'application sous Maven ou, comme dans mon cas, via Idea. Après avoir démarré l'application Web, nous passons par le navigateur Firefox sur localhost : 8443 / nous voyons une page où, après avoir cliqué sur le bouton "Démarrer", nous obtenons quelque chose de similaire à ceci

image

Dans l'élément vidéo de gauche, une image de la caméra Web est affichée, et à droite, la même image, mais l'image est passée par le bouclage KMS.

Sur la base de cette expérience, nous concluons: HelloWorld s'avère fonctionner presque toujours.
Voyons maintenant comment cela fonctionne. Cette figure montre le schéma de connexion de certaines parties de notre expérience.

image

Ressemble schématiquement à ce que j'ai décrit. Logiquement, notre expérience se compose de trois parties principales: hébergée dans le navigateur JavaScript Client, juste compilée Application Server et installée au tout début de Kurento Media Server. L'interaction de ces parties est illustrée dans la figure ci-dessous.

image

image

Le client JavaScript envoie au serveur d'applications un message texte «Démarrer». Application Server effectue trois actions principales dans cette application:

 final MediaPipeline pipeline = kurento.createMediaPipeline(); user.setMediaPipeline(pipeline); final WebRtcEndpoint webRtcEp = new WebRtcEndpoint.Builder(pipeline).build(); user.setWebRtcEndpoint(webRtcEp); webRtcEp.connect(webRtcEp); 

Crée un MediaPipeline à travers lequel le trafic multimédia sera transmis, crée un objet WebRtcEndpoint qui traite le trafic multimédia et encapsule la transmission de ce bloc à lui-même pour la réception.

Ceci conclut ma brève introduction à l'application HelloWorld utilisant Kurento. Je vous souhaite la réussite de la création de services médias.
Article suivant

Source: https://habr.com/ru/post/fr435580/


All Articles