Tous les produits
Search
Centre de documentation

Intelligent Media Services:Alignement automatique des médias et de leur durée

Dernière mise à jour :Aug 11, 2026

Utilisez ClipId et ReferenceClipId pour aligner automatiquement les médias audio et vidéo sur différentes pistes, sans spécifier manuellement les heures de début et de fin.

Pourquoi utiliser l'alignement inter-piste

Dans une timeline standard, aligner des médias sur plusieurs pistes impose de définir TimelineIn et TimelineOut pour chaque clip afin d'assurer une lecture et une fin synchronisées. Cette méthode est source d'erreurs lorsque la timeline contient du contenu dynamique, comme des discours générés par IA de durée variable.

L'alignement inter-piste supprime cette contrainte. Attribuez un ClipId à un clip de référence et définissez ReferenceClipId sur tout clip dépendant : le système calcule alors automatiquement l'heure de début, l'heure de fin et la durée du clip dépendant. Vous pouvez ainsi aligner de l'audio avec de la vidéo, de l'audio avec de l'audio, de la vidéo avec de l'audio ou de la vidéo avec de la vidéo sur différentes pistes.

Fonctionnement

Protocole d'alignement

Utilisez ClipId pour étiqueter un clip, puis ReferenceClipId sur un autre clip pour le lier au premier. Le clip lié hérite de la position dans la timeline et de la durée du clip de référence.

{
  "VideoTracks": [
    {
      "VideoTrackClips": [
        {
          "In": 0,
          "Out": 5,
          "MediaURL": "https://your-bucket.oss-cn-shanghai.aliyuncs.com/head.mp4"
        },
        {
          "ReferenceClipId": "audio_1",
          "MediaURL": "https://your-bucket.oss-cn-shanghai.aliyuncs.com/video1.mp4"
        },
        {
          "MediaURL": "https://your-bucket.oss-cn-shanghai.aliyuncs.com/end.mp4",
          "In": 0,
          "Out": 5
        }
      ]
    }
  ],
  "AudioTracks": [
    {
      "AudioTrackClips": [
        {
          "TimelineIn": 5,
          "ClipId": "audio_1",
          "MediaId": "7980d8f************e6f7e5696301",
          "In": 0,
          "Out": 10
        }
      ]
    }
  ]
}

Dans cet exemple, le deuxième clip vidéo ne comporte aucune valeur In, Out ni TimelineIn : sa durée, son heure de début et son heure de fin sont déduites automatiquement de audio_1.

image

Limites

  1. Les paramètres ClipId et ReferenceClipId sont pris en charge uniquement sur les pistes audio et vidéo. Les pistes d'effets et d'images ne les prennent pas en charge.

  2. L'alignement fonctionne exclusivement entre des clips situés sur des pistes différentes. Référencer un clip appartenant à la même piste invalide la timeline et provoque l'échec de la production.

  3. Si un clip possède à la fois ReferenceClipId et TimelineIn/TimelineOut configurés, les valeurs TimelineIn et TimelineOut sont prioritaires et l'alignement ne s'applique pas.

  4. Lorsque le clip dépendant est plus court que le clip de référence, sa vitesse de lecture diminue pour correspondre à la durée de référence. Par exemple, un clip de 10 secondes aligné sur un clip de 20 secondes est lu à une vitesse de 0,5x.

  5. Si le clip dépendant est plus long que le clip de référence, il est automatiquement tronqué pour s'y adapter. Ainsi, un clip de 20 secondes aligné sur un clip de 10 secondes ne conserve que ses 10 premières secondes.

Scénarios courants

Aligner un clip audio sur un clip vidéo

Le clip audio fait référence au clip vidéo (video_1) et hérite de sa durée. Un effet de volume réduit le gain audio à 0,2.

{
  "VideoTracks": [
    {
      "VideoTrackClips": [
        {
          "MediaId": "e6f7e57980************d8f696301",
          "In": 0,
          "Out": 4
        },
        {
          "ClipId":"video_1",
          "MediaId": "e6f7e57980************d8f696301",
          "In": 2,
          "Out": 10
        }
      ]
    }
  ],
  "AudioTracks": [
    {
      "AudioTrackClips": [
        {
          "ReferenceClipId": "video_1",
          "MediaId": "7980d8f************e6f7e5696301",
          "Effects": [
            {
              "Type": "Volume",
              "Gain": "0.2"
            }
          ]
        }
      ]
    }
  ]
}

Aligner un clip vidéo sur un clip audio

Le clip vidéo fait référence au clip audio (audio_1) et sa durée de lecture correspond exactement à celle de cet audio.

{
  "VideoTracks": [
    {
      "VideoTrackClips": [
        {
          "MediaId": "e6f7e57980************d8f696301",
          "In": 0,
          "Out": 5
        },
        {
          "ReferenceClipId":"audio_1",
          "MediaId": "e6f7e57980************d8f696301"
        }
      ]
    }
  ],
  "AudioTracks": [
    {
      "AudioTrackClips": [
        {
          "TimelineIn": 5,
          "ClipId": "audio_1",
          "MediaId": "7980d8f************e6f7e5696301"
        }
      ]
    }
  ]
}

Aligner une piste vidéo avec transitions sur plusieurs discours AI_TTS

Ce scénario repose sur la structure de timeline suivante :

  1. La piste audio contient trois discours générés par AI_TTS.

  2. La piste vidéo comprend cinq clips. Une transition « waterdrop » de 2 secondes sépare le deuxième du troisième clip, ainsi que le troisième du quatrième.

  3. Les deuxième, troisième et quatrième clips vidéo sont alignés sur les trois discours. Chaque discours commence et se termine au point médian des transitions adjacentes.

image

Chaque clip vidéo intermédiaire utilise ReferenceClipId pour verrouiller sa durée sur le discours correspondant. Le premier et le dernier clip emploient des valeurs Out fixes pour constituer les segments d'ouverture et de clôture.

{
  "VideoTracks": [{
    "VideoTrackClips": [{
      "Out": 5,
      "MediaId": "e6f7e57980************d8f696301"
    },{
      "ReferenceClipId":"speech_1",
      "MediaId": "e6f7e57980************d8f696301",
      "Effects": [{
        "Type": "Transition",
        "SubType": "waterdrop",
        "Duration": 2
      }]
    }, {
      "ReferenceClipId":"speech_2",
      "MediaId": "e6f7e57980************d8f696301",
      "Effects": [{
        "Type": "Transition",
        "SubType": "waterdrop",
        "Duration": 2
      }]
    }, {
      "ReferenceClipId":"speech_3",
      "MediaId": "e6f7e57980************d8f696301"
    }, {
        "Out": 10,
        "MediaId": "e6f7e57980************d8f696301"
    }]
  }],
  "AudioTracks": [{
    "AudioTrackClips": [{
      "TimelineIn":5,
      "Type": "AI_TTS",
      "Content": "Speech 1 Speech 1 Speech 1. Speech 1 Speech 1 Speech 1 Speech 1. Speech 1 Speech 1 Speech 1. Speech 1 Speech 1 Speech 1. Speech 1 Speech 1. Speech 1. Speech 1 Speech 1 Speech 1 Speech 1.",
      "Voice": "sicheng",
      "ClipId":"speech_1",
      "Effects": [{
        "Type": "AI_ASR",
        "Font": "AlibabaPuHuiTi",
        "Alignment": "TopCenter",
        "Y": 90,
        "FontSize": 56,
        "FontColor": "#ffffff"
      }]
    }, {
      "Type": "AI_TTS",
      "Content": "Speech 2 Speech 2 Speech 2 Speech 2 Speech 2. Speech 2 Speech 2 Speech 2 Speech 2. Speech 2 Speech 2 Speech 2 Speech 2 Speech 2 Speech 2 Speech 2. Speech 2 Speech 2 Speech 2 Speech 2.",
      "Voice": "sicheng",
      "ClipId":"speech_2",
      "Effects": [{
        "Type": "AI_ASR",
        "Font": "AlibabaPuHuiTi",
        "Alignment": "TopCenter",
        "Y": 90,
        "FontSize": 56,
        "FontColor": "#ffffff"
      }]
    }, {
      "Type": "AI_TTS",
      "Content": "Speech 3 Speech 3 Speech 3 Speech 3 Speech 3. Speech 3 Speech 3 Speech 3. Speech 3 Speech 3 Speech 3 Speech 3 Speech 3. Speech 3 Speech 3 Speech 3 Speech 3 Speech 3. Speech 3 Speech 3.",
      "Voice": "sicheng",
      "ClipId":"speech_3",
      "Effects": [{
        "Type": "AI_ASR",
        "Font": "AlibabaPuHuiTi",
        "Alignment": "TopCenter",
        "Y": 90,
        "FontSize": 56,
        "FontColor": "#ffffff"
      }]
    }]
  }]
}

Tronquer l'audio pour correspondre à un clip vidéo

Ce scénario suit la structure de timeline ci-après :

  1. La piste vidéo contient trois clips. Le deuxième clip dure 8 secondes (In: 10, Out: 18).

  2. La piste audio comporte un unique discours AI_TTS dont la durée dépasse 8 secondes.

  3. Le clip audio fait référence au deuxième clip vidéo. Il n'est lu que pendant 8 secondes, le surplus étant automatiquement tronqué.

{
  "VideoTracks": [
    {
      "VideoTrackClips": [
        {
          "MediaId": "e6f7e57980************d8f696301",
          "In": 0,
          "Out": 5
        },
        {
          "ClipId":"video_1",
          "MediaId": "e6f7e57980************d8f696301",
          "In": 10,
          "Out": 18
        },
        {
          "MediaId": "e6f7e57980************d8f696301",
          "In": 3,
          "Out": 10
        }
      ]
    }
  ],
  "AudioTracks": [
    {
      "AudioTrackClips": [
        {
          "ReferenceClipId": "video_1",
          "Type": "AI_TTS",
          "Content": "Hello everyone, hello everyone, hello everyone, hello everyone, hello everyone, hello everyone, hello everyone, hello everyone, hello everyone, hello everyone, hello everyone, hello everyone, hello everyone, hello everyone, hello everyone, hello everyone, hello everyone, hello everyone, hello everyone, hello everyone, hello everyone, hello everyone, hello everyone, hello everyone, hello everyone, hello everyone, hello everyone, hello everyone, hello everyone, hello everyone, hello everyone, hello everyone, hello everyone, hello everyone, hello everyone, hello everyone, hello everyone, hello everyone, hello everyone, hello everyone, hello everyone, hello everyone, hello everyone, hello everyone, hello everyone, hello everyone, hello everyone, hello everyone, hello everyone, hello everyone, hello everyone, hello everyone, hello everyone, hello everyone, hello everyone, hello everyone, hello everyone, hello everyone, hello everyone, hello everyone, hello everyone.",
          "Voice": "Siqi",
          "SpeechRate": 0,
          "PitchRate": 0,
          "Effects": [
            {
              "Type": "AI_ASR",
              "Font": "WenQuanYi Zen Hei Mono",
              "FontSize": 26,
              "FontColorOpacity": 1,
              "FontColor": "#000000",
              "FontFace": {
                "Bold": true,
                "Italic": true,
                "Underline": false
              }
            }
          ]
        }
      ]
    }
  ]
}

Aligner une vidéo d'arrière-plan sur une vidéo d'avatar

La structure de timeline pour ce scénario est la suivante :

  1. La timeline comporte deux pistes vidéo. La première contient une vidéo classique servant d'arrière-plan. La seconde contient un clip d'avatar IA accompagné de sous-titres et d'un discours.

  2. La vidéo d'arrière-plan est mise en sourdine et alignée sur le clip d'avatar, de sorte que sa durée de lecture correspond exactement à celle de l'avatar.

{
  "VideoTracks": [
    {
      "VideoTrackClips": [
        {
          "ReferenceClipId": "avatar2",
          "MediaId": "e6f7e57980************d8f696301",
          "Effects": [
            {
              "Type": "Volume",
              "Gain": 0
            }
          ]
        }
      ]
    },
    {
      "VideoTrackClips": [
        {
          "ClipId": "avatar2",
          "Type": "AI_Avatar",
          "AvatarId": "yunxin",
          "Content": "This shopping method stores goods in warehouses, which improves logistics efficiency and the safety of goods. Many e-commerce companies have already started experimenting with this model.",
          "X": 50,
          "Y": 0,
          "Effects": [
            {
              "Type": "AI_ASR",
              "Font": "AlibabaPuHuiTi",
              "Alignment": "BottomCenter",
              "Y": 50,
              "FontSize": 40,
              "FontColor": "#ffffff",
              "FontFace": {
                "Bold": true,
                "Italic": false,
                "Underline": false
              }
            }
          ]
        }
      ]
    }
  ]
}

Superposer une image sur une vidéo d'avatar

Ce scénario s'appuie sur la structure de timeline suivante :

  1. La première piste vidéo comprend trois clips : une ouverture de 5 secondes, un segment d'avatar IA avec sous-titres et discours, puis une fermeture de 5 secondes.

  2. La seconde piste vidéo contient un unique clip image, aligné sur le clip d'avatar et superposé à celui-ci.

{
  "VideoTracks": [
    {
      "VideoTrackClips": [
        {
          "MediaURL": "http://your-bucket.oss-cn-shanghai.aliyuncs.com/opening.mp4",
          "Out": 5
        },
        {
          "ClipId": "avatar2",
          "Type": "AI_Avatar",
          "AvatarId": "yunxin",
          "Content": "This shopping method stores goods in warehouses, which improves logistics efficiency and the safety of goods. Many e-commerce companies have already started experimenting with this model.",
          "X": 50,
          "Y": 0,
          "Effects": [
            {
              "Type": "AI_ASR",
              "Font": "AlibabaPuHuiTi",
              "Alignment": "BottomCenter",
              "Y": 50,
              "FontSize": 40,
              "FontColor": "#ffffff",
              "FontFace": {
                "Bold": true,
                "Italic": false,
                "Underline": false
              }
            }
          ]
        },
        {
          "MediaURL": "http://your-bucket.oss-cn-shanghai.aliyuncs.com/ending.mp4",
          "Out": 5
        }
      ]
    },
    {
      "VideoTrackClips": [
        {
          "ReferenceClipId": "avatar2",
          "Type": "Image",
          "MediaId": "e6f7e57980************d8f696301",
          "Width": 0.2,
          "Height": 0.2,
          "X": 0.1,
          "Y": 0.1
        }
      ]
    }
  ]
}