Todos os produtos
Search
Central de documentação

Intelligent Media Services:Script-to-Video FAQ

Última atualização: Jun 28, 2026

Dúvidas comuns sobre como o Script-to-Video processa mídias, controla o tempo e gera vídeos de saída.

Lógica de processamento

Como funciona o modo Global Scripts?

  • O sistema divide inicialmente os vídeos de entrada longos em segmentos menores. Durante a composição, ele segue a ordem dos grupos, seleciona aleatoriamente um segmento de cada grupo e os concatena para formar o vídeo final. O parâmetro SingleShotDuration controla a duração de cada segmento após a divisão.

  • Se você fornecer roteiros globais de narração, o sistema os distribui sem repetições enquanto houver roteiros disponíveis. Por exemplo, ao fornecer 3 roteiros para gerar 5 vídeos, o sistema usa todos os 3 pelo menos uma vez e reutiliza alguns para preencher os vídeos restantes.

  • Quando há uma narração global e o vídeo montado tem duração inferior à da narração, o sistema seleciona aleatoriamente segmentos adicionais de grupos intermediários (não iniciais nem finais) até que a duração do vídeo corresponda à da narração.

  • A duração final do vídeo obedece à seguinte ordem de prioridade:

    • Com um roteiro global de narração, a duração final equivale à duração da narração.

    • Sem um roteiro global de narração:

      • Se FixedDuration estiver definido, a duração final corresponderá ao valor de FixedDuration.

      • Se MaxDuration estiver definido, a duração final será igual a SingleShotDuration multiplicada pelo número de grupos (tamanho de SpeechTextArray), limitada ao valor de MaxDuration.

Como funciona o modo Segmented Scripts?

  • Neste modo, configure os roteiros de narração dentro de cada MediaGroup pelo campo SpeechTextArray. Assim como no modo Global Scripts, o sistema divide primeiro os vídeos de entrada longos em segmentos. Não defina InputConfig.SpeechText nem um SpeechTextArray global, pois isso causa erro.

  • Se MediaGroup.SpeechTextArray estiver vazio para um grupo, esse grupo ficará sem narração. A duração padrão será de 5 segundos, controlada por MediaGroup.Duration.

  • Para ajustar o volume do áudio dos ativos em um MediaGroup específico, defina MediaGroup.Volume. Esse parâmetro tem precedência sobre EditingConfig.MediaConfig.Volume.

  • Cada grupo pode conter vários roteiros de narração. Se todos os grupos com narração tiverem a mesma quantidade de roteiros, o sistema os combina em ordem: todos os grupos usam seu enésimo roteiro simultaneamente. Caso a quantidade de roteiros varie entre os grupos, o sistema seleciona aleatoriamente um segmento de cada grupo para compor a narração completa.

Otimização de resultados

Como corrigir transições de cena bruscas ou excessivamente frequentes?

Use o recurso de análise de planos do Smart Tagging para dividir automaticamente sua mídia em planos significativos. Isso evita cortes que ignorem os limites naturais das cenas e produz transições mais suaves. Os passos abaixo aplicam-se a um único ativo de vídeo; repita-os para cada ativo adicional.

  1. Para o ativo de vídeo, chame SubmitSmarttagJob. Defina TemplateId com o valor fixo "S00000103-000003".

  2. Obtenha os resultados da análise de planos chamando QuerySmarttagJobI. Na resposta, localize a entrada data onde type=ClipSplit. O valor é um array JSON em que StartTime e EndTime indicam os limites de cada plano em segundos:

    [
      {
        "EndTime": 5.4,
        "ClipType": "opening",
        "StartTime": 0.0
      },
      {
        "EndTime": 9.16,
        "ClipType": "opening",
        "StartTime": 5.4
      },
      {
        "EndTime": 12.88,
        "ClipType": "opening",
        "StartTime": 9.16
      },
      {
        "EndTime": 16.0,
        "ClipType": "opening",
        "StartTime": 12.88
      }
    ]
    
  3. Transmita os limites dos planos obtidos na etapa 2 para o parâmetro EditingConfig.MediaConfig.MediaMetaDataArray.TimeRangeList no job Script-to-Video. Cada par In/Out corresponde a um plano do resultado ClipSplit:

    {
      "MediaConfig": {
        "MediaMetaDataArray": [
          {
            "Media": "https://******.****.****/public-template/video/movie_apsara_4.mp4",
            "GroupName": "opening",
            "TimeRangeList": [
              {
                "In": 0,
                "Out": 5.4
              },
              {
                "In": 5.4,
                "Out": 9.16
              },
              {
                "In": 9.16,
                "Out": 12.88
              },
              {
                "In": 12.88,
                "Out": 16.0
              }
            ]
          }
        ]
      }
    }
  4. Defina MediaGroup.SplitMode como NoSplit para o MediaGroup correspondente. Essa configuração impede que o sistema divida novamente os clipes já segmentados, preservando a integridade dos planos e garantindo transições mais suaves.

Como controlar o ritmo das mudanças de cena e a duração dos planos?

Use estes dois parâmetros conforme o tipo de ativo:

  • Para imagens: use ImageDuration para definir quanto tempo cada imagem permanecerá visível no vídeo de saída.

  • Para vídeos: use o parâmetro SingleShotDuration para determinar a duração dos segmentos gerados após a divisão do ativo de vídeo.

Como é calculada a duração de exibição de uma imagem no vídeo final?

Quando um grupo de mídia contém ativos de imagem e vídeo e uma imagem é selecionada, sua duração de exibição segue esta ordem de prioridade:

  • Se ImageDuration estiver definido, o sistema usa esse valor.

  • Com narração, a duração da imagem corresponde à duração total da narração dividida pela quantidade de itens em MediaGroupArray.

  • Se FixedDuration estiver definido, mas não houver narração, a duração da imagem será igual a FixedDuration dividida pela quantidade de itens em MediaGroupArray.

Como garantir que um clipe de vídeo seja reproduzido integralmente no vídeo final?

  • Configure o MediaGroup.SplitMode do grupo como NoSplit e defina MediaGroup.Duration com a duração exata do clipe original. Por exemplo, para reproduzir um clipe de 20 segundos por completo, configure MediaGroup.SplitMode como NoSplit e MediaGroup.Duration como 20.

  • Se o ativo selecionado for mais curto que o valor especificado em MediaGroup.Duration, o sistema ajustará a velocidade de reprodução para preencher o tempo. Por exemplo, se MediaGroup.Duration for 10 segundos, mas o clipe selecionado tiver 20 segundos, a reprodução ocorrerá em velocidade 2x.

Como alternar entre clipes de vídeo com áudio original e clipes com narração?

  • Use MediaGroup.Volume para controlar o volume dos ativos em cada grupo de mídia. Defina o valor como 1 para reproduzir o clipe com áudio original ou como 0 para silenciá-lo e permitir que a narração predomine.

  • Por exemplo, considere três grupos — MediaGroup1, MediaGroup2 e MediaGroup3 — em que MediaGroup1 e MediaGroup3 possuem narração e MediaGroup2 é reproduzido com áudio original. Nesse caso, configure MediaGroupArray da seguinte forma:

[{
"GroupName": "MediaGroup1",
"MediaArray": ["https://ice-*****-test.oss-cn-*****.aliyuncs.com/0-test-batch-editing-materials/160134%2B9859695-2032aa5c-2803-47cd-bf65-8a40d66598db.png", "https://ice-auto-test.oss-cn-shanghai.aliyuncs.com/0-test-batch-editing-materials/cloud.mp4"],
"SpeechTextArray": ["Grand opening! A Freshippo store opens today at the nearby mall.", "A Freshippo store opens today at the nearby mall", "<speak>The battle is <phoneme alphabet=\"py\" ph=\"zheng4 hao3\">fierce</phoneme>. The table tennis legend Ma Long, is charging towards the pinnacle of glory. In the quarter-finals against Togami Shunsuke, Ma Long shows no fear, giving his all in every rally. His precise ball placement and calm judgment give him the upper hand in this match. In the end, Ma Long defeats his opponent and advances to the semi-finals.</speak>"]
},
{
"GroupName": "MediaGroup2",
"MediaArray": ["https://ice-*****-test.oss-cn-*****.aliyuncs.com/0-test-batch-editing-materials/normal%20video.mp4", "https://ice-auto-test.oss-cn-shanghai.aliyuncs.com/0-test-batch-editing-materials/3.jpeg"],
"Duration": 5,
"SplitMode": "NoSplit",
"Volume": 1
},
{
"GroupName": "MediaGroup3",
"MediaArray": ["https://ice-*****-test.oss-cn-*****.aliyuncs.com/0-test-batch-editing-materials/young_sunset_walk.mp4"],
"SpeechTextArray": ["Come and take a look", "Come and take a look now"]
}]