Publier : Paramètres et dispositifs

Utilisez ce guide pour configurer la manière dont vous capturez et encodez votre vidéo et votre audio sortants. Il traite des autorisations et de la sélection des périphériques, de la mémorisation des périphériques, du mode d'orientation de la caméra, la résolution et la fréquence d'images, les conseils de contenu pour le mouvement ou le texte, la publication à partir de sources (Canvas, Vidéo, Audio Web), et où trouver les options avancées de Publisher.

Vérifier les autorisations de l'appareil photo et du microphone

Avant qu'un éditeur puisse accéder à la caméra et au microphone du client, l'utilisateur doit lui en accorder l'accès. L'objet Publisher envoie des événements lorsque l'utilisateur accorde ou refuse l'accès à la caméra et au microphone :

Il envoie également des événements lorsque la boîte de dialogue Allow/Deny est ouverte ou fermée :

L'éditeur dispose d'un accessAllowed indiquant si l'accès a été accordé.

Choisir l'appareil photo et le microphone

Choisissez la caméra et le microphone que l'éditeur doit utiliser. Vous pouvez énumérer les appareils et les sélectionner via les options de l'éditeur.

Vous pouvez faire en sorte que l'éditeur utilise la caméra arrière de l'appareil en définissant une propriété de l'élément OTPublisher et en définissant le cameraPosition de cet objet à "back":

Notez que vous pouvez également publier un flux de partage d'écran, dans lequel la source est l'écran du client et non une caméra. Pour plus d'informations, voir Partage d'écran.

Mémoriser la sélection de l'appareil

Dans les contextes HTTPS, certains navigateurs peuvent mémoriser la sélection de la caméra et du microphone pour les visites ultérieures. Par exemple, dans IE, vous pouvez définir usePreviousDeviceSelection: true lors de l'initialisation de l'éditeur :

Vous pouvez également définir facingMode pour choisir la caméra avant ou arrière sur les appareils pris en charge et désactiver la gestion automatique des périphériques d'entrée audio via l'option disableAudioInputDeviceManagement si vous avez besoin d'un contrôle total.

Pour inviter l'utilisateur à sélectionner la caméra et le microphone à utiliser dans IE (et ignorer les sélections précédentes), ne définissez pas l'option usePreviousDevices dans les options que vous passez dans le OT.initPublisher() (ou lui attribuer la valeur false(par défaut).

Désactiver la gestion automatique des périphériques d'entrée audio (avancé) :

Définir la résolution et la fréquence d'images

Définir la résolution vidéo et la fréquence d'images recommandées via OT.initPublisher() options :

Note : La résolution de l'abonné et la fréquence d'images peuvent varier en fonction des conditions du réseau et de l'appareil.

Paramètres de flux (Web)

Pour définir une résolution vidéo recommandée pour un flux publié, définissez le paramètre resolution de la propriété properties que vous passez dans le paramètre OT.initPublisher():

Les valeurs valables sont "1920x1080", "1280x720", "640x480"et "320x240". La valeur par défaut est 640x480.

Pour définir une fréquence d'images recommandée pour un flux publié, définissez le paramètre frameRate propriété :

Les valeurs valides sont 30, 15, 7 et 1.

Si l'éditeur spécifie une fréquence d'images, la fréquence d'images réelle du flux vidéo est définie comme la fréquence d'images de l'éditeur. frameRate de l'objet Stream, bien que la fréquence d'images réelle varie en fonction des conditions changeantes du réseau et du système. Si vous ne spécifiez pas de fréquence d'images lorsque vous appelez OT.initPublishercette propriété n'est pas définie.

Pour les sessions qui utilisent le routeur multimédia (sessions avec l'option mode média est réglé sur routé), la réduction de la fréquence d'images réduit proportionnellement la bande passante maximale que le flux peut utiliser.

Cependant, lors des sessions avec le mode média est réglé sur relayed, la réduction de la fréquence d'images ne réduit pas la bande passante du flux.

Les videoHeight() et videoWidth() renvoient la résolution configurée de l'objet éditeur. La résolution réelle d'un flux vidéo d'abonné est renvoyée par la méthode videoWidth() et videoHeight() de l'objet Abonné. Ces valeurs peuvent être différentes de celles de l'objet resolution que vous avez transmise à OT.initPublisher() si le navigateur de publication ne prend pas en charge la résolution demandée.

Conseils sur le contenu vidéo

Vous pouvez définir un indice de contenu vidéo afin d'améliorer la qualité et les performances d'une vidéo publiée. Cela peut s'avérer utile dans certaines situations :

  • Lors de la publication d'une vidéo de partage d'écran, celle-ci contiendra principalement du texte ou du contenu vidéo.
  • Lorsque vous utilisez une source vidéo de type caméra, si vous préférez réduire la fréquence d'images et maintenir la résolution, vous pouvez définir l'indice de contenu sur "texte" ou "détail". Dans une session acheminée, si l'éditeur prend en charge l'utilisation de la vidéo évolutive, il enverra un flux pleine résolution à faible fréquence d'images et, si les conditions du réseau le permettent, un flux pleine résolution à fréquence d'images normale. Le routeur multimédia OpenTok transmettra l'un de ces flux aux abonnés.

Cela indique au navigateur d'utiliser des méthodes d'encodage ou de traitement plus appropriées au type de contenu que vous spécifiez.

Définir l'indice de contenu vidéo initial pour un flux en définissant le paramètre videoContentHint des options que vous passez dans la fonction OT.initPublisher() méthode :

Vous pouvez modifier l'indice de contenu vidéo de manière dynamique en appelant la fonction setVideoContentHint() d'un objet Publisher :

Vous pouvez définir l'indice de contenu vidéo sur l'une des valeurs suivantes :

  • "" - Aucune indication n'est fournie (par défaut). Le client de publication fera une estimation de la manière dont le contenu vidéo doit être traité.
  • "motion" - La piste doit être traitée comme si elle contenait de la vidéo lorsque le mouvement est important. Par exemple, vous pouvez utiliser ce paramètre pour un flux vidéo de partage d'écran qui contient de la vidéo.
  • "detail" - La piste doit être traitée comme si les détails de la vidéo étaient très importants. Par exemple, vous pouvez utiliser ce paramètre pour un flux vidéo de partage d'écran contenant du texte, des peintures ou des dessins au trait.
  • "text" - La piste doit être traitée comme si les détails du texte étaient très importants. Par exemple, vous pouvez utiliser ce paramètre pour un flux vidéo de partage d'écran contenant du texte.

Pour les indices de contenu "texte" et "détaillé", le navigateur tente de maintenir une résolution élevée, même s'il doit réduire la fréquence d'images vidéo. Pour l'indication de contenu "motion", le navigateur réduit la résolution pour éviter que la fréquence d'images ne s'arrête.

Chrome 60+, Safari 12.1+, Edge 79+, Opera 47+, les versions récentes de Samsung Internet, WebView Android et WebView sur iOS 12.2+ prennent en charge les indices de contenu vidéo. Ce paramètre est ignoré dans les autres navigateurs.

Définir le débit maximum

Vous pouvez définir un débit vidéo maximum pour un éditeur afin de limiter l'utilisation de la bande passante (par exemple sur les réseaux avec compteur). Utilisez des préréglages prédéfinis (DEFAULT, BW_SAVER, EXTRA_BW_SAVER) ou définissez une valeur de débit binaire brute ; l'encodeur s'adaptera dans la plage autorisée en fonction des conditions du réseau. Voir aussi cette documentation.

Publier à partir d'autres sources (Web)

Publier à partir de sources vidéo personnalisées

Vous pouvez définir la source vidéo d'un éditeur sur un objet MediaStreamTrack vidéo. Cela vous permet d'effectuer les opérations suivantes :

  • Publier une vidéo en utilisant un élément HTML Canvas comme vidéo. Vous pouvez appeler l'élément captureStream() de l'objet HTMLCanvasElement et appeler la méthode getVideoTracks() de l'objet CanvasCaptureMediaStream résultant pour obtenir un objet MediaStreamTrack vidéo.

  • Publier une vidéo à partir d'un élément vidéo. Appeler l'élément captureStream() d'un objet HTMLVideoElement pour obtenir un objet MediaStream. La méthode getVideoTracks() de l'objet MediaStream renvoie un tableau d'objets MediaStreamTrack audio (généralement un). Vous pouvez ensuite utiliser l'objet MediaStreamTrack en tant qu'objet audioSource de la propriété options que vous passez dans l'objet OT.initPublisher() méthode.

Vous pouvez utiliser un objet MediaStreamTrack vidéo en tant qu'objet videoSource de la propriété options que vous passez dans l'objet OT.initPublisher() (méthode de publication). La vidéo représentée par l'objet MediaStreamTrack devient alors la source vidéo du flux publié.

La configuration de la source vidéo sur un objet MediaStreamTrack n'est pas prise en charge par le plugin vidéo de Vonage pour Internet Explorer.

Publier à partir de sources audio personnalisées

Vous pouvez définir la source audio d'un éditeur sur un objet MediaStreamTrack audio. Cela vous permet d'effectuer les opérations suivantes :

  • Publier de l'audio à partir d'un élément audio ou vidéo. Appeler le captureStream() d'un objet HTMLAudioElement ou d'un objet HTMLVideoElement pour obtenir un objet MediaStream. La méthode getAudioTracks() de l'objet MediaStream est un tableau d'objets MediaStreamTrack audio (généralement un). Vous pouvez ensuite utiliser l'objet MediaStreamTrack en tant qu'objet audioSource de la propriété options que vous passez dans l'objet OT.initPublisher() méthode.
  • Publier de l'audio à partir d'un objet MediaStreamTrack audio. Par exemple, vous pouvez utiliser l'objet AudioContext et l'API audio Web pour générer dynamiquement de l'audio. Vous pouvez ensuite appeler createMediaStreamDestination().stream.getAudioTracks()[0] sur l'objet AudioContext pour obtenir l'objet MediaStreamTrack audio à utiliser en tant qu'objet audioSource de la propriété options que vous passez dans l'objet OT.initPublisher() méthode.

Application de filtres et d'effets

Vous pouvez appliquer des filtres et des effets sur l'audio ou la vidéo obtenue à partir d'un microphone ou d'une caméra utilisés comme source pour un flux publié. Voir Filtres et effets.

Autres options audio et vidéo

Voir la liste complète des options dans Paramètres de l'éditeur.