Questa pagina spiega come inserire degli overlay nei video transcodificati. Un overlay è costituito da un'immagine che viene inserita nella parte superiore del video di output e, se necessario, può essere sbiadita in entrata o in uscita nel corso di un determinato periodo di tempo. Per inserire un overlay, utilizza l'array overlays
nel modello JobConfig
.
Consulta l'elenco dei formati di file immagine supportati.
Carica un'immagine in Cloud Storage
Per iniziare, segui questi passaggi per caricare un'immagine overlay nel bucket Cloud Storage:
- Nella console Google Cloud, vai alla pagina Browser di Cloud Storage.
Vai alla pagina del browser di 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 una sovrapposizione
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 overlay in Cloud Storage. Nell'oggetto resolution
, imposta
i valori x e y da 0 a 1,0. Il valore 0 mantiene la risoluzione dell'immagine di origine per la dimensione scelta, mentre il valore 1,0 estende l'immagine in modo che corrisponda alla dimensione del video di output. Ad esempio, utilizza i valori x: 1
e y:
0.5
per estendere l'immagine overlay per tutta la larghezza e metà dell'altezza del video di output.
Nell'array animations
, crea un oggetto animationStatic
con coordinate x e y comprese tra 0 e 1,0. Queste coordinate si basano sulla risoluzione
del video di output. 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. Utilizza il campo startTimeOffset
per specificare quando visualizzare l'overlay nella sequenza temporale del video di output.
Per rimuovere l'animazione statica, crea un oggetto animationEnd
. Utilizza il campo startTimeOffset
per specificare quando terminare l'animazione (ovvero quando l'overlay dovrebbe scomparire) nella sequenza temporale del video di output.
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, effettua le seguenti sostituzioni:
PROJECT_ID
: l'ID del tuo progetto Google Cloud elencato nelle impostazioni IAM.LOCATION
: la località in cui verrà eseguito il job. Utilizza una delle regioni supportate.Mostra località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_BUCKET_NAME
: il nome del bucket Cloud Storage che hai creato.STORAGE_INPUT_VIDEO
: il nome del video nel bucket Cloud Storage che stai transcodificando, ad esempiomy-vid.mp4
. Questo campo deve tenere conto di eventuali cartelle create nel bucket (ad esempio,input/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 esempio,input/my-overlay.png
).STORAGE_OUTPUT_FOLDER
: il nome della cartella Cloud Storage in cui vuoi salvare gli output video codificati.
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 definisca i campi del job. Sostituisci il comandogcloud
come segue:- STORAGE_BUCKET_NAME: il nome del bucket Cloud Storage che hai creato.
- STORAGE_INPUT_VIDEO: il nome del video nel bucket Cloud Storage che stai transcodificando, ad esempio
my-vid.mp4
. Questo campo dovrebbe tenere conto di eventuali cartelle create nel bucket (ad esempio,input/my-vid.mp4
). - STORAGE_INPUT_OVERLAY: 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 esempio,input/my-overlay.png
). - LOCATION: la località in cui verrà eseguito il job. Utilizza una località dall'elenco seguente.
Mostra località
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 gli output video codificati.
{ "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:
gcloud transcoder jobs create --location=LOCATION --file="request.json"
Dovresti vedere una risposta simile alla seguente:{ "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 di C# disponibili nella guida rapida dell'API Transcoder sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API C# per l'API Transcoder.
Per eseguire l'autenticazione all'API Transcoder, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Go
Prima di provare questo esempio, segui le istruzioni di configurazione di Go disponibili nella guida rapida dell'API Transcoder sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API Go per l'API Transcoder.
Per eseguire l'autenticazione all'API Transcoder, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java disponibili nella guida rapida dell'API Transcoder sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API Java per l'API Transcoder.
Per eseguire l'autenticazione all'API Transcoder, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js disponibili nella guida rapida dell'API Transcoder sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API Node.js per l'API Transcoder.
Per eseguire l'autenticazione all'API Transcoder, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
PHP
Prima di provare questo esempio, segui le istruzioni di configurazione di PHP disponibili nella guida rapida dell'API Transcoder sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API PHP per l'API Transcoder.
Per eseguire l'autenticazione all'API Transcoder, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python disponibili nella guida rapida dell'API Transcoder sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API Python per l'API Transcoder.
Per eseguire l'autenticazione all'API Transcoder, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Ruby
Prima di provare questo esempio, segui le istruzioni di configurazione di Ruby disponibili nella guida rapida dell'API Transcoder sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API Ruby per l'API Transcoder.
Per eseguire l'autenticazione all'API Transcoder, configura Credenziali predefinite dell'applicazione. Per maggiori 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.
- Estende l'intera 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 in overlay di esempio.
Creare un overlay animato
Nell'oggetto image
, utilizza il campo uri
per specificare l'immagine overlay in Cloud Storage. Nell'oggetto resolution
, imposta
i valori x e y da 0 a 1,0. Il valore 0 mantiene la risoluzione dell'immagine di origine per la dimensione scelta, mentre il valore 1,0 estende l'immagine in modo che corrisponda alla dimensione del video di output. Ad esempio, utilizza i valori x: 0
e y: 0
per mantenere la risoluzione originale dell'immagine overlay.
Nell'array animations
, crea un oggetto animationFade
con fadeType
pari a
FADE_IN
. Imposta le coordinate x e y da 0 a 1,0 Queste coordinate si basano sulla risoluzione video di output. 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.
Utilizza il campo startTimeOffset
per specificare quando deve iniziare la visualizzazione dell'overlay nella sequenza temporale del video di output. L'overlay dovrebbe essere completamente visibile entro l'intervallo di tempo impostato nel campo endTimeOffset
.
Per far scomparire l'overlay, crea un altro oggetto animationFade
. Questa volta, imposta fadeType
su FADE_OUT
. Immetti le coordinate di posizione e l'ora
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, effettua le seguenti sostituzioni:
PROJECT_ID
: l'ID del tuo progetto Google Cloud elencato nelle impostazioni IAM.LOCATION
: la località in cui verrà eseguito il job. Utilizza una delle regioni supportate.Mostra località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_BUCKET_NAME
: il nome del bucket Cloud Storage che hai creato.STORAGE_INPUT_VIDEO
: il nome del video nel bucket Cloud Storage che stai transcodificando, ad esempiomy-vid.mp4
. Questo campo deve tenere conto di eventuali cartelle create nel bucket (ad esempio,input/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 esempio,input/my-overlay.png
).STORAGE_OUTPUT_FOLDER
: il nome della cartella Cloud Storage in cui vuoi salvare gli output video codificati.
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 definisca i campi del job. Sostituisci il comandogcloud
come segue:- STORAGE_BUCKET_NAME: il nome del bucket Cloud Storage che hai creato.
- STORAGE_INPUT_VIDEO: il nome del video nel bucket Cloud Storage che stai transcodificando, ad esempio
my-vid.mp4
. Questo campo dovrebbe tenere conto di eventuali cartelle create nel bucket (ad esempio,input/my-vid.mp4
). - STORAGE_INPUT_OVERLAY: 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 esempio,input/my-overlay.png
). - LOCATION: la località in cui verrà eseguito il job. Utilizza una località dall'elenco seguente.
Mostra località
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 gli output video codificati.
{ "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:
gcloud transcoder jobs create --location=LOCATION --file="request.json"
Dovresti vedere una risposta simile alla seguente:{ "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 di C# disponibili nella guida rapida dell'API Transcoder sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API C# per l'API Transcoder.
Per eseguire l'autenticazione all'API Transcoder, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Go
Prima di provare questo esempio, segui le istruzioni di configurazione di Go disponibili nella guida rapida dell'API Transcoder sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API Go per l'API Transcoder.
Per eseguire l'autenticazione all'API Transcoder, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java disponibili nella guida rapida dell'API Transcoder sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API Java per l'API Transcoder.
Per eseguire l'autenticazione all'API Transcoder, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js disponibili nella guida rapida dell'API Transcoder sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API Node.js per l'API Transcoder.
Per eseguire l'autenticazione all'API Transcoder, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
PHP
Prima di provare questo esempio, segui le istruzioni di configurazione di PHP disponibili nella guida rapida dell'API Transcoder sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API PHP per l'API Transcoder.
Per eseguire l'autenticazione all'API Transcoder, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python disponibili nella guida rapida dell'API Transcoder sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API Python per l'API Transcoder.
Per eseguire l'autenticazione all'API Transcoder, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Ruby
Prima di provare questo esempio, segui le istruzioni di configurazione di Ruby disponibili nella guida rapida dell'API Transcoder sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API Ruby per l'API Transcoder.
Per eseguire l'autenticazione all'API Transcoder, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Nel video risultante, l'overlay animato presenta le seguenti caratteristiche:
- La dissolvenza inizia in corrispondenza del punto dei 5 secondi nel video di output. Il valore alfa dell'overlay inizia da 0 e termina a 1,0. L'angolo in alto a sinistra dell'overlay è visualizzato al centro del video di output. L'overlay viene visualizzato alla risoluzione originale dell'immagine overlay.
- Dopo la dissolvenza, l'overlay viene visualizzato per 2 secondi.
- La dissolvenza inizia in corrispondenza dei 12 secondi del video di output. Il valore alpha dell'overlay inizia da 1,0 e termina a 0.
- L'animazione scompare dopo 15 secondi del video.
Guarda il video di output di esempio per questa configurazione. Questo video utilizza un'immagine in overlay di esempio.