Todos os produtos
Search
Central de documentação

ApsaraVideo Live:CreateLiveStreamRecordIndexFiles

Última atualização: Jul 15, 2026

Cria um arquivo de índice M3U8 para um intervalo de tempo especificado.

Descrição da operação

Você configurou o OSS. Para mais informações, consulte Configurar o OSS. A indexação de gravação ao vivo registra um fluxo de vídeo ao vivo no formato M3U8, armazena-o no OSS e realiza recorte em tempo real nos arquivos de índice de segmentos TS armazenados.

Nota
  • Para criar um índice de gravação, o fluxo ao vivo deve ter tido atividade de ingestão de fluxo. Se nenhuma transmissão ao vivo ocorreu dentro do intervalo de tempo especificado ou se o nome do fluxo estiver incorreto, a criação do índice de gravação falhará.

  • Certifique-se de que DomainName, AppName e StreamName estejam corretos. Caso contrário, o erro InvalidStream.NotFound será retornado.

  • O intervalo entre StartTime e EndTime deve ser pelo menos a duração de um segmento TS (30 segundos por padrão).

  • EndTime deve ser posterior a StartTime, e o intervalo não pode exceder 4 dias.

  • As informações dos segmentos TS são retidas no sistema ApsaraVideo Live por apenas 3 meses. Você pode criar um arquivo M3U8 apenas a partir de gravações dos últimos 3 meses.

  • Os arquivos de segmentos TS são armazenados no OSS. O período de retenção é determinado pela configuração de armazenamento do OSS. Para mais informações, consulte Definir regras de ciclo de vida.

  • As informações sobre os arquivos de índice M3U8 criados são retidas no sistema ApsaraVideo Live por apenas 6 meses. Você pode consultar apenas as informações de arquivos de índice criados nos últimos 6 meses.

  • Os arquivos de índice M3U8 são armazenados no OSS. O período de retenção é determinado pela configuração de armazenamento do OSS.

  • Se os arquivos M3U8 e TS forem armazenados em buckets diferentes, os caminhos dos TS no arquivo M3U8 estarão no formato HTTP.

Limite de QPS

O limite de QPS por usuário para esta API é de 45 chamadas por segundo. Se esse limite for excedido, o throttling será acionado, o que pode afetar seus negócios. Chame esta operação conforme apropriado.

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

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 da aplicação à qual o fluxo pertence. O AppName deve corresponder ao AppName na URL de ingestão para que o modelo tenha efeito. Para corresponder a todos os valores de AppName, defina este parâmetro como *.

liveApp****

StreamName

string

Sim

O nome do fluxo. O StreamName deve corresponder ao StreamName na URL de ingestão para que o modelo tenha efeito. Para corresponder a todos os valores de StreamName, defina este parâmetro como *.

O fluxo deve ter tido atividade real de ingestão de fluxo sob o DomainName e AppName especificados. Caso contrário, o erro InvalidStream.NotFound será retornado.

liveStream****

OssEndpoint

string

Sim

O endpoint do bucket do OSS.

cn-oss-****.aliyuncs.com

OssBucket

string

Sim

O nome do bucket do OSS.

liveBucket****

OssObject

string

Sim

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

{AppName}/{StreamName}/{Date}/{Hour}/{Minute}_{Second}.m3u8

StartTime

string

Sim

A hora de início do arquivo de índice. Arquivos TS enviados após essa hora são incluídos no arquivo de índice. Especifique a hora no formato aaaa-MM-ddTHH:mm:ssZ (UTC).

2017-12-21T08:00:00Z

EndTime

string

Sim

A hora de término do arquivo de índice. Arquivos TS enviados antes dessa hora são incluídos no arquivo de índice. Especifique a hora no formato aaaa-MM-ddTHH:mm:ssZ (UTC).

2017-12-22T08:00:00Z

EndTimeIncluded

boolean

Não

Especifica se a hora de término deve ser incluída. Se você definir este parâmetro como true, o sistema tentará incluir um arquivo TS adicional para que o arquivo de índice criado cubra totalmente o período entre StartTime e EndTime.

false

Elementos de resposta

Elemento

Tipo

Descrição

Exemplo

object

RequestId

string

O ID da solicitação.

550439A3-F8EC-4CA2-BB62-B9DB43EEEF30

RecordInfo

object

As informações de configuração de gravação.

RecordUrl

string

A URL do arquivo de índice.

http://*****/atestObject.m3u8

StreamName

string

O nome do fluxo.

liveStream****

CreateTime

string

A hora de criação. A hora está no formato aaaa-MM-ddTHH:mm:ssZ (UTC).

2016-05-27T09:40:56Z

RecordId

string

O ID do arquivo de índice.

c4d7f0a4-b506-43f9-8de3-07732c3f****

Height

integer

A altura do vídeo.

480

OssBucket

string

O nome do bucket do OSS.

liveBucket****

DomainName

string

O domínio de streaming do streamer.

example.com

OssObject

string

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

liveObject****.m3u8

EndTime

string

A hora de término. A hora está no formato aaaa-MM-ddTHH:mm:ssZ (UTC).

2015-12-01T07:40:00Z

AppName

string

O nome da aplicação à qual o fluxo pertence.

liveApp****

StartTime

string

A hora de início. A hora está no formato aaaa-MM-ddTHH:mm:ssZ (UTC).

2015-12-01T07:36:00Z

Width

integer

A largura do vídeo.

640

Duration

number

A duração da gravação. Unidade: segundos.

20

OssEndpoint

string

O endpoint do bucket do OSS.

cn-oss-****.aliyuncs.com

Exemplos

Resposta de sucesso

JSON formato

{
  "RequestId": "550439A3-F8EC-4CA2-BB62-B9DB43EEEF30",
  "RecordInfo": {
    "RecordUrl": "http://*****/atestObject.m3u8",
    "StreamName": "liveStream****",
    "CreateTime": "2016-05-27T09:40:56Z",
    "RecordId": "c4d7f0a4-b506-43f9-8de3-07732c3f****",
    "Height": 480,
    "OssBucket": "liveBucket****",
    "DomainName": "example.com",
    "OssObject": "liveObject****.m3u8",
    "EndTime": "2015-12-01T07:40:00Z",
    "AppName": "liveApp****",
    "StartTime": "2015-12-01T07:36:00Z",
    "Width": 640,
    "Duration": 20,
    "OssEndpoint": "cn-oss-****.aliyuncs.com"
  }
}

Códigos de erro

Código de status HTTP

Código de erro

Mensagem de erro

Descrição

400 InvalidStartTime.Mismatch Specified StartTime does not math the current time.
400 InvalidStartTime.Malformed Specified StartTime is malformed.
400 InvalidParams invalid params
400 InvalidEndTime.Malformed Specified EndTime is malformed.
400 InvalidEndTime.Mismatch Specified end time does not math the specified start time. A hora de término não corresponde à hora de início. Verifique se os horários são consistentes.
400 InvalidOssEndpoint.Malformed Specified OssEndpoint is malformed.
400 InvalidOssBucket.Malformed Specified OssBucket is malformed. O parâmetro OSSBucket é inválido. Verifique se o parâmetro OSSBucket está correto.
400 InvalidOssObject.Malformed Specified OssObject is malformed.
400 InvalidStream.NotFound Speicified stream does not exist.
400 InvalidConfig.Changed The oss bucket info between StartTime and EndTime has changed. A hora de início e a hora de término do bucket OSS foram alteradas.
400 NoRecordContent The record content between StartTime and EndTime is empty. Nenhum registro foi encontrado entre StartTime e EndTime.
400 RecordContentExceed The record content between StartTime and EndTime is exceeded, please narrow down the range.
400 OperationNotSupport The Operation is not support for flv/mp4 format or live to vod record.
500 InternalError The request processing has failed due to some unknown error, exception or failure.
404 InvalidBucket.NotFound The bucket does not belong to you. O bucket especificado não pertence ao usuário atual.

Consulte Códigos de Erro para uma lista completa.

Notas de versão

Consulte Notas de Versão para uma lista completa.