Transloadit lance le Turbo Mode pour accélérer l’encodage vidéo
Et si je vous disais qu’il existe un moyen encore plus rapide d’encoder vos vidéos ? Si un sourire commence déjà à se dessiner sur votre visage, je vous promets que la suite ne vous décevra pas. L’une des dernières nouveautés que nous avons imaginées chez Transloadit est le « Turbo Mode ». Cette nouvelle fonctionnalité vous aidera à réduire considérablement le temps d’encodage de vos vidéos. Dans les sections suivantes, nous allons passer en revue différents tests et résultats pour tout vous montrer à son sujet.

Notions de base
Avant de commencer les tests, il est important de vous familiariser avec notre Robot /http/import, que nous utiliserons pour importer les fichiers vidéo d’origine. Il existe de nombreuses autres façons d’envoyer des fichiers à Transloadit, mais dans ce tutoriel, nous importons des fichiers accessibles publiquement via une URL. Le bloc de code ci-dessous montre un exemple d’utilisation.
{
"imported": {
"robot": "/http/import",
"url": "https://file.com/video.mp4"
}
}
Nous transmettrons ensuite les fichiers importés à nos Robots d’encodage vidéo.
Avant d’exécuter les exemples, créez un ensemble d’informations d’identification de Template S3
nommé s3_cred pour votre bucket de destination. Les sorties en streaming adaptatif nécessitent
aussi les paramètres CORS requis
pour la lecture dans un navigateur depuis une autre origine.
Nous utiliserons cinq fichiers vidéo de tailles différentes pour tester notre Turbo Mode :
video-XS.mp4: taille de 10 MB.video-S.mp4: taille de 34 MB.video-M.mp4: taille de 260 MB.video-L.mp4: taille de 1,2 GB.video-XL.mp4: taille de 6,4 GB.
Précisons qu’il ne s’agit pas de benchmarks scientifiques : j’ai simplement lancé chaque encodage trois fois et calculé le temps moyen, mais cela devrait donner une idée de base de l’impact du Turbo Mode selon la taille des fichiers vidéo.
Benchmark 1 : comparaison de l’encodage WebM 720p normal et du Turbo Mode
Examinons le Template ci-dessous :
{
"steps": {
"imported": {
"robot": "/http/import",
"url": "https://example.com/files/video.mp4"
},
"webm_720p_encoded": {
"use": "imported",
"robot": "/video/encode",
"result": true,
"ffmpeg_stack": "v7",
"preset": "webm",
"width": 1280,
"height": 720
},
"exported": {
"use": "webm_720p_encoded",
"robot": "/s3/store",
"credentials": "s3_cred"
}
}
}
Dans le Template ci-dessus, nous utilisons d’abord le Robot /http/import pour
importer un fichier, puis le Robot /video/encode encode la vidéo avec le préréglage
webm, avant que nous exportions les résultats vers Amazon S3.
Nous devons maintenant refaire ces tests pour chacun des cinq fichiers vidéo sélectionnés dans la section « Notions de base ». Ensuite, nous noterons les différences de temps.
J’utilise le SDK Node.js pour lancer des Assemblies, mais vous pourriez tout aussi bien faire l’essai directement sur le site de Transloadit avec votre compte, ou utiliser l’un de nos nombreux autres SDK.
Ensuite, nous répétons le même processus pour la même URL, mais cette fois en ajoutant
turbo: true au Step /video/encode, ce qui
active le Turbo Mode.
Pour le Turbo Mode, notre Template ressemblerait à ceci :
{
"steps": {
"imported": {
"robot": "/http/import",
"url": "https://example.com/files/video-S.mp4"
},
"webm_720p_encoded": {
"use": "imported",
"robot": "/video/encode",
"result": true,
"ffmpeg_stack": "v7",
"preset": "webm",
"width": 1280,
"height": 720,
"turbo": true
},
"exported": {
"use": "webm_720p_encoded",
"robot": "/s3/store",
"credentials": "s3_cred"
}
}
}
Après avoir exécuté les tests pour ces deux scénarios, nous avons obtenu le tableau de résultats suivant :
| Fichier | Taille | Durée normale | Avec Turbo Mode | Temps gagné |
|---|---|---|---|---|
video-XS.mp4 | 10 MB | 00:01:14 | 00:00:49 | 33,78 % |
video-S.mp4 | 34 MB | 00:01:13 | 00:00:45 | 38,36 % |
video-M.mp4 | 260 MB | 00:01:51 | 00:00:41 | 63,06 % |
video-L.mp4 | 1,2 GB | 00:29:41 | 00:04:01 | 86,47 % |
video-XL.mp4 | 6,4 GB | 02:07:02 | 00:17:42 | 86,09 % |
Comme vous le voyez, pour les Jobs d’encodage vidéo classiques, nous pulvérisons les temps d’encodage dans tous les cas. 😱🏎
Le graphique ci-dessous illustre davantage nos résultats :

Benchmark 2 : comparaison de l’encodage HLS normal et du Turbo Mode
Examinons maintenant le Template suivant :
{
"steps": {
"imported": {
"robot": "/http/import",
"url": "https://example.com/files/video-S.mp4"
},
"360p_hls_encoded": {
"use": "imported",
"robot": "/video/encode",
"ffmpeg_stack": "v7",
"preset": "hls-360p"
},
"hls_bundled": {
"use": {
"steps": ["360p_hls_encoded"],
"bundle_steps": true
},
"robot": "/video/adaptive",
"ffmpeg_stack": "v7",
"playlist_name": "my_playlist.m3u8",
"technique": "hls"
},
"exported": {
"use": "hls_bundled",
"robot": "/s3/store",
"path": "${file.meta.relative_path}/${file.name}",
"credentials": "s3_cred"
}
}
}
Dans le Template ci-dessus, comme lors de l’encodage au format webm,
nous utilisons le Robot /http/import pour importer un fichier, puis le
Robot /video/encode l’encode afin de préparer les segments pour le
Robot /video/adaptive. Nous exportons ensuite tous les résultats vers Amazon S3.
Là encore, nous devons exécuter le test pour nos cinq fichiers.
Ensuite, nous répétons le même processus pour toutes les vidéos, mais cette fois, l’un de nos
Steps contient turbo: true :
{
"steps": {
"imported": {
"robot": "/http/import",
"url": "https://example.com/files/video-S.mp4"
},
"360p_hls_encoded": {
"use": "imported",
"robot": "/video/encode",
"ffmpeg_stack": "v7",
"turbo": true,
"preset": "hls-360p"
},
"hls_bundled": {
"use": {
"steps": ["360p_hls_encoded"],
"bundle_steps": true
},
"robot": "/video/adaptive",
"ffmpeg_stack": "v7",
"playlist_name": "my_playlist.m3u8",
"technique": "hls"
},
"exported": {
"use": "hls_bundled",
"robot": "/s3/store",
"path": "${file.meta.relative_path}/${file.name}",
"credentials": "s3_cred"
}
}
}
Nous obtenons maintenant des résultats intéressants dans le tableau :
| Fichier | Taille | Durée normale | Avec Turbo Mode | Temps gagné |
|---|---|---|---|---|
video-XS.mp4 | 10 MB | 00:00:19 | 00:00:25 | -31,58 % |
video-S.mp4 | 34 MB | 00:00:21 | 00:00:28 | -33,33 % |
video-M.mp4 | 260 MB | 00:00:45 | 00:00:40 | 11,11 % |
video-L.mp4 | 1,2 GB | 00:04:43 | 00:04:05 | 13,43 % |
video-XL.mp4 | 6,4 GB | 00:32:12 | 00:23:01 | 28,52 % |
Comme vous pouvez le voir, pour le premier fichier, qui faisait 10 MB, le temps d’encodage a augmenté de 31,58 %. Cela s’explique par le fait que le fichier était trop petit pour être découpé en morceaux : le surcoût imposé par le Turbo Mode a donc été encouru inutilement.
De même, pour le deuxième fichier, de 34 MB, le temps d’encodage a augmenté de 33,33 %. Fait intéressant, le fichier de 260 MB a en revanche gagné environ 11,11 % en temps d’encodage. Et comme prévu, pour le quatrième et le cinquième fichier, les temps d’encodage se sont également améliorés de 13,43 % et 28,52 % respectivement.
Il est donc clair que plus le fichier est volumineux, plus nous gagnons en vitesse lors de l’encodage pour HTTP Live Streaming (HLS).
Ce graphique illustre davantage ces résultats :

Benchmark 3 : comparaison de l’encodage MPEG-DASH normal et du Turbo Mode
Pour notre dernier test, examinons ce Template :
{
"steps": {
"imported": {
"robot": "/http/import",
"url": "https://example.com/files/video-S.mp4"
},
"360p_dash_encoded": {
"use": "imported",
"robot": "/video/encode",
"ffmpeg_stack": "v7",
"preset": "dash-360p-video"
},
"dash_bundled": {
"use": {
"steps": ["360p_dash_encoded"],
"bundle_steps": true
},
"robot": "/video/adaptive",
"ffmpeg_stack": "v7",
"playlist_name": "my_playlist.mpd",
"technique": "dash"
},
"exported": {
"use": "dash_bundled",
"robot": "/s3/store",
"path": "${file.meta.relative_path}/${file.name}",
"credentials": "s3_cred"
}
}
}
Par rapport au Template précédent pour HLS, il nous a suffi d’utiliser la valeur dash-360p-video
du paramètre preset dans le Step /video/encode, et de remplacer la valeur du
paramètre technique utilisé par le Robot /video/adaptive par la nouvelle valeur dash.
Là encore, pour les tests avec le Turbo Mode, il suffit d’ajouter turbo: true au
Step /video/encode.
Après avoir exécuté tous les tests, nous obtenons les résultats suivants :
| Fichier | Taille | Durée normale | Avec Turbo Mode | Temps gagné |
|---|---|---|---|---|
video-XS.mp4 | 10 MB | 00:00:15 | 00:00:19 | -26,67 % |
video-S.mp4 | 34 MB | 00:00:16 | 00:00:20 | -25 % |
video-M.mp4 | 260 MB | 00:00:43 | 00:00:40 | 6,98 % |
video-L.mp4 | 1,2 GB | 00:02:59 | 00:02:04 | 30,73 % |
video-XL.mp4 | 6,4 GB | 00:22:29 | 00:12:51 | 42,85 % |
Comme prévu (car HLS et DASH sont des technologies très similaires), nous constatons une perte de vitesse pour les petits fichiers. Ce n’est qu’au-delà d’environ 200 MB que la vitesse commence à augmenter.
Le graphique ci-dessous illustre davantage ces résultats :

Conclusion des benchmarks
Les différents tests ci-dessus ont montré combien de temps vous pouvez gagner grâce au Turbo Mode.
Pour les Steps /video/encode qui ne servent pas d’entrée à un
Step adaptatif, nous constatons des gains de vitesse dans tous les cas. Si vous
utilisez des technologies de streaming adaptatif, il est toutefois judicieux de tenir compte de la
taille des fichiers.
Cela correspond à la façon dont le Turbo Mode a été conçu en interne. Notre équipe API a développé un algorithme personnalisé intégré à FFmpeg, qui permet de répartir la charge de travail d’un seul Job d’encodage vidéo sur de nombreuses machines. L’orchestration de la parallélisation prend elle-même un certain temps, mais pour les fichiers plus volumineux, ce surcoût vaut largement l’investissement.
Si vous ne pouvez pas connaître la taille des fichiers à l’avance, vous pouvez utiliser notre Robot /file/filter pour diriger le trafic vers un Step où le Turbo Mode est activé, en fonction de la taille du fichier.
Tarifs
La création du Turbo Mode a demandé beaucoup de recherche et développement, mais nous proposons cette amélioration à tous nos clients gratuitement (les tarifs habituels s’appliquent). Nous espérons que vos utilisateurs apprécieront ce gain de vitesse lorsqu’ils enverront leurs médias.
La suite
Mise à jour (septembre 2026) : la feuille de route ci-dessous décrit nos projets de 2018. Actuellement, le paramètre
turboacceptetrueoufalseet vautfalsepar défaut ;"auto"n’est pas pris en charge.
Dans notre prochaine itération, nous introduirons un mode turbo: 'auto' qui activera automatiquement le
Turbo Mode lorsque nous prévoyons un gain de temps, une fois que nous aurons recueilli davantage de
données. Ce mode restera à activer explicitement jusqu’à ce qu’il ait traité l’équivalent d’un
demi-pétaoctet en production. À ce moment-là, si nous sommes suffisamment confiants, nous ferons de
turbo: 'auto' la valeur par défaut et permettrons de le désactiver via turbo: false.
En attendant, nous invitons tous nos clients à essayer turbo: true pour des charges de travail qui
ne sont pas critiques et ne nécessitent pas de résultats irréprochables. Nous accueillons volontiers
vos questions, commentaires et préoccupations via notre page d’assistance.
