Vidéo 1080p
Il convient de tenir compte d'un certain nombre d'éléments lors de l'utilisation de vidéos en résolution 1080p dans une session de la Video API.
La publication de vidéos en résolution 1080p (FHD) n'est pas synonyme d'une meilleure qualité vidéo en soi. Il faut que la caméra, la puissance de l'appareil et la bande passante du réseau soient adéquates pour prendre en charge la vidéo 1080p.
Pour une expérience utilisateur optimale, votre application doit comporter des options permettant de gérer ces conditions :
- Un navigateur ou un appareil ne peut pas prendre en charge la résolution 1080p dès le départ
- Lorsque les conditions se détériorent et que, par conséquent, la résolution doit être réduite par rapport à la résolution 1080p
- Lorsque les conditions s'amélioreront et qu'il sera possible de revenir à une résolution de 1080p
Il peut s'agir de communiquer des informations à l'utilisateur ou d'ajouter des repères visuels.
La publication en 1080p, c'est pas idéal dans la plupart des situations
Étant donné que la publication en 1080p exige un processeur et une bande passante très importants, il est préférable, dans la plupart des cas, d'opter pour des résolutions inférieures telles que 720p (HD), VGA ou même QVGA.
Cela est particulièrement vrai lorsque les clients ont l'intention de s'abonner et d'afficher plusieurs flux publiés. Si aucun abonné ne rend le flux à une résolution de 1080p, c'est un gaspillage de ressources pour l'éditeur que de configurer le 1080p.
Par exemple, les applications qui ont plus de deux flux simultanés - comme la vidéoconférence - peuvent ne pas être optimisées pour que les clients publient du 1080p. Si les clients reçoivent plusieurs flux, il sera plus avantageux de publier les résolutions qui seront le plus souvent affichées.
Si le cas d'utilisation est univoque (deux flux de clients l'un vers l'autre), envisagez d'utiliser la fonction sessions relayées pour tirer parti des connexions directes entre les clients. Si le cas d'utilisation est univoque et vos appareils cibles prennent en charge les encodeurs matériels H.264, envisagez d'utiliser H.264. (Voir Codecs vidéo.)
Facteurs déterminant le soutien à 1080p
L'activation de la résolution 1080p n'est pas synonyme de haute qualité si ces facteurs ne sont pas remplis. Pour prendre en charge la résolution 1080p, vous devez disposer des éléments suivants :
-
Résolution de la caméra — La caméra utilisée pour la publication doit prendre en charge la résolution 1080p (1920 × 1080). Si la caméra ne prend pas en charge la résolution 1080p, la résolution de publication sera limitée à celle de la caméra.
Bien que la résolution 1080p soit aujourd'hui généralement prise en charge par les webcams achetées pour le chat vidéo, de nombreuses caméras intégrées par défaut (comme celles des Mac) ne prennent pas en charge cette résolution. Les appareils plus anciens ne prennent souvent pas en charge la résolution 1080p.
-
Ressources informatiques de l'appareil — Pour la diffusion en 1080p, l'appareil doit disposer d'une puissance de calcul suffisante pour prendre en charge l'encodage en temps réel en 1080p et supporter la charge du processeur tant que le flux est diffusé. L'encodeur VP8 fonctionnera normalement en mode logiciel et nécessitera une charge CPU soutenue très élevée pour continuer à diffuser des flux vidéo en direct en 1080p. Si une diffusion simultanée est nécessaire, cela exigera une puissance CPU supplémentaire pour encoder plusieurs qualités de flux pouvant être distribuées aux abonnés. L’appareil devra probablement également s’abonner à des flux d’entrée et les traiter, ce qui entraînera une charge de travail globale élevée du processeur si la résolution 1080p est activée.
Les appareils mobiles récents disposent aujourd’hui d’une puissance de calcul suffisante pour prendre en charge la résolution 1080p, mais la qualité du traitement risque d’être rapidement compromise dès que la batterie commence à se décharger rapidement. Les ordinateurs portables et de bureau sont les plus adaptés à la publication en 1080p, mais il sera probablement nécessaire de les brancher sur une source d’alimentation autre que la batterie pour les sessions prolongées.
-
Largeur de bande du réseau - Pour publier une vidéo 1080p, le client doit disposer d'un réseau stable capable de prendre en charge des débits élevés. Pour obtenir une publication WebRTC 1080p à 30 images par seconde, la bande passante requise est d'environ 3 à 4,5 Mbps en téléchargement continu. Pour les vidéo évolutiveAvec l'arrivée de l'Internet, cela nécessitera des bandes passantes encore plus élevées - jusqu'à 6 Mbps - pour que les éditeurs puissent prendre en charge jusqu'à trois couches de qualité encodées et diffusées à partir de l'appareil. Les clients abonnés doivent pouvoir gérer jusqu'à 4,5 Mbps par flux 1080p souscrit.
-
Versions prises en charge — La résolution 1080p est prise en charge dans les versions 2.23.0 des SDK clients de la Video API. De plus, dans les applications Web, la résolution 1080p est prise en charge par Chrome et Firefox (cependant, il existe actuellement un bug dans Firefox sous macOS).
Les encodeurs vidéo WebRTC (tels que l'encodeur de Chrome) évaluent activement le processeur et la bande passante pour voir si la résolution appropriée peut être atteinte et s'ajustent dynamiquement en fonction des capacités de l'appareil. Cela peut signifier qu'alors qu'une résolution souhaitée de 1080p est configurée pour la publication, l'encodeur devra s'ajuster et faire de son mieux en fonction des capacités de l'appareil, d'un processeur réduit ou d'une bande passante réduite.
Le comportement de l'encodeur peut être différent selon qu'il y a des limitations de bande passante ou de CPU.
Le codeur peut réduire la fréquence d'images pour répondre à la diminution des performances, ce qui signifie que la vidéo semble se figer puisque le codeur produit moins d'images vidéo pour faire face à ces situations. (Par exemple, si le codeur réduit la fréquence d'images à 5 ou 6 images par seconde en raison d'un manque de ressources, la vidéo peut devenir indésirable).
En fonction des indications fournies pour la vidéo, l'encodeur privilégiera soit la vivacité, soit la résolution. Pour plus d'informations sur les indications de contenu, consultez les ressources suivantes :
De plus, un client abonné peut définir la résolution souhaitée de la vidéo visionnée (dans une session relayée) à une résolution inférieure :
- Web -
Subscriber.setPreferredResolution() - Android -
SubscriberKit.setPreferredResolution() - iOS -
SubscriberKit.preferredResolution - Fenêtres -
Subscriber.PreferredResolution - Linux -
otc_subscriber_set_preferred_resolution() - macOS —
otc_subscriber_set_preferred_resolution() - React Native -
preferredResolutionpropriété deOTSubscriber propertiesétai
Vidéo évolutive pour les sessions routées
L'API Video de Vonage prend en charge vidéo évolutive avec le Codec VP8. Il est généralement préférable d'activer la vidéo évolutive pour 1080p pour les sessions avec un grand nombre d'abonnés, même si cela nécessitera une plus grande quantité d'unité centrale et de bande passante.
L'activation de la vidéo évolutive évitera de pénaliser la qualité de l'expérience (QoE) pour tous les abonnés si un ou plusieurs d'entre eux ne peuvent pas recevoir le niveau de qualité le plus élevé.
Les couches de diffusion simultanée codées supplémentaires permettront au routeur multimédia de la Video API de proposer des flux vidéo de qualité inférieure aux abonnés qui rencontrent des difficultés à prendre en charge la résolution 1080p, tout en offrant la couche de qualité 1080p la plus élevée aux abonnés capables de prendre en charge cette résolution.
Pour la vidéo évolutive, les flux 1080p nécessitent des bandes passantes d'éditeur plus élevées (recommandées jusqu'à 6 Mbps) pour prendre en charge les multiples couches de qualité de résolution encodées et diffusées à partir de l'appareil.
Déterminer si des couches de simulcast vidéo évolutives sont disponibles
Vidéo évolutive La prise en charge des couches simulcast est déterminée par l'appareil client ou le navigateur. La vidéo évolutive n'est disponible que dans les flux publiés par des clients qui utilisent :
- Le SDK OpenTok pour iOS (sur certains appareils)
- Le SDK OpenTok pour Android (sur certains appareils)
- Le SDK OpenTok pour Windows
- Le SDK OpenTok pour Linux
- Le SDK OpenTok pour macOS
- OpenTok.js dans Chrome, Safari, Samsung Internet, WebView Android et WebView sur iOS (avec une prise en charge bêta dans les versions de bureau d'Opera et les versions de Edge basées sur Chromium).
- Le SDK OpenTok pour React Native (sur certains appareils)
La vidéo évolutive est prise en charge pour les flux VP8, et il existe une prise en charge bêta pour les flux VP9 (voir cette documentation). Il n'est pas pris en charge pour les H.264.
Il convient de noter qu'il existe une différence entre les couches de diffusion simultanée en 1080p (FHD) et en 720p (HD), qui ne se chevauchent pas, et que cette différence doit être prise en compte lors du choix de la résolution afin d'optimiser l'expérience utilisateur.
Lorsque la résolution 720p est sélectionnée, trois couches seront encodées sur la base de 720p comme résolution la plus élevée :
- 1280x720
- 640x360
- 320x180
Lorsque la résolution 1080p est sélectionnée, trois couches seront encodées sur la base de 1080p comme résolution la plus élevée :
- 1920x1080
- 960x540
- 480x270
Notez que si l'appareil est réglé sur une résolution de 1080p, il produira une couche vidéo évolutive à 540p. La couche 540p est plus petite que la couche supérieure 720p. Les applications doivent tenir compte de ce compromis si la couche 1080p ne parvient pas à atteindre les terminaux.