Panoramica dell'API Transcoder

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

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à:

  • Inserisci fotogrammi chiave degli annunci per consentire ai client video player di inserire annunci
  • Creare miniature da uno sprite sheet di frame video generato
  • Crea modelli di job per salvare e riutilizzare configurazioni personalizzate o complesse per i job di transcodifica
  • 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 input400 GB
    Dimensioni totali dell'output400 GB
    Durata massima di EditList24 ore
    Numero massimo di video stream30
    Numero massimo di stream audio50
    Numero massimo di stream di testo50
    Numero massimo di flussi di mux100
    Numero massimo di manifest100
    Numero massimo di sprite sheet10

    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.

    Componenti di un file video e un esempio
    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.

    Componenti di una struttura di protocollo di streaming ed esempio
    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 definizione
        • media-hd0000000000.ts: file di segmento video ad alta definizione
      • media-sd.m3u8: playlist per la variante a definizione standard
        • media-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 audio
      • video-only-hd0000000000.m4s: file di segmento solo video ad alta definizione
      • video-only-sd0000000000.m4s: file di segmento solo video a definizione standard
    • sd.mp4: file video a definizione standard autonoma
    • hd.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