Descreve os parâmetros da API para produção de vídeos de montagem de destaques a partir de séries ou filmes, abrangendo materiais de entrada, configuração de edição e configurações de saída.
-
Nota: Ao usar esta API, a região especificada na URL do Object Storage Service (OSS) para todos os ativos de mídia deve corresponder à região do endpoint da OpenAPI que você chamar.
-
Regiões suportadas: China (Shanghai), China (Beijing), China (Hangzhou), China (Shenzhen), EUA (Oeste) e Singapura. O recurso de detecção de rótulos de ação (correspondente aos parâmetros EnableActionRecog e CustomActions) é suportado apenas na região da China (Shanghai).
-
Esta versão não suporta materiais de vídeo sem vozes humanas. Certifique-se de que seus materiais de vídeo atendam a esse requisito.
-
Ao usar o serviço, substitua parâmetros como [your-bucket], [your-region-id], [your-file-name], [your-file-path] e IDs de ativos de mídia (por exemplo, "****9d46c8b4548681030f6e****") nos exemplos pelos seus valores reais.
Notas de uso
-
Para criar uma montagem de destaques a partir de vários vídeos e produzi-los em lote em uma única chamada, consulte SubmitScreenMediaHighlightsJob - Enviar um job de montagem de destaques. Para obter detalhes sobre os principais parâmetros da API, consulte as seções InputConfig, EditingConfig e OutputConfig abaixo.
-
Para recuperar detalhes de um job de produção inteligente de vídeo em lote, consulte GetBatchMediaProducingJob - Obter informações sobre um job de produção inteligente de vídeo em lote.
Parâmetros do InputConfig
O InputConfig especifica materiais de entrada como filmagens, narrações, música de fundo e adesivos.
|
Parâmetro |
Tipo |
Descrição |
Exemplo |
Obrigatório |
|
MediaArray |
List<String> |
|
Consulte Exemplos de parâmetros. |
Sim |
|
HighlightStrategy |
A política de montagem de destaques. |
Consulte Exemplos de parâmetros. |
Não |
|
|
OpeningArray |
List<Media> |
|
Consulte Exemplos de parâmetros. |
Não |
|
EndingArray |
List<Media> |
|
Consulte Exemplos de parâmetros. |
Não |
|
TitleArray |
List<String> |
Títulos. São suportados no máximo 50 títulos. Um título é selecionado aleatoriamente para cada produção. Cada título pode conter até 50 caracteres. |
["Hema Fresh in Huilongguan is now open","Hema Fresh is now open"] |
Não |
|
SubHeadingArray |
List<SubHeading> |
Subtítulos. São suportados até cinco níveis de subtítulos. |
Consulte Exemplos de parâmetros. |
Não |
|
StickerArray |
List<Sticker> |
|
Consulte Exemplos de parâmetros. |
Não |
|
BackgroundMusicArray |
List<String> |
|
Consulte Exemplos de parâmetros. |
Não |
|
BackgroundImageArray |
List<String> |
|
Consulte Exemplos de parâmetros. |
Não |
Parâmetros do HighlightStrategy
|
Parâmetro |
Tipo de dados |
Descrição |
Exemplo |
Obrigatório |
|
IntroConfig |
JSON |
Configuração para o início da seção de destaques.
|
{"Mode":"Disabled"} |
Não |
|
TargetDurationConfig |
Configuração para a duração do vídeo de saída. |
{"TargetDuration": 180, "SpeedRange": [0.95, 1]} |
Não |
|
|
PlotPacingType |
String |
|
Slow |
Não. Valor padrão: Normal. |
|
ThemeConfig |
Configuração do tema de edição. |
{"ThemeType":"JumpHighlight" } |
Não |
|
|
HighlightDescription |
String |
Uma descrição da política de extração de destaques. Este parâmetro só tem efeito quando ThemeConfig.ThemeType está definido como SmoothHighlight. |
Priorize cenas com as seguintes características. Emoções externalizadas evidentes: O protagonista masculino expressa diretamente emoções fortes por meio de ações, como raiva, proteção ou reviravolta (por exemplo, a 'rivalidade' entre o protagonista e seu irmão mais velho). Forte contraste: Transmita conflitos internos por meio de comportamentos ou identidades contrastantes (como lutas de poder ou tensão emocional). Conflitos de enredo concentrados: Concentre-se nos conflitos centrais do protagonista, como rixas familiares ou identidades disfarçadas, para aumentar o envolvimento do espectador. Enredos dramáticos proeminentes: Inclua diálogos bizarros ou reviravoltas no enredo (como 'uma mulher disfarçada de homem é reconhecida') para aumentar o apelo e gerar repercussão. |
Não |
|
FaceInfo |
|
{"ImageInfoList":[{"Name":"Ning X","ImageURL":"http://[your-cdn-domain]/[your-file-path]/face1.png"}]} |
Não |
|
|
EnableActionRecog |
Boolean |
Se deve ativar a detecção de ação. Quando ativada, os clipes de destaque são selecionados com base nos resultados da detecção de ação. Nota
A detecção de ação é suportada apenas na região da China (Shanghai). |
true |
Não. Valor padrão: false. |
|
CustomActions |
List<String> |
Rótulos de ação personalizados. O sistema prioriza o mapeamento com base nos nomes dos rótulos fornecidos. Exemplo: ["fighting","crying"]. O array pode conter até 50 rótulos. Cada rótulo pode conter até 5 caracteres. Nota
A detecção de ação é suportada apenas na região da China (Shanghai). |
["fighting","crying"] |
Não |
Parâmetros do ThemeConfig
|
Parâmetro |
Tipo de dados |
Descrição |
Exemplo |
Obrigatório |
|
ThemeType |
String |
|
SmoothHighlight |
Não. Valor padrão: JumpHighlight. |
Parâmetros do TargetDurationConfig
|
Parâmetro |
Tipo de dados |
Descrição |
Exemplo |
Obrigatório |
|
TargetDuration |
Float |
|
180 |
Não |
|
SpeedRange |
List<String> |
O intervalo de ajuste de velocidade. Se você deseja que o vídeo de saída tenha uma velocidade fixa, defina os valores inicial e final do intervalo de velocidade como iguais. Por exemplo, [1.2, 1.2] define a velocidade como 1,2x. Se você deseja que a duração real do vídeo de saída seja o mais próxima possível do TargetDuration, defina um intervalo de velocidade aceitável. Por exemplo:
|
[0.95, 1] |
Não |
Parâmetros do FaceInfo
|
Parâmetro |
Tipo |
Descrição |
Obrigatório |
|
ImageInfoList |
List<ImageInfo> |
Uma lista de fotos das personagens (rostos). A lista pode conter até 200 fotos. |
Não |
Parâmetros do ImageInfo
|
Parâmetro |
Tipo |
Descrição |
Exemplo |
Obrigatório |
|
Name |
String |
O nome da personagem (rosto). |
Daniel |
Sim |
|
ImageURL |
String |
O endereço de armazenamento da foto da personagem (rosto). A URL deve ser acessível pela Internet. Certifique-se de que a imagem do rosto contenha apenas uma pessoa, e que o rosto esteja nítido, sem obstruções significativas ou partes ausentes. |
http://[your-cdn-domain]/[your-file-path]/face1.png |
Sim, um é obrigatório. |
|
ImageId |
String |
O ID do ativo de mídia da imagem. |
****9d46c886b45481030f6e**** |
Parâmetros do Media
|
Parâmetro |
Tipo de dados |
Descrição |
Exemplo |
Obrigatório |
|
MediaId |
String |
O ID do ativo de mídia. |
****b4549dfvc88681030f6e**** |
Você deve especificar um dos dois. Se ambos forem especificados, o MediaId será usado. |
|
MediaURL |
String |
A URL do ativo de mídia. Apenas OSS autogerenciado é suportado. |
Regra: http://[your-bucket].oss-[your-region-id].aliyuncs.com/[your-file-path]/[your-file-name]_{index}.mp4 Exemplo: http://example.oss-cn-shanghai.aliyuncs.com/example/example_{index}.mp4 |
|
|
In |
Float |
Quando o material é um vídeo, este é o ponto de entrada do material, em segundos. |
0 |
Não |
|
Out |
Float |
Quando o material é um vídeo, este é o ponto de saída do material, em segundos. |
5 |
Não |
|
Duration |
Float |
Quando o material é uma imagem, esta é a duração de exibição do material, em segundos. |
2 |
Não |
|
DyncFrames |
Integer |
Quando o material é um GIF, este é o número de quadros na imagem animada. |
25 |
Não |
Exemplos de parâmetros
Edição com cortes suaves
{
"MediaArray": [
"****9d46c8b42f4581030f6e****",
"****9d46c8b4frtf81030f6e****",
"****9d46c8b4asdf81030f6e****",
"****9d46c8b43d3481030f6e****"
],
"HighlightStrategy": {
"IntroConfig": {
"Mode": "Disabled"
},
"TargetDurationConfig": {
"TargetDuration": 300
},
"ThemeConfig": {
"ThemeType": "SmoothHighlight"
},
"HighlightDescription":"Prioritize scenes with the following features. Obvious externalized emotions: The male protagonist directly expresses strong emotions through actions, such as anger, protection, or comeback (for example, the 'rivalry' between the male protagonist and his older brother). Strong contrast: Convey internal conflicts through contrasting behaviors or identities (such as power struggles or emotional tension). Concentrated plot conflicts: Focus on the protagonist's core conflicts, such as family feuds or disguised identities, to enhance viewer engagement. Prominent dramatic plots: Include bizarre dialogues or plot twists (such as 'a woman disguised as a man is recognized') to increase appeal and create buzz.",
"FaceInfo":{"ImageInfoList":[{"Name":"Ning X","ImageURL":"http://[your-cdn-domain]/[your-file-path]/face1.png"}]},
"EnableActionRecog": true,
"CustomActions": ["fighting","crying"]
},
"OpeningArray": [
{
"MediaId": "****9d46c8b4548681030f6e****",
"In": 0,
"Out": 5
},
{
"MediaId": "****9d46c8b4548661030f6e****",
"In": 0,
"Out": 5
}
],
"EndingArray": [
{
"MediaId": "****9d46c8b4548681030f6e****",
"In": 0,
"Out": 5
},
{
"MediaId": "****9d46c8b4548661030f6e****",
"In": 0,
"Out": 5
}
],
"TitleArray": [
"Hema Fresh in Huilongguan is now open",
"Hema Fresh is now open"
],
"SubHeadingArray": [
{
"Level": 1,
"TitleArray": [
"Subheading 1",
"Subheading 2"
]
},
{
"Level": 3,
"TitleArray": [
"Level 3 subheading"
]
}
],
"StickerArray": [
{
"MediaId": "****9d46c8b4548681030f6e****",
"X": 10,
"Y": 100,
"Width": 300,
"Height": 300,
"Opacity": 0.6
},
{
"MediaURL": "http://[your-bucket].oss-[your-region-id].aliyuncs.com/[your-file-name].png",
"X": 10,
"Y": 100,
"Width": 300,
"Height": 300
}
],
"BackgroundMusicArray": [
"****b4549d46c88681030f6e****",
"****549d46c88b4681030f6e****",
"http://[your-bucket].oss-[your-region-id].aliyuncs.com/[your-file-name].mp3"
],
"BackgroundImageArray": [
"****6c886b4549d481030f6e****",
"****9d46c8548b4681030f6e****",
"http://[your-bucket].oss-[your-region-id].aliyuncs.com/[your-file-name].png"
]
}
Edição com cortes secos
{
"MediaArray": [
"****9d46c8b42f4581030f6e****",
"****9d46c8b4frtf81030f6e****",
"****9d46c8b4asdf81030f6e****",
"****9d46c8b43d3481030f6e****"
],
"HighlightStrategy": {
"IntroConfig": {
"Mode": "Disabled"
},
"ThemeConfig": {
"ThemeType": "JumpHighlight"
},
"EnableActionRecog": true,
"CustomActions": ["fighting","crying"]
},
"OpeningArray": [
{
"MediaId": "****9d46c8b4548681030f6e****",
"In": 0,
"Out": 5
},
{
"MediaId": "****9d46c8b4548661030f6e****",
"In": 0,
"Out": 5
}
],
"EndingArray": [
{
"MediaId": "****9d46c8b4548681030f6e****",
"In": 0,
"Out": 5
},
{
"MediaId": "****9d46c8b4548661030f6e****",
"In": 0,
"Out": 5
}
],
"TitleArray": [
"Hema Fresh in Huilongguan is now open",
"Hema Fresh is now open"
],
"SubHeadingArray": [
{
"Level": 1,
"TitleArray": [
"Subheading 1",
"Subheading 2"
]
},
{
"Level": 3,
"TitleArray": [
"Level 3 subheading"
]
}
],
"StickerArray": [
{
"MediaId": "****9d46c8b4548681030f6e****",
"X": 10,
"Y": 100,
"Width": 300,
"Height": 300,
"Opacity": 0.6
},
{
"MediaURL": "http://[your-bucket].oss-[your-region-id].aliyuncs.com/[your-file-name].png",
"X": 10,
"Y": 100,
"Width": 300,
"Height": 300
}
],
"BackgroundMusicArray": [
"****b4549d46c88681030f6e****",
"****549d46c88b4681030f6e****",
"http://[your-bucket].oss-[your-region-id].aliyuncs.com/[your-file-name].mp3"
],
"BackgroundImageArray": [
"****6c886b4549d481030f6e****",
"****9d46c8548b4681030f6e****",
"http://[your-bucket].oss-[your-region-id].aliyuncs.com/[your-file-name].png"
]
}
Parâmetros do EditingConfig
O EditingConfig especifica as configurações de produção para o vídeo de saída, como volume, posição, transições e filtros.
|
Parâmetro |
Tipo |
Descrição |
Exemplo |
Obrigatório |
|
JSON |
Configuração para os materiais de vídeo de entrada. |
Consulte Exemplo de parâmetro. |
Não |
|
|
JSON |
Configuração de título. Suporta parâmetros de legenda. |
Consulte Exemplo de parâmetro. |
Não |
|
|
SubHeadingConfig |
JSON |
Configuração de subtítulos multinível. Suporta parâmetros de legenda. Descrição dos campos JSON:
|
Consulte Exemplo de parâmetro. |
Não |
|
JSON |
Configuração para música de fundo. |
Consulte Exemplo de parâmetro. |
Não |
|
|
JSON |
Configuração para a imagem de fundo. Se uma imagem de fundo já estiver configurada no InputConfig, este campo não terá efeito. |
Consulte Exemplo de parâmetro. |
Não |
|
|
JSON |
Configuração para o processamento de montagem. |
Consulte Exemplo de parâmetro. |
||
|
JSON |
Configuração de canvas para visualizações de página frontend. |
{"Width": 1080,"Height": 1920} |
Não |
|
|
ProduceConfig |
JSON |
Configuração para edição e produção de vídeo padrão. Para mais informações sobre os campos, consulte: EditingProduceConfig |
{"AutoRegisterInputVodMedia":true,"OutputWebmTransparentChannel":true,"CoverConfig":{"StartTime":3.3},"AudioChannelCopy":"left","PipelineId":"xxxd54a97cff4108b555b01166d4bxxx","MaxBitrate":5000,"KeepOriginMaxBitrate":false,"KeepOriginVideoMaxFps":false} |
Não |
Parâmetros do ProcessConfig
|
Parâmetro |
Tipo |
Descrição |
Exemplo |
Obrigatório |
|
AllowVfxEffect |
Boolean |
Se deve permitir efeitos especiais. |
true |
Não. Valor padrão: false. |
|
VfxEffectProbability |
Float |
A probabilidade de aplicar um efeito especial a cada clipe de vídeo. Intervalo de valores: 0,0 a 1,0. Suporta até duas casas decimais. |
0.6 |
Não. Valor padrão: 0,5. |
|
VfxFirstClipEffectList |
List<String> |
|
["slightshow","starfieldshinee"] |
Não |
|
VfxNãotFirstClipEffectList |
List<String> |
|
["zoomslight","zoom"] |
Não |
|
AllowTransition |
Boolean |
Se deve permitir transições. |
true |
Não. Valor padrão: false. |
|
TransitionDuration |
Float |
A duração da transição, em segundos. Se a duração da transição for maior que a duração do clipe menos 1, o efeito de transição para esse clipe não terá efeito. |
0.5 |
Não. Valor padrão: 0,5 segundos. |
|
TransitionList |
List<String> |
Uma lista de efeitos de transição personalizados. Quando AllowTransition é true, um efeito de transição é selecionado aleatoriamente desta lista para produção. Para os efeitos de transição disponíveis, consulte Biblioteca de efeitos de transição. Se este parâmetro estiver vazio, uma transição será selecionada aleatoriamente entre as seguintes: "linearblur", "colordistance", "crosshatch", "dreamyzoom" e "doomscreentransition_up". |
["directional", "linearblur"] |
Não |
|
UseUniformTransition |
Boolean |
Se deve usar o mesmo efeito de transição em todo um único vídeo de saída. |
true |
Não. Valor padrão: true. |
|
AllowFilter |
Boolean |
Se deve permitir filtros personalizados. |
false |
Não. Valor padrão: false. |
|
FilterList |
List<String> |
Uma lista de efeitos de filtro personalizados. Quando AllowFilter é true, um filtro é selecionado aleatoriamente desta lista para produção. Para os efeitos de filtro disponíveis, consulte Exemplos de efeitos de filtro. Se este parâmetro estiver vazio, nenhum efeito de filtro será adicionado. |
["m1", "m2"] |
Não |
Exemplo de parâmetro
{
"MediaConfig": {
"Volume": 0 // Mute the source video material by default.
},
"TitleConfig": {
"Alignment": "TopCenter",
"AdaptMode": "AutoWrap",
"Font": "Alibaba PuHuiTi 2.0 95 ExtraBold",
"SizeRequestType": "Nominal",
"Y": 0.1, // The Y-coordinate of the title when the output video is in portrait mode.
"Y": 0.05, // The Y-coordinate of the title when the output video is in landscape mode.
"Y": 0.08 // The Y-coordinate of the title when the output video is in square mode.
},
"SubHeadingConfig": {
"1": {
"Y": 0.3,
"FontSize": 40
},
"3": {
"Y": 0.5,
"FontSize": 30
}
},
"BackgroundMusicConfig": {
"Volume": 0.2, // Set the background music volume to 20% by default.
"Style": null
},
"ProcessConfig": {
"AllowVfxEffect": false, // Specifies whether to add special effects.
"AllowTransition": false, // Specifies whether to add transitions.
}
}
Parâmetros do TemplateConfig
O TemplateConfig especifica um modelo de produção de vídeo. Para descrições de parâmetros e exemplos de uso, consulte TemplateConfig.
Parâmetros do OutputConfig
O OutputConfig especifica parâmetros de saída como o endereço de entrega, regras de nomenclatura, dimensões e o número de vídeos a serem produzidos.
|
Parâmetro |
Tipo |
Descrição |
Exemplo |
Obrigatório |
|
MediaURL |
String |
O endereço do vídeo de saída. Deve conter o placeholder {index}. |
Regra: http://[your-bucket].oss-[your-region-id].aliyuncs.com/[your-file-path]/[your-file-name]_{index}.mp4 Exemplo: http://example.oss-cn-shanghai.aliyuncs.com/example/example_{index}.mp4 |
Obrigatório quando GeneratePreviewOnly é false e o vídeo de saída é entregue ao OSS. |
|
StorageLocation |
String |
O endereço de armazenamento para ativos de mídia entregues ao VOD. |
Regra: [your-vod-bucket].oss-[your-region-id].aliyuncs.com Exemplo: outin-****6c886b4549d481030f6e****.oss-cn-shanghai.aliyuncs.com |
Obrigatório quando GeneratePreviewOnly é false e o vídeo de saída é entregue ao VOD. |
|
FileName |
String |
O nome do arquivo de saída. Deve conter o placeholder {index}. |
Regra: [your-file-name]__{index}.mp4 Exemplo: example_{index}.mp4 |
Obrigatório quando GeneratePreviewOnly é false e o vídeo de saída é entregue ao VOD. |
|
GeneratePreviewOnly |
Boolean |
|
false |
Não. Valor padrão: false. |
|
Count |
Integer |
|
1 |
Não. Default valor: 1. |
|
Width |
Integer |
A largura do vídeo de saída, em px. |
1080 |
Sim |
|
Height |
Integer |
A altura do vídeo de saída, em px. |
1920 |
Sim |
|
JSONObject |
Configuração para o stream de vídeo de saída, como Crf e Codec. |
{"Crf": 27} |
Não |
Exemplo de parâmetro
{
"MediaURL": "http://[your-bucket].oss-[your-region-id].aliyuncs.com/[your-file-name]_{index}.mp4",
"Count": 1,
"Width": 1080,
"Height": 1920,
"Video": {"Crf": 27},
"GeneratePreviewOnly":false
}
Lógica de processamento
-
Configure os materiais de edição usando o MediaArray. Os materiais são analisados e processados na ordem em que são fornecidos.
-
Configure a abertura e o encerramento da seção de destaques usando o HighlightStrategy.
-
Configure a abertura fixa (pre-roll) antes da seção de destaques e o encerramento fixo (post-roll) depois dela usando OpeningArray e EndingArray.
-
Os parâmetros na chamada da API de produção de vídeo com um clique têm prioridade sobre os parâmetros definidos em um modelo. Se você configurar o TemplateConfig, o sistema primeiro lê os parâmetros não vazios da chamada da API. Para quaisquer parâmetros vazios, o sistema lê os valores do modelo.