Transloadit
Tarifs
  • Téléversements de fichiers
  • Importation de fichiers
  • Traitement par lots (English)
  • Encodage vidéo
  • Encodage audio
  • Traitement d’images
  • Traitement de documents
  • Intelligence artificielle
  • Filtrage et sécurité des fichiers
  • Catalogage de médias
  • Compression de fichiers
  • Évaluation de code
  • Exportation de fichiers
  • Smart CDN
  • Voir tous les services
  • Explorer les intégrations (English)
  • Explorer les démos interactives (English)
  • Uppy
  • TransloaditKit
  • SDK Android
  • SDK Node.js
  • SDK Python
  • SDK Ruby
  • SDK Go
  • SDK Java
  • SDK PHP
  • Zapier
  • Serveur MCP
  • Transloadit CLI (English)
  • Terraform
  • Essentiels
  • Bonnes pratiques
  • FAQ
  • Robots (English)
  • API
  • Formats (English)
  • Créer votre première application
  • À propos de Transloadit
  • Comparatifs
  • Projets open source
  • Témoignages
  • Carrières (English)
  • Sécurité
  • Articles (English)
  • Actus dev (English)
  • Astuces dev
  • Presse (English)
  • Recherche (English)
  • Études de cas (English)
  • Solutions
  • Guides
  • Glossaire (English)
  • Juridique (English)
  • Outils
  • Aider Coursera à apporter l’éducation à des millions de personnes à travers le monde (English)
  • Support Transloadit
  • Support open source
  • Accord de niveau de service (English)
EssentielsRobotsEN (English)FAQAPIFormatsEN (English)Bonnes pratiques
Téléversements de fichiers
  • /upload/handle
    Gérer les téléversements
Importation de fichiers
  • /azure/import
    Importer des fichiers depuis Azure
  • /backblaze/import
    Importer des fichiers depuis Backblaze
  • /box/import
    Importer des fichiers depuis Box
  • /mega/import
    Importer des fichiers depuis MEGA S4 Object Storage
  • /cloudfiles/import
    Importer des fichiers depuis Rackspace Cloud Files
  • /cloudflare/import
    Importer des fichiers depuis Cloudflare R2
  • /digitalocean/import
    Importer des fichiers depuis DigitalOcean Spaces
  • /dropbox/import
    Importer des fichiers depuis Dropbox
  • /ftp/import
    Importer des fichiers depuis des serveurs FTP
    EN (English)
  • /google/import
    Importer des fichiers depuis Google Cloud Storage
  • /http/import
    Importer des fichiers depuis des serveurs web
  • /minio/import
    Importer des fichiers depuis MinIO
  • /s3/import
    Importer des fichiers depuis Amazon S3
    EN (English)
  • /sftp/import
    Importer des fichiers depuis des serveurs SFTP
    EN (English)
  • /supabase/import
    Importer des fichiers depuis Supabase Storage
  • /swift/import
    Importer des fichiers depuis OpenStack Swift
  • /tigris/import
    Importer des fichiers depuis Tigris
  • /transloadit/import
    Importer des fichiers depuis Transloadit Storage
    EN (English)
  • /vimeo/import
    Importer des vidéos depuis Vimeo
  • /wasabi/import
    Importer des fichiers depuis Wasabi
Encodage vidéo
  • /video/adaptive
    Convertir des vidéos en HLS, MPEG-Dash et CMAF
  • /video/artwork
    Extraire ou insérer l’illustration de pochette des vidéos
  • /video/concat
    Concaténer des vidéos
    EN (English)
  • /video/encode
    Transcoder, redimensionner ou filigraner des vidéos
  • /video/merge
    Fusionner vidéo, audio et images en une seule vidéo
  • /video/ondemand
    Diffuser des vidéos en streaming avec encodage à la demande
  • /video/split
    Découper une vidéo
  • /video/subtitle
    Ajouter des sous-titres aux vidéos
  • /video/thumbs
    Extraire des miniatures de vidéos
    EN (English)
  • Préréglages vidéoEN (English)
Encodage audio
  • /audio/artwork
    Extraire ou insérer une pochette audio
  • /audio/concat
    Concaténer de l’audio
    EN (English)
  • /audio/split
    Découper de l’audio
  • /audio/encode
    Encoder de l’audio
  • /audio/loop
    Mettre de l’audio en boucle
  • /audio/merge
    Fusionner des fichiers audio en un seul
  • /audio/waveform
    Générer des images de forme d’onde à partir d’audio
  • Préréglages audioEN (English)
Traitement d’images
  • /image/bgremove
    Supprimer l’arrière-plan des images
  • /image/enhance
    Améliorer des images
    EN (English)
  • /image/merge
    Fusionner plusieurs images en une seule
  • /image/optimize
    Optimiser des images sans perte de qualité
  • /image/resize
    Convertir, redimensionner ou ajouter un filigrane à des images
Traitement de documents
  • /document/autorotate
    Faire pivoter automatiquement des documents
  • /document/convert
    Convertir des documents dans différents formats
    EN (English)
  • /document/extract
    Extraire du texte et des images intégrées
  • /document/merge
    Fusionner des documents en un seul
  • /document/optimize
    Optimiser la taille des fichiers PDF
    EN (English)
  • /file/read
    Lire le contenu de fichiers
  • /document/split
    Extraire des pages
  • /document/thumbs
    Extraire des miniatures de documents
  • /html/convert
    Prendre des captures d’écran de pages web ou de fichiers HTML
Intelligence artificielle
  • /document/ocr
    Reconnaître le texte dans des documents (OCR)
  • /image/describe
    Reconnaître des objets dans des images
  • /image/facedetect
    Détecter des visages dans des images
  • /image/generate
    Générer des images à partir de consignes textuelles
  • /image/upscale
    Augmenter la résolution des images
    EN (English)
  • /image/ocr
    Reconnaître le texte dans des images (OCR)
  • /speech/transcribe
    Transcrire la parole dans des fichiers audio ou vidéo
  • /text/speak
    Synthétiser la parole à partir de documents
  • /text/translate
    Traduire le texte de documents
  • /ai/chat
    Générer des réponses de chat par IA
    EN (English)
  • /video/generate
    Générer des vidéos à partir de consignes textuelles
Filtrage et sécurité des fichiers
  • /file/filter
    Filtrer des fichiers
  • /file/verify
    Vérifier le type de fichier
  • /file/virusscan
    Analyser des fichiers à la recherche de virus
Catalogage de médias
  • /file/hash
    Calculer le hachage de fichiers
  • /file/preview
    Générer une miniature d’aperçu
    EN (English)
  • /meta/write
    Écrire des métadonnées dans des médias
Compression de fichiers
  • /file/compress
    Compresser des fichiers
  • /file/decompress
    Décompresser des archives
Évaluation de code
  • /http/request
    Appeler des points de terminaison HTTP
    EN (English)
  • /script/run
    Exécuter des scripts dans des Assemblies
Exportation de fichiers
  • TéléchargementEN (English)
  • /azure/store
    Exporter des fichiers vers Microsoft Azure
  • /backblaze/store
    Exporter des fichiers vers Backblaze
  • /box/store
    Exporter des fichiers vers Box
  • /mega/store
    Exporter des fichiers vers MEGA S4 Object Storage
  • /cloudfiles/store
    Exporter des fichiers vers Rackspace Cloud Files
  • /cloudflare/store
    Exporter des fichiers vers Cloudflare R2
  • /digitalocean/store
    Exporter des fichiers vers DigitalOcean Spaces
  • /dropbox/store
    Exporter des fichiers vers Dropbox
  • /ftp/store
    Exporter des fichiers vers des serveurs FTP
    EN (English)
  • /google/store
    Exporter des fichiers vers Google Cloud Storage
  • /minio/store
    Exporter des fichiers vers MinIO
  • /s3/store
    Exporter des fichiers vers Amazon S3
    EN (English)
  • /sftp/store
    Exporter des fichiers vers des serveurs SFTP
    EN (English)
  • /supabase/store
    Exporter des fichiers vers Supabase Storage
  • /swift/store
    Exporter des fichiers vers OpenStack Swift
  • /tigris/store
    Exporter des fichiers vers Tigris
  • /transloadit/store
    Stocker des fichiers dans Transloadit Storage
    EN (English)
  • /tus/store
    Exporter des fichiers vers des serveurs compatibles tus
  • /vimeo/store
    Exporter des fichiers vers Vimeo
  • /wasabi/store
    Exporter des fichiers vers Wasabi
  • /youtube/store
    Exporter des fichiers vers YouTube
Smart CDN
  • /file/serve
    Servir des fichiers aux navigateurs web
  • /tlcdn/deliver
    Mettre en cache et distribuer des fichiers à l’échelle mondiale
  • TarifsEN (English)

Convertir des vidéos en HLS, MPEG-Dash et CMAF

🤖/video/adaptive encode des vidéos dans des formats pris en charge par HTTP Live Streaming (HLS), MPEG-Dash et CMAF et génère les fichiers de manifeste et de liste de lecture nécessaires.

Robot /video/adaptive

Ce Robot accepte tous les types de fichiers vidéo et audio. N’oubliez pas d’utiliser le regroupement de Steps dans votre paramètre use pour permettre au Robot de traiter plusieurs fichiers d’entrée à la fois.

Ce Robot est normalement utilisé en combinaison avec 🤖/video/encode. Nous avons mis en place des préréglages d’encodage vidéo et audio spécialement conçus pour la prise en charge de MPEG-Dash et de HTTP Live Streaming. Ces préréglages portent les préfixes "dash/" et "hls/". Voir une démo de HTTP Live Streaming ici EN (English).

Paramètres CORS requis pour MPEG-Dash et HTTP Live Streaming

La lecture de fichiers manifestes MPEG-Dash ou de listes de lecture HLS nécessite une configuration CORS appropriée côté serveur. Le serveur qui distribue les fichiers devrait être configuré pour ajouter les champs d’en-tête suivants aux réponses :

Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET
Access-Control-Allow-Headers: *

Si les fichiers sont stockés dans un bucket Amazon S3, vous pouvez utiliser la définition CORS⁠ suivante pour vous assurer que les champs d’en-tête CORS sont correctement définis :

[
  {
    "AllowedHeaders": ["*"],
    "AllowedMethods": ["GET"],
    "AllowedOrigins": ["*"],
    "ExposeHeaders": []
  }
]

Pour configurer CORS pour votre bucket S3 :

  1. Accédez à https://s3.console.aws.amazon.com/s3/buckets/⁠
  2. Cliquez sur votre bucket
  3. Cliquez sur « Permissions »
  4. Modifiez « Cross-origin resource sharing (CORS) »

Stockage des segments et des fichiers de listes de lecture

Le Robot attribue à ses fichiers de résultat (segments, segments d’initialisation, fichiers manifestes MPD et fichiers de listes de lecture M3U8) la propriété de métadonnées relative_path appropriée, afin que vous puissiez les stocker facilement avec l’un de nos Robots de stockage.

Dans le paramètre path du Robot de stockage de votre choix, utilisez l’Assembly Variable ${file.meta.relative_path} pour stocker les fichiers en respectant les chemins appropriés afin que les fichiers de listes de lecture fonctionnent.

Exemple d’utilisation

Mise en œuvre de HTTP Live Streaming : encoder la vidéo téléversée en trois versions, puis les découper en plusieurs segments et générer des fichiers de liste de lecture contenant tous les segments :

{
  "steps": {
    ":original": {
      "robot": "/upload/handle"
    },
    "encoded_1080p": {
      "ffmpeg_stack": "v7",
      "preset": "hls/1080p",
      "robot": "/video/encode",
      "use": ":original"
    },
    "encoded_480p": {
      "ffmpeg_stack": "v7",
      "preset": "hls/480p",
      "robot": "/video/encode",
      "use": ":original"
    },
    "encoded_720p": {
      "ffmpeg_stack": "v7",
      "preset": "hls/720p",
      "robot": "/video/encode",
      "use": ":original"
    },
    "hls_bundled": {
      "playlist_name": "my_playlist.m3u8",
      "robot": "/video/adaptive",
      "technique": "hls",
      "use": {
        "bundle_steps": true,
        "steps": [
          "encoded_480p",
          "encoded_720p",
          "encoded_1080p"
        ]
      }
    }
  }
}

Paramètres

  • interpolate

    boolean | Record<string, boolean>

    Détermine si les Assembly Variables sont interpolées pour chaque champ d’instruction.

    Par défaut, la plupart des champs d’instruction des Robots interpolent les Assembly Variables. Définissez ce paramètre sur false pour traiter tous les champs d’instruction comme du texte littéral, ou définissez le chemin d’un champ individuel sur false pour traiter uniquement ce champ comme du texte littéral. Pour les champs propres à un Robot qui sont littéraux par défaut, définissez ce paramètre sur true ou définissez le chemin de ce champ sur true pour réactiver l’interpolation.

    Utilisez des noms de champs tels que path, ou des chemins avec points tels que ffmpeg.vf pour les objets imbriqués.

  • output_meta

    Record<string, boolean> | boolean | Array<string>

    Permet de spécifier un ensemble de métadonnées dont le calcul est plus coûteux en puissance CPU et qui sont donc désactivées par défaut afin que le traitement de vos Assemblies reste rapide.

    Pour les images, vous pouvez ajouter "has_transparency": true dans cet objet pour déterminer si l’image contient des parties transparentes, et "dominant_colors": true pour extraire de l’image un tableau de codes couleur hexadécimaux.

    Pour les images, vous pouvez également ajouter "blurhash": true pour extraire une chaîne BlurHash⁠ — une représentation compacte d’un espace réservé pour l’image, utile pour afficher un aperçu flou pendant le chargement de l’image complète.

    Pour les images, "thumbhash": true extrait plutôt un ThumbHash⁠ encodé en base64 dans meta.thumbhash, accompagné de meta.has_alpha (qui indique si un canal alpha existe, même lorsque l’image est entièrement opaque). Il décrit les pixels orientés selon les données EXIF et utilise la première image des images animées. L’extraction est effectuée au mieux : les images de plus de 40 mégapixels, les formats non pris en charge ou un décodage échoué ou limité ne produisent aucun espace réservé. Une extraction réussie ajoute des frais de métadonnées équivalents à 20 % des octets de ce fichier. Aucun supplément ThumbHash ne s’applique lorsque l’option est désactivée ou lorsqu’aucun hash n’est produit.

    Définissez cette option sur le Step qui produit l’image, par exemple /upload/handle pour les originaux téléversés ou /image/resize pour les sorties traitées. La définir uniquement sur /transloadit/store ne déclenche pas l’extraction : le stockage conserve les métadonnées du Step producteur. Transloadit Storage conserve un hash généré avec sa version immuable et le renvoie dans les résultats stockés et lors des lectures natives de ressources. Les téléversements directs vers S3 ne génèrent pas d’espaces réservés. Un espace réservé contient des informations sur l’image : protégez-le donc avec les mêmes contrôles d’accès que l’image complète.

    Pour les vidéos, vous pouvez ajouter le paramètre "colorspace": true pour extraire l’espace colorimétrique de la vidéo de sortie.

    Pour les vidéos, vous pouvez également ajouter "interlaced": true pour détecter si la vidéo est entrelacée. Cette option combine l’indicateur ffprobe peu coûteux field_order avec une passe d’échantillonnage idet limitée sur les premières images de la source, et expose interlaced, field_order ainsi qu’un objet de diagnostic interlace_detection sous file.meta. Cette opération est coûteuse en calcul et facturée en conséquence.

    Pour l’audio, vous pouvez ajouter "mean_volume": true pour obtenir une valeur unique représentant le volume moyen du fichier audio.

    Vous pouvez également définir cette option sur false pour ignorer l’extraction des métadonnées et accélérer le transcodage.

  • user_meta

    Record<string, any>(par défaut : {})

    Ajoute des métadonnées JSON personnalisées à chaque fichier émis sans modifier son contenu. Les objets et tableaux imbriqués sont pris en charge.

    L’héritage dépend du Robot. Les valeurs sont fusionnées avec la valeur user_meta existante du fichier de sortie ; le Step actuel remplace les clés de premier niveau correspondantes. Attribuez explicitement les clés requises lorsqu’un Robot crée de nouvelles sorties.

    Dans les Steps de traitement, ${file.*} désigne la première entrée et ${result.*} le fichier émis. Les valeurs sont évaluées pour chaque sortie après l’exécution du Robot, avant l’extraction ultérieure des métadonnées et le stockage temporaire. Sur :original, les valeurs sont évaluées pour chaque téléversement avant l’extraction des métadonnées.

    Les Steps en aval lisent ${file.user_meta.key}. Consultez Métadonnées personnalisées pour un exemple complet et les règles d’héritage.

  • result

    boolean(par défaut : false)

    Indique si les résultats de ce Step doivent figurer dans l’Assembly Status JSON

  • queue

    batch

    Définir la file d’attente sur « batch » abaisse manuellement la priorité des Jobs de ce Step afin d’éviter de consommer des emplacements prioritaires de Jobs pour des Jobs qui n’ont pas besoin d’un temps d’attente nul dans la file

  • force_accept

    boolean(par défaut : false)

    Forcer un Robot à accepter un type de fichier qu’il aurait ignoré.

    Par défaut, les Robots ignorent les fichiers qu’ils ne connaissent pas. Le Robot 🤖/video/encode, par exemple, ignorera volontiers les images en entrée.

    Avec le paramètre force_accept défini sur true, vous pouvez forcer les Robots à accepter tous les fichiers qui leur sont envoyés. Cela entraîne généralement des erreurs et ne doit être utilisé que pour le débogage ou pour traiter des cas limites.

  • ignore_errors

    boolean | Array<meta | execute>(par défaut : [])

    Ignore les erreurs pendant certaines phases du traitement.

    Si vous définissez cette valeur sur ["meta"], le Robot ignorera les erreurs lors de l’extraction des métadonnées.

    Si vous définissez cette valeur sur ["execute"], le Robot ignorera les erreurs lors de la phase d’exécution principale.

    Définir cette valeur sur true équivaut à ["meta", "execute"] : les erreurs seront alors ignorées dans les deux phases.

  • use

    string | Array<string> | Array<object> | object

    Indique quel(s) Step(s) utiliser comme entrée.

    • Vous pouvez choisir n’importe quel nom pour les Steps, sauf ":original" (réservé aux téléversements des utilisateurs gérés par Transloadit)
    • Vous pouvez fournir plusieurs Steps en entrée à l’aide de tableaux :
      {
        "use": [
          ":original",
          "encoded",
          "resized"
        ]
      }
      
    • Vous pouvez également étiqueter les Steps d’entrée avec as pour transmettre une intention sémantique aux Robots :
      {
        "use": [
          {
            "name": ":original",
            "as": "image"
          },
          {
            "name": ":original",
            "as": "mask"
          }
        ]
      }
      
    Astuce

    C’est probablement tout ce que vous devez savoir sur use, mais vous pouvez consulter les cas d’utilisation avancés.

  • ffmpeg

    object

    Un objet de paramètres à transmettre à FFmpeg. Si un préréglage est utilisé, les options spécifiées sont fusionnées par-dessus celles du préréglage. Pour connaître les options disponibles, consultez la documentation de FFmpeg⁠. Les options spécifiées ici ont priorité sur celles du préréglage.

  • ffmpeg_stack

    v6 | v7 | v8 | string(par défaut : "v6.0.0")

    Sélectionne la version de la pile FFmpeg à utiliser pour l’encodage. Nous recommandons actuellement d’utiliser « v7 ». Les versions exactes « v6.0.0 », « v7.0.0 » et « v8.0.0 » sont des valeurs héritées qui restent acceptées pour assurer la rétrocompatibilité. Les valeurs « v5.x », dépréciées, sont également acceptées.

  • width

    string | number | null

    Largeur de la nouvelle vidéo, en pixels.

    Si la valeur n’est pas spécifiée et que le paramètre preset est disponible, la largeur fournie EN (English) par preset sera appliquée.

  • height

    string | number | null

    Hauteur de la nouvelle vidéo, en pixels.

    Si la valeur n’est pas spécifiée et que le paramètre preset est disponible, la hauteur fournie EN (English) par preset sera appliquée.

  • preset

    android | android-high | android-low | android_high | android_low | dash-1080p-video | dash-1080p_video |

    Convertit une vidéo selon des paramètres préconfigurés EN (English).

    Vous pouvez utiliser ici la valeur 'empty' si vous spécifiez vos propres paramètres FFmpeg à l’aide du Robot, ou si vous ne souhaitez pas que Transloadit définisse de paramètres d’encodage.

  • technique

    dash | hls | cmaf(par défaut : "dash")

    Détermine la technique de streaming à utiliser. Prend en charge "dash" pour MPEG-Dash, "hls" pour HTTP Live Streaming et "cmaf" pour une sortie CMAF basée sur FFmpeg avec à la fois des manifestes MPEG-Dash et HLS qui font référence aux mêmes segments fMP4.

  • playlist_name

    string

    Le nom du fichier manifeste ou de liste de lecture généré. La valeur par défaut est "playlist.mpd" si votre technique vaut "dash", et "playlist.m3u8" si votre technique vaut "hls". Pour "cmaf", cette valeur définit le nom du manifeste MPEG-Dash et vaut "playlist.mpd" par défaut.

  • hls_playlist_name

    string

    Utilisé uniquement lorsque technique vaut "cmaf". Définit le nom du fichier de la liste de lecture principale HLS générée. La valeur par défaut est "playlist.m3u8".

  • segment_duration

    string | number(par défaut : 10)

    La durée de chaque segment en secondes.

  • closed_captions

    boolean(par défaut : true)

    Détermine si vous souhaitez la prise en charge des sous-titres codés avec la technique "hls".

  • audio_group

    boolean(par défaut : false)

    Lorsque ce paramètre est défini sur true et que la technique "hls" est utilisée, les fichiers d’entrée contenant uniquement de l’audio sont traités comme des rendus audio alternatifs plutôt que comme des variantes de flux autonomes. Cela permet aux lecteurs de proposer la sélection d’une piste audio (par exemple pour plusieurs langues). Les fichiers contenant uniquement de l’audio figurent sous forme d’entrées #EXT-X-MEDIA:TYPE=AUDIO dans la liste de lecture multivariante, et les variantes vidéo y font référence via l’attribut AUDIO.

    Lorsque cette option est activée, seul le flux vidéo des entrées vidéo est inclus dans les segments de sortie (tout audio multiplexé est exclu). Fournissez l’audio séparément sous forme de fichiers d’entrée contenant uniquement de l’audio.

    Cette option n’est prise en charge que pour la technique "hls" et n’a aucun effet avec "dash".

Démonstrations

  • Service to make video compatible for all devices EN (English)
  • Service to implement HTTP Live Streaming (HLS) EN (English)
  • Service to implement MPEG-DASH EN (English)

Articles de blog associés

  • Introducing MPEG-DASH support for adaptive streaming EN (English) 11 octobre 2016
  • New pricing model for future Transloadit customers EN (English) 7 février 2018
  • Guide to encoding videos for streaming with Transloadit EN (English) 28 avril 2020
  • What is HLS? EN (English) 23 janvier 2024
  • Save costs with on-demand video encoding EN (English) 5 mai 2025
Page précédente ← /wasabi/importPage suivante /video/artwork →
Contacter le support⁠

TransloaditVérification de l’état…

Produit

  • Services
  • Tarifs
  • Démos EN (English)
  • Outils
  • Sécurité
  • Support

Entreprise

  • À propos de Transloadit/Presse EN (English)
  • Blog EN (English)/Carrières EN (English)
  • Comparatifs/Matrice de conformité EN (English)
  • Recherche EN (English)
  • Projets open source
  • Solutions
  • Pionniers du web EN (English)

Documentation

  • Premiers pas
  • Transcodage EN (English)
  • FAQ
  • API
  • Guides/Astuces dev
  • Formats pris en charge EN (English)

Plus

  • État de la plateforme⁠
  • Forum de la communauté⁠
  • Uppy
  • tus⁠

© 2009–2026 Transloadit-II GmbH

Confidentialité EN (English)Conditions EN (English)Mentions légales EN (English)
EnglishDeutschEspañolFrançaisPortuguês (Brasil)