Quelles sont les différences entre les profils H.264?

56

Je rendais une vidéo dans After Effects CS5 et, lorsque je la formatais, j'ai choisi le codec H.264. Dans ce format, il possédait un profil avec Baseline, Main et High.

J'ai donc fait un petit test - le rendu des deux fichiers avec Baseline et High. La seule chose que j'ai remarquée, c'est que la taille de la vidéo était plus petite.

Je voulais juste savoir quelle est la différence entre ce qui serait le meilleur pour la qualité et le meilleur pour la taille du fichier.

James
la source

Réponses:

79

Qu'est-ce qu'un profil?

Un profil H.264 définit plus ou moins ce que le codeur peut utiliser pour compresser votre vidéo - et le codeur offre de nombreuses fonctionnalités. Les options activées sont définies par le profil. Les profils assurent la compatibilité entre des périphériques dotés de capacités de décodage différentes. Avec les profils, l'encodeur et le décodeur conviennent d'un ensemble de fonctionnalités qu'ils peuvent gérer tous les deux.

Que font les différents profils?

Pour une liste détaillée, voir Profils H.264 sur Wikipedia.

En règle générale, le profil Baseline limite l'encodeur à certaines fonctionnalités de base. Les vidéos codées avec un profil de base peuvent être facilement lues, même sur des appareils moins puissants, tels que les anciens smartphones. Les téléphones Android et iOS, par exemple, ne lisent officiellement que les vidéos encodées avec le profil de base, mais pas en haut ou en bas . Cela a un peu changé ces dernières années, où de plus en plus de téléphones peuvent lire des vidéos principales ou de grande envergure, sans pour autant que les recommandations officielles le mentionnent .

Principalement destiné aux applications à faible coût, ce profil est généralement utilisé dans les applications de vidéoconférence et mobiles. Il correspond au sous-ensemble de fonctionnalités communes aux profils de base, principal et élevé.

Main et High ajoutent simplement des fonctionnalités à cela. En particulier, le profil haut est souvent utilisé dans la radiodiffusion:

Le profil principal pour les applications de stockage sur disque et de diffusion, en particulier pour les applications de télévision haute définition (par exemple, il s'agit du profil adopté par le format de stockage sur disque Blu-ray et le service de diffusion DVB HDTV).

Les tranches B ne sont par exemple autorisées que dans le profil principal et au-dessus. Ils peuvent être utilisés pour économiser de la bande passante, mais sont plus difficiles à décoder. C'est pourquoi certains périphériques peuvent ne pas les prendre en charge.

Qu'est-ce que cela a à voir avec la qualité?

Le profil n'influence indirectement que la qualité. Certaines fonctionnalités de profils plus élevés peuvent vous permettre d’obtenir la même qualité avec des fichiers moins volumineux que des profils plus bas.

Par exemple, le codage entropique CABAC ( principal et élevé ) est plus efficace que CAVLC ( base ). Il est également plus intensif sur le plan informatique. Ainsi, si vous donnez au codeur un certain débit à dépenser, il sera capable de créer une vidéo de meilleure qualité avec CABAC qu'avec CAVLC car elle permet une compression bien meilleure.

Ceci explique également pourquoi vous avez obtenu une taille de fichier plus petite avec le profil élevé . Évidemment, vous avez défini un niveau de qualité constant et le codeur pourrait utiliser des techniques de compression plus avancées pour créer un fichier vidéo de même qualité que le profil Baseline , mais avec des tailles de fichier plus petites. Taille.

Alors… lequel devriez-vous utiliser?

Quelques règles de base:

  • Profil de base si vous ciblez d'anciens appareils mobiles
  • Profil principal ou élevé si vous ciblez la diffusion Web, le stockage à long terme, les PC ou Mac, la création de disques Blu-ray, etc.
slhck
la source
8
Depuis que cela a été écrit, à peu près tous les smartphones, y compris Android et autres appareils, jouent maintenant le profil principal et beaucoup jouent haut. La prise en charge haut niveau, par exemple, est prise en charge par la plupart des appareils qui prétendent lire du contenu haute définition. Vous pouvez presque certainement compter sur principal ou supérieur. Baseline était une version extrêmement handicapée du H. 264 conçue pour les appareils limités des dernières décennies.
thomasrutter
Tout le monde n'a pas de smartphone récent. Android recommande toujours d'utiliser le profil Baseline . La même chose vaut pour iOS . Bien sûr, certains (la plupart des nouveaux) périphériques prennent en charge les profils les plus élevés, mais si vous souhaitez rester compatible avec le matériel bas de gamme, vous devrez choisir cela. Mais j'ai modifié ma réponse pour refléter ce que vous dites.
Slhck
Intéressant - le joueur intégré soutient Main depuis un certain temps, mais votre argument est valable - vous ne pouvez pas compter sur cela. Toutefois, vous pouvez vous fier à des lecteurs logiciels tiers pour les profils principal et élevé. Par exemple, des lecteurs tels que MX Player prennent en charge les logiciels pour les profils plus élevés, à condition que les performances du processeur soient suffisantes et basées sur ARM.
thomasrutter
Notez qu'à partir de 2016, lors de la sauvegarde, Google Photos convertit les vidéos téléchargées qui ont été enregistrées sur un Nexus 6 Android dans le profil haut dans le profil Baseline (en mode de sauvegarde "haute qualité" "stockage illimité gratuit")
nealmcb
Toujours la meilleure information que j'ai lue sur ffmpeg en 2017. GREAT POST.
typeoneerror