Cria uma playlist de transcodificação just-in-time que gera um arquivo M3U8 a partir de um arquivo de vídeo. A playlist pode ser reproduzida imediatamente após a geração, e a transcodificação é realizada 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 substancialmente os custos de transcodificação e armazenamento.
Descrição da operação
Antes de usar esta operação, certifique-se de entender a cobrança do Intelligent Media Management (IMM) e seus preços.
Antes de invocar esta operação, certifique-se de que existe um projeto ativo na região atual. Para mais informações, 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 fluxos de vídeo.
A duração mínima do vídeo de origem é de aproximadamente 0,x segundos, variando 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 Notification para receber os resultados das tarefas de transcodificação por meio de notificações de mensagens.
Para mais informações sobre este recurso, consulte Transcodificação just-in-time.
O processamento de dados do OSS também fornece um recurso de geração de playlist, mas suporta apenas a geração de Media Playlists com parâmetros simplificados. Para 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, que são retornadas nas notificações de mensagens assíncronas. Isso ajuda você 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 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 armazenamento Standard são suportados. Buckets com listas de permissões de proteção contra hotlink configuradas 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 definir 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. São suportadas no máximo duas legendas. |
|
|
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 valor segue 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. O 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 legenda. 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 para os arquivos de saída da transcodificação just-in-time, incluindo arquivos M3U8 e 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 |
| 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 fluxos 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 fluxos 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 ao mesmo tempo. Audio especifica as informações de áudio no vídeo de saída. Você também pode definir apenas Audio para gerar saída somente de áudio. |
|
| Subtitle | TargetSubtitle |
Não |
As configurações de parâmetros de processamento de legenda. Nota
O campo Subtitle é mutuamente exclusivo com os campos Video e Audio dentro do mesmo Target. As legendas são geradas apenas quando Subtitle é definido independentemente. |
|
| 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 primeira reprodução e melhorar a experiência de reprodução. Se você deseja substituir um cenário tradicional de 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. O 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 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 uma 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 de 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 especificado nos 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 legenda. |
|
|
object |
As informações do arquivo de Media Playlist de legenda. |
||
| Token |
string |
O token gerado para a Media Playlist de legenda. Você pode usar este parâmetro para construir os endereços dos arquivos de legenda gerados. Nota
Com base no valor de 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 especificado nos parâmetros de entrada, ${Token} é o parâmetro retornado e ${Index} é o número de sequência do arquivo de legenda. |
affe0c6042f09722fec95a21b8b****** |
| URI |
string |
O URI do OSS da Media Playlist de legenda. |
oss://test-bucket/test-object/output-subtitle.m3u8 |
| Language |
string |
O idioma do fluxo de legenda. Nota
O idioma é obtido das informações do fluxo de legenda 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 de sequência do fluxo de legenda, 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.