Cria uma playlist de transcodificação just-in-time que gera um arquivo M3U8 a partir de um arquivo de vídeo, permite reprodução instantânea após a geração da playlist e realiza transcodificação sob demanda com base no progresso da reprodução. Em comparação com a transcodificação offline, isso reduz significativamente o tempo de espera da transcodificação e diminui consideravelmente os custos de transcodificação e armazenamento.
Descrição da operação
Antes de usar esta operação, certifique-se de compreender totalmente a cobrança do Intelligent Media Management e seus preços.
Antes de invocar esta operação, certifique-se de que existe um projeto ativo na região atual. Para obter detalhes, consulte Gerenciamento de projetos.
- Por padrão, esta operação processa apenas um fluxo de vídeo, áudio ou legenda. Você pode configurar o número de fluxos de vídeo, áudio e legenda a serem processados.
Importante Os parâmetros Video, Audio e Subtitle em Targets não podem estar todos vazios. Um valor vazio indica que o processamento correspondente está desativado. Por exemplo, se Video estiver vazio, o processamento de vídeo será desativado e os arquivos TS de saída não conterão um fluxo de vídeo.
Esta operação exige que o vídeo de origem tenha uma duração mínima de aproximadamente 0,x segundos, que varia dependendo da taxa de quadros de saída.
Esta operação suporta a geração de Media Playlists e Master Playlists. Preste atenção às descrições das métricas neste documento.
Esta é uma operação síncrona. A transcodificação síncrona ou assíncrona é acionada apenas durante a reprodução ou pré-transcodificação. Você pode definir o parâmetro de notificação de mensagens Notification para obter o resultado da tarefa de transcodificação por meio de notificações de mensagens.
Para obter mais informações sobre este recurso, consulte Transcodificação just-in-time.
O recurso de processamento de dados do OSS também fornece uma funcionalidade de geração de playlist, mas suporta apenas a geração de Media Playlists com parâmetros simplificados. Para obter detalhes, consulte Gerar uma playlist no processamento de dados do OSS.
Experimente agora
Testar
Autorização RAM
|
Ação |
Nível de acesso |
Tipo de recurso |
Chave de condição |
Ação dependente |
|
imm:GenerateVideoPlaylist |
none |
*Project
|
Nenhuma | Nenhuma |
Parâmetros da solicitação
|
Parâmetro |
Tipo |
Obrigatório |
Descrição |
Exemplo |
| ProjectName |
string |
Sim |
O nome do projeto. Para obter informações sobre como obter o nome do projeto, consulte Criar um projeto. |
immtest. |
| UserData |
string |
Não |
As informações personalizadas retornadas nas notificações de mensagens assíncronas, que ajudam a associar notificações de mensagens dentro do seu sistema. Comprimento máximo: 2.048 bytes. |
{"ID": "user1","Name": "test-user1","Avatar": "http://example.com?id=user1"} |
| SourceURI |
string |
Sim |
O URI do OSS do vídeo. O URI do OSS segue o formato oss://${Bucket}/${Object}, onde ${Bucket} é o nome do bucket do OSS na mesma área (Região) do projeto atual, e ${Object} é o caminho completo do arquivo, incluindo a extensão do nome do arquivo. Nota
Apenas buckets do OSS com classe de armazenamento Standard são suportados. Buckets com configurações de acesso de lista de permissões de proteção contra hotlink não são suportados. |
oss://test-bucket/test-source-object/video.mp4 |
| SourceStartTime |
number |
Não |
O horário inicial para gerar a playlist. Unidade: segundos. Valores válidos:
Nota
Você pode usar este parâmetro juntamente com SourceDuration para gerar uma playlist para uma parte específica do vídeo de origem. |
0 |
| SourceDuration |
number |
Não |
A duração para gerar a playlist. Unidade: segundos. Valores válidos:
Nota
Se o ponto de tempo correspondente ao parâmetro especificado exceder o final do vídeo de origem, o valor padrão será usado. |
0 |
| SourceSubtitles |
array<object> |
Não |
A lista de legendas a serem adicionadas. Valor padrão: vazio. Número máximo de legendas: 2. |
|
|
object |
Não |
As informações da legenda. |
||
| URI |
string |
Sim |
O URI do OSS da legenda a ser incorporada. O URI do OSS segue o formato oss://${Bucket}/${Object}, onde ${Bucket} é o nome do bucket do OSS na mesma região do projeto atual, e ${Object} é o caminho completo do arquivo. Nota
O parâmetro MasterURI não deve estar vazio, e o URI do OSS |
oss://test-bucket/test-object/subtitle/eng.vtt. |
| Language |
string |
Não |
O idioma da legenda. O padrão é ISO 639-2. Valor padrão: vazio. |
eng. |
| MasterURI |
string |
Não |
O URI do OSS da Master Playlist. O URI do OSS segue o formato oss://${Bucket}/${Object}, onde ${Bucket} é o nome do bucket do OSS na mesma região do projeto atual, e ${Object} é o caminho completo do arquivo com a extensão ".m3u8". Nota
Se a playlist tiver entrada de legenda ou múltiplas saídas Target, MasterURI é obrigatório. O URI da legenda ou o URI do Target deve estar no mesmo diretório ou em um subdiretório de MasterURI. |
oss://test-bucket/test-object/master.m3u8 |
| Targets |
array<object> |
Sim |
O array de playlists de transcodificação just-in-time. Comprimento máximo do array: 6. Cada Target corresponde a, no máximo, uma Media Playlist de vídeo e uma ou mais Media Playlists de legendas. Nota
Se mais de um Target for configurado, o parâmetro MasterURI não deve estar vazio. |
|
|
array<object> |
Não |
Os detalhes da tarefa de transcodificação just-in-time. |
||
| URI |
string |
Não |
O prefixo do URI do OSS dos arquivos de saída da transcodificação just-in-time, incluindo arquivos M3U8 e arquivos TS. O URI do OSS segue o formato oss://${Bucket}/${Object}, onde ${Bucket} é o nome do bucket do OSS na mesma região do projeto atual, e ${Object} é o prefixo do caminho completo do arquivo sem a extensão do nome do arquivo.
Nota
Se o parâmetro MasterURI não estiver vazio, o URI deve estar no mesmo diretório ou em um subdiretório do parâmetro MasterURI. |
oss://test-bucket/test-object/output-video. |
| Container |
string |
Não |
O tipo de contêiner de segmento HLS. Valores válidos:
|
ts |
| Video | TargetVideo |
Não |
As configurações de parâmetros de processamento de vídeo. Um valor vazio (padrão) indica que o processamento de vídeo está desativado e os arquivos TS de saída não contêm um fluxo de vídeo. Nota
Os campos Video e Subtitle dentro do mesmo Target são mutuamente exclusivos. Se o campo Video for definido, o campo Subtitle será ignorado. |
|
| Audio | TargetAudio |
Não |
As configurações de parâmetros de processamento de áudio. Um valor vazio (padrão) indica que o processamento de áudio está desativado e os arquivos TS de saída não contêm um fluxo de áudio. Nota
Os campos Audio e Subtitle dentro do mesmo Target são mutuamente exclusivos. Se o campo Audio for definido, o campo Subtitle será ignorado. Audio e Video podem ser definidos simultaneamente, onde Audio representa as informações de áudio no vídeo de saída. Você também pode definir apenas Audio para gerar uma saída somente de áudio. |
|
| Subtitle | TargetSubtitle |
Não |
As configurações de parâmetros de processamento de legendas. Nota
O campo Subtitle é mutuamente exclusivo com os campos Video ou Audio dentro do mesmo Target. As legendas são geradas apenas quando Subtitle é definido isoladamente. |
|
| TranscodeAhead |
integer |
Não |
O número de arquivos TS a serem transcodificados antecipadamente quando a transcodificação just-in-time é acionada. Por padrão, 2 minutos de vídeo são transcodificados antecipadamente.
|
12 |
| Duration |
number |
Não |
A duração de reprodução de um único arquivo TS. Unidade: segundos. Valor padrão: 10. Valores válidos: [5, 15]. |
10 |
| InitialTranscode |
number |
Não |
A duração inicial da transcodificação. Unidade: segundos. Valor padrão: 30.
Nota
Este parâmetro é usado principalmente para reduzir o tempo de espera para a reprodução inicial do vídeo e melhorar a experiência de reprodução. Se você deseja substituir cenários tradicionais de negócios VOD, tente transcodificar inicialmente o vídeo inteiro. |
30 |
| InitialSegments |
array |
Não |
O array de durações dos arquivos TS de transcodificação inicial. Comprimento máximo do array: 6. Valor padrão: vazio. Este parâmetro é independente do parâmetro Duration. |
|
|
number |
Não |
A duração de um arquivo TS de transcodificação inicial. Valores válidos: [1, Duration].
Nota
Personalizar durações menores para os arquivos TS de transcodificação inicial torna o carregamento do vídeo mais suave. |
2 |
|
| Tags |
object |
Não |
As tags de objeto do OSS a serem adicionadas aos arquivos TS gerados. Você pode usar tags do OSS para controlar o ciclo de vida dos arquivos do OSS. Nota
Os valores de tag neste nível são mesclados com as Tags definidas no nível pai para formar os valores de tag do Target atual. Se existir uma tag com o mesmo nome, o valor neste nível terá precedência. |
|
|
string |
Não |
O valor da tag. |
{\"key1\":\"value1\"} |
|
| Tags |
object |
Não |
As tags de objeto do OSS a serem adicionadas aos arquivos TS gerados. Você pode usar tags para controlar o ciclo de vida dos arquivos do OSS. |
{"key1": "value1", "key2": "value2"} |
|
string |
Não |
O valor da tag. |
{"key1": "value1", "key2": "value2"} |
|
| CredentialConfig | CredentialConfig |
Não |
Deixe este parâmetro vazio, a menos que tenha requisitos especiais. A configuração de autorização da China. Este parâmetro é opcional. Para obter mais informações, consulte Usar autorização encadeada para acessar recursos de outras entidades. |
|
| Notification | Notification |
Não |
A configuração de notificação de mensagens. Clique em Notification para obter detalhes. Para o formato das mensagens de notificação assíncrona, consulte Formato de mensagem de notificação assíncrona. |
|
| OverwritePolicy |
string |
Não |
A política de substituição quando a Media Playlist já existe. Valores válidos:
|
overwrite. |
Elementos de resposta
|
Elemento |
Tipo |
Descrição |
Exemplo |
|
object |
Esquema da resposta. |
||
| RequestId |
string |
O ID da solicitação. |
CA995EFD-083D-4F40-BE8A-BDF75FFF***** |
| Duration |
number |
A duração total do vídeo de saída. |
1082 |
| Token |
string |
O token da Master Playlist. |
92376fbb-171f-4259-913f-705f7ee0**** |
| MasterURI |
string |
O URI do OSS da Master Playlist. |
oss://test-bucket/test-object/master.m3u8 |
| VideoPlaylist |
array<object> |
A lista de arquivos de Media Playlist de vídeo. |
|
|
object |
As informações do arquivo de Media Playlist de vídeo. |
||
| Token |
string |
O token gerado para a Media Playlist de vídeo. Você pode usar este parâmetro para construir os endereços dos arquivos TS gerados. Nota
Com base no valor Token retornado, você pode construir os endereços dos arquivos TS transcodificados. O formato é: oss://${Bucket}/${Object}-${Token}-${Index}.ts, onde oss://${Bucket}/${Object} é o URI do Target dos parâmetros de entrada, ${Token} é o parâmetro retornado e ${Index} é o número de sequência do arquivo TS. |
affe0c6042f09722fec95a21b8b****** |
| URI |
string |
O URI do OSS da Media Playlist de vídeo. |
oss://test-bucket/test-object/output-video.m3u8 |
| Resolution |
string |
A resolução do vídeo. |
640x480 |
| FrameRate |
string |
A taxa de quadros do vídeo. |
25/1 |
| AudioPlaylist |
array<object> |
A lista de arquivos de Media Playlist de áudio. |
|
|
object |
As informações do arquivo de Media Playlist de áudio. |
||
| Token |
string |
O token gerado para a Media Playlist de áudio. Você pode usar este parâmetro para construir os endereços dos arquivos TS gerados. |
affe0c6042f09722fec95a21b8b****** |
| URI |
string |
O URI do OSS da Media Playlist de áudio. |
oss://test-bucket/test-object/output-audio.m3u8 |
| Channels |
integer |
O número de canais de áudio. |
1 |
| SubtitlePlaylist |
array<object> |
A lista de arquivos de Media Playlist de legendas. |
|
|
object |
As informações do arquivo de Media Playlist de legendas. |
||
| Token |
string |
O token gerado para a Media Playlist de legendas. Você pode usar este parâmetro para construir os endereços dos arquivos de legenda gerados. Nota
Com base no valor Token retornado, você pode construir os endereços dos arquivos de legenda transcodificados. O formato é: oss://${Bucket}/${Object}-${Token}_${Index}.ts, onde oss://${Bucket}/${Object} é o URI da Legenda dos parâmetros de entrada, ${Token} é o parâmetro retornado e ${Index} é o número de sequência da legenda. |
affe0c6042f09722fec95a21b8b****** |
| URI |
string |
O URI do OSS da Media Playlist de legendas. |
oss://test-bucket/test-object/output-subtitle.m3u8 |
| Language |
string |
O idioma do fluxo de legendas. Nota
O idioma é obtido das informações do fluxo de legendas do vídeo de origem especificado por SourceURI. Se o vídeo de origem não contiver informações de idioma, um valor vazio será retornado. |
eng. |
| Index |
integer |
O número do fluxo de legendas, começando em 0. |
1 |
Exemplos
Resposta de sucesso
JSON formato
{
"RequestId": "CA995EFD-083D-4F40-BE8A-BDF75FFF*****",
"Duration": 1082,
"Token": "92376fbb-171f-4259-913f-705f7ee0****",
"MasterURI": "oss://test-bucket/test-object/master.m3u8",
"VideoPlaylist": [
{
"Token": "affe0c6042f09722fec95a21b8b******",
"URI": "oss://test-bucket/test-object/output-video.m3u8",
"Resolution": "640x480",
"FrameRate": "25/1"
}
],
"AudioPlaylist": [
{
"Token": "affe0c6042f09722fec95a21b8b******",
"URI": "oss://test-bucket/test-object/output-audio.m3u8",
"Channels": 1
}
],
"SubtitlePlaylist": [
{
"Token": "affe0c6042f09722fec95a21b8b******",
"URI": "oss://test-bucket/test-object/output-subtitle.m3u8",
"Language": "eng",
"Index": 1
}
]
}
Códigos de erro
Consulte Códigos de Erro para uma lista completa.
Notas de versão
Consulte Notas de Versão para uma lista completa.