Todos os produtos
Search
Central de documentação

Intelligent Media Services:Tutorial: Crie um vídeo de compilação facial

Última atualização: Jun 28, 2026

Este tutorial ensina a criar vídeos de compilação facial com o Intelligent Media Services (IMS). Use a busca facial para localizar clipes de uma pessoa específica e produza uma compilação com Script-to-Video, edição de Timeline ou modelos avançados.

Contexto

Uma compilação facial destaca as aparições de uma pessoa em vários clipes de vídeo. Esse formato é comum na produção cinematográfica, no jornalismo e nas redes sociais. O IMS automatiza o processo ao combinar a busca facial com recursos de edição de vídeo.

Casos de uso

Caso de uso 1: Melhores momentos de atletas

Organizadores de eventos esportivos criam vídeos de destaque que capturam momentos-chave, como arrancadas ou ultrapassagens. Esses materiais servem para promover o evento, fazer recapitulações e fortalecer a marca dos atletas.

Caso de uso 2: Vídeos personalizados para visitantes

Parques de diversões produzem vídeos personalizados que registram os visitantes nos brinquedos. Essas compilações funcionam como lembranças ou conteúdo para redes sociais.

Caso de uso 3: Vídeos de bastidores de eventos

Videomakers de casamentos reúnem imagens de bastidores e da viagem para criar um resumo curado da história do casal.

Caso de uso 4: Compilações de fãs

Organizadores de shows compilam as reações do público para exibir nos telões durante o evento ou compartilhar nas redes sociais.

Outras aplicações incluem memórias pessoais, vídeos de família, promoções turísticas e recapitulações de eventos corporativos.

Procedimento

Pré-requisitos

Instale o SDK do lado do servidor do IMS. Consulte Preparações. Ignore esta etapa se o SDK já estiver instalado.

Etapa 1: Encontre clipes de vídeo usando a busca facial

Use a busca facial do IMS para encontrar clipes de vídeo que contenham uma pessoa específica. Consulte Buscar rostos em um grande volume de ativos de mídia.

Etapa 2: Edite os clipes de vídeo

As seções a seguir descrevem três métodos para criar um vídeo de compilação facial, incluindo recursos, procedimentos e exemplos de SDK.

Método 1: Crie um vídeo usando Script-to-Video

Recursos
  • Prático e eficiente: Automatiza a criação de compilações faciais. Gere vários vídeos em lote com configurações simples.

  • Fácil de usar: Produza vídeos de alta qualidade com um clique, sem necessidade de experiência em edição.

Implementação com o SDK

Visualize o exemplo de código

package com.example;

import java.util.*;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

import com.aliyun.ice20201109.Client;
import com.aliyun.ice20201109.models.*;
import com.aliyun.teaopenapi.models.Config;

/**
 *  You must add the following Maven dependencies:
 *   <dependency>
 *      <groupId>com.aliyun</groupId>
 *      <artifactId>ice20201109</artifactId>
 *      <version>2.3.0</version>
 *  </dependency>
 *  <dependency>
 *      <groupId>com.alibaba</groupId>
 *      <artifactId>fastjson</artifactId>
 *      <version>1.2.9</version>
 *  </dependency>
 */
public class SubmitFaceEditingJobService {

    static final String regionId = "cn-shanghai";
    static final String bucket = "<your-bucket>";

    /*** Submit a one-click video creation job for a face compilation based on face search results. ****/
    public static void submitBatchEditingJob(String mediaId, SearchMediaClipByFaceResponse response) throws Exception {

        Client iceClient = initClient();

        JSONArray intervals = buildIntervals(response);
        JSONObject editingTimeline = buildEditingTimeline(mediaId, intervals);

        String openingMediaId = "icepublic-9a2df29956582a68a59e244a5915228c";
        String endingMediaId = "icepublic-1790626066bee650ac93bd12622a921c";
        String mainGroupName = "main";
        String openingGroupName = "opening";
        String endingGroupName = "ending";

        JSONObject inputConfig = buildInputConfig(mediaId, mainGroupName, openingMediaId, openingGroupName, endingMediaId, endingGroupName);
        JSONObject editingConfig = buildEditingConfig(mediaId, mainGroupName, intervals, openingMediaId, openingGroupName, endingMediaId, endingGroupName);
        JSONObject outputConfig = new JSONObject();
        outputConfig.put("MediaURL", "https://ice-auto-test.oss-cn-shanghai.aliyuncs.com/testBatch/" + System.currentTimeMillis() + "{index}.mp4");
        outputConfig.put("Width", 1280);
        outputConfig.put("Height", 720);
        outputConfig.put("FixedDuration", 18);
        outputConfig.put("Count", 2);

        SubmitBatchMediaProducingJobRequest request = new SubmitBatchMediaProducingJobRequest();
        request.setInputConfig(inputConfig.toJSONString());
        request.setEditingConfig(editingConfig.toJSONString());
        request.setOutputConfig(outputConfig.toJSONString());

        SubmitBatchMediaProducingJobResponse response = iceClient.submitBatchMediaProducingJob(request);
        System.out.println("JobId: " + response.getBody().getJobId());
    }

    public Client initClient() throws Exception {
        // An Alibaba Cloud account's AccessKey grants full access to all APIs. We recommend using a RAM user for API calls and daily operations.
        // This example shows how to store your AccessKey ID and AccessKey Secret in environment variables. For more information, see https://www.alibabacloud.com/help/en/sdk/developer-reference/v2-manage-access-credentials.
        com.aliyun.credentials.Client credentialClient = new com.aliyun.credentials.Client();

        Config config = new Config();
        config.setCredential(credentialClient);

        // If you need to hard-code your AccessKey ID and AccessKey Secret, use the following code. However, we strongly recommend that you do not store your AccessKey ID and AccessKey Secret in your project code. This can lead to an AccessKey leak and compromise the security of all resources in your account.
        // config.accessKeyId = "
Implementação pelo console

Para criar vídeos no console, pule a Etapa 1 e siga estas instruções.

Etapa 1: No painel de navegação à esquerda do console, clique em Intelligent Batch Video Production. Na aba Script-to-Video, clique em Create Task. Selecione um generation mode. Os modos Global Scripts e Segmented Scripts mode são compatíveis. Este exemplo utiliza o Segmented Scripts mode.

Etapa 2: Na seção Script Node Configuration, clique em Add Material. No painel Add Material, selecione face search e carregue uma imagem facial para encontrar materiais correspondentes

Etapa 3: Nos resultados, clique em View em um resultado específico para visualizar os clipes de vídeo correspondentes. Em seguida, clique em Import Matched Clips e em OK. Os materiais correspondentes serão adicionados ao nó do script.

Etapa 4: Para ajustar os clipes de vídeo encontrados pela busca facial, passe o mouse sobre o material e clique no ícone de settings. Na caixa de diálogo exibida, ajuste os pontos de entrada e saída na seção Trimming. Pule esta etapa se não forem necessários ajustes.

Siga o procedimento padrão do Script-to-Video para configurar o title, background music, stickers and logos e synthesis settings e envie a tarefa.

Método 2: Crie um vídeo usando edição de Timeline

Recursos
  • Conteúdo de vídeo personalizável: Controle cada ponto de edição, efeito, transição e faixa de áudio. Combine e ajuste materiais para produzir vídeos exclusivos.

  • Alta flexibilidade: Ajuste o plano de edição, a ordem dos clipes, os efeitos e o áudio a qualquer momento para atender a diversas necessidades criativas.

Etapas

Use os resultados da busca facial da Etapa 1 para editar o vídeo de compilação facial por meio da Configuração de Timeline do SubmitMediaProducingJob. Consulte a seção Exemplo de chamada de SDK. Para edições avançadas, como efeitos, transições ou processamento de áudio, consulte Parâmetros básicos para edição de vídeo e Configuração de Timeline.

Exemplo de chamada de SDK

Visualize o exemplo de código

Visualize um exemplo de parâmetro de Timeline

{
  "VideoTracks": [
    {
      "VideoTrackClips": [
        {
          "MediaId": "b5a003f0cd3f71ed919fe7e7c45b****",
          "In": 54.106018,
          "Effects": [
            {
              "Type": "Volume",
              "Gain": 0
            }
          ],
          "Out": 56.126015
        },
        {
          "MediaId": "b5a003f0cd3f71ed919fe7e7c45b****",
          "In": 271.47302,
          "Effects": [
            {
              "Type": "Volume",
              "Gain": 0
            }
          ],
          "Out": 277.393
        },
        {
          "MediaId": "b5a003f0cd3f71ed919fe7e7c45b****",
          "In": 326.03903,
          "Effects": [
            {
              "Type": "Volume",
              "Gain": 0
            }
          ],
          "Out": 331.959
        },
        {
          "MediaId": "b5a003f0cd3f71ed919fe7e7c45b****",
          "In": 372.20602,
          "Effects": [
            {
              "Type": "Volume",
              "Gain": 0
            }
          ],
          "Out": 375.126
        },
        {
          "MediaId": "b5a003f0cd3f71ed919fe7e7c45b****",
          "In": 383.03903,
          "Effects": [
            {
              "Type": "Volume",
              "Gain": 0
            }
          ],
          "Out": 388.959
        },
        {
          "MediaId": "b5a003f0cd3f71ed919fe7e7c45b****",
          "In": 581.339,
          "Effects": [
            {
              "Type": "Volume",
              "Gain": 0
            }
          ],
          "Out": 587.25903
        },
        {
          "MediaId": "b5a003f0cd3f71ed919fe7e7c45b****",
          "In": 602.339,
          "Effects": [
            {
              "Type": "Volume",
              "Gain": 0
            }
          ],
          "Out": 607.293
        }
      ]
    }
  ],
  "AudioTracks": [
    {
      "AudioTrackClips": [
        {
          "LoopMode": true,
          "MediaId": "icepublic-0c4475c3936f3a8743850f2da942ceee"
        }
      ]
    }
  ]
}

Método 3: Use modelos avançados

Recursos
  • Eficiente e de alta qualidade: Preencha modelos prontos com seus materiais para criar vídeos rapidamente. Crie modelos personalizados para obter um estilo exclusivo.

  • Estilo de vídeo consistente: Os modelos garantem um visual profissional e ajudam até mesmo usuários inexperientes a criar vídeos atraentes.

Etapas

Use os resultados da busca facial da Etapa 1 com um modelo avançado e o parâmetro ClipsParam do SubmitMediaProducingJob para criar um vídeo de compilação facial. Consulte a seção Exemplo de chamada de SDK. Este exemplo usa o modelo público IceSys_VETemplate_s100241 com clipes dos resultados da busca facial. Para usar seu próprio modelo, consulte Guia do usuário: Como usar um modelo avançado.

Exemplo de chamada de SDK

Visualize o exemplo de código

package com.example;

import java.util.*;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

import com.aliyun.ice20201109.Client;
import com.aliyun.ice20201109.models.*;
import com.aliyun.teaopenapi.models.Config;

/**
 *  You must add the following Maven dependencies:
 *   <dependency>
 *      <groupId>com.aliyun</groupId>
 *      <artifactId>ice20201109</artifactId>
 *      <version>2.3.0</version>
 *  </dependency>
 *  <dependency>
 *      <groupId>com.alibaba</groupId>
 *      <artifactId>fastjson</artifactId>
 *      <version>1.2.9</version>
 *  </dependency>
 */
public class SubmitFaceEditingJobService {

    static final String regionId = "cn-shanghai";
    static final String bucket = "<your-bucket>";

    /*** Submit a face compilation editing job based on face search results. ****/
    public static void submitEditingJob(String mediaId, SearchMediaClipByFaceResponse response) throws Exception {

        Client iceClient = initClient();
        JSONArray intervals = buildIntervals(response);

        // Submit an advanced template job. This example uses the public template IceSys_VETemplate_s100241 and configures video clips based on face search results.
        JSONObject clipParams = buildClipParams(mediaId, intervals);

        SubmitMediaProducingJobRequest request2 = new SubmitMediaProducingJobRequest();
        request2.setTemplateId("IceSys_VETemplate_s100241");
        request2.setClipsParam(clipParams.toJSONString());
        request2.setOutputMediaTarget("oss-object");
        outputConfig = new JSONObject();
        outputConfig.put("MediaURL",
                         "https://" + bucket + ".oss-" + regionId + "/testTemplate/" + System.currentTimeMillis() + ".mp4");
        request2.setOutputMediaConfig(outputConfig.toJSONString());

        SubmitMediaProducingJobResponse response2 = iceClient.submitMediaProducingJob(request2);
        System.out.println("JobId: " + response2.getBody().getJobId());
    }

    public Client initClient() throws Exception {
        // An Alibaba Cloud account's AccessKey grants full access to all APIs. We recommend using a RAM user for API calls and daily operations.
        // This example shows how to store your AccessKey ID and AccessKey Secret in environment variables. For more information, see https://www.alibabacloud.com/help/en/sdk/developer-reference/v2-manage-access-credentials.
        com.aliyun.credentials.Client credentialClient = new com.aliyun.credentials.Client();

        Config config = new Config();
        config.setCredential(credentialClient);

        // If you need to hard-code your AccessKey ID and AccessKey Secret, use the following code. However, we strongly recommend that you do not store your AccessKey ID and AccessKey Secret in your project code. This can lead to an AccessKey leak and compromise the security of all resources in your account.
        // config.accessKeyId = "

Visualize um exemplo de parâmetro clipParams

{
	"Media0": "b5a003f0cd3f71ed919fe7e7c45b****",
	"Media0.clip_start": 54.066017,
	"Media1": "b5a003f0cd3f71ed919fe7e7c45b****",
	"Media1.clip_start": 67.33301,
	"Media2": "b5a003f0cd3f71ed919fe7e7c45b****",
	"Media2.clip_start": 271.47302,
	"Media3": "b5a003f0cd3f71ed919fe7e7c45b****",
	"Media3.clip_start": 326.03903,
	"Media4": "b5a003f0cd3f71ed919fe7e7c45b****",
	"Media4.clip_start": 372.20602,
	"Media5": "b5a003f0cd3f71ed919fe7e7c45b****",
	"Media5.clip_start": 383.03903,
	"Media6": "b5a003f0cd3f71ed919fe7e7c45b****",
	"Media6.clip_start": 581.339,
	"Media7": "b5a003f0cd3f71ed919fe7e7c45b****",
	"Media7.clip_start": 587.25903,
	"Media8": "b5a003f0cd3f71ed919fe7e7c45b****",
	"Media8.clip_start": 602.339
}

Exemplos

Vídeo criado com edição de Timeline

Este vídeo é uma compilação facial do atleta de camisa branca com o número 5.

Vídeo criado com um modelo avançado

As transições e efeitos de velocidade no vídeo final vêm do modelo.

Vídeo criado com Script-to-Video (SDK)

Este vídeo é uma compilação facial do atleta de camisa branca com o número 5.

Vídeo criado com Script-to-Video (console)

Este vídeo é uma compilação facial do atleta de camisa branca com o número 17.

Referências