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.
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
Testar
Autorização RAM
|
Ação |
Nível de acesso |
Tipo de recurso |
Chave de condição |
Ação dependente |
|
live:CreateLiveStreamRecordIndexFiles |
create |
*Domínio.
|
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.