Panoramica dell'API Transcoder

Questa pagina fornisce una panoramica tecnica dell'API Transcoder, inclusi caratteristiche, terminologia e concetti utili. L'API Transcoder implementa un'API REST e RPC che ti consente di inviare, monitorare e gestire i job di transcodifica in Google Cloud. Per inviare job utilizzando l'API Transcoder, devi prima caricare gli asset multimediali su Cloud Storage. Dopo l'elaborazione di un job, L'API Transcoder salva i contenuti multimediali risultanti in di archiviazione ideale in Cloud Storage.

Funzionalità

L'API Transcoder include il supporto per le seguenti funzionalità:

Per ulteriori informazioni sugli standard MP4 e MPEG-DASH, vedi Sito web del Moving Picture Experts Group. Per ulteriori informazioni sullo standard HLS, consulta HTTP Live Streaming.

Container supportati per la crittografia dei contenuti

La tabella seguente mostra i container supportati per i contenuti la crittografia.

Protocollo di streaming Container Sistema DRM Schema di crittografia
HLS TS ClearKey aes128
HLS TS FairPlay sampleAes
HLS fMP4 FairPlay Solo mpegCenc cbcs
MPEG-DASH fMP4 Widevine mpegCenc cenc o cbcs
MPEG-DASH fMP4 PlayReady mpegCenc cenc o cbcs

Controllo degli accessi

Il modello di controllo dell'accesso dell'API Transcoder si basa su Identity and Access Management di Google. Le autorizzazioni granulari di IAM forniscono puoi controllare cosa può essere fatto con i dati multimediali e da chi.

Limiti

La tabella seguente mostra i limiti per job di transcodifica.

Limiti di job
Larghezza massima dell'input4096 px
Altezza massima dell'input4096 px
Larghezza massima dell'output4096 px
Altezza massima di output2160 px
Dimensioni output totali400 GB
Durata massima di EditList24 ore
Numero massimo di stream video70
Numero massimo di stream audio50
Numero massimo di stream di testo50
Numero massimo di stream mux100
Numero massimo di manifest100
Numero massimo di fogli sprite10

Concetti

Questa sezione fornisce importanti concetti relativi ai file video e al loro vengono utilizzati con l'API Transcoder.

Componenti di un file video

Ogni file video ha un contenitore, che è il wrapper dell'intero file. L'API Transcoder utilizza MuxStreams per definire il contenitore. Ogni container include un insieme ElementaryStreams per definire la codifica delle tracce video, audio e di testo dei sottotitoli codificati per . Video e audio vengono compressi tramite codec.

Nell'esempio seguente, il video viene compresso utilizzando H.264 e l'audio viene compresso utilizzando AAC. Entrambe sono inserite in un contenitore MP4.

Componenti di un file video e esempio
Figura 1. Componenti di un file video (a sinistra) e un esempio di file MP4 (a destra).

Struttura del protocollo di streaming

Per lo streaming multimediale, i fornitori di contenuti codificano gli stessi contenuti in più velocità in bit (misurati in kilobit al secondo). Il provider genera quindi un manifest che rimanda ai vari file con velocità in bit differenti. Il media player per lo streaming utilizza il file manifest per selezionare il file appropriato, quindi estrae il video pochi secondi alla volta. Ogni velocità in bit può essere un singolo file o più file brevi, a seconda di ciò che supporta il player.

In genere, le risoluzioni dei contenuti multimediali vengono codificate in base a bitrate diverse. Ad esempio, le velocità in bit più basse sono codificate con la definizione standard (SD). anziché in alta definizione (HD). L'insieme di velocità in bit, risoluzioni e codec chiamata ladder Adaptive Bitrate (ABR). I fornitori di contenuti in streaming possono ottimizzare la propria scala in base ai costi della CDN, ai tipi di dispositivi degli utenti, alla larghezza di banda all'interno della regione e ad altri fattori.

Componenti di una struttura del protocollo di streaming e un esempio
Figura 2. Componenti di una struttura del protocollo di streaming (in alto) e un esempio di implementazione di HTTP Live Streaming (HLS) (in basso).

Terminologia

Questa sezione fornisce un glossario di termini utili per l'utilizzo del l'API Transcoder.

Interruzione pubblicitaria

Un'interruzione pubblicitaria è una breve pubblicità che appare prima o durante un contenuto multimediale la riproduzione. L'API Transcoder supporta un fotogramma chiave dell'interruzione pubblicitaria nella configurazione del job. L'API Transcoder non inserisce né riproduce annunci né interrompe la riproduzione dei contenuti multimediali. I client del video player sono responsabili della gestione del keyframe.

Atom

Un atomo è una struttura di dati di base per definire i metadati di un video. in ogni località. Un video può comprendere una gerarchia complessa nidificata di diversi tipi di atomi, tra cui audio, editing e testo.

Atomo audio

Un atomo audio mappa l'audio da uno stream elementare a un elenco di modifiche.

Tipo di codec e profilo

Quando selezioni il codec per uno stream video, specifica il tipo di codec, come H.264, e il profilo, ad esempio il profilo high predefinito.

Container

Un contenitore è un wrapper che descrive la relazione tra i vari componenti di uno stream multiplex, inclusi file multimediali e metadati. L'API Transcoder supporta i formati dei contenitori MP4, MPEG-DASH e HLS.

Modifica atomo

Un atomo di modifica definisce gli offset di inizio e di fine dei singoli segmenti di uno stream che vuoi combinare in un elenco di modifiche.

Modifica elenco

Un elenco di modifica definisce una sequenza di modifiche come sequenza temporale per il file o manifest risultante da un job di transcodifica.

Stream elementare

Uno stream elementare è una codifica di un file di input, ad esempio una traccia audio, video o di testo dei sottotitoli codificati. Devi pacchettizzare gli stream elementari prima di mapparli e condividerli con diversi formati di output.

Codifica entropica

La codifica di entropia è una forma di compressione senza perdita di dati supportata dall'API Transcoder. Quando configuri i job, puoi specificare i codificatori di entropia CAVLC (codifica a lunghezza variabile adattabile al contesto) o CABAC (codifica aritmetica binaria adattabile al contesto).

Job

Un job è l'unità di base per gestire il lavoro con l'API Transcoder. Quando invii un job all'API Transcoder, viene elaborato in modo asincrono in una posizione geografica nota come region. Puoi elencare e gestire tutti i job per una regione.

Il ciclo di vita di un job include tre passaggi: preparazione, transcodifica e pacchettizzamento.

  • Preparazione
    • Scarica gli input da Cloud Storage
    • Analizza gli input
    • Convalida gli input
  • Transcodifica
    • Esegui operazioni di transcodifica sugli input
  • Pacchetto
    • Input di Stitch
    • Input multiplex
    • Carica gli output su Cloud Storage

Lo stato di un job è stato aggiornato. Il servizio segnala gli errori utilizzando il parametro error .

Configurazione job

Una configurazione del job rappresenta molte delle varie impostazioni che puoi personalizzare prilikom kreiranja i podnošenja posla Transcoder API. Puoi specificare impostazioni di configurazione come gli elenchi di modifica e dove inserire i tag di interruzione pubblicitaria in un manifest di output. Puoi creare configurazioni di job riutilizzabili come modelli di job da utilizzare in una regione Google Cloud.

Modalità job

L'API Transcoder supporta due modalità lavoro: interattivi e batch.

La modalità interattiva è la modalità di lavoro predefinita. Utilizza questa modalità se vuoi l'elaborazione dei dati venga avviata il prima possibile o se desideri avere dati e il controllo su quali job vengono eseguiti per primi. In questa modalità, quota di conteggio dei job simultanei controlla quanti job vengono eseguiti contemporaneamente. Una volta raggiunta questa quota, tutti i job che provi ad avviare vengono rifiutati.

Utilizza la modalità batch per inviare molti job per i quali la latenza di elaborazione è inferiore poiché i job vengono inviati nella modalità interattiva predefinita. Puoi specificare priorità di elaborazione del job per un job in questa modalità. Job inviati in modalità batch con la stessa priorità vengono messi in una coda di primo in entrata e in uscita e hanno lo stato del job PENDING mentre attendono di essere eseguiti. In questa modalità, la quota di conteggio dei job in attesa in batch controlla il numero di job in coda. Una volta raggiunta questa quota, qualsiasi job che provi ad avviare vengono rifiutate. Un job passa allo stato RUNNING quando viene eseguito. La quota di conteggio dei job batch simultanei controlla il numero di job eseguiti contemporaneamente.

Puoi utilizzare entrambe le modalità contemporaneamente. Una modalità non ha la priorità su l'altra. Per ulteriori informazioni sull'impostazione della modalità lavoro, vedi Creazione di job in modalità batch.

Modello di job

Per impostazione predefinita, l'API Transcoder applica un modello preimpostato chiamato preset/web-hd per compilare una configurazione del job. Questa configurazione del job produce seguenti file di output:

  • manifest.m3u8: la playlist principale per uno stream multimediale HLS. Questo file contiene riferimenti alle playlist per la variante in alta definizione (HD) dell'output e per la variante in definizione standard (SD) dell'output.
    • media-hd.m3u8: playlist per la variante ad alta definizione
      • media-hd0000000000.ts: file di segmenti video ad alta definizione
    • media-sd.m3u8: playlist per la versione in definizione standard
      • media-sd0000000000.ts: file di segmento video con definizione standard
  • manifest.mpd: la playlist per uno stream multimediale MPEG-DASH. Questo file contiene riferimenti ai file dei segmenti solo video e solo audio.
    • audio-only0000000000.m4s: file del segmento solo audio
    • video-only-hd0000000000.m4s: file del segmento solo video ad alta definizione
    • video-only-sd0000000000.m4s: file del segmento solo video a definizione standard
  • sd.mp4: file video a definizione standard indipendente
  • hd.mp4: file video ad alta definizione autonomo

Puoi creare e gestire i tuoi modelli di job personalizzati e specificarli durante la creazione dei job.

Pre-elaborazione

La preelaborazione è la fase di un job che viene eseguita prima della transcodifica principale.

Configurazione pre-elaborazione

Una configurazione di pre-elaborazione rappresenta le impostazioni che puoi applicare a un video prima della fase di transcodifica di un job. Puoi applicare il ritaglio o il padding nell'ambito di questa configurazione.

Modalità di controllo della tariffa

La modalità di controllo della frequenza indica se elaborare un job utilizzando fattore di velocità costante (CRF) o modalità a velocità in bit variabile (VBR). Il CRF garantisce una qualità costante in tutti gli asset multimediali elaborati. VBR ottimizza il processo di codifica per ridurre le dimensioni dei file degli asset multimediali elaborati. Per i casi d'uso di streaming, seleziona la modalità di controllo della frequenza VBR. Ai fini dell'archiviazione, selezionare la modalità di controllo della frequenza CRF.

Manifest

Un manifest è una descrizione dei contenuti e dei metadati disponibili di uno stream multimediale adattabile per un client. Nell'API Transcoder, puoi configurare un job per produrre un manifest con un nome file, un elenco di stream multiplexati e il tipo di manifest, che deve essere HLS o MPEG-DASH.

Atomo di testo

Un atomo di testo mappa il testo da un flusso elementare a un elenco di modifica.

Stream di testo

Uno stream di testo codifica i dati di testo associati a un video, come i sottotitoli codificati o sottotitoli.

Passaggi successivi