Questa pagina fornisce una panoramica tecnica dell'API Transcoder, inclusi 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 usando l'API Transcoder, devi prima caricare gli asset multimediali in Cloud Storage. Dopo l'elaborazione di un job, l'API Transcoder salva di nuovo il contenuto multimediale risultante in Cloud Storage.
Funzionalità
L'API Transcoder include il supporto per le seguenti funzionalità:
- Output in diversi formati container, inclusi MPEG-4 (MP4), Streaming adattivo dinamico su HTTP (DASH, noto anche come MPEG-DASH) e Live streaming HTTP (HLS)
- Output con diverse velocità in bit e risoluzioni, tra cui output solo audio
- Migliora l'output video in modo programmatico, includendo:
- Configurare parametri di codifica di basso livello, come la velocità in bit
- Remix di contenuti multimediali esistenti utilizzando elenchi di modifica completi
- Specifica la normalizzazione del volume dell'audio
Per ulteriori informazioni sugli standard MP4 ed MPEG-DASH, visita il sito web The Moving Picture Specialist Group. Per ulteriori informazioni sullo standard HLS, consulta la pagina relativa al live streaming HTTP.
Controllo dell'accesso
Il modello di controllo dell'accesso dell'API Transcoder si basa sulla Gestione di identità e accessi di Google. Le autorizzazioni granulari di IAM ti permettono 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 dei job | |
---|---|
Dimensioni totali input | 400 GB |
Dimensioni totali dell'output | 400 GB |
Durata massima di EditList | 24 ore |
Numero massimo di video stream | 30 |
Numero massimo di stream audio | 50 |
Numero massimo di stream di testo | 50 |
Numero massimo di flussi di mux | 100 |
Numero massimo di manifest | 100 |
Numero massimo di sprite sheet | 10 |
Concetti
Questa sezione fornisce concetti importanti sui file video e su come vengono utilizzati con l'API Transcoder.
Componenti di un file video
Ogni file video contiene un contenitore, che è il wrapper dell'intero file. L'API Transcoder utilizza MuxStreams per definire il container. Ogni container include un set di ElementaryStreams per definire la codifica delle tracce di testo video, audio e sottotitoli per il file. Video e audio vengono compressi utilizzando codec.
Nell'esempio seguente, il video viene compresso utilizzando H.264 e l'audio viene compresso tramite AAC. Entrambi sono inseriti in un contenitore MP4.
Figura 1. Componenti di un file video (a sinistra) e 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 diverse velocità in bit (misurate in kilobit al secondo). Il provider genera quindi un file manifest che punta a file diversi con velocità in bit diversa. Il lettore multimediale 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 il player supporta.
In genere, le diverse risoluzioni dei contenuti multimediali vengono codificate in base a diverse velocità in bit. Ad esempio, i bitrate più bassi sono codificati con definizione standard (SD) anziché ad alta definizione (HD). L'insieme di velocità in bit, risoluzioni e codec è chiamato scalabilità adattiva (ABR). I fornitori di contenuti di streaming possono ottimizzare la propria scala in base ai costi di CDN, ai tipi di dispositivi degli utenti, alla larghezza di banda nella regione e ad altri fattori.
Figura 2. Componenti di una struttura di protocollo di streaming (in alto) e di esempio di implementazione di HTTP Live Streaming (HLS) (in basso).
Terminologia
Questa sezione fornisce un glossario di termini utili per lavorare con l'API Transcoder.
Interruzione pubblicitaria
Un'interruzione pubblicitaria è un breve annuncio che viene visualizzato prima o durante la riproduzione di contenuti multimediali. L'API Transcoder supporta un fotogramma chiave di interruzione pubblicitaria nella configurazione del job. L'API Transcoder non inserisce e non riproduce annunci, né interrompe la riproduzione dei contenuti multimediali; i client video player sono responsabili della gestione del fotogramma chiave.
Atomo
Un atomo è una struttura dati di base per la definizione della posizione e dei metadati di un video. Un video può includere una gerarchia nidificata complessa di diversi tipi di atomi, tra cui audio, modifica e atomi di testo.
Atom audio
Un atomo audio mappa l'audio da uno stream elementare a un elenco di modifica.
Tipo e profilo codec
Quando selezioni il codec per un video stream, 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 container MP4, MPEG-DASH e HLS.
Modifica atomo
Un atomo di modifica definisce gli offset di inizio e fine per i singoli segmenti di uno stream che vuoi combinare in un elenco di modifica.
Modifica elenco
Un elenco di modifiche definisce una sequenza di modifiche come una sequenza temporale per il file o il manifest risultante da un job di transcodifica.
Stream elementare
Uno stream elementare è la codifica di un file di input, ad esempio una traccia di testo audio, video o sottotitoli. Devi pacchettizzare gli stream elementari prima di mapparli e condividerli in formati di output diversi.
Codifica di entropia
La codifica entropia è una forma di compressione senza perdita di dati supportata dall'API Transcoder. Durante la configurazione dei job, puoi specificare i codificatori ad ultima durata (CAVLC) o i codici CABAC (Contextual Adaptive Ararythmetic Coding).
Job
Un job è l'unità base per la gestione del lavoro con l'API Transcoder. I job inviati all'API Transcoder vengono elaborati in modo asincrono in una località geografica nota come area geografica. Puoi elencare e gestire tutti i job di una regione.
Il ciclo di vita di un job include tre passaggi: preparazione, transcodifica e creazione di un pacchetto.
- Preparati
- Scarica gli input da Cloud Storage
- Analizza gli input
- Convalida gli input
- Transcodifica
- Eseguire operazioni di transcodifica sugli input
- Pacchetto
- Input stitching
- Input multiplex
- Carica gli output in Cloud Storage
Un job ha uno stato aggiornato.
Il servizio segnala errori utilizzando il campo error
.
Configurazione job
Una configurazione del 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 gli elenchi di modifica, e 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 di Google Cloud.
Modello di job
Per impostazione predefinita, l'API Transcoder applica un modello preimpostato denominato
preset/web-hd
per completare una configurazione del job. Questa configurazione del job produce i seguenti file di output:
manifest.m3u8
: la playlist principale di uno stream multimediale HLS. Questo file contiene riferimenti alle playlist per la variante ad alta definizione (HD) dell'output e per la variante a definizione standard (SD) dell'output.media-hd.m3u8
: playlist per la variante ad alta definizionemedia-hd0000000000.ts
: file di segmento video ad alta definizione
media-sd.m3u8
: playlist per la variante a definizione standardmedia-sd0000000000.ts
: file di segmento video a definizione standard
manifest.mpd
: la playlist di uno stream multimediale MPEG-DASH. Questo file contiene riferimenti a file di segmenti solo video e solo audio.audio-only0000000000.m4s
: file di segmento solo audiovideo-only-hd0000000000.m4s
: file di segmento solo video ad alta definizionevideo-only-sd0000000000.m4s
: file di segmento solo video a definizione standard
sd.mp4
: file video a definizione standard autonomahd.mp4
: file video autonomo ad alta definizione
Puoi creare e gestire i tuoi modelli di job personalizzati e specificarli quando crei i job.
Pre-elaborazione
La pre-elaborazione è la fase di un job che si svolge prima della transcodifica principale.
Configurazione di 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 la spaziatura interna come parte di questa configurazione.
Modalità di controllo della frequenza
La modalità di controllo della frequenza indica se elaborare un job utilizzando la modalità a frequenza costante (CRF) o a velocità in bit variabile (VBR). CRF assicura una qualità costante in tutti gli asset multimediali elaborati. VBR ottimizza il processo di codifica per ridurre le dimensioni del file degli asset multimediali elaborati. Per i casi d'uso relativi al flusso, seleziona la modalità di controllo della frequenza VBR. Ai fini dell'archiviazione, seleziona la modalità di controllo della frequenza CRF.
Manifest
Un manifest è una descrizione dei contenuti e dei metadati disponibili di uno stream multimediale adattivo che invia un client. Nell'API Transcoder, puoi configurare un job per generare un manifest con un nome file, un elenco di stream multiplex, nonché il tipo di manifest, che deve essere HLS o MPEG-DASH.
Testo Atom
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 guida rapida.
- Scopri come completare attività dell'API Transcoder specifiche.