Auf dieser Seite wird erläutert, wie du mehrere Eingabevideos zu einer Ausgabe zusammenfassen kannst. Video. Du kannst auch die Zeitachsen der Eingabevideos zuschneiden.
Fügen Sie für jedes Eingabevideo ein
Input
-Objekt in der
inputs
-Array.
Jedes Input
-Objekt
definiert den Schlüssel und den URI für das zugehörige Eingabevideo. Sie können einen optionalen
PreprocessingConfig
einem Input
-Objekt zu,
zuschneiden, auffüllen oder andere Vorverarbeitung durchführen
für das Eingabevideo. Die inputs
Array ist nicht geordnet; kannst du Eingabevideos
in beliebiger Reihenfolge hinzufügen.
Um der Zeitachse des Ausgabevideos ein Eingabevideo hinzuzufügen, fügen Sie ein
Objekt EditAtom
für
editList
Array. Die
editList
geordnet ist. Die erste Eingabe in diesem Array wird zuerst in
das Ausgabevideo, die zweite Eingangsquelle wird als Nächstes verwendet usw. Sie identifizieren
mit ihrem Schlüssel eingeben.
Sie können auch startTimeOffset
und endTimeOffset
festlegen, um den
Eingabevideo. Diese Felder sind optional. Wenn Sie diese Felder nicht angeben,
das gesamte Eingabevideo verwendet wird.
Bei der folgenden Konfiguration werden zwei Eingabevideos zu einer einzigen Ausgabe verkettet 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"
}
],
Sie können diese Konfiguration einer Jobvorlage hinzufügen oder sie in eine Ad-hoc-Jobkonfiguration einbinden:
REST
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
PROJECT_ID
: Ihre Google Cloud-Projekt-ID, die unter IAM-Einstellungen aufgeführt ist.LOCATION
: Der Standort, an dem der Job ausgeführt werden soll. Verwenden Sie in einer der unterstützten RegionenStandorte anzeigenus-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
: Der Name des von Ihnen erstellten Cloud Storage-Bucket.STORAGE_INPUT_VIDEO1
: Der Name eines Videos in Ihrem Cloud Storage-Bucket, das Sie sind wie z. B.my-vid.mp4
. Dieses Feld sollte müssen alle Ordner berücksichtigt werden, die Sie im Bucket erstellt haben (z. B.input/my-vid.mp4
). Dieses Video wird zuerst in der Ausgabe verwendet Videozeitachse.START_TIME_OFFSET1
: Die Startzeit in Sekundenbruchteilen (z. B.0.0
), relativ zur ersten Video-Eingabevideozeitachse hinzu. Mit diesem Feld können Sie Inhalte aus der des Videos beginnen.END_TIME_OFFSET1
: Ende in Sekundenbruchteilen (z. B.8.1
), relativ zu die erste Zeitachse des Eingabevideos. Mit diesem Feld können Sie Inhalte am Ende kürzen des Videos.STORAGE_INPUT_VIDEO2
: Der Name eines Videos in Ihrem Cloud Storage-Bucket, das Sie sind wie z. B.my-vid.mp4
. Dieses Feld sollte müssen alle Ordner berücksichtigt werden, die Sie im Bucket erstellt haben (z. B.input/my-vid.mp4
). Dieses Video wird als zweites in der Ausgabe verwendet. Videozeitachse.START_TIME_OFFSET2
: Die Startzeit in Sekundenbruchteilen (z. B.3.5
), relativ zur zweiten Videozeitachse des Eingangsvideos. Mit diesem Feld können Sie Inhalte aus der des zweiten Videos beginnen.END_TIME_OFFSET2
: Ende in Sekundenbruchteilen (z. B.15
) relativ zum Zeitleiste für die zweite Videoeingabe. Mit diesem Feld können Sie Inhalte am Ende im zweiten Video.STORAGE_OUTPUT_FOLDER
: Der Name des Cloud Storage-Ordners, in dem Sie das codierte Video speichern möchten Ausgaben.
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/jobs/JOB_ID", "config": { ... }, "state": "PENDING", "createTime": CREATE_TIME, "ttlAfterCompletionDays": 30 }
gcloud
- Erstellen Sie eine
request.json
-Datei, in der die Jobfelder definiert sind. Marke den folgenden Ersatz für dengcloud
Befehl:- LOCATION: Der Standort, an dem Ihr
ausgeführt wird. Verwenden Sie eine der unterstützten Regionen.
Standorte anzeigen
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: Der Name des von Ihnen erstellten Cloud Storage-Bucket.
- STORAGE_INPUT_VIDEO1:
Der Name eines Videos in Ihrem Cloud Storage-Bucket, das Sie sind
wie z. B.
my-vid.mp4
. Dieses Feld sollte müssen alle Ordner berücksichtigt werden, die Sie im Bucket erstellt haben (z. B.input/my-vid.mp4
). Dieses Video wird zuerst in der Ausgabe verwendet Videozeitachse. - START_TIME_OFFSET1: Die
Startzeit in Sekundenbruchteilen (z. B.
0.0
), relativ zur ersten Video-Eingabevideozeitachse hinzu. Mit diesem Feld können Sie Inhalte aus der des Videos beginnen. - END_TIME_OFFSET1: Ende
in Sekundenbruchteilen (z. B.
8.1
), relativ zu die erste Zeitachse des Eingabevideos. Mit diesem Feld können Sie Inhalte am Ende kürzen des Videos. - STORAGE_INPUT_VIDEO2:
Der Name eines Videos in Ihrem Cloud Storage-Bucket, das Sie sind
wie z. B.
my-vid.mp4
. Dieses Feld sollte müssen alle Ordner berücksichtigt werden, die Sie im Bucket erstellt haben (z. B.input/my-vid.mp4
). Dieses Video wird als zweites in der Ausgabe verwendet. Videozeitachse. - START_TIME_OFFSET2: Die
Startzeit in Sekundenbruchteilen (z. B.
3.5
), relativ zur zweiten Videozeitachse des Eingangsvideos. Mit diesem Feld können Sie Inhalte aus der des zweiten Videos beginnen. - END_TIME_OFFSET2: Ende
in Sekundenbruchteilen (z. B.
15
) relativ zum Zeitleiste für die zweite Videoeingabe. Mit diesem Feld können Sie Inhalte am Ende im zweiten Video. - STORAGE_OUTPUT_FOLDER: Der Name des Cloud Storage-Ordners, in dem Sie das codierte Video speichern möchten Ausgaben.
{ "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: Der Standort, an dem Ihr
ausgeführt wird. Verwenden Sie eine der unterstützten Regionen.
- Führen Sie den folgenden Befehl aus:
gcloud transcoder jobs create --location=LOCATION --file="request.json"
Die Antwort sieht ungefähr so aus:{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/jobs/JOB_ID", "config": { ... }, "state": "PENDING", "createTime": CREATE_TIME, "ttlAfterCompletionDays": 30 }
C#
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für C# in der Transcoder API-Schnellstart mit Clientbibliotheken. Weitere Informationen finden Sie in der Transcoder API C# API Referenzdokumentation.
Richten Sie Standardanmeldedaten für Anwendungen ein, um sich bei der Transcoder API zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Go
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für Go in der Transcoder API-Schnellstart mit Clientbibliotheken. Weitere Informationen finden Sie in der Transcoder API Go API Referenzdokumentation.
Richten Sie Standardanmeldedaten für Anwendungen ein, um sich bei der Transcoder API zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Java
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für Java in der Transcoder API-Schnellstart mit Clientbibliotheken. Weitere Informationen finden Sie in der Transcoder API Java API Referenzdokumentation.
Richten Sie Standardanmeldedaten für Anwendungen ein, um sich bei der Transcoder API zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Node.js
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für Node.js in der Transcoder API-Schnellstart mit Clientbibliotheken. Weitere Informationen finden Sie in der Transcoder API Node.js API Referenzdokumentation.
Richten Sie Standardanmeldedaten für Anwendungen ein, um sich bei der Transcoder API zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
PHP
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für PHP in der Transcoder API-Schnellstart mit Clientbibliotheken. Weitere Informationen finden Sie in der Transcoder API PHP API Referenzdokumentation.
Richten Sie Standardanmeldedaten für Anwendungen ein, um sich bei der Transcoder API zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Python
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für Python in der Transcoder API-Schnellstart mit Clientbibliotheken. Weitere Informationen finden Sie in der Transcoder API Python API Referenzdokumentation.
Richten Sie Standardanmeldedaten für Anwendungen ein, um sich bei der Transcoder API zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Ruby
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für Ruby in der Transcoder API-Schnellstart mit Clientbibliotheken. Weitere Informationen finden Sie in der Transcoder API Ruby API Referenzdokumentation.
Richten Sie Standardanmeldedaten für Anwendungen ein, um sich bei der Transcoder API zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Beispiel
Sehen Sie sich die folgenden Beispielvideos an:
Beide Videos sind sich insofern ähnlich, als sie aus drei Teilen bestehen:
- Filme oder Spiele auf einem Mobilgerät ansehen
- Inhalte auf einem großen Bildschirm ansehen
- Kurze Werbung für das Produkt anzeigen
Du kannst diese beiden Videos beispielsweise verketten, sodass das Das Ausgabevideo zeigt die ersten und zweiten Teile des ersten Videos und dann den zweiten Teil. und drei aus dem zweiten Video. Sie können diese Verkettung mithilfe der folgende Zeitverschiebungen:
- ForBiggerEscapes.mp4
<ph type="x-smartling-placeholder">
- </ph>
startTimeOffset
:0s
endTimeOffset
:8.1s
- ForBiggerJoyrides.mp4
<ph type="x-smartling-placeholder">
- </ph>
startTimeOffset
:3.5s
endTimeOffset
:15s
Verwenden Sie den vorherigen Code zusammen mit diesen beiden Videos und ihren Zeitversätzen, um zu sehen, ein actiongeladenes Ergebnisvideo