https://d226lax1qjow5r.cloudfront.net/blog/blogposts/video-express-is-here-and-why-it-is-awesome/video-express_1200x600.png

Video Express est là et pourquoi il est génial !

Publié le September 23, 2021

Temps de lecture : 3 minutes

Explication expresse

Forte d'une décennie d'expertise en matière de développement vidéo, Vonage a créé une API simple de haut niveau appelée Video Express afin d'accélérer le développement et l'intégration de la vidéo multipartite dans les applications Web.

Multipartite ?

Commençons par définir ce qu'est le multipartisme. Il s'agit d'un appel vidéo auquel participent plusieurs personnes qui publient leurs flux audio et vidéo tout en s'abonnant aux flux de tous les autres participants.

Auparavant, il était assez courant d'avoir des équipes de personnes dans la même pièce, puis de passer un appel vidéo avec une équipe dans une autre pièce.

Graphic depicting 2 groups of people passing information back and forth via 2 streams2 teams 2 streams

Comme vous l'avez peut-être constaté vous-même ces derniers temps, les choses évoluent vers des personnes qui appellent de différents endroits.

Graphic depicting 6 individuals passing information back and forth via 36 streams6 people 36 streams

Comme vous pouvez le voir sur l'image ci-dessus, il peut rapidement devenir complexe de suivre toutes les connexions des participants.

C'est ici que Video Express intervient. Vous êtes peut-être novice en matière de développement d'applications intégrant la vidéo ou un développeur chevronné qui souhaite se consacrer à d'autres tâches. Video Express permet d'éliminer la complexité et optimise en outre la qualité, l'utilisation de l'unité centrale et la mise en page ! C'est pour cela qu'il est génial !

Voici Video Express utilisé dans un projet JavaScript projet JavaScript vanille que vous pouvez visualiser. Il y a un bouton de déploiement rapide, il vous suffit donc d'entrer votre clé API et votre secret dans le fichier .env et vous aurez votre propre exemple de travail. Il s'agit d'une mise en œuvre dépouillée pour mettre en valeur Video Express.

Supprimer la complexité

Voir la comparaison ci-dessous du code de démarrage nécessaire pour créer un chat vidéo.

Vonage Video API JavaScript Client SDK

const session = OT.initSession(this.apiKey, this.roomId); // Init session
session.on('sessionConnected', ...); // Handle session connected events
session.on('sessionDisconnected', ...); // Handle session end
session.on('streamCreated', ...); // Subscribe to newly published streams
session.on('streamDestroyed', ...); // Clean up on stream end
session.on('connectionCreated', ...); // Handle connection events (join)
session.on('connectionDestroyed', ...); // Handle disconnect events (leave)

// Build your own UI / Layout
// Active Speaker Detection
// Video / Audio Optimizations
const pub = OT.initPublisher(targetElement, options, (err) => console.error(err)); // Create a publisher
session.publish(pub, undefined, err => { // Try to publish media
 if (err) {
   reject(err);
 } else {
   resolve();
 }
});

Vonage Video Express

const room = new VideoExpress.Room({ apiKey, sessionId, token, roomContainer: 'roomContainer’ });

room.join();

Video Express se charge de la publication et de l'abonnement de tous les participants à l'appel vidéo. Il suffit de lui indiquer l'identifiant de l'élément HTML (dans cet exemple, "roomContainer") dans lequel placer la "salle", de le joindre et c'est tout. Lisez notre documentation pour en savoir plus sur ce que vous pouvez faire.

Responsable qualité

Graphic showing the larger video feed on the left with a higher resolution and more bitrate and a column of other smaller video feeds to the right with smaller resolution and bitrates.Quality Manager diagram

Pour créer un appel vidéo de la meilleure qualité possible, Video Express applique automatiquement diverses méthodes. Il s'agit notamment de maximiser la taille des tuiles pour les flux vidéo visibles et de mettre en pause ceux qui ne peuvent pas être vus. Il ajuste également la résolution et la fréquence d'images en fonction des conditions du réseau et de l'unité centrale. En définissant dynamiquement des priorités plus élevées pour les haut-parleurs et les partages d'écran, les éléments qui nécessitent le plus d'attention peuvent bénéficier de la meilleure qualité.

Gestionnaire de l'expérience

Pour que l'expérience utilisateur soit optimale, Video Express optimisera les choses du côté client. Par exemple, tous les participants après 10 heures sont automatiquement mis en sourdine pour éviter les salles très bruyantes. Lorsque la taille d'une vidéo affichée diminue, un flux plus petit est demandé afin de réduire la bande passante nécessaire à une lecture fluide.

Exemple d'une session vidéo brute, non optimisée

Table showing the amount of bandwidth used for audio and video for 1 to 1, 10 videos, and 25 videos in unoptimized sessionsTable with data of an unoptimized multiparty video session

Exemple de session vidéo optimisée

Table showing the amount of bandwidth used for audio and video for 1 to 1, 10 videos, and 25 videos in optimized sessions with as much as 80% lower bandwidth. Table with data of an optimized multiparty video session

Responsable de la mise en page

Demonstrating the layout changes of colored blocks representing video feeds as they are being added and removed to the screen.Layout Manager diagram

Video Express ajuste automatiquement la disposition des flux en fonction de la taille de l'écran et du nombre de participants. Les partages d'écran et l'orateur actif ont une priorité plus élevée ou occupent plus d'espace.

Aperçu de l'éditeur

Video Express permet également à l'utilisateur de prévisualiser sa vidéo et son audio avant de rejoindre la salle. Voici un exemple de code :

const previewPublisher = new VideoExpress.PreviewPublisher('previewContainer');
await previewPublisher.previewMedia({
  targetElement: 'previewContainer',
  publisherProperties: {
    resolution: '1280x720',
    audioBitrate: 15,
  },
});

Partage d'écran

La dernière caractéristique de Video Express que je souhaite souligner est la façon dont le partage d'écran est géré.

const startScreensharing = () => {
  room.startScreensharing("myScreenshare");
}

const stopScreensharing = () => {
  room.stopScreensharing();
}

screenshareStartBtn.addEventListener("click", startScreensharing, false);

screenshareStopBtn.addEventListener("click", stopScreensharing, false);

Voilà, c'est fait ! Avec ces quelques lignes de code, vous pouvez partager votre écran et Video Express reconfigurera l'agencement de la pièce pour en faire la priorité.

Eh bien...

Prêt à construire quelque chose d'extraordinaire !

Jetez un coup d'œil à la documentation de documentation Video Express pour plus de détails.

Jouez avec le projet de base.

Montrez-nous ce sur quoi vous travaillez et faites-nous part de vos commentaires dans notre canal Slack de la communauté.

Partager:

https://a.storyblok.com/f/270183/384x384/1a06993970/dwanehemmings.png
Dwane HemmingsDéveloppeur JavaScript Advocate