Utilize ClipId e ReferenceClipId para alinhar automaticamente materiais de áudio e vídeo entre faixas, sem precisar especificar manualmente os horários de início e fim.
Por que usar o alinhamento entre faixas
Em uma linha do tempo padrão, o alinhamento de materiais entre faixas exige a definição de TimelineIn e TimelineOut para cada clipe, garantindo que a reprodução e o término ocorram de forma sincronizada. Esse processo é propenso a erros quando a linha do tempo inclui conteúdo dinâmico, como falas geradas por IA com durações variáveis.
O alinhamento de materiais entre faixas elimina essa necessidade. Atribua um ClipId a um clipe de referência e defina ReferenceClipId em qualquer clipe dependente. O sistema calcula automaticamente o horário de início, o horário de término e a duração do clipe dependente. Isso permite alinhar áudio com vídeo, áudio com áudio, vídeo com áudio e vídeo com vídeo em diferentes faixas.
Como funciona
O protocolo de alinhamento
Use ClipId para rotular um clipe e ReferenceClipId em outro clipe para vinculá-lo ao clipe rotulado. O clipe vinculado herda a posição na linha do tempo e a duração do clipe de referência.
{
"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
}
]
}
]
}
Neste exemplo, o segundo clipe de vídeo não possui valores para In, Out ou TimelineIn. Sua duração, horário de início e horário de término são derivados automaticamente de audio_1.
Limites
Os parâmetros
ClipIdeReferenceClipIdtêm suporte apenas em faixas de áudio e vídeo. Faixas de efeitos e faixas de imagem não aceitam esses parâmetros.O alinhamento funciona exclusivamente entre clipes de faixas diferentes. Referenciar um clipe na mesma faixa invalida a linha do tempo e causa falha na produção.
Caso um clipe tenha
ReferenceClipIdeTimelineIn/TimelineOutconfigurados simultaneamente,TimelineIneTimelineOutterão precedência e o alinhamento não surtirá efeito.Se o clipe dependente for mais curto que o clipe de referência, sua velocidade de reprodução diminuirá para corresponder à duração da referência. Por exemplo, um clipe de 10 segundos alinhado a um clipe de 20 segundos será reproduzido na velocidade 0,5x.
Quando o clipe dependente for mais longo que o clipe de referência, ele será truncado automaticamente para corresponder à duração. Por exemplo, um clipe de 20 segundos alinhado a um clipe de 10 segundos manterá apenas seus primeiros 10 segundos.
Cenários comuns
Alinhar um clipe de áudio a um clipe de vídeo
O clipe de áudio referencia o clipe de vídeo (video_1) e herda sua duração. Um efeito de volume reduz o ganho de áudio para 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"
}
]
}
]
}
]
}
Alinhar um clipe de vídeo a um clipe de áudio
O clipe de vídeo referencia o clipe de áudio (audio_1) e é reproduzido exatamente durante a duração desse áudio.
{
"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"
}
]
}
]
}
Alinhar uma faixa de vídeo com transições a múltiplas falas AI_TTS
Este cenário utiliza a seguinte estrutura de linha do tempo:
A faixa de áudio contém três falas geradas por AI_TTS.
A faixa de vídeo contém cinco clipes. Uma transição "waterdrop" de 2 segundos separa o segundo e o terceiro clipes, bem como o terceiro e o quarto clipes.
O segundo, o terceiro e o quarto clipes de vídeo estão alinhados às três falas. Cada fala começa e termina no ponto médio das transições adjacentes.
Cada clipe de vídeo intermediário usa ReferenceClipId para fixar sua duração à fala correspondente. O primeiro e o último clipes utilizam valores fixos de Out para formar os segmentos de abertura e encerramento.
{
"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"
}]
}]
}]
}
Truncar áudio para corresponder a um clipe de vídeo
Este cenário adota a seguinte estrutura de linha do tempo:
A faixa de vídeo contém três clipes. O segundo clipe tem 8 segundos de duração (
In: 10,Out: 18).A faixa de áudio contém uma única fala AI_TTS com duração superior a 8 segundos.
O clipe de áudio referencia o segundo clipe de vídeo. Ele é reproduzido por apenas 8 segundos, e o excesso é truncado automaticamente.
{
"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
}
}
]
}
]
}
]
}
Alinhar um vídeo de fundo a um vídeo de avatar
A estrutura da linha do tempo neste cenário é a seguinte:
A linha do tempo possui duas faixas de vídeo. A primeira faixa contém um vídeo comum usado como fundo. A segunda faixa contém um clipe de avatar de IA com legendas e uma fala.
O vídeo de fundo é silenciado e alinhado ao clipe do avatar, sendo reproduzido exatamente pelo mesmo tempo que o 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
}
}
]
}
]
}
]
}
Sobrepor uma imagem a um vídeo de avatar
Neste cenário, a linha do tempo segue esta estrutura:
A primeira faixa de vídeo contém três clipes: uma abertura de 5 segundos, um segmento de avatar de IA com legendas e fala, e um encerramento de 5 segundos.
A segunda faixa de vídeo contém um único clipe de imagem alinhado ao clipe do avatar e sobreposto a ele.
{
"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
}
]
}
]
}