Guide de codage iOS/Mobile

Cette rubrique traite des approches de codage des vidéos pour les appareils mobiles.

Aperçu

Les mauvaises nouvelles d'abord. Il existe des centaines d'appareils mobiles, et il est fondamentalement impossible de prendre en charge 100,0% d'entre eux.

La bonne nouvelle est que les appareils mobiles s'améliorent. Fini le temps où 176x144 3GP était synonyme de vidéo mobile. Les smartphones modernes peuvent en fait lire des vidéos de haute qualité et l'utilisation des smartphones augmente. Cela ne veut pas dire que le 3GP est terminé, ou que tout le monde a un smartphone. Mais l'utilisation des smartphones augmente (à un taux annualisé de 64% au T2 2010) et, sans surprise, les utilisateurs de smartphones sont plus susceptibles de regarder des vidéos sur leurs téléphones que leurs amis, euh, utilisateurs de téléphones stupides.

Donc, si vous souhaitez prendre en charge plus de 90 % des appareils mobiles, vous avez besoin d'au moins deux types de vidéos : 3GP + MPEG-4 pour les appareils moins sophistiqués et H.264 + MP4 pour les smartphones.

C'est vraiment une bonne nouvelle. Une seule sortie vidéo peut couvrir tous les utilisateurs de votre smartphone : iPhone/iPad/iPod, Android et (pour la plupart) Blackberry. Jetez dans PSP, PS3 et Xbox 360 pour faire bonne mesure.

Bien sûr, si une sortie universelle pour smartphone peut prendre en charge la plupart des utilisateurs de smartphone, vous pouvez faire mieux avec plusieurs sorties mobiles. Par exemple, l'iPad a une résolution native de 1024x768, cinq fois plus élevée que la 480x320 sur les iPhones précédents. Donc, si vous encodez votre vidéo en 480x320, vous manquerez les capacités presque haute définition de l'iPad.

Heureusement, vous pouvez bien cibler les appareils mobiles en utilisant une poignée de profils d'encodage standard. Commencez par le profil universel de smartphone pour une compatibilité étendue ; ajoutez une version Advanced Smartphone Profile pour les appareils les plus avancés ; et complétez votre liste de téléphones mobiles avec un profil hérité pour une compatibilité maximale : soit notre profil de smartphone hérité (ci-dessous), soit une vidéo 3GP pour encore plus large. compatibilité.

Notez que les valeurs par défaut suivantes sont le point de départ de ces profils. Zencoder utilise ces paramètres par défaut, mais vous pouvez les répliquer assez facilement dans n'importe quel outil d'encodage que vous utilisez.

Valeurs par défaut :

Vidéo : H.264, niveau 3.0, profil de base
L'audio: AAC, 1-2 canaux

Profil de smartphone universel

C'est un excellent profil de départ pour une large compatibilité avec les smartphones modernes. Joue sur à peu près tout, même s'il ne tire pas parti des résolutions plus élevées et de la complexité des codecs possibles sur la dernière récolte d'appareils.

Joue sur :

iOS : iPhone, iPad, Apple TV, iPod Touch, iPod Classic, iPod 5.5G
La mûre: Bold 9000, Curve 8910, 8900, 8520, Pearl 9XXX, Storm, Storm 2, Torch, Tour, Bold 9650 + 9700
Android: Tout (?)
Autre: PSP (3.30+), PS3, Xbox 360, Web, Palm Pre*

Ne joue pas sur :

iPod 5G, PSP (pré-3.30), Blackberry Curve 9330, 9300, 8530, 83XX, Pearl 8XXX, 88XX

Paramètres :

{
    "input": "s3://bucket-name/file-name.avi",
    "outputs": [
        {
            "url": "s3://output-bucket/output-file-name.mp4",
            "audio_bitrate": 128,
            "audio_sample_rate": 44100,
            "height": 320,
            "width": 480,
            "max_frame_rate": 30,
            "video_bitrate": 1500,
            "h264_level": 3
        }
    ]
}

Profil universel de smartphone v2

Ce profil joue mieux sur iPhone 4, iPad, Apple TV, nouvel iPod Touch, Droid, PS3 et Xbox, en augmentant la résolution vidéo. Cependant, les pixels supplémentaires sont gaspillés sur les anciens iPhones et constituent une vidéo qui ne sera pas lue sur Blackberry et certains téléphones Android.

Joue sur :

Tout ce qui précède, moins Blackberry et peut-être les appareils Android plus faibles

Paramètres :

Identique au profil de smartphone universel (ci-dessus), mais avec une taille de 640x480

{
    "input": "s3://bucket-name/file-name.avi",
    "outputs": [
        {
            "url": "s3://output-bucket/output-file-name.mp4",
            "audio_bitrate": 128,
            "audio_sample_rate": 44100,
            "height": 480,
            "width": 640,
            "max_frame_rate": 30,
            "video_bitrate": 1500,
            "h264_level": 3
        }
    ]
}

Profil de smartphone avancé

Les nouveaux appareils iOS permettent des résolutions plus élevées et une complexité d'encodage plus élevée (ce qui signifie une meilleure compression). En particulier, les utilisateurs d'iPad et d'Apple TV ne devraient pas avoir à regarder de vidéo 480x320 sur leurs beaux écrans, il est donc logique de fournir une version de meilleure qualité si vous souhaitez offrir une bonne expérience à ces utilisateurs.

Joue sur :

iOS : iPhone 4, iPad, Apple TV *, iPod Touch plus récent
Android: Nexus One, Droid, peut-être d'autres. (YMMV sur ceux-ci, cependant. Certains utilisateurs signalent des problèmes avec la vidéo 720p.)
Autre: PS3, Web

Ne joue pas sur :

iOS: iPod 5G / 5.5G / Classic, iPhone 3GS et versions antérieures, ancien iPod Touch PSP, ancien Apple TV *
La mûre: tout
Android: autres
Autre: PSP, PS3, Xbox 360, Web

Paramètres :

Notez qu'il s'agit de la taille maximale. Pour une résolution native de l'iPhone 4, définissez la taille sur 960x640

{
    "input": "s3://bucket-name/file-name.avi",
    "outputs": [
    {
        "url": "s3://output-bucket/output-file-name.mp4",
        "audio_bitrate": 160,
        "audio_sample_rate": 48000,
        "height": 720,
        "width": 1280,
        "max_frame_rate": 30,
        "video_bitrate": 5000,
        "h264_profile": "main",
        "h264_level": 3.1
    }
    ]
}

Profil de smartphone avancé v2

Pour prendre en charge les anciens appareils Apple TV, utilisez le paramètre Profil avancé du smartphone, ainsi que l'une des options suivantes :

Paramètres :

Profil avancé de smartphone (ci-dessus), plus l'un des éléments suivants :

size: 960x540

OR

max_frame_rate: 24

Profil de smartphone hérité

Ce profil est joué sur le dernier grand ensemble d'appareils mobiles H.264 : notamment les iPod plus anciens et certains Blackberry. Le compromis est nettement plus petit vidéo : 320x240, à pas plus de 768 kbps.

Les anciens appareils iPhone/iPod demandent le profil « H.264 Baseline Low Complexity ». « Low Complexity » n'est pas en fait une norme H.264 ; elle signifie en fait simplement « une seule image de référence ». Le jury se demande dans quelle mesure les appareils Apple appliquent réellement cela, mais pour une véritable compatibilité, vous devriez probablement utiliser le profil de base et limiter les cadres de référence à 1. Vous pouvez le faire avec le h264_reference_frames réglage.

Joue sur :

Tout ce qui précède, plus : iPod 5G, PSP (avant 3.30), Blackberry Curve 9330, 9300, 8530, 83XX, Pearl 8XXX, 88XX, Palm Pre*

Paramètres :

{
    "input": "s3://bucket-name/file-name.avi",
    "outputs": [
    {
        "url": "s3://output-bucket/output-file-name.mp4",
        "audio_bitrate": 128,
        "audio_sample_rate": 44100,
        "height": 240,
        "width": 320,
        "max_frame_rate": 30,
        "video_bitrate": 768,
        "h264_level": 1.3
    }
    ]
}

Profils 3GP hérités

Enfin, un ou deux profils 3GP étendront la prise en charge à de nombreux appareils mobiles restants.

Notamment, vous pouvez les utiliser sur la plupart des appareils pris en charge ci-dessus dans le profil de smartphone hérité. Ainsi, si vous encodez une vidéo 3GP à 320x240, vous n'aurez peut-être pas besoin d'encoder une autre vidéo H.264 à 320x240.

Remarque

  • Ces vidéos auront l'air terribles, mais c'est le coût de la prise en charge des téléphones 3GP.
  • Afin de fournir une vidéo 3GP sous forme de flux RTMP, il doit être "suggéré". Ensemble allusion à true dans votre demande d'API pour l'activer.

Joue sur :

Dur à dire. Il existe des milliers de types d'appareils 3GP, et chacun est un peu différent. Considérez-les comme un point de départ.

Profil A

{
    "input": "s3://bucket-name/file-name.avi",
    "outputs": [
    {
        "url": "s3://output-bucket/output-file-name.mp4",
        "format": "3gp",
        "aspect_mode": "pad",
        "frame_rate": 15,
        "upscale": true,
        "height": 240,
        "width": 320,
        "video_bitrate": 192,
        "decoder_bitrate_cap": 192,
        "audio_bitrate": 24,
        "audio_channels": 1,
        "audio_sample_rate": 16000
    }
    ]
}

Profil B

{
    "input": "s3://bucket-name/file-name.avi",
    "outputs": [
    {
        "url": "s3://output-bucket/output-file-name.mp4",
        "format": "3gp",
        "video_codec": "mpeg4",
        "height": 144,
        "width": 176,
        "aspect_mode": "pad",
        "frame_rate": 5,
        "upscale": true,
        "video_bitrate": 52,
        "decoder_bitrate_cap": 58,
        "decoder_buffer_size": 16,
        "audio_bitrate": 16,
        "audio_channels": 1,
        "audio_sample_rate": 16000
    }
    ]
}

Sommaire

Si vous souhaitez créer une vidéo mobile, commencez par le profil universel de smartphone. Pour une meilleure qualité, complétez ceci avec la vidéo Advanced Smartphone Profile. Pour une compatibilité plus large, ajoutez un profil hérité ou deux en utilisant MP4 ou 3GP. C'est ça. Il suffit de 1 à 3 profils pour prendre en charge la plupart des appareils mobiles.