Todos os produtos
Search
Central de documentação

ApsaraVideo Live:Gravação sob demanda

Última atualização: Jul 14, 2026

O ApsaraVideo Live gerencia as configurações de gravação por meio de modelos. O sistema associa uma URL de ingestão ao modelo correspondente com base no domínio de ingestão, no nome do aplicativo e no nome do stream presentes na URL. Os modelos de gravação oferecem dois métodos para gravação sob demanda: Controle por parâmetros de ingestão e Controle por callback HTTP. Use esses métodos para decidir dinamicamente se deve gravar um stream ao vivo específico conforme suas regras de negócio.

Controle por parâmetros de ingestão

Se o método de acionamento de um modelo de gravação estiver definido como "Ingest parameter settings", controle diretamente a gravação do stream atual usando o parâmetro record_config na URL de ingestão.

  • Formato do parâmetro: record_config={"NeedRecord": <true/false>}

  • Descrição do parâmetro: true ativa a gravação e false desativa a gravação.

  • Observação: Ao construir a URL de ingestão, codifique obrigatoriamente o parâmetro para URL.

Por exemplo, suponha que a URL de ingestão seja: rtmp://push.example.com/live/stream1

Para ativar a gravação com esse parâmetro, construa a URL da seguinte forma: rtmp://push.example.com/live/stream1?record_config=%7B%22NeedRecord%22%3Atrue%7D&auth_key=xxx

Limitações:

Este método de acionamento suporta apenas a gravação do stream source, não dos streams transcodificados. Caso sua gravação inclua streams transcodificados, selecione outro método de acionamento.

Controle por callback HTTP

Como funciona

  1. Quando um stream ao vivo é ingerido e o método de acionamento do modelo correspondente está definido como Callback confirmation, o ApsaraVideo Live envia uma solicitação HTTP para a URL de callback pré-configurada para verificar se o stream atual deve ser gravado.

  2. Seu servidor de aplicativos recebe a solicitação e retorna uma instrução de gravação (permitir ou negar) com base na lógica de negócio vigente.

  3. Em seguida, o ApsaraVideo Live inicia ou ignora a gravação conforme a resposta recebida.

Configure previamente a URL de callback nas definições de callback de eventos do domínio. Para mais informações, consulte Callbacks de gravação ao vivo e Callbacks de gravação sob demanda.

Parâmetros da solicitação

Parâmetro

Tipo

Descrição

domain

String

Domínio de ingestão.

app

String

Nome do aplicativo.

stream

String

Nome do stream.

codec

String

Formato de codificação. Valores válidos:

  • h264

  • h265

vbitrate

String

Taxa de bits do vídeo. Unidade: kbps.

Exemplo de solicitação

GET /?app=seq_all&domain=demo.aliyundoc.com&stream=ondemand8&vbitrate=2000&codec=h264 HTTP/1.1
Host: pull.aliyundoc.com
User-Agent: Go-http-client/1.1
Accept-Encoding: gzip

Parâmetros da resposta

Após receber a solicitação de callback, seu servidor deve retornar um código de status HTTP 200 e um corpo JSON contendo os seguintes parâmetros:

Parâmetro

Tipo

Obrigatório

Descrição

ApiVersion

String

Não

Versão da API. Valor padrão: 1,0.

NeedRecord

Bool

Sim

Defina se o stream deve ser gravado.

Interval

JSONObject

Não

Especifica o intervalo de gravação para cada formato. Faixa válida: 5 a 21600. Unidade: segundos.

Format

JSONArray

Não

Formato de gravação. Os formatos suportados incluem MP4, FLV e M3U8.

Exemplo de resposta

{
  "ApiVersion": "1.0",
  "NeedRecord": true,
  "Interval": {
    "Mp4": 300,
    "Flv": 120,
    "M3U8": 180
  },
  "Format": ["mp4","flv"]
}

Tratamento dos parâmetros de resposta

Ao receber a resposta do seu servidor, o service de gravação compara os parâmetros retornados com a configuração original e aplica as seguintes substituições:

  • Substituição de intervalo: Se a resposta incluir o parâmetro Interval, seu valor substituirá o intervalo definido na configuração original de gravação.

  • Interseção de formatos: O sistema intersecta o parâmetro Format da resposta com os formatos especificados na configuração original. Por exemplo, se o modelo original estiver configurado para MP4 e FLV, e a resposta do callback for ["mp4", "m3u8"], apenas o formato MP4 será gravado. Caso a interseção esteja vazia, o stream não será gravado.

Seu endpoint de callback deve retornar um código de status HTTP 200. Qualquer outro código é tratado como falha de callback e a gravação é desativada por padrão.

O tamanho máximo do corpo de resposta do callback é de 2.048 bytes. Respostas que excedem esse limite são truncadas para evitar ataques maliciosos.

Observações de uso

Caso seu service utilize o recurso de pull de stream sob demanda, em que o ApsaraVideo Live puxa o stream do servidor de origem somente quando um usuário inicia a reprodução e interrompe o pull quando não há espectadores, aplicam-se as seguintes condições:

  • Pré-requisito de gravação: Em cenários de pull sob demanda, a gravação (seja automática, sob demanda ou manual) começa apenas após um usuário iniciar a reprodução.

  • Ausência de gravação sem reprodução: Se nenhum cliente estiver reproduzindo o stream, o ApsaraVideo Live não puxará o conteúdo do servidor de origem e, consequentemente, nenhum arquivo de gravação será gerado.