Todos os produtos
Search
Central de documentação

ApsaraVideo Live:AddLiveAppRecordConfig

Última atualização: Oct 27, 2026

Configura a gravação do aplicativo e salva a saída no OSS.

Descrição da operação

  • Certifique-se de compreender totalmente os métodos de cobrança e os preços da gravação ao vivo antes de chamar esta operação. Para detalhes de cobrança, consulte Taxas de gravação ao vivo.

  • Se você deseja armazenar gravações no OSS, é necessário ativar o OSS e criar um bucket. Para mais informações, consulte Configurar o OSS.

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

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

  • O recurso de gravação ao vivo permite gravar transmissões ao vivo e salvar as gravações em um local especificado para reprodução. As gravações armazenadas no OSS suportam vários formatos (TS, MP4, FLV e CMAF) e políticas de gravação personalizadas (gravação automática, sob demanda e manual). Você pode chamar esta operação para configurar um modelo de gravação. Para mais informações, consulte Gravação ao vivo.

  • Uma tupla de (DomainName, AppName, StreamName) pode corresponder a apenas uma configuração. Se já existir uma configuração para a tupla, chamar esta operação para adicionar uma configuração retornará um erro indicando que a configuração já existe.

  • As configurações definidas por esta operação entram em vigor somente após a transmissão ao vivo ser ingerida novamente e permanecem válidas permanentemente.

Limite de QPS

O limite de QPS para um único usuário chamando esta operação é de 30 solicitações por segundo. Se o limite for excedido, as chamadas de API serão limitadas, o que pode afetar seus negócios. Faça chamadas de API a uma taxa razoável.

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 nome do domínio de streaming principal.

example.com

AppName

string

Sim

O nome do aplicativo ao qual a transmissão pertence. O AppName deve corresponder ao AppName na URL de ingestão para que o modelo entre em vigor. Se você não deseja restringir o AppName, pode inserir um asterisco (*) para corresponder a todos os AppNames.

liveApp****

OssEndpoint

string

Sim

O endpoint do OSS.

Para armazenar gravações ao vivo no OSS, você deve criar um bucket do OSS com antecedência. Para 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, você deve criar um bucket do OSS com antecedência. Para mais informações, consulte Configurar o OSS.

liveBucket****

StreamName

string

Não

O nome da transmissão. O StreamName deve corresponder ao StreamName na URL de ingestão para que o modelo entre em vigor. Se você não deseja restringir o StreamName, pode inserir um asterisco (*) para corresponder a todos os StreamNames sob o AppName.

teststream

StartTime

string

Não

A hora de início da gravação. Especifique a hora no formato aaaa-MM-ddTHH:mm:ssZ. A hora deve estar em UTC.

Nota

A hora especificada deve estar dentro de 7 dias após a hora de início real da ingestão da transmissão. Este parâmetro é válido apenas para gravação no nível da transmissão, onde o StreamName não está vazio.

2018-04-10T09:57:21Z

EndTime

string

Não

A hora de término da gravação. Especifique a hora no formato aaaa-MM-ddTHH:mm:ssZ. A hora deve estar em UTC.

Nota

A diferença entre EndTime e StartTime não deve exceder 7 dias. Se a diferença exceder 7 dias, será calculada como 7 dias. Este parâmetro é válido apenas para gravação no nível da transmissão, onde o StreamName não está vazio.

2018-04-16T09:57:21Z

OnDemand

integer

Não

Especifica se a gravação sob demanda ou manual deve ser ativada. Valores válidos:

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

  • 1: Gravação sob demanda usando callbacks HTTP. Você deve primeiro chamar a operação AddLiveRecordNotifyConfig para configurar o OnDemandUrl. Caso contrário, a gravação é desativada por padrão.

  • 2: Gravação sob demanda analisando parâmetros de ingestão.

  • 7: Gravação manual. A gravação é desativada 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 de emenda de interrupção da transmissão. Se a duração da interrupção da transmissão exceder a duração de emenda especificada, um novo arquivo será gerado. A duração de emenda de interrupção da transmissão varia de 15 a 21.600 segundos.

180

RecordFormat

array<object>

Não

Os detalhes do formato de gravação.

object

Não

SliceDuration

integer

Não

O comprimento do segmento. Unidade: segundos.

Importante Este parâmetro é válido apenas quando RecordFormat.N.Format é definido como m3u8 ou cmaf.

Se você não especificar este parâmetro, o valor padrão será 30. Valores válidos: 5 a 30.

30

SliceOssObjectPrefix

string

Não

O nome do segmento.

Importante Você precisa configurar este parâmetro apenas quando RecordFormat.N.Format é definido como m3u8 ou cmaf.
  • Por padrão, um segmento é gerado a cada 30 segundos. O nome tem menos de 256 bytes de tamanho e suporta correspondência de variáveis, incluindo {AppName}, {StreamName}, {UnixTimestamp} e {Sequence}.

  • O valor do parâmetro deve conter as variáveis {UnixTimestamp} e {Sequence}.

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

CycleDuration

integer

Não

O comprimento da gravação periódica. Unidade: segundos.

Nota
  • Se você não especificar este parâmetro, o valor padrão será usado. O valor padrão varia com base no formato de gravação: 6 horas para m3u8 e cmaf, e 1 hora para flv e mp4.

  • Se ocorrer uma interrupção da transmissão dentro de um ciclo de gravação, mas a transmissão for ingerida normalmente novamente dentro da duração de emenda de interrupção da transmissão, a gravação continuará no mesmo arquivo de gravação.

  • Um arquivo de gravação é gerado apenas quando uma transmissão ao vivo é interrompida por uma duração que excede a duração de emenda de interrupção da transmissão.

1

OssObjectPrefix

string

Não

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

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

  • O valor do parâmetro 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 Você deve especificar pelo menos um entre RecordFormat e TranscodeRecordFormat. Se você selecionar o formato m3u8 ou cmaf, também deverá definir os parâmetros de solicitação RecordFormat.N.SliceOssObjectPrefix e RecordFormat.N.SliceDuration.
  • m3u8

  • flv

  • mp4

  • cmaf

m3u8

TranscodeRecordFormat

array<object>

Não

Os detalhes do formato de gravação transcodificada.

object

Não

SliceDuration

integer

Não

O comprimento do segmento para gravação de transmissão de transcodificação. Unidade: segundos.

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

Se você não especificar este parâmetro, o valor padrão será 30. Valores válidos: 5 a 30.

30

SliceOssObjectPrefix

string

Não

O nome do segmento para gravação de transmissão transcodificada.

Importante Você precisa configurar este parâmetro apenas quando TranscodeRecordFormat.N.Format é definido como m3u8 ou cmaf.
  • Por padrão, um segmento é gerado a cada 30 segundos. O nome tem menos de 256 bytes de tamanho e suporta correspondência de variáveis, incluindo {AppName}, {StreamName}, {UnixTimestamp} e {Sequence}.

  • O valor do parâmetro deve conter as variáveis {UnixTimestamp} e {Sequence}.

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

CycleDuration

integer

Não

O comprimento da gravação periódica para gravação de transmissão transcodificada. Unidade: segundos.

Nota

Se você não especificar este parâmetro, o valor padrão será usado. O valor padrão varia com base no formato de gravação: 6 horas para m3u8 e cmaf, e 1 hora para flv e mp4.

21600

OssObjectPrefix

string

Não

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

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

  • O valor do parâmetro deve conter {StartTime} ou {EscapedStartTime}, e {EndTime} ou {EscapedEndTime}.

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

Format

string

Não

O formato de gravação para transmissões transcodificadas. M3U8, FLV, MP4 e CMAF são suportados. Valores válidos:

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

  • m3u8

  • flv

  • mp4

  • cmaf

m3u8

TranscodeTemplates

array

Não

O grupo de modelos de transcodificação para gravação de transmissão transcodificada.

sd

string

Não

  • O modelo de transcodificação para gravação de transmissão transcodificada. Você pode especificar vários modelos, até 10.

  • Ao configurar TranscodeRecordFormat.N.xxx, você deve especificar pelo menos um parâmetro TranscodeTemplates.

  • Para gravar várias ou todas as transmissões transcodificadas, você pode definir TranscodeTemplates.1 como *****.

Nota

Você não pode especificar raw para TranscodeTemplates porque é um identificador reservado.
RepeatList refere-se a N em TranscodeTemplates.N, que pode ser entendido como uma sequência incremental para várias configurações. Exemplo: 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. O parâmetro SliceDuration especificado é inválido.
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âmetro 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.