Compresser une vidéo pour l’envoyer par e-mail ou Discord
Faites passer une vidéo sous la limite des pièces jointes depuis votre navigateur, en sachant dès le départ ce que vous sacrifiez pour y arriver.
La limite est plus basse que le chiffre qu’on vous a donné
Les serveurs de messagerie n’envoient pas votre fichier sous forme d’octets bruts. À l’envoi, une pièce jointe est encodée en base64, et base64 a besoin de quatre caractères pour transporter trois octets : le message qui circule sur le réseau finit donc environ un tiers plus gros que le fichier posé sur votre disque. Le fameux plafond de 25 Mo de Gmail s’applique à ce message encodé, pas au fichier que vous avez choisi dans l’explorateur de fichiers. En pratique, une vidéo d’environ 18 Mo est la plus grosse qui passe à coup sûr, et les en-têtes et le corps du message prennent encore un peu de place en plus.
Les autres services choisissent leurs propres chiffres, et les changent. La limite d’envoi des comptes gratuits de Discord a bougé plus d’une fois. Outlook, iCloud Mail et les serveurs Exchange d’entreprise fixent chacun la leur, et un service informatique peut la fixer encore plus bas. Fiez-vous au chiffre que l’application affiche quand elle refuse votre fichier, pas à celui dont vous vous souvenez d’il y a quelques années.
Il n’y a que trois molettes
Tout compresseur vidéo, dans un navigateur ou non, travaille avec les trois mêmes choses : le nombre de pixels de chaque image, le nombre de bits par seconde que l’encodeur a le droit de dépenser, et la durée du clip. La troisième est souvent le gain le plus facile, et celle qu’on oublie. Retirer du début quarante secondes passées à tripoter le trépied fait gagner plus que n’importe quel réglage de qualité, et de toute façon personne ne voulait les regarder.
Le compresseur de ce site tourne les deux premières molettes à votre place au lieu d’afficher une rangée de curseurs. Le grand côté de l’image est plafonné à 720 pixels, donc un clip en 1080p ressort avec 720 pixels de large. Le budget de bits est calculé à partir de ce que la piste vidéo source dépensait réellement, et non à partir d’un chiffre fixe, ce qui, pour un enregistrement typique en 1080p fait au téléphone, revient à environ un cinquième du débit vidéo d’origine. Le budget est aussi plafonné pour ne jamais s’approcher du débit de la source. Ce plafond existe parce qu’un plancher fixe se trouvait autrefois au-dessus du débit d’un clip déjà efficace, si bien que le compresser le rendait plus gros.
La piste audio fixe un plancher
Quand la voie rapide est utilisée, l’audio est copié tel quel. Il n’est ni décodé, ni réencodé, ni réduit. Il sonne donc exactement comme avant et ne coûte aucun temps de traitement, mais cela signifie aussi que l’audio est un coût fixe que la compression ne peut pas faire disparaître ici. Sur un long clip de quelqu’un qui parle face caméra, où l’image bouge à peine et où la voix ne s’arrête jamais, l’audio peut finir par représenter l’essentiel de ce qui reste. Si le résultat est encore trop gros et que l’image manque déjà de netteté, compresser encore la vidéo ne vous sauvera pas.
La vitesse dépend de votre machine, pas de votre fichier
Tout cela repose sur les codecs vidéo du navigateur lui-même, via l’API WebCodecs, et non sur un encodeur compilé livré avec la page. Si votre machine donne au navigateur accès à l’encodage vidéo matériel, il traite un clip plusieurs fois plus vite que la lecture du clip. Sinon, l’encodage logiciel peut être plus lent que de simplement regarder la vidéo.
L’outil mesure sa propre vitesse pendant qu’il travaille. Si l’estimation indique qu’il sera plus lent que le temps réel, il abandonne cette voie et se rabat sur l’enregistrement de la vidéo à partir d’un canvas. Cette solution de repli prend toujours au moins la durée du clip, parce qu’elle capture un flux en direct à la vitesse de lecture. Une vidéo de trois minutes, ce sont trois minutes d’attente. Gardez l’onglet au premier plan pendant ce temps, car les navigateurs ralentissent les onglets en arrière-plan, ce qui rallongerait encore l’opération.
Là où ça coince
Le fichier entier est lu en mémoire, les images démultiplexées sont gardées en mémoire, et le MP4 final est assemblé en mémoire avant de vous être remis. Au pic, la consommation atteint plusieurs fois la taille de la source. Un clip de téléphone ou un enregistrement d’écran passe sans peine. Un fichier 4K d’une demi-heure, c’est demander à un onglet de navigateur quelque chose pour lequel il n’a jamais été conçu, et il va soit ramer, soit planter.
Quelques autres limites sont bonnes à connaître avant de commencer :
- La voie rapide exige un conteneur MP4 ou MOV. Les fichiers WebM et MKV passent par la voie lente, en temps réel.
- Il n’y a qu’un préréglage et aucun sélecteur de qualité : si le résultat dépasse votre objectif, pas de molette à ajuster.
- Fermer l’onglet ou laisser la machine se mettre en veille annule la tâche. Rien n’est sauvegardé à mi-parcours.
- Un audio qui n’est pas en AAC ne peut pas être copié tel quel, ce qui fait passer toute la tâche par la voie lente.
Quand un logiciel de bureau est la meilleure solution
HandBrake et ffmpeg atteignent une taille de fichier cible avec bien plus de précision que cet outil, parce qu’ils peuvent faire deux passes : une pour analyser la vidéo, une pour dépenser les bits là où ils sont vraiment nécessaires. Ils gèrent les fichiers d’une heure et les dossiers entiers qui en sont remplis, ils vous laissent choisir un codec et un profil, et ils ne sont pas limités par ce qu’un onglet de navigateur a le droit d’allouer. Si vous compressez de la vidéo plus qu’occasionnellement, installez-en un.
Parfois, la bonne réponse est de ne pas compresser du tout. Si le fichier fait 2 Go, aucune compression ne le fera entrer dans un e-mail sans le transformer en bouillie de blocs. Déposez-le sur un espace de stockage partagé et envoyez le lien. La compression, c’est pour le clip proche de la limite, pas pour celui qui la dépasse cinquante fois.
Votre vidéo ne quitte pas votre machine
La vidéo n’est jamais envoyée. Tout ce qui précède se passe dans la page que vous avez déjà ouverte, ce qui compte plus qu’on ne le croit quand le clip est une imagerie médicale, une déposition enregistrée ou le spectacle d’école d’un enfant. Inutile de nous croire sur parole : ouvrez les outils de développement de votre navigateur, passez à l’onglet réseau et compressez quelque chose. Aucune requête ne contient votre fichier, pour la bonne raison qu’aucune ne l’envoie.
Le compresseur vidéo réencode votre vidéo à un débit plus faible dans cet onglet, sans rien envoyer.
Ouvrir le compresseur vidéo