Questa pagina fornisce una panoramica tecnica dell'API Transcoder, incluse funzionalità, 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 aver elaborato un job, l'API Transcoder salva i contenuti multimediali risultanti in Cloud Storage.
Funzionalità
L'API Transcoder include il supporto per le seguenti funzionalità:
- Output in diversi formati contenitore, tra cui MPEG-4 (MP4), Dynamic Adaptive Streaming over HTTP (DASH, noto anche come MPEG-DASH) e HTTP Live Streaming (HLS)
- Output a diverse velocità in bit e risoluzioni, inclusa l'uscita solo audio
- Conversione in un formato HDR (High Dynamic Range)
- Migliorare l'output video in modo programmatico, ad esempio:
- Configura i parametri di codifica di basso livello, ad esempio la velocità in bit
- Remixare i contenuti multimediali esistenti utilizzando elenchi di modifiche completi
- Imposta la modalità job su modalità interattiva a bassa latenza o modalità batch
- Specifica la normalizzazione dell'intensità audio
- Configura la crittografia del video di output per supportare la gestione dei diritti digitali e la protezione dei contenuti
- Inserisci fotogrammi chiave dell'annuncio per consentire ai client dei video player di inserire gli annunci
- Creare miniature da uno sprite sheet di frame video generato
- Crea modelli di job per salvare e riutilizzare configurazioni complesse o personalizzate 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 contenitori 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 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 ti consentono di 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'input | 4096 px |
Altezza massima dell'input | 4096 px |
Larghezza massima dell'output | 4096 px |
Altezza massima dell'output | 2160 px |
Dimensioni totali dell'output | 400 GB |
Durata massima di EditList | 24 ore |
Numero massimo di stream video | 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 spritesheet | 10 |
Concetti
Questa sezione fornisce concetti importanti relativi ai file video e al loro utilizzo 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 contenitore include un insieme di ElementaryStreams per definire la codifica delle tracce video, audio e di testo dei sottotitoli codificati per il file. Il video e l'audio vengono compressi utilizzando i codec.
Nell'esempio seguente, il video viene compresso utilizzando H.264 e l'audio viene compresso utilizzando AAC. Entrambi vengono inseriti in un contenitore MP4.
Figura 1. Componenti di un file video (a sinistra) e un esempio di file MP4 (a destra).
Struttura del protocollo di streaming
Per i contenuti multimediali in streaming, i fornitori di contenuti codificano gli stessi contenuti a più bitrate (misurate in kilobit al secondo). Il fornitore genera quindi un file manifest che rimanda ai diversi file con velocità in bit diverse. 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 vengono codificate in definizione standard (SD) anziché in alta definizione (HD). L'insieme di velocità in bit, risoluzioni e codec è chiamato scala a bitrate adattativo (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.
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 dell'API Transcoder.
Interruzione pubblicitaria
Un'interruzione pubblicitaria è un breve annuncio che viene visualizzato prima o durante la riproduzione dei contenuti multimediali. L'API Transcoder supporta un keyframe 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 e la posizione di un video. 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 e profilo di codec
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 i file multimediali e i 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 modifiche definisce una sequenza di modifiche come sequenza temporale per il file o il manifest risultante da un job di transcodifica.
Stream di base
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 gli 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, questo viene elaborato in modo asincrono in una località 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 pacchettizzamento.
- Preparazione
- Scarica input da Cloud Storage
- Analizza gli input
- Convalida gli input
- Transcodifica
- Eseguire 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 errori utilizzando il campo
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à di job: interattiva e batch.
La modalità interattiva è la modalità di lavoro predefinita. Utilizza questa modalità se vuoi che l'elaborazione dei job inizi il prima possibile o se vuoi avere un controllo più granulare sui job da eseguire per primi. In questa modalità, la quota di conteggio dei job simultanei controlla il numero di job 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ì critica come per i job inviati nella modalità interattiva predefinita. In questa modalità puoi specificare la priorità di elaborazione dei job per un job. I job inviati in modalità batch con lo stesso valore di priorità vengono inseriti in una coda di tipo primo arrivato, primo servito e hanno lo stato PENDING
mentre aspettano 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, tutti i job che provi a avviare vengono rifiutati. 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 precedenza sull'altra. Per ulteriori informazioni sull'impostazione della modalità di job, consulta Creare 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 i 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 versione ad alta definizionemedia-hd0000000000.ts
: file del segmento video in alta definizione
media-sd.m3u8
: playlist per la versione in definizione standardmedia-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 audiovideo-only-hd0000000000.m4s
: file del segmento solo video ad alta definizionevideo-only-sd0000000000.m4s
: file del segmento solo video a definizione standard
sd.mp4
: file video autonomo a definizione standardhd.mp4
: file video autonomo in alta definizione
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 della preelaborazione
Una configurazione di preelaborazione 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 le modalità CRF (constant rate factor) o VBR (variable bitrate). Il CRF garantisce una qualità costante in tutti gli asset multimediali elaborati. VBR ottimizza il procedura 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. Per scopi di archiviazione, seleziona la modalità di controllo del tasso 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 uno stream elementare a un elenco di modifiche.
Stream di testo
Uno stream di testo codifica i dati di testo associati a un video, ad esempio i sottotitoli codificati o i sottotitoli.
Passaggi successivi
- Prova la guida rapida.
- Scopri come completare specifiche attività dell'API Transcoder.