Vue d'ensemble de la vidéo 1080p
Il y a un certain nombre de considérations à garder à l'esprit lors de l'utilisation d'une vidéo de résolution 1080p dans une session Video API de Vonage.
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 1080p initialement.
- Lorsque les conditions se dégradent et que, par conséquent, la résolution doit être réduite à partir de 1080p.
- Lorsque les conditions s'améliorent et que la résolution peut être augmentée jusqu'à 1080p.
Il peut s'agir de communiquer des informations à l'utilisateur ou d'ajouter des repères visuels.
La publication en 1080p n'est pas idéale 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 de publication doit prendre en charge la résolution 1080p (1920x1080). Si la caméra ne prend pas en charge la résolution 1080p, la résolution de publication sera limitée à la résolution de la caméra. Si la résolution 1080p est généralement prise en charge aujourd'hui par les caméras web achetées pour le chat vidéo, de nombreuses caméras de périphériques par défaut (comme sur les Mac) ne prennent pas en charge la résolution 1080p. Les anciens appareils ne prennent souvent pas en charge le 1080p.
- Ressources informatiques de l'appareil - Pour la publication 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 de l'unité centrale tant que le flux est publié. L'encodeur VP8 fonctionnera normalement dans le logiciel et nécessitera une unité centrale très élevée pour continuer à publier des flux vidéo en direct à 1080p. Si la diffusion simultanée est nécessaire, il faudra une unité centrale supplémentaire pour encoder plusieurs qualités de flux pouvant être distribuées aux abonnés. L'appareil devra également s'abonner à des flux d'entrée et les traiter, et la charge de travail globale de l'unité centrale sera élevée si la norme 1080p est activée. Les nouveaux appareils mobiles actuels peuvent disposer d'un processeur suffisant pour prendre en charge le 1080p, mais le traitement risque d'être rapidement limité en termes de qualité lorsque la batterie commencera à s'épuiser rapidement. Les ordinateurs portables et de bureau sont les mieux adaptés à la publication en 1080p, mais ils devront probablement être alimentés par une source d'énergie autre qu'une batterie pour les sessions plus longues.
- 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 - Le 1080p est pris en charge dans les versions 2.23.0 des SDK clients de l'API Video. De même, dans les applications web, le 1080p est pris en charge dans Chrome et Firefox (cependant, il y a actuellement un bogue dans Firefox sur 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 de l'indice de contenu fourni pour la vidéo, l'encodeur sera biaisé pour maintenir la vivacité ou la résolution. Pour plus de détails sur les indices de contenu, voir le contenu suivant :
En outre, un client abonné peut régler la résolution préférée de la vidéo consommée (dans une session relayée) sur une résolution inférieure :
- Web - Abonné.setPreferredResolution()
- Android - SubscriberKit.setPreferredResolution()
- iOS - SubscriberKit.preferredResolution
- Fenêtres - Subscriber.PreferredResolution
- Linux -
otc_subscriber_set_preferred_resolution()
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 encodées supplémentaires permettront au routeur média Video API de Vonage de diffuser des flux vidéo de qualité inférieure aux abonnés qui ont des difficultés à prendre en charge le 1080p, tout en autorisant la couche de qualité 1080p la plus élevée aux abonnés qui peuvent prendre en charge le 1080p.
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 iOS (sur certains appareils)
- Le SDK Android (sur certains appareils)
- Le SDK Windows
- Le SDK Linux
- Le SDK Linux
- Le SDK 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 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 pour 1080p (FHD) et 720p (HD), qui ne se chevauchent pas, et cette différence doit être prise en compte dans le choix de la résolution pour l'expérience de l'application.
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 peut pas atteindre les points d'extrémité.