Esta página oferece uma vista geral técnica da Transcoder API, incluindo funcionalidades, terminologia e conceitos úteis. A API Transcoder implementa uma API REST e RPC que lhe permite enviar, monitorizar e gerir tarefas de transcodificação no Google Cloud. Para enviar tarefas através da Transcoder API, primeiro carregue recursos multimédia para o Cloud Storage. Após o processamento de uma tarefa, a API Transcoder guarda o conteúdo multimédia resultante novamente no Cloud Storage.
Funcionalidades
A API Transcoder inclui suporte para as seguintes funcionalidades:
- Saída em diferentes formatos de contentores, incluindo MPEG-4 (MP4), Streaming adaptável dinâmico através de HTTP (DASH, também conhecido como MPEG-DASH) e HTTP Live Streaming (HLS)
- Saída a diferentes taxas de bits e resoluções, incluindo saída apenas de áudio
- Conversão para um formato de elevada amplitude dinâmica (HDR)
- Melhorar a saída de vídeo por programação, incluindo:
- Configurar parâmetros de codificação de baixo nível, como a taxa de bits
- Fazer remixes de conteúdo de multimédia existente com listas de edição abrangentes
- Defina o modo de tarefa como modo interativo de baixa latência ou modo de lote
- Especifique a normalização do volume de áudio
- Configurar a encriptação do vídeo de saída para suportar a gestão de direitos digitais e a proteção de conteúdo
- Insira frames-chave de anúncios para permitir que os clientes do leitor de vídeo insiram anúncios
- Crie miniaturas a partir de uma folha de sprites de frames de vídeo gerada
- Crie modelos de tarefas para guardar e reutilizar configurações personalizadas ou complexas para tarefas de transcodificação
Para mais informações sobre as normas MP4 e MPEG-DASH, consulte o Website do Moving Picture Experts Group. Para mais informações acerca da norma HLS, consulte o artigo HTTP Live Streaming.
Recipientes suportados para encriptação de conteúdo
A tabela seguinte mostra os contentores suportados para encriptação de conteúdo.
Protocolo de streaming | Contentor | Sistema DRM | Esquema de encriptação |
---|---|---|---|
HLS | TS | ClearKey | aes128 |
HLS | TS | FairPlay | sampleAes |
HLS | fMP4 | FairPlay | mpegCenc cbcs only |
MPEG-DASH | fMP4 | Widevine | mpegCenc cenc ou cbcs |
MPEG-DASH | fMP4 | PlayReady | mpegCenc cenc ou cbcs |
Controlo de acesso
O modelo de controlo de acesso da Transcoder API baseia-se na gestão de identidade e de acesso da Google. As autorizações detalhadas da IAM dão-lhe controlo sobre o que pode ser feito com os dados de multimédia e por quem.
Limites
A tabela seguinte mostra os limites por tarefa de transcodificação.
Limites de trabalhos | |
---|---|
Largura máxima de entrada | 4096 px |
Altura máxima de entrada | 4096 px |
Largura máxima de saída | 4096 px |
Altura máxima da saída | 2160 px |
Tamanho total da saída | 400 GB |
Duração máxima de EditList | 24 horas |
Número máximo de streams de vídeo | 70 |
Número máximo de streams de áudio | 50 |
Número máximo de streams de texto | 50 |
Número máximo de streams mux | 100 |
Número máximo de manifestos | 100 |
Número máximo de spritesheets | 10 |
Conceitos
Esta secção apresenta conceitos importantes relativos aos ficheiros de vídeo e como são usados com a API Transcoder.
Componentes de um ficheiro de vídeo
Cada ficheiro de vídeo tem um contentor, que é o wrapper para todo o ficheiro. A API Transcoder usa MuxStreams para definir o contentor. Cada contentor inclui um conjunto de ElementaryStreams para definir a codificação das faixas de texto de vídeo, áudio e legendas do ficheiro. O vídeo e o áudio são comprimidos através de codecs.
No exemplo seguinte, o vídeo é comprimido através do H.264 e o áudio é comprimido através do AAC. Ambos são colocados num contentor MP4.
Figura 1. Componentes de um ficheiro de vídeo (à esquerda) e um exemplo de um ficheiro MP4 (à direita).
Estrutura do protocolo de streaming
Para o streaming de multimédia, os fornecedores de conteúdo codificam o mesmo conteúdo a várias taxas de bits (medidas em quilobits por segundo). Em seguida, o fornecedor gera um ficheiro de manifesto que aponta para os diferentes ficheiros com diferentes taxas de bits. O leitor de multimédia de streaming usa o ficheiro de manifesto para selecionar o ficheiro adequado e, em seguida, extrai o vídeo alguns segundos de cada vez. Cada taxa de bits pode ser um único ficheiro ou vários ficheiros curtos, consoante o que o leitor suporta.
Normalmente, as diferentes resoluções de conteúdo multimédia são codificadas para segmentar diferentes taxas de bits. Por exemplo, as taxas de bits mais baixas são codificadas em definição padrão (SD) em vez de alta definição (HD). O conjunto de taxas de bits, resoluções e codecs é denominado hierarquia de taxa de bits adaptável (ABR). Os fornecedores de conteúdo de streaming podem ajustar a sua própria hierarquia com base nos custos da RFC, nos tipos de dispositivos dos utilizadores, na largura de banda na região e noutros fatores.
Figura 2. Componentes de uma estrutura de protocolo de streaming (parte superior) e um exemplo de implementação de HTTP Live Streaming (HLS) (parte inferior).
Terminologia
Esta secção fornece um glossário de termos úteis para trabalhar com a API Transcoder.
Pausa para anúncios
Uma pausa para anúncios é um anúncio curto que aparece antes ou durante a reprodução de conteúdo multimédia. A API Transcoder suporta um fotograma-chave de intervalo de anúncios na configuração da tarefa. A API Transcoder não insere nem apresenta anúncios, nem para a reprodução de multimédia. Os clientes do leitor de vídeo são responsáveis por processar o fotograma-chave.
Atom
Um atom é uma estrutura de dados fundamental para definir os metadados e a localização de um vídeo. Um vídeo pode compreender uma hierarquia aninhada complexa de diferentes tipos de átomos, incluindo átomos de áudio, edição e texto.
Átomo de áudio
Um átomo de áudio mapeia o áudio de uma stream elementar para uma lista de edições.
Tipo e perfil de codec
Quando seleciona o codec para uma stream de vídeo, especifica o tipo de codec, como H.264, e o perfil, como o perfil high
predefinido.
Contentor
Um contentor é um wrapper que descreve a relação entre os vários componentes numa stream multiplexada, incluindo ficheiros multimédia e metadados. A API Transcoder suporta os formatos de contentores MP4, MPEG-DASH e HLS.
Edite o elemento
Um elemento edit define os deslocamentos de início e fim dos segmentos individuais de um stream que quer combinar numa lista de edições.
Editar lista
Uma lista de edições define uma sequência de edições como uma cronologia para o ficheiro ou o manifesto resultante de uma tarefa de transcodificação.
Stream elementar
Uma stream elementar é uma codificação de um ficheiro de entrada, como uma faixa de texto de áudio, vídeo ou legendas. Tem de criar pacotes de streams elementares antes de mapear e partilhar a stream em diferentes formatos de saída.
Codificação de entropia
A codificação de entropia é uma forma de compressão sem perda de dados suportada pela API Transcoder. Quando configurar tarefas, pode especificar os codificadores de entropia de codificação de comprimento variável adaptável ao contexto (CAVLC) ou de codificação aritmética binária adaptável ao contexto (CABAC).
Emprego
Uma tarefa é a unidade básica para gerir o trabalho com a API Transcoder. Quando envia uma tarefa para a API Transcoder, esta é processada de forma assíncrona numa localização geográfica conhecida como região. Pode listar e gerir todos os trabalhos para uma região.
O ciclo de vida de uma tarefa inclui três passos: preparar, transcodificar e criar pacote.
- Prepare
- Transfira entradas do Cloud Storage
- Analise as entradas
- Valide as entradas
- Transcodificar
- Execute operações de transcodificação em entradas
- Pacote
- Stitch inputs
- Entradas multiplex
- Carregue resultados para o Cloud Storage
Um trabalho tem um estado atualizado.
O serviço comunica erros através do campo error
.
Configuração da tarefa
Uma configuração de tarefa representa muitas das várias definições que pode personalizar quando cria e envia uma tarefa para a API Transcoder. Pode especificar definições de configuração, como editar listas e onde inserir etiquetas de intervalos de anúncios num manifesto de saída. Pode criar configurações de tarefas reutilizáveis como modelos de tarefas para utilização numa Google Cloud região.
Modo de trabalho
A API Transcoder suporta dois modos de tarefas: interativo e em lote.
O modo interativo é o modo de tarefa predefinido. Use este modo se quiser que o processamento de tarefas comece o mais rapidamente possível ou se quiser ter um controlo mais detalhado sobre as tarefas que são executadas primeiro. Neste modo, a quota de número de tarefas simultâneas controla o número de tarefas executadas em simultâneo. Depois de atingir esta quota, todas as tarefas que tentar iniciar são rejeitadas.
Use o modo em lote para enviar muitas tarefas para as quais a latência de processamento não é tão
crítica como as tarefas enviadas no modo interativo predefinido. Pode especificar a
prioridade de processamento de tarefas
para uma tarefa neste modo. As tarefas enviadas no modo de lote com o mesmo valor de prioridade são colocadas numa fila de entrada por ordem de chegada e têm um estado de tarefa de PENDING
enquanto aguardam a execução. Neste modo, a quota de contagem de tarefas pendentes em lote controla o número de tarefas colocadas em fila. Depois de atingir esta quota, todos os trabalhos que tentar iniciar são rejeitados. Uma tarefa passa para o estado RUNNING
quando é executada. A quota de contagem de tarefas simultâneas em lote controla o número de tarefas executadas em simultâneo.
Pode usar ambos os modos em simultâneo. Um modo não tem prioridade sobre o outro. Para mais informações sobre como definir o modo de tarefa, consulte o artigo Criar tarefas no modo de lote.
Modelo de emprego
Por predefinição, a API Transcoder aplica um modelo predefinido denominado
preset/web-hd
para preencher uma configuração de tarefa. Esta configuração da tarefa produz os seguintes ficheiros de saída:
manifest.m3u8
: A playlist principal de uma stream de multimédia HLS. Este ficheiro contém referências a playlists para a variante de alta definição (HD) da saída e a variante de definição padrão (SD) da saída.media-hd.m3u8
: playlist para a variante de alta definiçãomedia-hd0000000000.ts
: ficheiro de segmento de vídeo de alta definição
media-sd.m3u8
: playlist para a variante de definição padrãomedia-sd0000000000.ts
: ficheiro de segmento de vídeo de definição padrão
manifest.mpd
: a playlist de uma stream de multimédia MPEG-DASH. Este ficheiro contém referências a ficheiros de segmentos apenas de vídeo e apenas de áudio.audio-only0000000000.m4s
: ficheiro de segmento apenas de áudiovideo-only-hd0000000000.m4s
: ficheiro de segmento apenas de vídeo em alta definiçãovideo-only-sd0000000000.m4s
: ficheiro de segmento apenas de vídeo de definição padrão
sd.mp4
: ficheiro de vídeo de definição padrão autónomohd.mp4
: ficheiro de vídeo de alta definição autónomo
Pode criar e gerir os seus próprios modelos de tarefas personalizados e especificá-los quando criar tarefas.
Pré-processamento
O pré-processamento é a fase de uma tarefa que ocorre antes da transcodificação principal.
Configuração do pré-processamento
Uma configuração de pré-processamento representa as definições que pode aplicar a um vídeo antes da fase de transcodificação de uma tarefa. Pode aplicar o recorte ou o preenchimento como parte desta configuração.
Modo de controlo da taxa
O modo de controlo da taxa indica se um trabalho deve ser processado através do fator de taxa constante (CRF) ou dos modos de taxa de bits variável (VBR). O CRF garante uma qualidade constante em todos os recursos multimédia processados. A VBR otimiza o processo de codificação para reduzir o tamanho do ficheiro dos recursos de multimédia processados. Para exemplos de utilização de streaming, selecione o modo de controlo de taxa VBR. Para fins de arquivo, selecione o modo de controlo da taxa de CRF.
Manifesto
Um manifesto é uma descrição dos conteúdos e metadados disponíveis de uma stream de multimédia adaptável para um cliente. Na API Transcoder, pode configurar uma tarefa para gerar um manifesto com um nome de ficheiro, uma lista de streams multiplexadas, bem como o tipo de manifesto, que tem de ser HLS ou MPEG-DASH.
Átomo de texto
Um átomo de texto mapeia o texto de um fluxo elementar para uma lista de edições.
Stream de texto
Uma stream de texto codifica dados de texto associados a um vídeo, como legendas ou legendas.
O que se segue?
- Experimente o início rápido.
- Saiba como concluir tarefas específicas da API Transcoder.