Questa pagina spiega come combinare più video di input in un unico video di output. Puoi anche tagliare le sequenze temporali dei video di input.
Per ogni video di input, aggiungi un
Input oggetto all'
inputs array.
Ogni Input oggetto
definisce la chiave e l'URI per il video di input associato. Puoi aggiungere un oggetto facoltativo
PreprocessingConfig
a un Input per
ritagliare, aggiungere spazio o eseguire altre operazioni di pre-elaborazione
sul video di input. L'inputs
array non è ordinato; puoi aggiungere video di input in qualsiasi ordine.
Per aggiungere un video di input alla sequenza temporale del video di output, aggiungi un
EditAtom oggetto all'
array editList. L'
editList
array è ordinato. Il primo input designato in questo array verrà utilizzato per primo nel video di output, il secondo input verrà utilizzato successivamente e così via. Identifichi un video di input in base alla sua chiave.
Puoi anche designare un startTimeOffset e un endTimeOffset per tagliare il video di 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 video di output.
"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 a un modello di job o includerla in una configurazione di job ad hoc:
REST
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
PROJECT_ID: il tuo Google Cloud ID progetto elencato nelle impostazioni IAM.LOCATION: la località in cui verrà eseguito il job. Utilizza una delle regioni supportate.Mostra localitàus-central1us-west1us-west2us-east1us-east4southamerica-east1northamerica-northeast1asia-east1asia-northeast1asia-northeast3asia-south1asia-southeast1australia-southeast1europe-west1europe-west2europe-west4me-west1me-central1me-central2
STORAGE_BUCKET_NAME: il nome del bucket Cloud Storage che hai creato.STORAGE_INPUT_VIDEO1: Il nome di un 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). Questo video verrà utilizzato per primo nella sequenza temporale del video di output.START_TIME_OFFSET1: L'ora di inizio, in secondi frazionari (ad esempio,0.0), relativa alla sequenza temporale del primo video di input. Utilizza questo campo per tagliare i contenuti dall' inizio del video.END_TIME_OFFSET1: l'ora di fine, in secondi frazionari (ad esempio,8.1), relativa alla sequenza temporale del primo video di input. Utilizza questo campo per tagliare i contenuti dalla fine del video.STORAGE_INPUT_VIDEO2: Il nome di un 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). Questo video verrà utilizzato per secondo nella sequenza temporale del video di output.START_TIME_OFFSET2: L'ora di inizio, in secondi frazionari (ad esempio,3.5), relativa alla sequenza temporale del secondo video di input. Utilizza questo campo per tagliare i contenuti dall'inizio del secondo video.END_TIME_OFFSET2: l'ora di fine, in secondi frazionari (ad esempio,15), relativa alla sequenza temporale del secondo video di input. Utilizza questo campo per tagliare i contenuti dalla fine del secondo video.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.jsonche definisca i campi del job. Apporta le seguenti sostituzioni per ilgcloudcomando:- LOCATION: la località in cui verrà eseguito il
job. Utilizza una delle regioni supportate.
Mostra località
us-central1us-west1us-west2us-east1us-east4southamerica-east1northamerica-northeast1asia-east1asia-northeast1asia-northeast3asia-south1asia-southeast1australia-southeast1europe-west1europe-west2europe-west4me-west1me-central1me-central2
- STORAGE_BUCKET_NAME: il nome del bucket Cloud Storage che hai creato.
- STORAGE_INPUT_VIDEO1:
il nome di un video nel bucket Cloud Storage che stai
transcodificando, ad esempio
my-vid.mp4. Questo campo deve tenere conto di eventuali cartelle create nel bucket (ad esempio,input/my-vid.mp4). Questo video verrà utilizzato per primo nella sequenza temporale del video di output. - START_TIME_OFFSET1: L'
ora di inizio, in secondi frazionari (ad esempio,
0.0), relativa alla sequenza temporale del primo video di input. Utilizza questo campo per tagliare i contenuti dall' inizio del video. - END_TIME_OFFSET1: l'ora di fine, in secondi frazionari (ad esempio,
8.1), relativa alla sequenza temporale del primo video di input. Utilizza questo campo per tagliare i contenuti dalla fine del video. - STORAGE_INPUT_VIDEO2:
il nome di un video nel bucket Cloud Storage che stai
transcodificando, ad esempio
my-vid.mp4. Questo campo deve tenere conto di eventuali cartelle create nel bucket (ad esempio,input/my-vid.mp4). Questo video verrà utilizzato per secondo nella sequenza temporale del video di output. - START_TIME_OFFSET2: L'ora di inizio, in secondi frazionari (ad esempio,
3.5), relativa alla sequenza temporale del secondo video di input. Utilizza questo campo per tagliare i contenuti dall'inizio del secondo video. - END_TIME_OFFSET2: l'ora di fine, in secondi frazionari (ad esempio,
15), relativa alla sequenza temporale del secondo video di input. Utilizza questo campo per tagliare i contenuti dalla fine del secondo video. - STORAGE_OUTPUT_FOLDER: il nome della cartella Cloud Storage in cui vuoi salvare gli output video codificati.
{ "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 località in cui verrà eseguito il
job. Utilizza una delle regioni supportate.
- Esegui il comando seguente:
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 dell'API Transcoder per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API TranscoderC# API.
Per eseguire l'autenticazione nell'API Transcoder, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta 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 dell'API Transcoder per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Transcoder API Go API.
Per eseguire l'autenticazione nell'API Transcoder, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione Java nella guida rapida dell'API Transcoder per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Transcoder API Java API.
Per eseguire l'autenticazione nell'API Transcoder, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione Node.js nella guida rapida dell'API Transcoder per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Transcoder Node.js API.
Per eseguire l'autenticazione nell'API Transcoder, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
PHP
Prima di provare questo esempio, segui le ist0/}ruzioni di configurazione nella guida rapida dell'API Transcoder per l'utilizzo delle librerie client.PHP Per saperne di più, consulta la documentazione di riferimento dell'API Transcoder API PHP API .
Per eseguire l'autenticazione nell'API Transcoder, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione Python nella guida rapida dell'API Transcoder per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Transcoder Python API.
Per eseguire l'autenticazione nell'API Transcoder, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Ruby
Prima di provare questo esempio, segui le ist0/}ruzioni di configurazione nella guida rapida dell'API Transcoder per l'utilizzo delle librerie client.Ruby Per saperne di più, consulta la documentazione di riferimento dell'API Transcoder API Ruby.
Per eseguire l'autenticazione nell'API Transcoder, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta 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 sullo schermo di casa
- Mostrare un breve testo pubblicitario per il prodotto
Ad esempio, puoi concatenare questi due video in modo che il video di output mostri le parti uno e due del primo video, quindi le parti due e tre del secondo video. Puoi eseguire questa concatenazione utilizzando i seguenti offset temporali:
- ForBiggerEscapes.mp4
startTimeOffset:0sendTimeOffset:8.1s
- ForBiggerJoyrides.mp4
startTimeOffset:3.5sendTimeOffset:15s
Utilizza il codice precedente insieme a questi due video e ai relativi offset temporali per visualizzare un video di risultati ricco di azione.