Questa pagina spiega come combinare più video di input in un unico output video. Puoi anche tagliare le sequenze temporali dei video inseriti.
Per ogni video in ingresso, aggiungi
Input
all'oggetto
Array inputs
.
Ogni oggetto Input
definisce la chiave e l'URI del video di input associato. Puoi aggiungere un'etichetta facoltativa
PreprocessingConfig
in un oggetto Input
per
tagliare, copiare o eseguire altre pre-elaborazioni
sul video in ingresso. La inputs
array non in ordine; puoi aggiungere video di input in qualsiasi ordine.
Per aggiungere un video di input alla sequenza temporale del video di output, aggiungi un
EditAtom
si oppone a
editList
un array di dati. La
editList
viene ordinato. Il primo input designato in questo array sarà utilizzato per primo in
al video in uscita, verrà usato successivamente il secondo ingresso e così via. Devi identificare
input video in base alla sua chiave.
Puoi anche designare startTimeOffset
e endTimeOffset
per tagliare
video in input. Questi campi sono facoltativi. Se non specifichi questi campi,
viene utilizzato l'intero video di input.
La seguente configurazione concatena due video di input in un unico output video.
"inputs": [
{
"key": "input1",
"uri": "gs://STORAGE_BUCKET_NAME/STORAGE_INPUT_VIDEO1"
},
{
"key": "input2",
"uri": "gs://STORAGE_BUCKET_NAME/STORAGE_INPUT_VIDEO2"
}
],
"editList": [
{
"key": "atom1",
"inputs": [
"input1"
],
"startTimeOffset": "START_TIME_OFFSET1s",
"endTimeOffset": "END_TIME_OFFSET1s"
},
{
"key": "atom2",
"inputs": [
"input2"
],
"startTimeOffset": "START_TIME_OFFSET2s",
"endTimeOffset": "END_TIME_OFFSET2s"
}
],
Puoi aggiungere questa configurazione modello di lavoro o includerlo in un configurazione ad hoc dei job:
REST
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
PROJECT_ID
: il tuo ID progetto Google Cloud elencato in nelle impostazioni IAM.LOCATION
: la località in cui verrà eseguito il job. Utilizza le funzionalità di in 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_VIDEO1
: Il nome di un video nel tuo bucket Cloud Storage che sei transcodifica, ad esempiomy-vid.mp4
. Questo campo deve includere prendi in considerazione le cartelle che hai creato nel bucket (ad esempioinput/my-vid.mp4
). Questo video verrà utilizzato per primo nell'output sequenza temporale del video.START_TIME_OFFSET1
: il ora di inizio, in secondi frazionari (ad esempio,0.0
), relativo alla prima sequenza temporale del video di input. Utilizza questo campo per tagliare i contenuti dalla all'inizio del video.END_TIME_OFFSET1
: fine tempo, in secondi frazionari (ad esempio,8.1
), rispetto a la prima sequenza temporale del video di input. Utilizza questo campo per tagliare i contenuti dalla fine del video.STORAGE_INPUT_VIDEO2
: Il nome di un video nel tuo bucket Cloud Storage che sei transcodifica, ad esempiomy-vid.mp4
. Questo campo deve includere prendi in considerazione le cartelle che hai creato nel bucket (ad esempioinput/my-vid.mp4
). Questo video verrà utilizzato per secondo nell'output sequenza temporale del video.START_TIME_OFFSET2
: il ora di inizio, in secondi frazionari (ad esempio,3.5
), relativo alla seconda sequenza temporale del video di input. Utilizza questo campo per tagliare i contenuti dalla all'inizio del secondo video.END_TIME_OFFSET2
: fine di tempo, in secondi frazionari (ad esempio,15
), rispetto alla una seconda sequenza temporale del video di input. Utilizza questo campo per tagliare i contenuti dalla fine di nel secondo video.STORAGE_OUTPUT_FOLDER
: Il nome della cartella di Cloud Storage in cui vuoi salvare il video codificato come output.
Per inviare la richiesta, espandi una delle seguenti 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
in cui siano definiti i campi del job. Marca le seguenti sostituzioni pergcloud
:- LOCATION: la posizione in cui
verrà eseguito. 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_VIDEO1:
Il nome di un video nel tuo bucket Cloud Storage che sei
transcodifica, ad esempio
my-vid.mp4
. Questo campo deve includere prendi in considerazione le cartelle che hai creato nel bucket (ad esempioinput/my-vid.mp4
). Questo video verrà utilizzato per primo nell'output sequenza temporale del video. - START_TIME_OFFSET1: il
ora di inizio, in secondi frazionari (ad esempio,
0.0
), relativo alla prima sequenza temporale del video di input. Utilizza questo campo per tagliare i contenuti dalla all'inizio del video. - END_TIME_OFFSET1: fine
tempo, in secondi frazionari (ad esempio,
8.1
), rispetto a la prima sequenza temporale del video di input. Utilizza questo campo per tagliare i contenuti dalla fine del video. - STORAGE_INPUT_VIDEO2:
Il nome di un video nel tuo bucket Cloud Storage che sei
transcodifica, ad esempio
my-vid.mp4
. Questo campo deve includere prendi in considerazione le cartelle che hai creato nel bucket (ad esempioinput/my-vid.mp4
). Questo video verrà utilizzato per secondo nell'output sequenza temporale del video. - START_TIME_OFFSET2: il
ora di inizio, in secondi frazionari (ad esempio,
3.5
), relativo alla seconda sequenza temporale del video di input. Utilizza questo campo per tagliare i contenuti dalla all'inizio del secondo video. - END_TIME_OFFSET2: fine
di tempo, in secondi frazionari (ad esempio,
15
), rispetto alla una seconda sequenza temporale del video di input. Utilizza questo campo per tagliare i contenuti dalla fine di nel secondo video. - STORAGE_OUTPUT_FOLDER: Il nome della cartella di Cloud Storage in cui vuoi salvare il video codificato come output.
{ "config": { "inputs": [ { "key": "input1", "uri": "gs://STORAGE_BUCKET_NAME/STORAGE_INPUT_VIDEO1" }, { "key": "input2", "uri": "gs://STORAGE_BUCKET_NAME/STORAGE_INPUT_VIDEO2" } ], "editList": [ { "key": "atom1", "inputs": [ "input1" ], "startTimeOffset": "START_TIME_OFFSET1s", "endTimeOffset": "END_TIME_OFFSET1s" }, { "key": "atom2", "inputs": [ "input2" ], "startTimeOffset": "START_TIME_OFFSET2s", "endTimeOffset": "END_TIME_OFFSET2s" } ], "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/" } } }
- LOCATION: la posizione in cui
verrà eseguito. Utilizza una delle regioni supportate.
- 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 per la configurazione di C# nel Guida rapida dell'API Transcoder mediante l'utilizzo di librerie client. Per ulteriori informazioni, consulta API C# dell'API Transcoder documentazione di riferimento.
Per eseguire l'autenticazione nell'API Transcoder, configura 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 per la configurazione di Go nel Guida rapida dell'API Transcoder mediante l'utilizzo di librerie client. Per ulteriori informazioni, consulta API Go dell'API Transcoder documentazione di riferimento.
Per eseguire l'autenticazione nell'API Transcoder, configura 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 per la configurazione di Java nel Guida rapida dell'API Transcoder mediante l'utilizzo di librerie client. Per ulteriori informazioni, consulta API Java dell'API Transcoder documentazione di riferimento.
Per eseguire l'autenticazione nell'API Transcoder, configura 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 per la configurazione di Node.js nel Guida rapida dell'API Transcoder mediante l'utilizzo di librerie client. Per ulteriori informazioni, consulta API Node.js dell'API Transcoder documentazione di riferimento.
Per eseguire l'autenticazione nell'API Transcoder, configura 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 per la configurazione di PHP nel Guida rapida dell'API Transcoder mediante l'utilizzo di librerie client. Per ulteriori informazioni, consulta API PHP dell'API Transcoder documentazione di riferimento.
Per eseguire l'autenticazione nell'API Transcoder, configura 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 per la configurazione di Python nel Guida rapida dell'API Transcoder mediante l'utilizzo di librerie client. Per ulteriori informazioni, consulta API Python dell'API Transcoder documentazione di riferimento.
Per eseguire l'autenticazione nell'API Transcoder, configura 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 per la configurazione di Ruby nel Guida rapida dell'API Transcoder mediante l'utilizzo di librerie client. Per ulteriori informazioni, consulta API Ruby dell'API Transcoder documentazione di riferimento.
Per eseguire l'autenticazione nell'API Transcoder, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Esempio
Considera i seguenti video di esempio:
Entrambi i video sono simili in quanto contengono tre parti:
- Guardare un film o un gioco su un dispositivo mobile
- Guardare gli stessi contenuti su uno schermo di casa
- Mostra un breve testo pubblicitario relativo al prodotto
Ad esempio, puoi concatenare questi due video in modo che il video di output mostra le parti uno e due del primo video e poi le parti due e tre dal secondo video. Puoi eseguire questa concatenazione utilizzando seguenti offset temporali:
- ForBiggerEscapes.mp4
- .
startTimeOffset
:0s
endTimeOffset
:8.1s
- ForBiggerJoyrides.mp4
- .
startTimeOffset
:3.5s
endTimeOffset
:15s
Usa il codice precedente insieme a questi due video e ai relativi offset di tempo per vedere un video dei risultati ricco di azioni.