Todos os produtos
Search
Central de documentação

ApsaraVideo Live:AddLiveAppRecordConfig

Última atualização: Jul 14, 2026

Configura a gravação para um aplicativo e salva a saída no Object Storage Service (OSS).

Descrição da operação

  • Antes de usar esta operação, certifique-se de compreender totalmente os métodos de cobrança e os preços da gravação de transmissão ao vivo. Para obter detalhes sobre a cobrança, consulte Taxas de gravação de transmissão ao vivo.

  • Se você usar o método de armazenamento de gravações no OSS para configurar a gravação de transmissão ao vivo, ative o OSS e crie um bucket. Para obter mais informações, consulte Configurar o OSS.

  • As gravações armazenadas no OSS incorrem em taxas de armazenamento. Para obter detalhes sobre a cobrança no OSS, consulte Taxas de armazenamento.

  • O bucket do OSS deve estar na mesma região que o centro de transmissão ao vivo do domínio de streaming. A gravação entre regiões não é suportada.

  • O recurso de gravação de transmissão ao vivo grava o conteúdo ao vivo e o salva em um local especificado para reprodução sob demanda. As gravações armazenadas no OSS suportam vários formatos de contêiner (TS, MP4, FLV e CMAF) e políticas de gravação personalizadas (gravação automática, gravação sob demanda e gravação manual). Chame esta operação para configurar modelos de gravação. Para obter mais informações sobre a gravação de transmissão ao vivo, consulte Gravação de transmissão ao vivo.

  • A tríade (DomainName, AppName, StreamName) pode corresponder a apenas uma configuração. Se já existir uma configuração para a tríade, chamar esta operação para adicionar outra configuração retornará um erro de configuração já existente.

  • As configurações definidas por meio desta operação entram em vigor somente após a reingestão da transmissão ao vivo e permanecem efetivas permanentemente.

Limite de QPS

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

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:AddLiveAppRecordConfig

create

*Domínio.

acs:cdn:*:{#accountId}:domain/{#DomainName}

Nenhuma Nenhuma

Parâmetros da solicitação

Parâmetro

Tipo

Obrigatório

Descrição

Exemplo

DomainName

string

Sim

O domínio de streaming do streamer.

example.com

AppName

string

Sim

O nome do aplicativo ao qual o stream pertence. O modelo entra em vigor somente quando o valor de AppName corresponde ao AppName na URL de ingestão. Para corresponder a todos os nomes de aplicativos, defina este parâmetro como um asterisco (*).

liveApp****

OssEndpoint

string

Sim

O endpoint do bucket do OSS.

Para armazenar gravações ao vivo no OSS, crie um bucket do OSS com antecedência. Para obter mais informações, consulte Configurar o OSS.

oss-cn-beijing.aliyuncs.com

OssBucket

string

Sim

O nome do bucket do OSS.

Para armazenar gravações ao vivo no OSS, crie um bucket do OSS com antecedência. Para obter mais informações, consulte Configurar o OSS.

liveBucket****

StreamName

string

Não

O nome do stream. O modelo entra em vigor somente quando o valor de StreamName corresponde ao StreamName na URL de ingestão. Para corresponder a todos os nomes de stream no AppName especificado, defina este parâmetro como um asterisco (*).

teststream

StartTime

string

Não

A hora de início da gravação. Formato: yyyy-MM-ddTHH:mm:ssZ (UTC).

Nota

A hora especificada deve estar dentro de 7 dias da hora real de início da ingestão do stream. Este parâmetro é válido apenas para gravação no nível do stream (quando StreamName não está vazio).

2018-04-10T09:57:21Z

EndTime

string

Não

A hora de término da gravação. Formato: yyyy-MM-ddTHH:mm:ssZ (UTC).

Nota

A diferença entre EndTime e StartTime não pode exceder 7 dias. Se exceder 7 dias, o valor será calculado como 7 dias. Este parâmetro é válido apenas para gravação no nível do stream (quando StreamName não está vazio).

2018-04-16T09:57:21Z

OnDemand

integer

Não

O modo de gravação sob demanda ou manual. Valores válidos:

  • 0 (padrão): desativado. A gravação automática é usada.

  • 1: gravação sob demanda por meio de callback HTTP. Você deve primeiro configurar OnDemandUrl chamando a operação AddLiveRecordNotifyConfig. Caso contrário, a gravação não é realizada por padrão.

  • 2: gravação sob demanda por meio da análise dos parâmetros de ingestão de stream.

  • 7: gravação manual. A gravação não é realizada por padrão. Você pode chamar a operação RealTimeRecordCommand para iniciar ou parar a gravação manualmente.

1

DelayTime

integer

Não

A duração da mesclagem de descontinuidade do stream. Se a transmissão ao vivo for desconectada por um período maior que a duração de mesclagem especificada, um novo arquivo será gerado. Valores válidos: 15 a 21600. Unidade: segundos.

180

RecordFormat

array<object>

Não

Os detalhes da gravação.

object

Não

SliceDuration

integer

Não

O comprimento de um único segmento. Unidade: segundos.

Importante Este parâmetro entra em vigor somente quando RecordFormat.N.Format é definido como m3u8 ou cmaf.

Se este parâmetro não for especificado, o valor padrão é 30 segundos. Valores válidos: 5 a 30.

30

SliceOssObjectPrefix

string

Não

O nome do segmento.

Importante Este parâmetro é obrigatório somente quando RecordFormat.N.Format é definido como m3u8 ou cmaf.
  • O comprimento padrão do segmento é de 30 segundos. O valor deve ter menos de 256 bytes e suporta correspondência de variáveis, incluindo {AppName}, {StreamName}, {UnixTimestamp} e {Sequence}.

  • O valor deve conter as variáveis {UnixTimestamp} e {Sequence}.

record/{AppName}/{StreamName}/{UnixTimestamp}_{Sequence}

CycleDuration

integer

Não

O comprimento da gravação por ciclo. Unidade: segundos.

Nota
  • Se este parâmetro não for especificado, o valor padrão varia de acordo com o formato de gravação: 6 horas para os formatos m3u8 e cmaf, e 1 hora para os formatos flv e mp4.

  • Se uma transmissão ao vivo for desconectada dentro de um ciclo de gravação, mas retomar a ingestão do stream dentro da duração de mesclagem de descontinuidade do stream, a gravação continuará no mesmo arquivo. Este é o comportamento normal.

  • Um arquivo de gravação é gerado somente após a transmissão ao vivo ser desconectada por um período maior que a duração de mesclagem de descontinuidade do stream.

1

OssObjectPrefix

string

Não

O nome do arquivo de gravação armazenado no OSS.

  • O nome do arquivo deve ter menos de 256 bytes e suporta correspondência de variáveis, incluindo {AppName}, {StreamName}, {Sequence}, {StartTime}, {EndTime}, {EscapedStartTime} e {EscapedEndTime}.

  • O valor deve conter {StartTime} ou {EscapedStartTime} e {EndTime} ou {EscapedEndTime}.

record/{AppName}/{StreamName}/{Sequence}_{EscapedStartTime}_{EscapedEndTime}

Format

string

Não

O formato. M3U8, FLV, MP4 e CMAF são suportados. Valores válidos:

Importante Pelo menos um entre RecordFormat e TranscodeRecordFormat deve ser definido. Se você selecionar m3u8 ou cmaf, também deverá definir os parâmetros de solicitação RecordFormat.N.SliceOssObjectPrefix e RecordFormat.N.SliceDuration.
  • m3u8.

  • flv.

  • mp4.

  • cmaf.

Nota

Configurações para RecordFormat e TranscodeRecordFormat: pelo menos um deve ser especificado.

m3u8

TranscodeRecordFormat

array<object>

Não

Os detalhes da gravação do stream transcodificado.

object

Não

SliceDuration

integer

Não

O comprimento de um único segmento para gravação de stream de transcodificação. Unidade: segundos.

Importante Este parâmetro entra em vigor somente quando TranscodeRecordFormat.N.Format (formato de gravação de stream de transcodificação) é definido como m3u8 ou cmaf.

Se este parâmetro não for especificado, o valor padrão é 30 segundos. Valores válidos: 5 a 30.

30

SliceOssObjectPrefix

string

Não

O nome do segmento para gravação de stream transcodificado.

Importante Este parâmetro é obrigatório somente quando TranscodeRecordFormat.N.Format é definido como m3u8 ou cmaf.
  • O comprimento padrão do segmento é de 30 segundos. O valor deve ter menos de 256 bytes e suporta correspondência de variáveis, incluindo {AppName}, {StreamName}, {UnixTimestamp} e {Sequence}.

  • O valor deve conter as variáveis {UnixTimestamp} e {Sequence}.

record/{AppName}/{StreamName}/{UnixTimestamp}_{Sequence}

CycleDuration

integer

Não

O comprimento da gravação por ciclo para gravação de stream de transcodificação. Unidade: segundos.

Nota

Se este parâmetro não for especificado, o valor padrão varia de acordo com o formato de gravação: 6 horas para os formatos m3u8 e cmaf, e 1 hora para os formatos flv e mp4.

21600

OssObjectPrefix

string

Não

O nome do arquivo de gravação do stream transcodificado armazenado no OSS.

  • O nome do arquivo deve ter menos de 256 bytes e suporta correspondência de variáveis, incluindo {AppName}, {StreamName}, {Sequence}, {StartTime}, {EndTime}, {EscapedStartTime} e {EscapedEndTime}.

  • O valor deve conter {StartTime} ou {EscapedStartTime} e {EndTime} ou {EscapedEndTime}.

record/{AppName}/{StreamName}/{Sequence}_{EscapedStartTime}_{EscapedEndTime}

Format

string

Não

O formato de gravação do stream de transcodificação. M3U8, FLV, MP4 e CMAF são suportados. Valores válidos:

Importante Se você selecionar m3u8 ou cmaf, também deverá definir os parâmetros de solicitação TranscodeRecordFormat.N.SliceOssObjectPrefix e TranscodeRecordFormat.N.SliceDuration.

  • m3u8.

  • flv.

  • mp4.

  • cmaf.

Nota

Configurações: se você selecionar o formato m3u8 ou cmaf, os parâmetros de segmento correspondentes também deverão ser configurados.

m3u8

TranscodeTemplates

array

Não

O grupo de modelos de transcodificação para gravação de stream transcodificado.

sd

string

Não

  • Os modelos de transcodificação para gravação de stream transcodificado. Você pode especificar até 10 modelos.

  • Quando TranscodeRecordFormat.N.xxx é configurado, pelo menos um valor de TranscodeTemplates deve ser especificado.

  • Para gravar vários ou todos os streams transcodificados, defina TranscodeTemplates.1 como *****.

Nota

TranscodeTemplates não permite o valor raw, que é um identificador reservado.
RepeatList é representado por N em TranscodeTemplates.N, que pode ser entendido como configurações incrementais para vários valores, como TranscodeTemplates.1=sd e TranscodeTemplates.2=hd.

sd

Elementos de resposta

Elemento

Tipo

Descrição

Exemplo

object

RequestId

string

O ID da solicitação.

16A96B9A-F203-4EC5-8E43-CB92E68F****

Exemplos

Resposta de sucesso

JSON formato

{
  "RequestId": "16A96B9A-F203-4EC5-8E43-CB92E68F****"
}

Códigos de erro

Código de status HTTP

Código de erro

Mensagem de erro

Descrição

400 InvalidOssEndpoint.Malformed %s
400 InvalidOssBucket.Malformed Specified parameter OssBucket is not valid. O parâmetro OSSBucket é inválido. Verifique se o parâmetro OSSBucket está correto.
400 InvalidOssBucket.NotFound The parameter OssBucket does not exist.
400 InvalidFormat.Malformed Specified parameter Format is not valid. O parâmetro Format é inválido. Verifique se o parâmetro Format está correto.
400 InvalidCycleDuration.Malformed Specified CycleDuration Format is not valid. O formato do parâmetro CycleDuration é inválido. Verifique se o formato do parâmetro CycleDuration está correto.
400 InvalidSliceDuration.Malformed Specified SliceDuration Format is not valid.
400 InvalidTemplateLength.Malformed Specified record template length is not valid.
400 InvalidTemplate.ForbidRaw Template named raw is Forbidden.
400 MissingTemplate Template is mandatory for this action. As configurações de parâmetros do modelo de transcodificação estão ausentes.
400 MissingOssObjectPrefix OssObjectPrefix is mandatory for this action.
400 MissingSliceOssObjectPrefix SliceOssObjectPrefix is mandatory for this action.
400 InvalidOssObjectPrefix.Malformed Specified parameter OssObjectPrefix is not valid.
400 InvalidSliceOssObjectPrefix.Malformed Specified parameter SliceOssObjectPrefix is not valid. O parâmetro SliceOssObjectPrefix é inválido. Verifique se o parâmetro SliceOssObjectPrefix está correto.
400 ConfigAlreadyExists Config has already exist.
400 InvalidFormat.IllegalOperation Specified parameter Format can not be multiple.
400 InvalidDelayTime Specified Delaytime is invalid.
400 Live2Vod.ConfigAlreadyExists Had live2vod record config already.
400 InvalidStartTime.Malformed Specified StartTime is malformed.
400 InvalidEndTime.Malformed Specified EndTime is malformed.
400 InvalidEndTime.Mismatch Specified EndTime does not math the specified StartTime or current time.
400 InvalidStartTime.Mismatch Specified StartTime does not math the current time.

Consulte Códigos de Erro para uma lista completa.

Notas de versão

Consulte Notas de Versão para uma lista completa.