Questa pagina spiega come generare un foglio sprite contenente i fotogrammi di un video che codifichi. Questi fotogrammi di dimensioni ridotte, noti anche come miniature, sono
utili per organizzare e visualizzare l'anteprima dei contenuti. Per generare lo sprite sheet, utilizza
l'array
spriteSheets
nel modello JobConfig
.
Hai due opzioni per generare lo sprite sheet:
- Generare un numero prestabilito di miniature distribuite uniformemente sulla sequenza temporale del video di input.
- Genera un'immagine in miniatura periodicamente, ovvero ogni n secondi, nella sequenza temporale del video di input.
Generare un numero fisso di immagini in miniatura
La seguente configurazione genera una spritesheet 10x10 di immagini grandi e una spritesheet 10x10 di immagini piccole, ciascuna con 100 miniature. Tieni presente che gli sprite sheet richiedono almeno un VideoStream
nella configurazione del job.
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
: il tuo ID 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
me-west1
me-central1
me-central2
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 tutte le cartelle che hai creato nel bucket (ad esempioinput/my-vid.mp4
).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. Esegui 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 che stai transcodificando, ad esempio
my-vid.mp4
. Questo campo deve tenere conto di tutte le cartelle che hai creato nel bucket (ad esempio,input/my-vid.mp4
). - LOCATION: la località in cui
verrà eseguito il job. Utilizza una posizione 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
me-west1
me-central1
me-central2
- 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/" }, "spriteSheets": [ { "filePrefix": "small-sprite-sheet", "spriteHeightPixels": 32, "spriteWidthPixels": 64, "columnCount": 10, "rowCount": 10, "totalCount": 100 }, { "filePrefix": "large-sprite-sheet", "spriteHeightPixels": 72, "spriteWidthPixels": 128, "columnCount": 10, "rowCount": 10, "totalCount": 100 } ] } }
- 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 di C# nella guida rapida all'API Transcoder per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Transcoder per C#.
Per autenticarti all'API Transcoder, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Go
Prima di provare questo esempio, segui le istruzioni di configurazione di Go nella guida rapida all'API Transcoder per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Transcoder per Go.
Per autenticarti all'API Transcoder, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella guida rapida all'API Transcoder per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Transcoder per Java.
Per autenticarti all'API Transcoder, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js nella guida rapida all'API Transcoder per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Transcoder per Node.js.
Per autenticarti all'API Transcoder, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
PHP
Prima di provare questo esempio, segui le istruzioni di configurazione di PHP nella guida rapida all'API Transcoder per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Transcoder per PHP.
Per autenticarti all'API Transcoder, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida all'API Transcoder per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Transcoder per Python.
Per autenticarti all'API Transcoder, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Ruby
Prima di provare questo esempio, segui le istruzioni di configurazione di Ruby nella guida rapida all'API Transcoder per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Transcoder per Ruby.
Per autenticarti all'API Transcoder, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Utilizza questa configurazione nel video di esempio per generare i seguenti fogli sprite:
Figura 1. Foglio sprite di immagini piccole (100 miniature)
Figura 2. Sprite sheet di immagini di grandi dimensioni (100 miniature)
Generare periodicamente un'immagine in miniatura
La seguente configurazione genera uno sprite sheet di immagini piccole
e uno sprite sheet di immagini grandi. Ogni spritesheet contiene
le miniature generate ogni 7 secondi dal video di input. Tieni presente che gli sprite sheet richiedono almeno un VideoStream
nella configurazione del job.
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
: il tuo ID 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
me-west1
me-central1
me-central2
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 tutte le cartelle che hai creato nel bucket (ad esempioinput/my-vid.mp4
).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. Esegui 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 che stai transcodificando, ad esempio
my-vid.mp4
. Questo campo deve tenere conto di tutte le cartelle che hai creato nel bucket (ad esempio,input/my-vid.mp4
). - LOCATION: la località in cui
verrà eseguito il job. Utilizza una posizione 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
me-west1
me-central1
me-central2
- 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/" }, "spriteSheets": [ { "filePrefix": "small-sprite-sheet", "spriteHeightPixels": 32, "spriteWidthPixels": 64, "interval": "7s" }, { "filePrefix": "large-sprite-sheet", "spriteHeightPixels": 72, "spriteWidthPixels": 128, "interval": "7s" } ] } }
- 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 di C# nella guida rapida all'API Transcoder per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Transcoder per C#.
Per autenticarti all'API Transcoder, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Go
Prima di provare questo esempio, segui le istruzioni di configurazione di Go nella guida rapida all'API Transcoder per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Transcoder per Go.
Per autenticarti all'API Transcoder, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella guida rapida all'API Transcoder per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Transcoder per Java.
Per autenticarti all'API Transcoder, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js nella guida rapida all'API Transcoder per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Transcoder per Node.js.
Per autenticarti all'API Transcoder, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
PHP
Prima di provare questo esempio, segui le istruzioni di configurazione di PHP nella guida rapida all'API Transcoder per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Transcoder per PHP.
Per autenticarti all'API Transcoder, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida all'API Transcoder per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Transcoder per Python.
Per autenticarti all'API Transcoder, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Ruby
Prima di provare questo esempio, segui le istruzioni di configurazione di Ruby nella guida rapida all'API Transcoder per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Transcoder per Ruby.
Per autenticarti all'API Transcoder, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Utilizza questa configurazione nel video di esempio per generare i seguenti sprite sheet:
Figura 3. Foglio sprite di immagini piccole (1 miniatura ogni 7 secondi)
Figura 4. Sprite sheet di immagini di grandi dimensioni (una miniatura ogni 7 secondi)
Vengono generate otto miniature dal video di esempio, che dura 60 secondi.