Todos os produtos
Search
Central de documentação

ApsaraVideo Live:CreateRtcMPUEventSub

Última atualização: Jul 15, 2026

Cria uma assinatura de evento para mixagem e retransmissão de streams.

Descrição da operação

Cria uma assinatura de evento para mixagem e retransmissão de streams. Ao criar uma assinatura, você pode configurar parâmetros como a URL de callback, o aplicativo a ser assinado e as informações do canal.

Limite de QPS

O limite de QPS por usuário único para esta operação é de 50 chamadas por segundo. Se o limite for excedido, as chamadas de API serão limitadas, o que pode afetar seus negócios. Chame esta operação adequadamente.

Experimente agora

Experimente esta API no OpenAPI Explorer, sem necessidade de assinatura manual. Chamadas bem-sucedidas geram automaticamente código SDK correspondente aos seus parâmetros. Faça o download com segurança de credenciais integrada para uso local.

Testar

Autorização RAM

A tabela abaixo descreve a autorização necessária para chamar esta API. Você pode defini-la em uma política do Resource Access Management (RAM). As colunas da tabela estão detalhadas abaixo:

  • Ação: As ações que podem ser usadas no elemento Action das instruções de política de permissão do RAM para conceder permissões para executar a operação.

  • API: A API que você pode chamar para executar a ação.

  • Nível de acesso: O nível de acesso predefinido concedido para cada API. Valores válidos: create, list, get, update e delete.

  • Tipo de recurso: O tipo de recurso que suporta autorização para executar a ação. Indica se a ação suporta permissão em nível de recurso. O recurso especificado deve ser compatível com a ação. Caso contrário, a política será ineficaz.

    • Para APIs com permissões em nível de recurso, os tipos de recursos obrigatórios são marcados com um asterisco (*). Especifique o Nome de Recurso Alibaba Cloud (ARN) correspondente no elemento Resource da política.

    • Para APIs sem permissões em nível de recurso, é exibido como Todos os Recursos. Use um asterisco (*) no elemento Resource da política.

  • Chave de condição: As chaves de condição definidas pelo serviço. A chave permite controle granular, aplicando-se somente a ações ou a ações associadas a recursos específicos. Além das chaves de condição específicas do serviço, o Alibaba Cloud fornece um conjunto de chaves de condição comuns aplicáveis a todos os serviços compatíveis com RAM.

  • Ação dependente: As ações dependentes necessárias para executar a ação. Para concluir a ação, o usuário RAM ou a função RAM deve ter permissões para executar todas as ações dependentes.

Ação

Nível de acesso

Tipo de recurso

Chave de condição

Ação dependente

live:CreateRtcMPUEventSub

create

*Todos os recursos.

*

Nenhuma Nenhuma

Parâmetros da solicitação

Parâmetro

Tipo

Obrigatório

Descrição

Exemplo

AppId

string

Sim

O ID do aplicativo a ser assinado. Você pode visualizar os IDs dos seus aplicativos navegando até ApsaraVideo Live > Live+ > ApsaraVideo Real-time Communication > Application Management. Se nenhum aplicativo existir, crie um clicando em Create Application.

Nota

O ID do aplicativo consiste em letras maiúsculas e minúsculas, dígitos, sublinhados e hifens (-), com no máximo 64 caracteres.

yourAppId

ChannelIds

string

Não

Os IDs de canal das tarefas de mixagem de streams para as quais você deseja receber callbacks. Você pode especificar vários IDs de canal separados por vírgulas (,).

Nota
  • Se você deixar este parâmetro vazio, os callbacks de todas as tarefas de mixagem e retransmissão de streams sob o AppId especificado serão recebidos por padrão.

  • Ao especificar vários IDs de canal, não inclua duplicatas. Você pode especificar até 20 IDs de canal por vez.

  • Cada ID de canal consiste em letras maiúsculas e minúsculas, dígitos, sublinhados e hifens (-), com no máximo 64 caracteres.

yourChannelIds

CallbackUrl

string

Sim

A URL de callback. Para o formato da URL, consulte as especificações de conteúdo de callback abaixo.

Nota

O protocolo da URL de callback deve ser HTTP ou HTTPS. A URL pode conter apenas os seguintes caracteres: a-z, A-Z, 0-9, -, _, ?, %, =, #, ., / e +. A URL não pode exceder 2083 caracteres.

http://****.com/callback

Exemplo de conteúdo de callback

O conteúdo do callback é enviado ao seu servidor de negócios como uma solicitação HTTP/HTTPS POST. A codificação de caracteres é UTF-8 e o corpo da solicitação é uma estrutura JSON. Quando seu servidor de negócios responde com um código de status HTTP 200, o callback é considerado bem-sucedido. A seguir, um exemplo do conteúdo do callback:

Nota

Para determinar se a mixagem e retransmissão de streams estão funcionando corretamente, use tanto as notificações de callback quanto o status do stream online fornecido pelo fornecedor de CDN correspondente.

{
	"EventType": 1,
	"MsgId": "42bba8b5-94ab-468c-9dae-9b501dd****",
	"AppId": "rtcdev",
	"SubId": "Sub-9799B2C45009799B2*****",
	"TaskId": "mpucallbacktest",
	"CallbackTs": 1712656430476,
	"Payload": {
		"DstUrl": "rtmp://domain/app/stream?auth",
		"EventTs": 1712656430384,
		"EventCode": 1,
		"ErrorCode": 0,
		"ErrorMessage": ""
	}
}

Informações de callback

O cabeçalho do callback contém os seguintes campos:

CampoDescrição
Content-TypeO tipo de dados. Valor fixo: application/json
Ali-Rtc-TimestampO timestamp.
Ali-Rtc-SignatureO valor da assinatura.

O corpo do callback contém os seguintes campos:

CampoTipoDescriçãoExemplo
EventTypeIntegerO tipo de evento de callback. Para callbacks de mixagem e retransmissão de streams, o valor é fixo em 1.1
MsgIdStringO ID do callback que identifica exclusivamente este callback.*****973C-4529-A334*****
AppIdStringO ID do aplicativo assinado.yourAppId
SubIdStringO ID da assinatura.Sub-******9799B2C4500******
TaskIdStringO ID da tarefa de retransmissão.yourTaskId
CallbackTsIntegerO timestamp em milissegundos quando a solicitação de callback é iniciada.1712656430476
PayloadJSON ObjectAs informações do evento de callback.-
  • Informações do evento de callback (Payload)

CampoTipoDescriçãoExemplo
DstUrlStringA URL de destino para retransmissão.rtmp://domain/app/stream?auth
EventTsIntegerO timestamp em milissegundos quando o evento de callback ocorre.1712656430384
EventCodeIntegerO código do evento de callback.1
ErrorCodeIntegerO código de erro do evento de callback.10001
ErrorMessageStringA mensagem de erro do evento de callback.rtmp server init failed

Códigos de evento de callback

CampoValorDescriçãoFrequência de callback
MPU_STATE_PREPARING0A tarefa de retransmissão foi criada e acionada.Retornado apenas uma vez.
MPU_STATE_ESTABLISHING1A tarefa de retransmissão está estabelecendo uma conexão.Retornado a cada 5 segundos.
MPU_STATE_RUNNING2A tarefa de retransmissão está em execução.Retornado apenas uma vez.
MPU_STATE_RECOVERING3A tarefa de retransmissão foi interrompida e está se recuperando.Retornado a cada 5 segundos.
MPU_STATE_TERMINATED4A tarefa de retransmissão terminou, incluindo parada normal, falha na inicialização ou saída anormal. O motivo específico é indicado por ErrorCode e ErrorMessage.Retornado apenas uma vez.

A figura a seguir mostra um exemplo de transições de estado para eventos de callback: Nota:

  1. As mensagens de callback podem chegar ao seu servidor de negócios fora de ordem. Você pode classificar os eventos com base no EventTs no Payload. Se você precisar apenas do estado mais recente de um evento de callback, ignore eventos expirados que chegarem posteriormente.

  2. Para tarefas de mixagem e retransmissão de streams criadas chamando CreateMixStreamRelayTask (new), a tarefa para automaticamente depois que todos os usuários saem da sala por um período de tempo, e um callback MPU_STATE_TERMINATED é enviado.

  3. As configurações de callback afetam apenas novas tarefas e não afetam tarefas existentes:

a. Tarefas iniciadas antes da configuração de callback ser ativada não enviam callbacks.

b. Tarefas iniciadas após a configuração de callback ser ativada enviam callbacks.

c. Tarefas iniciadas antes da configuração de callback ser excluída continuam a enviar callbacks até que a tarefa termine.

d. Tarefas iniciadas após a configuração de callback ser excluída não enviam callbacks.

Códigos de erro de callback

Quando uma tarefa de retransmissão termina, o ErrorCode e o ErrorMessage indicam o motivo do término.

Código de erroMensagem de erroDescrição
0A tarefa parou normalmente.
10001rtmp server init failedFalha no estabelecimento da conexão. A tarefa terminou anormalmente.
10002rtmp server internal errorOcorreu um erro interno do servidor. A tarefa terminou anormalmente.
10003task idle timeoutA tarefa terminou porque ficou ociosa por muito tempo.

Autenticação de callback

A autenticação de eventos de callback é ativada por padrão. A lógica de autenticação é a seguinte:

  • Quando o ApsaraVideo Live inicia uma solicitação de callback, o cabeçalho da solicitação HTTP(S) contém os campos Ali-Rtc-Timestamp e Ali-Rtc-Signature para verificação de assinatura pelo servidor receptor de mensagens de callback. O valor Ali-Rtc-Signature é calculado da seguinte forma: Ali-Rtc-Signature=MD5SUM(MD5CONTENT), onde MD5CONTENT=URL de callback|valor Ali-Rtc-Timestamp|Chave de Autenticação. A URL de callback é a URL completa de callback que você configurou. A chave de autenticação é a AppKey gerada quando você criou o AppId.

  • Quando o servidor receptor de mensagens de callback recebe uma mensagem de callback, ele concatena a URL de callback, o valor Ali-Rtc-Timestamp e a chave de autenticação, calcula o valor MD5 para obter uma string criptografada e, em seguida, compara a string criptografada calculada com o valor do campo Ali-Rtc-Signature no cabeçalho da solicitação HTTP(S) enviado pelo ApsaraVideo Real-time Communication. Se os valores não coincidirem, a solicitação é inválida.

Nova tentativa de callback em caso de falha

Quando o Alibaba Cloud inicia uma solicitação de callback, o callback é considerado bem-sucedido apenas quando seu servidor de negócios responde com um código de status HTTP 200. Se o callback falhar, o Alibaba Cloud tentará novamente 7 vezes em intervalos de 1 segundo, 2 segundos, 5 segundos, 10 segundos, 1 minuto, 2 minutos e 5 minutos. Cada nova tentativa gera um registro de callback correspondente.

Elementos de resposta

Elemento

Tipo

Descrição

Exemplo

object

RequestId

string

O ID da solicitação.

******3B-0E1A-586A-AC29-742247******

SubId

string

O ID da assinatura.

Sub-******9799B2C4500******

Exemplos

Resposta de sucesso

JSON formato

{
  "RequestId": "******3B-0E1A-586A-AC29-742247******",
  "SubId": "Sub-******9799B2C4500******"
}

Códigos de erro

Código de status HTTP

Código de erro

Mensagem de erro

Descrição

400 InvalidParam %s. Falha na validação do parâmetro.
400 MissingParam %s, please check and try again later. Parâmetros obrigatórios estão ausentes. Verifique e tente novamente.
400 InvalidAppId %s, please check and try again later. O AppId é inválido. Verifique e tente novamente.
500 InternalError InternalError
403 OperationDenied Your account has not enabled the Live service
403 Forbidden %s, please check and try again later. Você não tem as permissões necessárias. Verifique e tente novamente.

Consulte Códigos de Erro para uma lista completa.

Notas de versão

Consulte Notas de Versão para uma lista completa.