L'encodage vidéo est le processus de compression d'un signal vidéo numérique dans un format adapté au stockage et à la transmission sur le réseau avec une perte de qualité minimale. Sans encodage, une minute de vidéo 4K non compressée occupe environ 30 Go, rendant la transmission sur Internet impossible. Selon le rapport Sandvine Global Internet Phenomena (2025), la vidéo représente 65 % de tout le trafic Internet, et l'encodage est la technologie clé qui rend cela possible.
Points clés
L'encodage vidéo est le processus de conversion d'un signal vidéo non compressé en un format numérique à l'aide d'algorithmes de compression. Ces algorithmes, implémentés dans les codecs vidéo, suppriment les informations redondantes à la fois dans le domaine spatial (à l'intérieur d'une image) et temporel (entre les images successives).
La vidéo non compressée est une séquence d'images, chacune stockée sous forme de tableau de pixels au format RGB ou YUV. Sans compression, une seconde de vidéo 1080p à 30 FPS nécessite environ 1,5 Go de mémoire. Le codec H.264 compresse ce flux à 3–5 Mbit/s, soit 2500 fois moins que le volume d'origine.
Les codecs vidéo utilisent deux types de compression : intra-image et inter-image. La compression intra-image est appliquée à chaque image indépendamment, en utilisant des algorithmes similaires au JPEG : transformée en cosinus discrète (DCT), quantification et codage entropique.
La compression inter-image analyse la différence entre les images successives et code uniquement les changements. Si l'arrière-plan est statique, le codec transmet une image complète une seule fois (I-frame), puis seulement les différences (P- et B-frames), ce qui réduit considérablement le volume de données pour les scènes à faible dynamique.
Le choix du codec vidéo détermine le rapport qualité-taille, la compatibilité avec les appareils et les redevances de licence. Quatre codecs principaux dominent le marché des applications mobiles : H.264 (AVC), H.265 (HEVC), VP9 et AV1.
| Codec | Norme | Année | Compression vs H.264 | Licence |
|---|---|---|---|---|
| H.264/AVC | MPEG-4 Part 10 | 2003 | 1x (référence) | Redevances (MPEG LA) |
| H.265/HEVC | MPEG-H Part 2 | 2013 | 40–50 % plus efficace | Redevances (deux pools) |
| VP9 | 2013 | 30–40 % plus efficace | Gratuit | |
| AV1 | AOM | 2018 | 50–60 % plus efficace | Exempt de redevances |
H.264 (AVC — Advanced Video Coding) reste le codec vidéo le plus compatible : il est pris en charge par tous les appareils mobiles, navigateurs et téléviseurs intelligents depuis 2005. Le décodage H.264 accéléré par matériel est disponible même sur les appareils d'entrée de gamme, ce qui le rend idéal pour un flux universel.
Le principal inconvénient du H.264 est son efficacité de compression relativement faible par rapport aux codecs modernes. Au même débit, H.265 et AV1 offrent une qualité nettement supérieure, ce qui est particulièrement important pour le contenu HDR et 4K.
H.265 (HEVC — High Efficiency Video Coding) offre une compression 40 à 50 % meilleure que H.264 à qualité visuelle égale. Ceci est obtenu grâce à une division plus flexible de l'image en blocs (CTU jusqu'à 64×64 pixels au lieu de 16×16) et à des algorithmes de prédiction de mouvement améliorés.
HEVC est pris en charge sur tous les appareils Apple (à partir de l'iPhone 6), sur Android (à partir de la version 5.0 avec décodage matériel) et sur la plupart des téléviseurs intelligents. Les redevances HEVC sont plus élevées que pour H.264 et sont gérées par deux pools de brevets, ce qui complique l'utilisation légale.
AV1 est un codec vidéo développé par l'Alliance for Open Media (AOM), un consortium dirigé par Google, Netflix, Amazon, Intel et Mozilla. AV1 offre une compression 50 à 60 % meilleure que H.264 et est totalement exempt de redevances, ce qui le rend attractif pour les services de streaming.
Le principal inconvénient d'AV1 est sa complexité de calcul élevée d'encodage. L'encodage AV1 peut être 5 à 10 fois plus lent que H.264 sur le même matériel, bien que le décodage matériel apparaisse déjà sur les appareils 2024–2025 (Snapdragon 8 Gen 3, Apple A17 Pro).
Les codecs audio dans les applications mobiles ne sont pas moins importants que les codecs vidéo. Le streaming vidéo nécessite un audio avec une latence minimale, une haute qualité et une compatibilité avec les conteneurs MP4 et WebM. Trois codecs audio principaux couvrent 99 % des applications de streaming mobile.
AAC (Advanced Audio Coding) est le successeur du MP3, développé par MPEG en 1997 et devenu le codec audio standard pour iTunes, YouTube et Android. AAC offre la même qualité que le MP3 avec un débit 30 % inférieur et prend en charge l'audio multicanal jusqu'à 7.1.
Pour les applications mobiles, AAC-LC à 128–192 kbit/s pour la stéréo et AAC-HE pour les faibles débits de 32–64 kbit/s sont recommandés. Le décodage AAC matériel est disponible sur tous les appareils modernes, minimisant la consommation d'énergie.
Opus est un codec audio ouvert de l'IETF (RFC 6716) offrant la meilleure qualité parmi tous les codecs audio à des débits de 6 à 510 kbit/s. Opus combine SILK (algorithme pour la parole) et CELT (pour la musique) et change automatiquement de mode en fonction du contenu.
Opus est utilisé dans WebRTC pour les appels vidéo, dans les applications Spotify et Discord, et est pris en charge dans HLS à partir d'iOS 11 et Android 5.0. La faible latence d'Opus (5–26 ms contre 40–100 ms pour AAC) en fait le choix privilégié pour les diffusions en direct et les visioconférences.
Les paramètres d'encodage déterminent la taille finale du fichier, la qualité vidéo et la compatibilité avec les appareils. Un développeur d'applications mobiles doit choisir les paramètres optimaux pour chaque type de contenu : films, diffusions sportives, contenu généré par l'utilisateur.
Le débit binaire est le nombre de bits utilisés pour encoder une seconde de vidéo. Il existe le CBR (débit constant) pour les diffusions en direct, le VBR (débit variable) avec qualité cible pour le stockage d'archive et l'ABR (débit moyen) pour le streaming.
| Résolution | H.264 (recommandé) | H.265/HEVC | AV1 |
|---|---|---|---|
| 360p | 400–800 kbit/s | 250–500 kbit/s | 200–400 kbit/s |
| 720p | 1,5–4 Mbit/s | 1–2,5 Mbit/s | 0,8–2 Mbit/s |
| 1080p | 3–8 Mbit/s | 2–5 Mbit/s | 1,5–4 Mbit/s |
| 4K (2160p) | 15–40 Mbit/s | 10–25 Mbit/s | 8–20 Mbit/s |
CRF (Constant Rate Factor) est un paramètre d'encodage dans x264 et x265 qui définit la qualité cible au lieu d'un débit fixe. L'échelle CRF va de 0 (sans perte) à 51 (pire qualité), 18–28 étant la plage de travail. Pour les applications mobiles, CRF 23 pour x264 et CRF 25 pour x265 sont recommandés.
CRF 18–20 offre une haute qualité pour le contenu de présentation et la visualisation hors ligne. CRF 24–28 convient au streaming et au contenu généré par l'utilisateur, où la taille du fichier est plus importante que la qualité absolue.
La norme H.264 définit des profils (Baseline, Main, High) et des niveaux (Level 1–5.2) qui limitent les paramètres vidéo maximums. Baseline Profile est compatible avec tous les appareils mais ne prend pas en charge les B-frames. High Profile offre une qualité maximale et est utilisé pour le contenu 1080p.
Pour le streaming 4K, Level 5.1 et supérieur est requis, pris en charge par la plupart des appareils mobiles à partir de 2018. Le niveau du codec détermine la résolution maximale, le débit binaire et la taille du tampon, garantissant un décodage correct sur tous les appareils certifiés.
L'encodage pour le streaming diffère de l'encodage d'archive par la nécessité de créer plusieurs variantes de qualité (ABR ladder) et d'optimiser pour la transmission réseau. Les fournisseurs de contenu utilisent le transcodage en temps réel ou le pré-encodage pour la VOD.
Une ABR ladder typique pour les applications mobiles comprend 4 à 6 variantes : de 144p (200 kbit/s) pour les réseaux faibles à 1080p (8 Mbit/s) pour le Wi-Fi. Résolutions recommandées : 144p, 240p, 360p, 480p, 720p, 1080p. Pour le contenu 4K, on ajoute 1440p et 2160p.
val mediaCodec = MediaCodec.createEncoderByType(
MediaFormat.MIMETYPE_VIDEO_AVC
)
val format = MediaFormat.createVideoFormat(
MediaFormat.MIMETYPE_VIDEO_AVC,
1280, 720
).apply {
setInteger(MediaFormat.KEY_BIT_RATE, 3_000_000)
setInteger(MediaFormat.KEY_FRAME_RATE, 30)
setInteger(MediaFormat.KEY_I_FRAME_INTERVAL, 2)
setInteger(MediaFormat.KEY_PROFILE,
MediaCodecInfo.CodecProfileLevel.AVCProfileHigh)
setInteger(MediaFormat.KEY_LEVEL,
MediaCodecInfo.CodecProfileLevel.AVCLevel31)
}
mediaCodec.configure(format, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE)
Pour les diffusions en direct, la faible latence est particulièrement importante. Les paramètres d'encodage doivent minimiser le délai d'entrée/sortie du codec : une taille GOP de 1 à 2 secondes (toutes les 30 à 60 images) est recommandée, les B-frames doivent être désactivés ou minimisés, et le Baseline Profile est utilisé pour H.264.
Les protocoles modernes à faible latence — LL-HLS et CMAF-Low Latency — nécessitent un encodage fragmenté avec des segments de 1 à 2 secondes et une prise en charge des téléchargements partiels (Partial Segments). Le codec doit prendre en charge moof-box dans chaque segment pour MP4 fragmenté.
Questions fréquentes
L'encodage vidéo est le processus de compression d'un signal vidéo numérique à l'aide de codecs pour réduire le volume de données. Dans les applications mobiles, l'encodage permet de transmettre et de stocker la vidéo, réduisant la taille des centaines de fois sans perte de qualité perceptible sur l'écran de l'appareil.
H.264 offre une compatibilité maximale avec les anciens appareils, tandis que H.265 est 40 à 50 % plus efficace à qualité égale. Pour le contenu 1080p et inférieur, H.264 suffit ; pour la 4K, H.265 ou AV1 sont recommandés si l'appareil les prend en charge.
Le débit binaire est la quantité de données par seconde de vidéo. Pour le 1080p, le débit optimal est de 3 à 8 Mbit/s pour H.264 et de 2 à 5 Mbit/s pour H.265. Le choix dépend du contenu : les scènes dynamiques (sport) nécessitent un débit plus élevé, les scènes statiques (interviews) un débit plus faible.
VP9 est le prédécesseur d'AV1 de Google, offrant une compression au niveau du H.265. AV1 compresse 20 à 30 % plus efficacement que VP9, mais nécessite 5 à 10 fois plus de ressources d'encodage. VP9 est meilleur pour YouTube, AV1 pour Netflix et les services de streaming modernes.
Pour les diffusions en direct, utilisez H.264 Baseline Profile avec un GOP de 1 à 2 secondes, sans B-frames, débit 2 à 4 Mbit/s pour le 1080p. Activez le MP4 fragmenté (CMAF) pour LL-HLS et utilisez l'encodage matériel via MediaCodec ou VideoToolbox.
Résumé
Nous développerons une application mobile clé en main
IT Sectr crée des applications iOS et Android pour les startups et les entreprises depuis 2017. Nous vous conseillerons et vous proposerons la meilleure solution.
Lisez aussi