Todos os produtos
Search
Central de documentação

ApsaraVideo Live:Callback de eventos

Última atualização: Jun 30, 2026

O ApsaraVideo Live fornece notificações de eventos para ingestão de transmissão ao vivo, gravação (incluindo gravação sob demanda), snapshots, moderação de conteúdo e recuperação de desastres de fluxo duplo. Este tópico descreve como configurar esses callbacks, lista os parâmetros e fornece exemplos.

Visão geral

O ApsaraVideo Live envia notificações de eventos por meio de callbacks HTTP. O protocolo HTTPS também é compatível. Para receber essas notificações, implante um serviço HTTP e configure uma URL de callback no console do ApsaraVideo Live ou via API.

  • HTTP GET: Quando ocorre um evento de ingestão ou interrupção de fluxo, o ApsaraVideo Live envia uma solicitação HTTP GET para sua URL de callback. Os detalhes do evento são entregues como parâmetros de URL.

  • HTTP POST: Para outros tipos de eventos, o ApsaraVideo Live envia uma solicitação HTTP POST para sua URL de callback. Os detalhes do evento são entregues no corpo JSON.

Nota

Alguns certificados SSL são incompatíveis. Se você encontrar problemas de certificado, tente usar um callback HTTP.

Observações de uso

  • Conectividade: Sua URL de callback deve ser acessível publicamente.

  • Timeout e novas tentativas: O serviço espera uma resposta dentro de 5 segundos. Caso a solicitação atinja o tempo limite, o sistema tentará novamente até 5 vezes, com intervalos de 1 segundo.

  • Escopo de domínio:

    • Configure callbacks de ingestão de fluxo e recuperação de fluxo duplo apenas para domínios de ingestão.

    • Configure callbacks de gravação, snapshot e moderação de conteúdo apenas para domínios de streaming.

Gerenciamento de callbacks

Callback de ingestão de fluxo

Este callback notifica sobre o status de ingestão de um domínio, incluindo ingestão bem-sucedida, interrupção de fluxo e exceções. Configure a URL de callback no console ou via API.

Configuração pelo console

  1. Faça login no console do ApsaraVideo Live.

  2. No painel de navegação à esquerda, escolha Feature Management > Callbacks.

  3. Selecione o Ingest Domain que deseja configurar.

  4. Na aba Callback Settings, ative a chave Stream Ingest Callbacks e configure os seguintes parâmetros:

    • Callback Type: Defina callbacks para eventos de ingestão e interrupção ou para eventos de exceção.

    • Callback URL: Seu endpoint público para receber as notificações. Eventos de ingestão e interrupção usam HTTP GET; eventos de exceção usam HTTP POST.

    • Callback Authentication: Escolha se deseja ativar a autenticação. Quando ativada, insira uma chave de autenticação. Para obter detalhes sobre o processo, consulte Autenticação de callback.

  5. Clique em OK.

Configuração por API

API

Descrição

SetLiveStreamsNotifyUrlConfig

Adiciona uma configuração de callback de ingestão.

DescribeLiveStreamsNotifyUrlConfig

Consulta uma configuração de callback de ingestão.

DeleteLiveStreamsNotifyUrlConfig

Exclui uma configuração de callback de ingestão.

Eventos de ingestão e interrupção

Lógica de callback

Para envio de fluxo, o ApsaraVideo Live envia um callback de ingestão bem-sucedida se a fonte ao vivo permanecer conectada por pelo menos dois segundos após o recebimento de uma mensagem OnPublish.

Se você utilizar pull de fluxo (em horário fixo ou sob demanda) para um domínio de streaming (Domínio B) e precisar de notificações, configure o callback de ingestão para o domínio de ingestão associado (Domínio A). A lógica permanece a mesma: uma vez estabelecida a conexão, o pull de fluxo será considerado bem-sucedido se a fonte ao vivo permanecer conectada por pelo menos dois segundos.

Nota

Não dependa exclusivamente das notificações de callback para determinar se um fluxo foi ingerido com sucesso. Recomendamos chamar a API para consultar a lista de fluxos online. Confirme se o fluxo está ativo antes de distribuir a URL de reprodução aos usuários.

Se o centro de transmissão ao vivo do ApsaraVideo Live não receber dados durante 10 segundos, o serviço encerrará automaticamente a conexão de ingestão.

Parâmetros

Parâmetro

Descrição

action

Tipo de evento que acionou o callback.

  • publish: Fluxo ingerido.

  • publish_done: Fluxo interrompido.

ip

Endereço IP do cliente de ingestão.

id

Nome do fluxo.

app

Domínio de ingestão. Se nenhum domínio de ingestão estiver associado, este parâmetro retorna o domínio de streaming.

appname

AppName do fluxo.

time

Timestamp Unix, em segundos, de envio do callback.

usrargs

Parâmetros de ingestão definidos pelo usuário.

node

Ponto de presença (POP) ou servidor que recebe o fluxo.

height

Altura do vídeo em pixels. Fornecida apenas no primeiro callback.

width

Largura do vídeo em pixels. Fornecida apenas no primeiro callback.

Exemplo de evento de ingestão

http://1.1.X.X?action=publish&ip=192.168.0.1&id=world&app=example.aliyundoc.com&appname=liveApp****&time=1609220385&usrargs={user-defined-parameters}&node=cdnvideocenter01020711****.cm3&height=720&width=1280

Exemplo de evento de interrupção

http://1.1.X.X?action=publish_done&ip=192.168.0.0&id=world&app=example.aliyundoc.com&appname=liveApp****&time=1609220385&usrargs={user-defined-parameters}&node=cdnvideocenter01020711****.cm3&height=720&width=1280

Eventos de exceção de ingestão

Parâmetros

Parâmetro

Descrição

action

publish_exception_notify

domain

Domínio de ingestão.

appname

AppName do fluxo.

stream

Nome do fluxo.

ip

Endereço IP do cliente de ingestão.

time

Timestamp Unix, em segundos, de envio do callback.

type

Tipo de evento de exceção.

event_time

Timestamp Unix, em segundos, de ocorrência da exceção.

Tipos de exceção

Código

Tipo de evento

1001

A URL contém caracteres inválidos.

2001

O codec de vídeo está na lista de bloqueios.

2002

O codec de vídeo não está na lista de permissões.

2003

O codec de áudio está na lista de bloqueios.

2004

O codec de áudio não está na lista de permissões.

3001

Falha ao analisar o cabeçalho de áudio.

3002

Falha ao analisar o cabeçalho de vídeo.

3003

Falha ao analisar os metadados.

4001

Largura e altura de vídeo inconsistentes.

4002

Os metadados indicam ausência de dados de áudio, mas o fluxo contém dados de áudio.

4003

Os dados reais de áudio e vídeo não correspondem ao cabeçalho.

4004

Os metadados indicam ausência de dados de vídeo, mas o fluxo contém dados de vídeo.

4005

O codec de áudio mudou durante a transmissão.

4006

O codec de vídeo mudou durante a transmissão.

4007

Um quadro de áudio foi recebido antes do cabeçalho de áudio.

4008

Um quadro de vídeo foi recebido antes do cabeçalho de vídeo.

5001

Jitter CTS excessivo.

5002

Decoding Time Stamps (DTS) não monotônicos.

5003

A diferença de timestamp entre áudio e vídeo é muito grande.

5004

O incremento DTS de áudio é muito grande.

5005

O incremento DTS de vídeo é muito grande.

5006

O intervalo entre quadros de áudio recebidos é muito longo.

5007

O intervalo entre quadros de vídeo recebidos é muito longo.

5008

O intervalo de keyframes é muito longo.

Exemplo de evento de exceção

{
  "action": "publish_exception_notify",
  "domain": "demo.aliyundoc.com",
  "appname": "liveApp****",
  "stream": "liveStream****",
  "ip": "141.01.****",
  "time": "1739760710",
  "type": "5002",
  "event_time": "1739760710"
}

Callback de gravação ao vivo

Os callbacks de gravação ao vivo notificam sobre o status da gravação, geração de arquivos e erros.

Configuração pelo console

  1. Faça login no console do ApsaraVideo Live.

  2. No painel de navegação à esquerda, escolha Feature Management > Callbacks.

  3. Selecione o Streaming Domain que deseja configurar.

  4. Na aba Callback Settings, ative a chave Recording Callbacks e configure os seguintes parâmetros:

    • Callback URL: Seu endpoint público para receber as notificações. Os callbacks de gravação usam solicitações HTTP POST.

    • Triggering Event: Selecione File Generation ou File Generation and Recording Status.

    • On-demand Callback URL: Se você configurou a gravação sob demanda, o serviço envia um callback HTTP para esta URL quando uma transmissão ao vivo começa. Seu servidor deve responder a essa solicitação para determinar se o fluxo deve ser gravado. Por padrão, este parâmetro é definido como *, o que desativa o recurso de gravação sob demanda.

    • Callback Authentication: Escolha se deseja ativar a autenticação. Quando ativada, insira uma chave de autenticação. Para obter detalhes sobre o processo, consulte Autenticação de callback.

  5. Clique em OK.

Configuração por API

API

Descrição

AddLiveRecordNotifyConfig

Adiciona uma configuração de callback de gravação para um domínio.

DescribeLiveRecordNotifyConfig

Consulta uma configuração de callback de gravação.

DeleteLiveRecordNotifyConfig

Exclui uma configuração de callback de gravação para um domínio.

Callback de status de gravação

Enviado quando uma sessão de gravação inicia ou pausa.

Parâmetros

Parâmetro

Descrição

domain

Domínio de streaming da gravação.

app

AppName do fluxo.

stream

Nome do fluxo.

event

Evento.

  • record_started: Gravação iniciada.

  • record_paused: Gravação pausada.

Exemplo

{
  "domain": "demo.aliyundoc.com",
  "app": "liveApp****",
  "stream": "liveStream****",
  "event": "record_started"
}

Callback de geração de arquivo

Enviado após a criação do arquivo, fornecendo detalhes como caminho, duração e timestamps.

Parâmetros

Parâmetro

Descrição

domain

Domínio de streaming da gravação.

app

AppName do fluxo.

stream

Nome do fluxo.

uri

Caminho relativo do arquivo de gravação no bucket do OSS ou do ApsaraVideo VOD.

record_id

ID do arquivo de índice.

file_url

URL completa do arquivo de gravação.

duration

Duração do arquivo de gravação, em segundos.

start_time

Hora de início da gravação, como timestamp Unix em segundos.

stop_time

Hora de término da gravação, como timestamp Unix em segundos.

is_finished

Indica se a gravação está concluída. Retornado apenas quando a transmissão ao vivo é gravada no ApsaraVideo VOD.

oss_endpoint

Endpoint de armazenamento.

oss_bucket

Nome do bucket de armazenamento.

push_args

Parâmetros definidos pelo usuário na URL de ingestão que começam com callback_ (como callback_arg1 e callback_myid).

Nota
  • Parâmetros personalizados não são compatíveis com fluxos transcodificados.

  • Se múltiplos valores forem passados para o mesmo parâmetro (por exemplo, callback_arg1=v1&callback_arg1=v2), apenas o primeiro valor será incluído no callback ("callback_args1": "value1").

Exemplo

Se a URL de ingestão for rtmp://demo.aliyundoc.com/liveApp****/liveStream****?callback_args1=value1&callback_myid=1231389741, o payload do callback será:

{
  "domain": "demo.aliyundoc.com",
  "app": "liveApp****",
  "stream": "liveStream****",
  "uri": "liveApp****/liveStream****/0_2017-03-08-23:09:46_2017-03-08-23:10:40.flv",
  "file_url": "http://****.oss-****.aliyuncs.com/liveApp****/liveStream****/0_2017-03-08-23:09:46_2017-03-08-23:10:40.flv",
  "duration": 69.403,
  "start_time": 1488985786,
  "stop_time": 1488985840,
  "push_args": {
    "callback_args1": "value1",
    "callback_myid": "1231389741"
  }
}

Callback de erro de gravação

Acionado por exceções no fluxo de origem ou falhas de escrita no armazenamento (OSS).

Parâmetros

Parâmetro

Descrição

domain

Domínio de streaming da gravação.

app

AppName do fluxo.

stream

Nome do fluxo.

event

Tipo de evento.

  • record_error: Erro de gravação.

  • transformat_error: Erro de remuxing.

error_info

Informações de erro em formato JSON. Inclui os seguintes campos:

  • code: Código de erro.

  • message: Mensagem de erro.

file_info

Informações do arquivo. Retornado apenas para transformat_error. Inclui os seguintes campos:

  • uri: Endereço de armazenamento do arquivo remuxado.

  • start_time: Hora de início da gravação do arquivo.

  • stop_time: Hora de término da gravação do arquivo.

Exemplo de erro de gravação

{
  "domain": "example.com",
  "app": "live",
  "stream": "stream123",
  "event": "record_error",
  "error_info": {
    "code": "TsSegmenterFail",
    "message": "ts segmenter error"
  }
}

Códigos de erro

Código

Mensagem

Descrição

BucketNotFound

Bucket not found

O bucket não existe ou foi excluído.

AccessDenied

Bucket not belong config userId

O bucket não pertence à conta onde a configuração de gravação foi adicionada.

StreamFormatError

video stream format error

O formato da transmissão ao vivo é inválido.

UserDisable

Unauthorized access to OSS by user

O usuário não tem autorização para acessar o OSS ou a autorização foi revogada.

Exemplo de erro de remuxing

{
  "domain": "example.com",
  "app": "live",
  "stream": "stream123",
  "event": "transformat_error",
  "error_info": {
    "code": "PermissionDenied.ResourceAccess",
    "message": "MTS not authorized to operate on the OutputBucket"
  },
  "file_info": {
    "uri": "record/live/stream123/2025-11-19-03-17-03_2025-11-19-03-28-39.flv",
    "start_time": 1763493420,
    "stop_time": 1763494119
  }
}

Códigos de erro

Código

Mensagem

Descrição

InvalidParameter.ResourceNotFound

The resource operated cannot be found

O bucket não existe ou foi excluído.

InvalidParameter.ResourceContentBad

The resource operated InputFile is bad

Falha no remuxing devido a problemas na qualidade do fluxo de origem.

PermissionDenied.ResourceAccess

MTS not authorized to operate on the OutputBucket

O usuário não tem autorização para acessar o OSS ou a autorização foi revogada.

Callback de gravação sob demanda

A gravação sob demanda permite decidir programaticamente se uma transmissão ao vivo deve ser gravada com base nos metadados do fluxo.

Quando uma transmissão ao vivo corresponde ao modelo de gravação sob demanda pré-configurado (no nível de domínio, aplicativo ou fluxo), o serviço de gravação envia uma solicitação HTTP para sua URL de callback sob demanda com os detalhes do fluxo. Seu servidor deve responder para indicar se o fluxo deve ser gravado e fornecer configurações específicas.

Parâmetros da solicitação

Parâmetro

Tipo

Descrição

domain

String

Domínio de streaming.

app

String

AppName do fluxo.

stream

String

Nome do fluxo.

codec

String

Codec. Valores válidos:

  • h264

  • h265

vbitrate

String

Taxa de bits de 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

Parâmetro

Tipo

Obrigatório

Descrição

ApiVersion

String

Não

Versão da API. O valor padrão é 1.0.

NeedRecord

Boolean

Sim

Indica se o fluxo deve ser gravado.

Interval

JSONObject

Não

Ciclo de gravação para um formato específico. Intervalo: 5 a 21600. Unidade: segundos.

Format

JSONArray

Não

Formato de gravação. Formatos compatíveis: MP4, FLV e M3U8.

Exemplo de resposta

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

Tratamento da resposta

O serviço de gravação processa sua resposta para substituir as configurações existentes:

  • Interval: O valor de Interval fornecido substitui o ciclo de gravação configurado no modelo.

  • Format: O serviço calcula a interseção entre o Format solicitado e os formatos pré-configurados no modelo. Se não houver formatos comuns, o fluxo não será gravado.

Um código de status HTTP diferente de 200 indica falha na chamada ao seu endpoint de API.

O corpo da resposta não pode exceder 2.048 bytes. O sistema trunca qualquer conteúdo além desse limite por motivos de segurança.

Callback de snapshot ao vivo

O ApsaraVideo Live é compatível com notificações de eventos para snapshots ao vivo. Configure a URL de callback no console ou via API.

Configuração pelo console

  1. Faça login no console do ApsaraVideo Live.

  2. No painel de navegação à esquerda, escolha Feature Management > Callbacks.

  3. Selecione o Streaming Domain que deseja configurar.

  4. Na aba Callback Settings, ative a chave Snapshot Callbacks e configure os seguintes parâmetros:

    • Callback URL: Seu endpoint público para receber as notificações. Os callbacks de snapshot usam solicitações HTTP POST.

    • Callback Authentication: Escolha se deseja ativar a autenticação. Quando ativada, insira uma chave de autenticação. Para obter detalhes sobre o processo, consulte Autenticação de callback.

  5. Clique em OK.

Configuração por API

API

Descrição

AddLiveSnapshotNotifyConfig

Adiciona uma configuração de callback de snapshot ao vivo.

UpdateLiveSnapshotNotifyConfig

Modifica uma configuração de callback de snapshot ao vivo.

DescribeLiveSnapshotNotifyConfig

Consulta a configuração de callback de snapshot ao vivo.

DeleteLiveSnapshotNotifyConfig

Exclui uma configuração de callback de snapshot ao vivo.

Parâmetros do callback de snapshot

Parâmetro

Descrição

Event

Tipo de evento. O valor é Snapshot.

DomainName

Domínio de streaming.

AppName

AppName do fluxo.

StreamName

Nome do fluxo.

OssBucket

Nome do bucket do OSS que armazena os snapshots.

OssEndpoint

Endpoint do OSS onde os snapshots são armazenados.

OssObject

Nome do arquivo de snapshot no bucket do OSS.

CreateTime

Timestamp de criação do snapshot.

SnapshotUrl

URL completa do arquivo de snapshot no bucket do OSS.

Size

Tamanho da imagem em bytes.

Width

Largura da imagem em pixels.

Height

Altura da imagem em pixels.

Exemplo

{
  "Event": "Snapshot",
  "DomainName": "demo.aliyundoc.com",
  "AppName": "liveApp****",
  "StreamName": "liveStream****",
  "OssBucket": "liveBucket****",
  "OssEndpoint": "oss-cn-shan****.aliyuncs.com",
  "OssObject": "1****.jpg",
  "CreateTime": "2015-12-01T17:36:00Z",
  "SnapshotUrl": "http://liveBucket****.oss-cn-shan****.aliyuncs.com/1****.jpg",
  "Size": "36291",
  "Width": "1280",
  "Height": "720"
}

Callback de moderação de conteúdo

O ApsaraVideo Live é compatível com notificações de eventos para resultados de moderação de vídeo e áudio. Configure a URL de callback no console ou via API.

Callback de moderação de vídeo

Acionado apenas para conteúdo de vídeo sinalizado como problemático.

Configuração pelo console
  1. Faça login no console do ApsaraVideo Live.

  2. No painel de navegação à esquerda, escolha Feature Management > Callbacks.

  3. Selecione o Streaming Domain que deseja configurar.

  4. Na aba Callback Settings, ative a chave Video Moderation Callbacks e configure a URL de callback. A URL deve apontar para seu próprio endpoint. Quando um evento de moderação de vídeo for acionado, o ApsaraVideo Live enviará uma solicitação HTTP POST para a URL especificada, com os detalhes do evento no corpo JSON.

  5. Clique em OK.

Configuração por API

API

Descrição

AddLiveDetectNotifyConfig

Adiciona uma configuração de callback de moderação de vídeo.

DescribeLiveDetectNotifyConfig

Consulta uma configuração de callback de moderação de vídeo.

UpdateLiveDetectNotifyConfig

Modifica uma configuração de callback de moderação de vídeo.

DeleteLiveDetectNotifyConfig

Exclui uma configuração de callback de moderação de vídeo.

Parâmetros do callback

A notificação fornece detalhes da moderação e o local de armazenamento do snapshot capturado do conteúdo sinalizado.

Parâmetro

Tipo

Descrição

DomainName

String

Domínio de streaming.

AppName

String

AppName do fluxo.

StreamName

String

Nome do fluxo.

OssEndpoint

String

Endpoint do OSS.

OssBucket

String

Bucket do OSS.

OssObject

String

Nome do objeto.

Result

JSONArray

Resultados da moderação. Para mais informações, consulte Result.

Result

Parâmetro

Tipo

Descrição

BizType

String

Tipo de negócio. Pode ser usado para selecionar um modelo. Por padrão, o valor é o nome do domínio.

Scene

String

Cena de detecção.

  • porn: Pornografia.

  • terrorism: Terrorismo e conteúdo politicamente sensível.

  • ad: Violações de texto e imagem.

  • live: Cenas indesejáveis.

Label

String

Categoria do resultado. As categorias variam conforme a cena de detecção.

Categorias para porn:

  • normal: Normal.

  • sexy: Sensual.

  • porn: Pornográfico.

Categorias para terrorism:

  • normal: Normal.

  • bloody: Sangrento.

  • explosion: Explosão ou fumaça.

  • outfit: Vestimenta especial.

  • weapon: Arma.

  • politics: Politicamente sensível.

  • violence: Briga.

  • crowd: Multidão.

  • parade: Desfile.

  • carcrash: Acidente de carro.

  • flag: Bandeira.

  • location: Ponto de referência.

  • others: Outros.

Categorias para ad:

  • normal: Normal.

  • ad: Outros anúncios.

  • npx: Spam de anúncios.

  • qrcode: QR code.

  • programCode: Código de mini-programa.

Categorias para live:

  • normal: Normal.

  • meaningless: Sem conteúdo na imagem (por exemplo, tela preta ou branca).

  • PIP: Picture-in-picture.

  • smoking: Fumando.

  • drivelive: Transmissão ao vivo dentro do carro.

Categorias para logo:

Rate

Float

Pontuação de confiança. Intervalo: 0 a 100.

Nota

Este valor serve apenas como referência. Não o utilize em sua lógica de negócios. Use o resultado Label para determinar se o conteúdo está em conformidade.

Extent

String

Parâmetro reservado.

Nota

Esta versão destina-se a novos usuários por padrão. Usuários existentes permanecem em sua versão atual. Para usar esta versão, abra um ticket.

Exemplo

{
  "DomainName": "demo.aliyundoc.com",
  "AppName": "liveApp****",
  "StreamName": "liveStream****",
  "OssEndpoint": "oss-cn-hang****.aliyuncs.com",
  "OssBucket": "liveBucket****",
  "OssObject": "example.jpg",
  "Result": [
    {
      "BizType": "demo.aliyundoc.com",
      "Result": [
        {"Label": "Porn", "Rate": 11, "Suggestion": "review", "Scene": "porn", "Extent": {}},
        {"Label": "Ad", "Rate": 11, "Suggestion": "review", "Scene": "ad", "Extent": {}}
      ]
    }
  ]
}

Callback de moderação de áudio

Acionado apenas para conteúdo de áudio sinalizado como problemático.

Configuração pelo console
  1. Faça login no console do ApsaraVideo Live.

  2. No painel de navegação à esquerda, escolha Feature Management > Callbacks.

  3. Selecione o Streaming Domain que deseja configurar.

  4. Na aba Callback Settings, ative a chave Audio Moderation Callbacks e configure a URL de callback. A URL deve apontar para seu próprio endpoint. Quando um evento de moderação de áudio for acionado, o ApsaraVideo Live enviará uma solicitação HTTP POST para a URL especificada, com os detalhes do evento no corpo JSON.

  5. Clique em OK.

Configuração por API

API

Descrição

AddLiveAudioAuditNotifyConfig

Adiciona uma configuração de callback de moderação de áudio.

DeleteLiveAudioAuditNotifyConfig

Exclui uma configuração de callback de moderação de áudio.

UpdateLiveAudioAuditNotifyConfig

Modifica uma configuração de callback de moderação de áudio.

DescribeLiveAudioAuditNotifyConfig

Consulta uma configuração de callback de moderação de áudio.

Parâmetros do callback

A notificação inclui o texto transcrito do áudio problemático e as informações contextuais do minuto seguinte.

Parâmetro

Tipo

Descrição

DomainName

String

Domínio de streaming.

AppName

String

AppName do fluxo.

StreamName

String

Nome do fluxo.

Timestamp

Int

Timestamp, em segundos.

Result

JSONArray

Resultados da moderação. Para mais informações, consulte Result.

Result

Parâmetro

Tipo

Descrição

Scene

String

Cena de detecção.

Label

String

Categoria do resultado da detecção. Valores válidos:

  • normal: Normal

  • spam: Spam

  • ad: Anúncio

  • politics: Conteúdo politicamente sensível

  • terrorism: Terrorismo

  • abuse: Abuso

  • porn: Pornográfico

  • flood: Sem sentido

  • contraband: Contrabando

  • meaningless: Sem significado

Suggestion

String

Ação sugerida. Valores válidos:

  • pass: Resultado normal. Nenhuma ação adicional necessária.

  • review: Resultado incerto. Revisão manual necessária.

  • block: Conteúdo fora de conformidade. Exclua-o ou restrinja sua visibilidade pública.

Rate

Float

Pontuação de confiança. Intervalo: 0 a 100.

Nota

Este valor serve apenas como referência. Não o utilize em sua lógica de negócios. Use o resultado Label para determinar se o conteúdo está em conformidade.

Details

JSONArray

Detalhes do áudio transcrito. O array contém um ou mais elementos, cada um correspondendo a uma frase. Para a estrutura, consulte Detail.

Detail

Parâmetro

Tipo

Descrição

StartTime

Int

Timestamp de início da frase, em segundos.

EndTime

Int

Timestamp de término da frase, em segundos.

Text

String

Texto transcrito.

Label

String

Categoria do resultado da detecção. Valores válidos:

  • normal: Normal

  • spam: Spam

  • ad: Anúncio

  • politics: Conteúdo politicamente sensível

  • terrorism: Terrorismo

  • abuse: Abuso

  • porn: Pornográfico

  • flood: Sem sentido

  • contraband: Contrabando

  • meaningless: Sem significado

Exemplo

{
  "DomainName": "example.aliyundoc.com",
  "AppName": "liveApp****",
  "StreamName": "5d9747eba39b44769852d276f9ff****",
  "Timestamp": 1572248095,
  "Result": [
    {
      "Scene": "antispam",
      "Label": "ad",
      "Suggestion": "block",
      "Rate": 99.91,
      "Details": [
        {
          "StartTime": 1572248023,
          "EndTime": 1572248040,
          "Text": "The hotel offers 120 days of free accommodation. It can be shared with friends and family. Visit the reception center at No. 96 Tuanjie Street, Mangshi. Hotline: 2285699.",
          "Label": "ad"
        },
        {
          "StartTime": 1572248040,
          "EndTime": 1572248070,
          "Text": "Discover a rare collection of classic villas nestled in the heart of the Hot Spring Resort Town. Located adjacent to the prestigious Longduo Hot Springs and the historic Lianghe Golden Pagoda, this is where luxury meets nature.",
          "Label": "normal"
        },
        {
          "StartTime": 1572248072,
          "EndTime": 1572248077,
          "Text": "Joyful times and cozy days, made all the more carefree with your beautiful company.",
          "Label": "normal"
        },
        {
          "StartTime": 1572248078,
          "EndTime": 1572248086,
          "Text": "fme043 A little break from the hustle with cozy music and movies.",
          "Label": "normal"
        }
      ]
    }
  ]
}

Callback de recuperação de desastres de fluxo duplo

Este callback notifica quando ocorre uma troca de fluxo para failover.

Configuração pelo console

  1. Faça login no console do ApsaraVideo Live.

  2. No painel de navegação à esquerda, escolha Feature Management > Callbacks.

  3. Selecione o Ingest Domain para configurar.

  4. Na aba Callback Settings, ative a chave Dual-stream Disaster Recovery Callbacks e configure a URL de callback.

  5. Clique em OK.

Parâmetros do callback

Parâmetro

Descrição

action

Tipo de evento. Valor fixo: multistream_set_master_result

domain

Domínio de ingestão.

appname

AppName do fluxo.

streamname

Nome do fluxo.

upstreamsequence

Identificador do fluxo primário após a troca.

upstreamip

Endereço IP do cliente que publica o fluxo primário após a troca.

upstreamtime

Hora de início da ingestão do fluxo primário após a troca. Timestamp Unix em segundos.

changereason

Motivo da troca.

changetime

Hora em que a troca de fluxo ocorreu. Timestamp Unix em segundos.

time

Hora em que a notificação de callback foi gerada. Timestamp Unix em segundos.

Exemplo

{
  "action": "multistream_set_master_result",
  "domain": "demo.aliyundoc.com",
  "appname": "liveApp****",
  "streamname": "liveStream****",
  "upstreamsequence": "main",
  "upstreamip": "203.**.***.10",
  "upstreamtime": 17*****710,
  "changereason": "merge_cut_manually",
  "changetime": 17*****705,
  "time": 17*****706
}

Autenticação de callback

O ApsaraVideo Live é compatível com autenticação de callback para eventos de ingestão de fluxo, gravação, snapshots e recuperação de desastres de fluxo duplo. Quando ativada, a autenticação funciona da seguinte forma:

O ApsaraVideo Live inclui os cabeçalhos ALI-LIVE-TIMESTAMP e ALI-LIVE-SIGNATURE nas solicitações de callback, permitindo que seu servidor receptor verifique se a solicitação é autêntica e não foi adulterada.

Cálculo do ALI-LIVE-SIGNATURE
ALI-LIVE-SIGNATURE=MD5SUM(MD5CONTENT)
MD5CONTENT=Domain|ALI-LIVE-TIMESTAMP Value|Auth KEY

onde:

  • Domain: A origem do domínio varia conforme o tipo de callback:

    • Para callbacks de ingestão de fluxo e recuperação de desastres de fluxo duplo: Use o domínio de ingestão onde a URL de callback está configurada.

    • Para callbacks de gravação e snapshot: Use o domínio da URL de callback. Por exemplo, se a URL de callback for https://learn.aliyundoc.com/your/callback, o valor do domínio será learn.aliyundoc.com.

  • ALI-LIVE-TIMESTAMP: Timestamp UNIX de envio da solicitação. Unidade: segundo.

  • Auth KEY: Chave de autenticação configurada para a URL de callback correspondente.

Autenticação pelo servidor receptor

Ao receber mensagens de callback, o servidor receptor determina o domínio de callback com base no tipo de callback. Em seguida, concatena o domínio de callback, o valor de ALI-LIVE-TIMESTAMP e a chave de autenticação, calcula o hash MD5 dessa string e compara o valor calculado com o valor do cabeçalho ALI-LIVE-SIGNATURE na solicitação. Se os valores não coincidirem, a solicitação não será autorizada.

Registros de callback

O console do ApsaraVideo Live permite visualizar o histórico e os payloads de eventos de callback de ingestão e gravação de transmissões ao vivo. Outros tipos de callback não são compatíveis.

Limitações

  1. Configurações de callback novas ou atualizadas levam até 5 minutos para entrar em vigor. Após esse período, os registros de callback aparecem conforme esperado.

  2. Estão disponíveis até 1.000 registros de callback dos últimos 7 dias.

Passos

  1. Faça login no console do ApsaraVideo Live.

  2. No painel de navegação à esquerda, clique em Feature Management > Callbacks.

  3. Selecione o domínio de ingestão ou streaming onde a URL de callback está configurada.

  4. Na aba Callback Records, selecione Stream Ingest Callbacks ou Recording Callbacks.

  5. Filtre os registros de callback por intervalo de tempo, AppName e StreamName.