Questa pagina spiega come inserire overlay nei video sottoposti a transcodifica. Un overlay consiste in un'immagine inserita sopra il video di output e può essere visualizzata gradualmente o attenuata in un determinato periodo di tempo. Per inserire un overlay, utilizza l'array overlays
nel modello JobConfig
.
Consulta l'elenco dei formati file delle immagini supportati.
Carica un'immagine su Cloud Storage
Per iniziare, procedi nel seguente modo per caricare un'immagine overlay nel bucket Cloud Storage:
- Nella console Google Cloud, vai alla pagina Browser Cloud Storage.
Vai alla pagina Browser Cloud Storage - Fai clic sul nome del bucket per aprirlo.
- Fai clic su Carica file.
- Seleziona un file immagine da caricare dalla tua macchina locale.
Creare un overlay
Puoi creare due tipi di overlay: statici o animati. Entrambi i tipi di overlay utilizzano un'immagine statica. Puoi mostrare o nascondere gli overlay statici. Gli overlay animati supportano le animazioni di dissolvenza in entrata e in uscita dell'immagine.
Puoi inserire più overlay in un unico video di output.
Creare un overlay statico
Nell'oggetto image
, utilizza il campo
uri
per
specificare l'immagine in overlay in Cloud Storage. Nell'oggetto resolution
, imposta i valori x e y da 0 a 1,0. Un valore pari a 0 mantiene la risoluzione dell'immagine di origine per quella dimensione; un valore pari a 1,0 allunga l'immagine in modo che corrisponda alle dimensioni del video di output. Ad esempio, utilizza i valori x: 1
e y:
0.5
per estendere l'immagine in overlay all'intera larghezza e alla metà dell'altezza del
video di output.
Nell'array animations
, crea un oggetto animationStatic
con coordinate x e y da 0 a 1,0. Queste coordinate si basano sulla risoluzione del video in uscita. Utilizza i valori x: 0
e y: 0
per posizionare l'angolo in alto a sinistra dell'overlay nell'angolo in alto a sinistra del video di output. Specifica quando deve apparire l'overlay nella sequenza temporale del video di output utilizzando il campo startTimeOffset
.
Per rimuovere l'animazione statica, crea un oggetto animationEnd
. Specifica quando deve terminare l'animazione (ovvero quando deve scomparire l'overlay) nella sequenza temporale del video di output utilizzando il campo startTimeOffset
.
Puoi aggiungere questa configurazione a un modello di job o includerla in una configurazione di job ad hoc:
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
PROJECT_ID
: l'ID del tuo progetto Google Cloud elencato nelle Impostazioni IAM.LOCATION
: la posizione in cui verrà eseguito il job. Utilizza una delle regioni supportate.Mostra sedius-central1
us-west1
us-west2
us-east1
us-east4
southamerica-east1
northamerica-northeast1
asia-east1
asia-northeast1
asia-northeast3
asia-south1
asia-southeast1
australia-southeast1
europe-west1
europe-west2
europe-west4
STORAGE_BUCKET_NAME
: il nome del bucket Cloud Storage che hai creato.STORAGE_INPUT_VIDEO
: il nome del video nel bucket Cloud Storage di cui stai eseguendo la transcodifica, ad esempiomy-vid.mp4
. Questo campo deve tenere conto di eventuali cartelle create nel bucket (ad esempioinput/my-vid.mp4
).STORAGE_INPUT_OVERLAY
: il nome dell'immagine nel bucket Cloud Storage che utilizzi per l'overlay, ad esempiomy-overlay.png
. Questo campo deve tenere conto di eventuali cartelle create nel bucket (ad esempioinput/my-overlay.png
).STORAGE_OUTPUT_FOLDER
: il nome della cartella Cloud Storage in cui vuoi salvare le uscite video codificate.
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/jobs/JOB_ID", "config": { ... }, "state": "PENDING", "createTime": CREATE_TIME, "ttlAfterCompletionDays": 30 }
gcloud
- Crea un file
request.json
che definisce i campi del job. Apporta le seguenti sostituzioni per il comandogcloud
:- STORAGE_BUCKET_NAME: il nome del bucket Cloud Storage che hai creato.
- STORAGE_INPUT_VIDEO: il
nome del video nel bucket Cloud Storage di cui stai
eseguendo la transcodifica, ad esempio
my-vid.mp4
. Questo campo deve tenere conto di tutte le cartelle che hai creato nel bucket (ad esempioinput/my-vid.mp4
). - STORAGE_INPUT_OVERLAY: il nome del
file immagine nel bucket Cloud Storage che utilizzi per l'overlay, ad esempio
my-overlay.png
. Questo campo deve tenere conto di eventuali cartelle create nel bucket (ad esempioinput/my-overlay.png
). - LOCATION: la posizione in cui verrà eseguito il job. Utilizza una località dall'elenco seguente.
Mostra sedi
us-central1
us-west1
us-west2
us-east1
us-east4
southamerica-east1
northamerica-northeast1
asia-east1
asia-northeast1
asia-northeast3
asia-south1
asia-southeast1
australia-southeast1
europe-west1
europe-west2
europe-west4
- STORAGE_OUTPUT_FOLDER: il nome della cartella Cloud Storage in cui vuoi salvare le uscite video codificate.
{ "config": { "inputs": [ { "key": "input0", "uri": "gs://STORAGE_BUCKET_NAME/STORAGE_INPUT_VIDEO" } ], "elementaryStreams": [ { "key": "video-stream0", "videoStream": { "h264": { "heightPixels": 360, "widthPixels": 640, "bitrateBps": 550000, "frameRate": 60 } } }, { "key": "audio-stream0", "audioStream": { "codec": "aac", "bitrateBps": 64000 } } ], "muxStreams": [ { "key": "sd", "container": "mp4", "elementaryStreams": [ "video-stream0", "audio-stream0" ] } ], "output": { "uri": "gs://STORAGE_BUCKET_NAME/STORAGE_OUTPUT_FOLDER/" }, "overlays": [ { "image": { "uri": "gs://STORAGE_BUCKET_NAME/STORAGE_INPUT_OVERLAY", "resolution": { "x": 1, "y": 0.5 }, "alpha": 1 }, "animations": [ { "animationStatic": { "xy": { "x": 0, "y": 0 }, "startTimeOffset": "0s" } }, { "animationEnd": { "startTimeOffset": "10s" } } ] } ] } }
- Esegui questo comando:
Dovresti visualizzare una risposta simile alla seguente:gcloud transcoder jobs create --location=LOCATION --file="request.json"
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/jobs/JOB_ID", "config": { ... }, "state": "PENDING", "createTime": CREATE_TIME, "ttlAfterCompletionDays": 30 }
C#
Prima di provare questo esempio, segui le istruzioni di configurazione C# riportate nella guida rapida all'API Transcoder che utilizza le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Transcoder C#.
Per autenticarti all'API Transcoder, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Go
Prima di provare questo esempio, segui le istruzioni di configurazione Go riportate nella guida rapida all'API Transcoder che utilizza le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Transcoder Go.
Per autenticarti all'API Transcoder, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione Java riportate nella guida rapida all'API Transcoder che utilizza le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Transcoder Java.
Per autenticarti all'API Transcoder, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione Node.js riportate nella guida rapida all'API Transcoder che utilizza le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Transcoder Node.js.
Per autenticarti all'API Transcoder, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
PHP
Prima di provare questo esempio, segui le istruzioni di configurazione PHP riportate nella guida rapida all'API Transcoder che utilizza le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Transcoder PHP.
Per autenticarti all'API Transcoder, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione Python riportate nella guida rapida all'API Transcoder che utilizza le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Transcoder Python.
Per autenticarti all'API Transcoder, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Ruby
Prima di provare questo esempio, segui le istruzioni di configurazione Ruby riportate nella guida rapida all'API Transcoder che utilizza le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Transcoder Ruby.
Per autenticarti all'API Transcoder, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Nel video di output, l'overlay statico ha le seguenti caratteristiche:
- Viene visualizzato all'inizio della sequenza temporale ed è visibile per 10 secondi.
- Si estende per tutta la larghezza e metà dell'altezza del video di output.
- È posizionato nell'angolo in alto a sinistra del video di output.
Guarda il video di output di esempio per questa configurazione. Questo video utilizza un'immagine di overlay di esempio.
Creare un overlay animato
Nell'oggetto image
, utilizza il campo
uri
per
specificare l'immagine in overlay in Cloud Storage. Nell'oggetto resolution
, imposta i valori x e y da 0 a 1,0. Un valore pari a 0 mantiene la risoluzione dell'immagine di origine per quella dimensione; un valore pari a 1,0 allunga l'immagine in modo che corrisponda alle dimensioni del video di output. Ad esempio, utilizza i valori x: 0
e y: 0
per mantenere la risoluzione originale dell'immagine in overlay.
Nell'array animations
, crea un oggetto animationFade
con un fadeType
di
FADE_IN
. Imposta le coordinate x e y da 0 a 1,0. Queste coordinate si basano sulla risoluzione del video in uscita. Utilizza i valori x: 0.5
e y: 0.5
per posizionare l'angolo in alto a sinistra dell'overlay al centro del video di output.
Specifica quando l'overlay deve iniziare a essere visualizzato nella sequenza temporale del video di output utilizzando il campo startTimeOffset
. L'overlay deve essere completamente visibile entro il
momento impostato nel campo endTimeOffset
.
Per attenuare l'overlay, crea un altro oggetto animationFade
. Questa volta, imposta fadeType
su FADE_OUT
. Inserisci le coordinate della posizione e le ore di inizio e di fine come prima.
Puoi aggiungere questa configurazione a un modello di job o includerla in una configurazione di job ad hoc:
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
PROJECT_ID
: l'ID del tuo progetto Google Cloud elencato nelle Impostazioni IAM.LOCATION
: la posizione in cui verrà eseguito il job. Utilizza una delle regioni supportate.Mostra sedius-central1
us-west1
us-west2
us-east1
us-east4
southamerica-east1
northamerica-northeast1
asia-east1
asia-northeast1
asia-northeast3
asia-south1
asia-southeast1
australia-southeast1
europe-west1
europe-west2
europe-west4
STORAGE_BUCKET_NAME
: il nome del bucket Cloud Storage che hai creato.STORAGE_INPUT_VIDEO
: il nome del video nel bucket Cloud Storage di cui stai eseguendo la transcodifica, ad esempiomy-vid.mp4
. Questo campo deve tenere conto di eventuali cartelle create nel bucket (ad esempioinput/my-vid.mp4
).STORAGE_INPUT_OVERLAY
: il nome dell'immagine nel bucket Cloud Storage che utilizzi per l'overlay, ad esempiomy-overlay.png
. Questo campo deve tenere conto di eventuali cartelle create nel bucket (ad esempioinput/my-overlay.png
).STORAGE_OUTPUT_FOLDER
: il nome della cartella Cloud Storage in cui vuoi salvare le uscite video codificate.
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/jobs/JOB_ID", "config": { ... }, "state": "PENDING", "createTime": CREATE_TIME, "ttlAfterCompletionDays": 30 }
gcloud
- Crea un file
request.json
che definisce i campi del job. Apporta le seguenti sostituzioni per il comandogcloud
:- STORAGE_BUCKET_NAME: il nome del bucket Cloud Storage che hai creato.
- STORAGE_INPUT_VIDEO: il
nome del video nel bucket Cloud Storage di cui stai
eseguendo la transcodifica, ad esempio
my-vid.mp4
. Questo campo deve tenere conto di tutte le cartelle che hai creato nel bucket (ad esempioinput/my-vid.mp4
). - STORAGE_INPUT_OVERLAY: il nome del
file immagine nel bucket Cloud Storage che utilizzi per l'overlay, ad esempio
my-overlay.png
. Questo campo deve tenere conto di eventuali cartelle create nel bucket (ad esempioinput/my-overlay.png
). - LOCATION: la posizione in cui verrà eseguito il job. Utilizza una località dall'elenco seguente.
Mostra sedi
us-central1
us-west1
us-west2
us-east1
us-east4
southamerica-east1
northamerica-northeast1
asia-east1
asia-northeast1
asia-northeast3
asia-south1
asia-southeast1
australia-southeast1
europe-west1
europe-west2
europe-west4
- STORAGE_OUTPUT_FOLDER: il nome della cartella Cloud Storage in cui vuoi salvare le uscite video codificate.
{ "config": { "inputs": [ { "key": "input0", "uri": "gs://STORAGE_BUCKET_NAME/STORAGE_INPUT_VIDEO" } ], "elementaryStreams": [ { "key": "video-stream0", "videoStream": { "h264": { "heightPixels": 360, "widthPixels": 640, "bitrateBps": 550000, "frameRate": 60 } } }, { "key": "audio-stream0", "audioStream": { "codec": "aac", "bitrateBps": 64000 } } ], "muxStreams": [ { "key": "sd", "container": "mp4", "elementaryStreams": [ "video-stream0", "audio-stream0" ] } ], "output": { "uri": "gs://STORAGE_BUCKET_NAME/STORAGE_OUTPUT_FOLDER/" }, "overlays": [ { "image": { "uri": "gs://STORAGE_BUCKET_NAME/STORAGE_INPUT_OVERLAY", "resolution": { "x": 0, "y": 0 }, "alpha": 1 }, "animations": [ { "animationFade": { "fadeType": "FADE_IN", "xy": { "x": 0.5, "y": 0.5 }, "startTimeOffset": "5s", "endTimeOffset": "10s" } }, { "animationFade": { "fadeType": "FADE_OUT", "xy": { "x": 0.5, "y": 0.5 }, "startTimeOffset": "12s", "endTimeOffset": "15s" } } ] } ] } }
- Esegui questo comando:
Dovresti visualizzare una risposta simile alla seguente:gcloud transcoder jobs create --location=LOCATION --file="request.json"
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/jobs/JOB_ID", "config": { ... }, "state": "PENDING", "createTime": CREATE_TIME, "ttlAfterCompletionDays": 30 }
C#
Prima di provare questo esempio, segui le istruzioni di configurazione C# riportate nella guida rapida all'API Transcoder che utilizza le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Transcoder C#.
Per autenticarti all'API Transcoder, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Go
Prima di provare questo esempio, segui le istruzioni di configurazione Go riportate nella guida rapida all'API Transcoder che utilizza le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Transcoder Go.
Per autenticarti all'API Transcoder, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione Java riportate nella guida rapida all'API Transcoder che utilizza le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Transcoder Java.
Per autenticarti all'API Transcoder, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione Node.js riportate nella guida rapida all'API Transcoder che utilizza le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Transcoder Node.js.
Per autenticarti all'API Transcoder, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
PHP
Prima di provare questo esempio, segui le istruzioni di configurazione PHP riportate nella guida rapida all'API Transcoder che utilizza le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Transcoder PHP.
Per autenticarti all'API Transcoder, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione Python riportate nella guida rapida all'API Transcoder che utilizza le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Transcoder Python.
Per autenticarti all'API Transcoder, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Ruby
Prima di provare questo esempio, segui le istruzioni di configurazione Ruby riportate nella guida rapida all'API Transcoder che utilizza le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Transcoder Ruby.
Per autenticarti all'API Transcoder, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Nel video risultante, l'overlay animato presenta le seguenti caratteristiche:
- Inizia ad apparire dopo 5 secondi nel video di output. Il valore alpha per l'overlay inizia da 0 e termina a 1,0. L'angolo in alto a sinistra dell'overlay viene visualizzato al centro del video di output. L'overlay viene visualizzato nella risoluzione originale dell'immagine dell'overlay.
- Dopo essere apparso gradualmente, l'overlay viene visualizzato per 2 secondi.
- Inizia a svanire al 12° secondo del video di output. Il valore alpha per l'overlay inizia da 1,0 e termina a 0.
- L'animazione scompare dopo 15 secondi.
Guarda il video di output di esempio per questa configurazione. Questo video utilizza un'immagine di overlay di esempio.