Nesta página, fornecemos uma visão geral técnica da API Transcoder, incluindo recursos, terminologia e conceitos úteis. A API Transcoder implementa uma API REST e RPC que permite enviar, monitorar e gerenciar jobs de transcodificação no Google Cloud. Para enviar jobs usando a API Transcoder, primeiro é necessário fazer o upload de recursos de mídia no Cloud Storage. Após o processamento de um job, a API Transcoder salva a mídia resultante de volta no Cloud Storage.
Recursos
A API Transcoder inclui suporte para os seguintes recursos:
- Saída em formatos de contêiner diferentes, incluindo MPEG-4 (MP4), Dynamic Adaptive Streaming over HTTP (DASH, também conhecido como MPEG-DASH) e HTTP Live Streaming (HLS).
- Saída em diferentes taxas de bits e resoluções
- Melhore a saída do vídeo de maneira programática, incluindo:
- Configure parâmetros de codificação de baixo nível, como a taxa de bits
- Remixar o conteúdo de mídia existente usando listas de edição abrangentes
- Especificar a normalização de volume do áudio
- Configure a criptografia do seu vídeo de saída para oferecer suporte ao gerenciamento de direitos digitais
e à proteção de conteúdo, incluindo:
- FairPlay Streaming para o formato HLS
- PlayReady para o formato MPEG-DASH
- Widevine para MPEG-DASH e HLS em navegadores da Web Chromium e Android
- Inserir frames-chave de anúncios para permitir que os clientes do player de vídeo insiram anúncios
- Crie miniaturas a partir de uma spritesheet de frames de vídeo gerada
- Criar modelos de job para salvar e reutilizar configurações personalizadas ou complexas para jobs de transcodificação.
Para mais informações sobre os padrões MP4 e MPEG-DASH, consulte o site do grupo de especialistas de imagens em movimento. Para mais informações sobre o padrão HLS, consulte HTTP Live Streaming.
Entradas e saídas compatíveis
A tabela a seguir mostra os formatos de entrada e saída compatíveis com a API Transcoder.
Formatos de entrada e saída compatíveis | |
---|---|
Entradas | |
Contêineres | AVI, GXF, MKV (Matroska), MOV, MPEG2-TS, MP4, MXF (somente OP1A), WMV |
Codecs de vídeo | DNxHD, DV/DVCProHD, DV25, DV50, H.261, H.262, H.263, H.264 (AVC), H.265 (HEVC), MPEG-1, MPEG-2, MPEG-4 parte 2, ProRes, Theora, VC-1, VP8, VP9, XDCAM |
Espaço para cor | rec.601, rec.709, e rec.2020 |
Codecs de áudio | AAC, AC3, AIFF, E-AC3, MP3, Opus, PCM, WAV, WMA, WMA2, Vorbis |
Legendas | SCC, SRT, VTT |
Sobreposições | JPG |
Saídas | |
Contêineres | HLS da Apple (com MPEG2-TS, fMP4), MPEG-DASH (com fMP4), MP4 autônomo |
Codecs de vídeo | H.264 (AVC), H.265 (HEVC), VP9 |
Espaço para cor | Apenas com rec.601: o espaço de cores de entrada não é convertido, então é possível observar uma mudança de cor |
Codecs de áudio | AAC-HE, AAC-HEv2, AAC-LC, AC3, E-AC3, MP3 |
Legendas | CEA-608/708, WebVTT |
Imagens | Blocos em JPG, imagens únicas |
Contêineres compatíveis para criptografia de conteúdo
A tabela a seguir mostra os contêineres compatíveis com a criptografia de conteúdo.
Tipo | Tecnologia | Formatar | Codecs de vídeo | Codecs de áudio | |
---|---|---|---|---|---|
H.264 | H.265 | AAC | |||
DRM | FairPlay | HLS | TS (SAMPLE-AES) | fMP4 (SAMPLE-AES) | TS (SAMPLE-AES) |
fMP4 (SAMPLE-AES) | fMP4 (SAMPLE-AES) | ||||
DRM | Widevine, PlayReady | DASH | fMP4 (MPEG-CENC) | fMP4 (MPEG-CENC) | |
DRM | Widevine, PlayReady | HLS | fMP4 (MPEG-CENC) | fMP4 (MPEG-CENC) | |
Proteção de conteúdo | AES-128 | HLS, DASH | fMP4, TS (AES-128) | fMP4, TS (AES-128) | fMP4, TS (AES-128) |
Controle de acesso
O modelo de controle de acesso da API Transcoder é baseado no Identity and Access Management do Google. As permissões detalhadas do IAM oferecem controle sobre o que pode ser feito com os dados de mídia e por quem.
Limites
Veja na tabela a seguir os limites por job de transcodificação.
Limites do job | |
---|---|
Tamanho total da entrada | 400 GB |
Tamanho total da saída | 400 GB |
Duração EditList máxima | 24 horas |
Número máximo de streams de vídeo | 30 |
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 e terminologia
Nesta seção, você verá um glossário de termos úteis para trabalhar com a API Transcoder.
Intervalo de anúncio
Um intervalo de anúncio é uma publicidade curta que aparece antes ou durante a reprodução de mídia. A API Transcoder é compatível com um frame-chave de intervalo de anúncio na configuração do job. A API Transcoder não insere ou reproduz anúncios, nem interrompe a reprodução de mídia. clientes de players de vídeo são responsáveis por manipular o frame-chave.
Atom
Um atom é uma estrutura de dados fundamentais para definir os metadados e o local de um vídeo. Um vídeo pode abranger uma hierarquia aninhada complexa de diferentes tipos de atoms, incluindo áudio, edição e atoms de texto.
Atom de áudio
Um atom de áudio mapeia o áudio de um stream básico para uma lista de edição.
Tipo de codec e perfil
Ao selecionar o codec para um stream de vídeo, especifique o tipo do codec,
como H.264 e o perfil, como o perfil high
padrão.
Contêiner
Um contêiner é um wrapper que descreve a relação entre os vários componentes em um stream multiplexado, incluindo arquivos de mídia e metadados. A API Transcoder é compatível com os formatos de contêiner MP4, MPEG-DASH e HLS.
Editar atom
Um atom de edição define os deslocamentos de início e término para os segmentos individuais de um stream que você quer combinar em uma lista de edição.
Editar lista
Uma lista de edições define uma sequência de edições como uma linha do tempo para o arquivo ou manifesto resultante de um trabalho de transcodificação.
Stream básico
Um stream básico é uma codificação de um arquivo de entrada, como uma faixa de áudio, vídeo ou legenda. É necessário empacotar streams principiantes antes de mapear e compartilhar o stream para diferentes formatos de saída.
Codificação de entropia
A codificação de entropia é uma forma de compactação sem perdas compatível com a API Transcoder. Ao configurar jobs, você pode especificar o Context-Adaptive Variable-Length Coding (CAVLC, na sigla em inglês) ou o Context-Adaptive Binary Arithmetic Coding (CABAC, na sigla em inglês).
Job
Um job é a unidade básica para gerenciar trabalhos com a API Transcoder. Quando você envia um job para a API Transcoder, ele é processado em uma localização geográfica conhecida como região. É possível listar e gerenciar todos os jobs de uma região.
O ciclo de vida de um job inclui três etapas: preparar, transcodificar e empacotar.
- Preparar
- Fazer o download de entradas do Cloud Storage
- Analisar entradas
- Validar entradas
- Transcodificar
- Executar operações de transcodificação em entradas
- Empacotar
- Agrupar entradas
- Entradas multiplex
- Faça upload de saídas para o Cloud Storage
O estado de um job é atualizado.
O serviço informa erros usando o campo error
.
Configuração do job
Uma configuração de job representa muitas das várias configurações que podem ser personalizadas ao criar e enviar um job à API Transcoder. É possível especificar definições de configuração, como listas de edição e onde inserir tags de intervalo de anúncio em um manifesto de saída. É possível criar configurações de jobs reutilizáveis como modelos de job para uso em uma região do Google Cloud.
Modelo do job
Por padrão, a API Transcoder aplica um modelo predefinido chamado
preset/web-hd
para preencher uma configuração de job. Essa configuração de job produz os seguintes arquivos de saída:
manifest.m3u8
: a playlist principal para um stream de mídia HLS. Este arquivo contém referências às playlists da variante de alta definição (HD) da saída e da variante de definição padrão (SD) da saída.media-hd.m3u8
: playlist para a variante de alta definiçãomedia-hd0000000000.ts
: arquivo de segmento de vídeo em alta definição
media-sd.m3u8
: playlist para a variante de definição padrãomedia-sd0000000000.ts
: arquivo de segmento de vídeo de definição padrão
manifest.mpd
: a playlist de um stream de mídia MPEG-DASH. Esse arquivo contém referências a arquivos de segmento somente de vídeo e somente de áudio.audio-only0000000000.m4s
: arquivo de segmento somente de áudiovideo-only-hd0000000000.m4s
: arquivo de segmento somente de vídeo de alta definiçãovideo-only-sd0000000000.m4s
: arquivo de segmento somente de vídeo de definição padrão
sd.mp4
: arquivo de vídeo de definição padrão independentehd.mp4
: arquivo de vídeo de alta definição independente
É possível criar e gerenciar seus próprios modelos de job personalizados e especificá-los ao criar jobs.
Pré-processamento
O pré-processamento é o estágio de um job que ocorre antes da transcodificação principal. Ao configurar o estágio de pré-processamento, é possível aplicar filtros, como cor, redução de ruído e desbloqueio. O desbloqueio pode ajudar a reduzir os artefatos de bloqueio como resultado da compactação.
Configuração de pré-processamento
Uma configuração de pré-processamento representa as configurações de filtros que podem ser aplicadas a um vídeo antes do estágio de transcodificação de um job. É possível aplicar vários filtros, incluindo saturação de cores, desbloqueio e redução de ruído.
Modo de controle de taxas
O modo de controle de taxa indica se o job é processado usando os modos de fator de taxa constante (CRF) ou taxa de bits variável (VBR). O CRF garante qualidade constante em todos os recursos de mídia processados. A VBR otimiza o processo de codificação para reduzir o tamanho do arquivo dos recursos de mídia processados. Para casos de uso de streaming, selecione o modo de controle de taxa VBR. Para fins de arquivamento, selecione o modo de controle de taxa de CRF.
Manifest
Um manifesto é uma descrição do conteúdo e dos metadados disponíveis de um stream de mídia adaptável para um cliente. Na API Transcoder, é possível configurar um job para gerar um manifesto com um nome de arquivo, uma lista de fluxos multiplexados e o tipo de manifesto, que precisa ser HLS ou MPEG-DASH.
Atom de texto
Um atom de texto mapeia o texto de um stream básico para uma lista de edição.
Stream de texto
Um stream de texto codifica dados de texto associados a um vídeo, como closed captions ou legendas.
A seguir
- Conheça o guia de início rápido.
- Saiba como concluir tarefas da API Transcoder específicas.