Questa pagina fornisce una panoramica tecnica dell'API Transcoder, che include funzionalità, terminologia e concetti utili. L'API Transcoder implementa un'API REST e RPC che 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 in Cloud Storage. Dopo l'elaborazione di un job, l'API Transcoder salva i contenuti multimediali risultanti in Cloud Storage.
Funzionalità
L'API Transcoder supporta le seguenti funzionalità:
- Output in diversi formati container, tra cui MPEG-4 (MP4), Dynamic Adaptive Streaming over HTTP (DASH, noto anche come MPEG-DASH) e HTTP Live Streaming (HLS).
- Output con velocità in bit e risoluzioni diverse, incluso output solo audio
- Conversione in formato HDR (High Dynamic Range)
- Migliora l'output video in modo programmatico, ad esempio:
- Configura parametri di codifica di basso livello, ad esempio la velocità in bit
- Remixa contenuti multimediali esistenti con elenchi di modifica completi
- Imposta la modalità job sulla modalità interattiva a bassa latenza o sulla modalità batch
- Specifica la normalizzazione del volume audio
- Configura la crittografia del video di output per supportare la gestione dei diritti digitali e la protezione dei contenuti
- Inserire fotogrammi chiave degli annunci per consentire ai clienti dei video player di inserire annunci
- Creare miniature a partire da uno spritesheet di frame video generato
- Creare modelli di job per salvare e riutilizzare configurazioni personalizzate o complesse per i job di transcodifica
Per ulteriori informazioni sugli standard MP4 e MPEG-DASH, visita il 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 la crittografia dei contenuti.
Protocollo di streaming | Container | Sistema DRM | Schema di crittografia |
---|---|---|---|
HLS | TS | ClearKey | aes128 |
HLS | TS | FairPlay | sampleAes |
HLS | fMP4 | FairPlay | Solo cbcs mpegCenc |
MPEG-DASH | fMP4 | Widevine | mpegCenc cenc o cbcs |
MPEG-DASH | fMP4 | PlayReady | mpegCenc cenc o cbcs |
Controllo dell'accesso
Il modello di controllo degli accessi all'API Transcoder si basa su Identity and Access Management di Google. Le autorizzazioni granulari di IAM consentono di controllare cosa può essere fatto con i dati multimediali e da chi.
Limiti
La tabella seguente mostra i limiti per ogni job di transcodifica.
Limiti di job | |
---|---|
Larghezza massima dell'input | 4096 px |
Altezza massima dell'input | 4096 px |
Larghezza massima dell'output | 4096 px |
Altezza massima dell'output | 2160 px |
Dimensioni totali input | 400 GB |
Dimensioni totali dell'output | 400 GB |
Durata massima di EditList | 24 ore |
Numero massimo di video stream | 70 |
Numero massimo di stream audio | 50 |
Numero massimo di stream di testo | 50 |
Numero massimo di stream mux | 100 |
Numero massimo di manifest | 100 |
Numero massimo di fogli sprite | 10 |
Concetti
Questa sezione fornisce concetti importanti riguardanti i file video e il loro utilizzo con l'API Transcoder.
Componenti di un file video
Ogni file video ha un contenitore, che funge da wrapper per l'intero file. L'API Transcoder utilizza MuxStreams per definire il container. Ogni contenitore include un insieme di ElementaryStreams per definire la codifica delle tracce di testo video, audio e dei sottotitoli codificati per il file. Il video e l'audio vengono compressi utilizzando codec.
Nell'esempio seguente, il video viene compresso utilizzando H.264 e l'audio viene compresso utilizzando AAC. Entrambi sono posizionati in un contenitore MP4.
Figura 1. Componenti di un file video (a sinistra) e di un file MP4 di esempio (a destra).
Struttura del protocollo di streaming
Per lo streaming multimediale, i fornitori di contenuti codificano gli stessi contenuti a velocità in bit diverse (misurate in kilobit al secondo). Il provider genera quindi un file manifest che punta ai diversi file con velocità in bit diverse. Il media player per lo streaming utilizza il file manifest per selezionare il file appropriato, quindi esegue il pull del video pochi secondi alla volta. Ogni velocità in bit può essere un singolo file o più file brevi, a seconda di ciò che il player supporta.
Le diverse risoluzioni dei contenuti multimediali vengono generalmente codificate per avere velocità in bit diverse. Ad esempio, i bit in bit più bassi sono codificati in definizione standard (SD) anziché in alta definizione (HD). L'insieme di velocità in bit, risoluzioni e codec è chiamato ladder a velocità in bit adattiva. I fornitori di contenuti in streaming possono ottimizzare la propria scala in base ai costi di CDN, ai tipi di dispositivi degli utenti, alla larghezza di banda nell'area geografica e ad altri fattori.
Figura 2. Componenti di una struttura di protocollo di streaming (in alto) e un'implementazione di HTTP Live Streaming (HLS) di esempio (in basso).
Terminologia
Questa sezione fornisce un glossario di termini utili per utilizzare l'API Transcoder.
Interruzione pubblicitaria
Un'interruzione pubblicitaria è una breve pubblicità che viene visualizzata prima o durante la riproduzione multimediale. L'API Transcoder supporta un frame chiave di interruzione pubblicitaria nella configurazione del job. L'API Transcoder non inserisce o riproduce annunci, né interrompe la riproduzione di contenuti multimediali; i clienti dei video player sono responsabili della gestione del fotogramma chiave.
Atomo
Un atomo è una struttura di dati di base per definire i metadati e la posizione di un video. Un video può comprendere una gerarchia nidificata complessa di diversi tipi di atomi, tra cui atomi di audio, di modifica e di testo.
Atomo audio
Un atomo audio mappa l'audio di uno stream elementare a un elenco di modifica.
Tipo di codec e profilo
Quando selezioni il codec per uno stream video, devi specificare il tipo di codec, ad esempio H.264 e il profilo, ad esempio il profilo high
predefinito.
Container
Un container è un wrapper che descrive la relazione tra i vari componenti in uno stream multiplex, inclusi file multimediali e metadati. L'API Transcoder supporta i formati di container MP4, MPEG-DASH e HLS.
Modifica atom
Un atom di modifica definisce gli offset di inizio e fine dei singoli segmenti di un flusso che vuoi combinare in un elenco di modifica.
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 è la 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 in diversi formati di output.
Codifica entropia
La codifica entropia è una forma di compressione senza perdita di dati supportata dall'API Transcoder. Quando configuri i job, puoi specificare i codificatori entropici (CAVLC) o Context-Adaptive Binary Arithmetic Coding (CABAC).
Job
Un job è l'unità di base per la gestione del lavoro con l'API Transcoder. Quando invii un job all'API Transcoder, viene elaborato in modo asincrono in una posizione geografica nota come regione. Puoi elencare e gestire tutti i job per una regione.
Il ciclo di vita di un job include tre passaggi: preparazione, transcodifica e pacchetto.
- Preparazione
- Scarica input da Cloud Storage
- Analizza gli input
- Convalida input
- Transcodifica
- Eseguire operazioni di transcodifica sugli input
- Pacchetto
- Input stitch
- Input multiplex
- Carica output in Cloud Storage
Un job ha uno state aggiornato.
Il servizio segnala gli errori utilizzando il campo error
.
Configurazione job
La configurazione di un job rappresenta molte delle varie impostazioni che puoi personalizzare durante la creazione e l'invio di un job all'API Transcoder. Puoi specificare le impostazioni di configurazione, ad esempio modificare gli elenchi 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à di job: interattiva e batch.
La modalità interattiva è la modalità job predefinita. Utilizza questa modalità se vuoi che l'elaborazione dei job venga avviata il prima possibile o se vuoi avere un controllo più granulare su quali job vengono eseguiti per primi. In questa modalità, la 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 non è così importante come quella dei job inviati nella modalità interattiva predefinita. Puoi specificare la priorità dell'elaborazione dei job per un job in questa modalità. I job inviati in modalità batch con lo stesso valore di priorità vengono inseriti in una coda di primo accesso e hanno uno stato del job PENDING
in attesa di esecuzione. In questa modalità, la quota di conteggio dei job in attesa di batch controlla il numero di job in coda. Una volta raggiunta questa quota, tutti i job che provi ad avviare vengono rifiutati. Al momento dell'esecuzione, un job passa allo stato RUNNING
. La quota di conteggio dei job simultanei batch controlla quanti job vengono eseguiti contemporaneamente.
Puoi utilizzare entrambe le modalità contemporaneamente. Una modalità non ha la priorità sull'altra. Per ulteriori informazioni sull'impostazione della modalità job, consulta la pagina relativa alla creazione di job in modalità batch.
Modello di job
Per impostazione predefinita, l'API Transcoder applica un modello preimpostato denominato preset/web-hd
per il completamento della configurazione di un job. Questa configurazione del job produce i seguenti file di output:
manifest.m3u8
: la playlist principale per uno stream multimediale HLS. Questo file contiene riferimenti alle playlist per la variante ad alta definizione (HD) dell'output e per la variante in definizione standard (SD) dell'output.media-hd.m3u8
: playlist per la variante ad alta definizionemedia-hd0000000000.ts
: file di segmenti video ad alta definizione
media-sd.m3u8
: playlist per la variante in definizione standardmedia-sd0000000000.ts
: file di segmento video di definizione standard
manifest.mpd
: la playlist per uno stream multimediale MPEG-DASH. Questo file contiene riferimenti a file di segmento solo video e solo audio.audio-only0000000000.m4s
: file di segmento solo audiovideo-only-hd0000000000.m4s
: file di segmenti solo video ad alta definizionevideo-only-sd0000000000.m4s
: file di segmenti solo video a definizione standard
sd.mp4
: file video di definizione standard autonomohd.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 pre-elaborazione è la fase di un job che avviene 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 ritaglio o spaziatura interna come parte di questa configurazione.
Modalità di controllo della frequenza
La modalità di controllo della frequenza indica se elaborare un job utilizzando le modalità Fattore di velocità costante (CRF) o Velocità in bit variabile (VBR). 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 del flusso di dati, seleziona la modalità di controllo della frequenza VBR. A scopo di archiviazione, seleziona la modalità di controllo della frequenza CRF.
Manifest
Un file manifest è una descrizione dei contenuti disponibili e dei metadati di uno stream multimediale adattivo a un client. Nell'API Transcoder puoi configurare un job per l'output di un manifest con un nome file, un elenco di flussi multiplexati e il tipo di manifest, che deve essere HLS o MPEG-DASH.
Atomo di testo
Un atomo di testo mappa il testo di uno stream elementare a un elenco di modifica.
Stream di testo
Uno stream di testo codifica i dati di testo associati a un video, ad esempio i sottotitoli.
Passaggi successivi
- Prova la quickstart.
- Scopri come completare attività specifiche dell'API Transcoder.