Auf dieser Seite wird beschrieben, wie Sie die Ausgabe des Livestreams über das SRT-Protokoll (Secure Reliable Transport) oder das RTMP-Protokoll (Real-Time Messaging Protocol) an Remote-Endpunkte verteilen. Sowohl SRT als auch RTMP werden im Push-Modus verwendet, um den Stream an die Endpunkte zu senden. Die unterstützten Containerformate sind MPEG-TS für SRT und FLV für RTMP.
Hinweise
Auf dieser Seite wird davon ausgegangen, dass Sie die Schritte im Abschnitt Vorbereitung der Kurzanleitung für einen HLS-Livestream ausgeführt haben.
Erstellen Sie je nach ausgewähltem Verteilungsprotokoll einen SRT- oder RTMP-Endpunkt beim Anbieter, bei dem Sie die Ausgabe im Push-Modus empfangen möchten. Das Format des Endpunkt-URI variiert je nach Protokoll:
- Für SRT:
srt://SRT_SERVER_IP:SRT_SERVER_PORT?streamid=SRT_SERVER_STREAM_ID
- Für RTMP:
rtmp://RTMP_SERVER_IP:RTMP_SERVER_PORT/RTMP_APP_NAME/RTMP_STREAM_KEY
oder nurrtmp://RTMP_SERVER_IP:RTMP_SERVER_PORT/RTMP_APP_NAME
SRT_SERVER_IP und RTMP_SERVER_IP können entweder eine IP-Adresse oder ein Domainname sein.
Eingabeendpunkt erstellen
Verwenden Sie zum Erstellen des Eingabeendpunkts die Methode projects.locations.inputs.create
.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
PROJECT_NUMBER
: Ihre Google Cloud Projektnummer. Sie finden sie auf der Seite IAM-Einstellungen im Feld Projektnummer.LOCATION
: Der Speicherort, an dem der Eingabeendpunkt erstellt werden soll. Verwenden Sie eine der unterstützten Regionen.Standorte anzeigenus-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-south1
asia-northeast1
asia-southeast1
australia-southeast1
europe-north1
europe-west1
europe-west2
europe-west3
europe-west4
INPUT_ID
: Eine benutzerdefinierte ID für den neuen Eingabeendpunkt, der erstellt werden soll (an den Sie Ihren Eingabestream senden). Dieser Wert muss 1–63 Zeichen lang sein, mit[a-z0-9]
beginnen und enden und darf zwischen den Zeichen Bindestriche (-) enthalten. Beispiel:my-input
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.video.livestream.v1.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/inputs/INPUT_ID", "verb": "create", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
Kopieren Sie den zurückgegebenen OPERATION_ID zur Verwendung im nächsten Abschnitt.
Ergebnis prüfen
Verwenden Sie die Methode projects.locations.operations.get
, um zu prüfen, ob der Eingabeendpunkt erstellt wurde. Wenn die Antwort "done: false"
enthält, wiederholen Sie den Befehl, bis die Antwort "done: true"
enthält. Das Erstellen des ersten Eingabeendpunkts in einer Region kann bis zu 10 Minuten dauern.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
PROJECT_NUMBER
: Ihre Google Cloud Projektnummer. Sie finden sie auf der Seite IAM-Einstellungen im Feld Projektnummer.LOCATION
: Der Standort Ihres Eingabeendpunkts. Verwenden Sie eine der unterstützten Regionen.Standorte anzeigenus-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-south1
asia-northeast1
asia-southeast1
australia-southeast1
europe-north1
europe-west1
europe-west2
europe-west3
europe-west4
OPERATION_ID
: die Kennung für den Vorgang
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.video.livestream.v1.OperationMetadata", "createTime": CREATE_TIME, "endTime": END_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/inputs/INPUT_ID", "verb": "create", "requestedCancellation": false, "apiVersion": "v1" }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.video.livestream.v1.Input", "name": "projects/PROJECT_NUMBER/locations/LOCATION/inputs/INPUT_ID", "createTime": CREATE_TIME, "updateTime": UPDATE_TIME, "type": "RTMP_PUSH", "uri": INPUT_STREAM_URI, # For example, "rtmp://1.2.3.4/live/b8ebdd94-c8d9-4d88-a16e-b963c43a953b", "tier": "HD" } }
Suchen Sie das Feld uri
und kopieren Sie den zurückgegebenen INPUT_STREAM_URI zur späteren Verwendung im Abschnitt Eingabestream senden.
Kanal erstellen
Verwenden Sie zum Erstellen des Kanals die Methode projects.locations.channels.create
.
Beachten Sie bei der Channelkonfiguration Folgendes:
- Das Array
distributionStreams
enthält die Multiplexing-Einstellungen von Streams für Verteilungen. Jedes
DistributionStream
-Objekt muss die Felderkey
,container
undelementaryStreams
enthalten.{ "distributionStreams": [ { "key": "ds1", "container": "ts", // to be used with an SRT distribution "elementaryStreams": [ "es_video_720", "es_audio" ] }, { "key": "ds2", "container": "flv", // to be used with an RTMP distribution "elementaryStreams": [ "es_video_640", "es_audio" ] } ] }
Das Array
distributions
listet die Verteilungskonfigurationen auf, einschließlich der Remote-Endpunkte.Legen Sie das Feld
distributionStream
im ObjektDistribution
auf diekey
einesDistributionStream
-Objekts fest.Legen Sie für die SRT-Verteilung die
uri
imSrtPushOutputEndpoint
-Objekt auf einen von Ihnen erstellten SRT-Endpunkt fest. Legen Sie für die RTMP-Verteilung dieuri
imRtmpPushOutputEndpoint
-Objekt auf einen von Ihnen erstellten RTMP-Endpunkt fest.{ "distributions": [ { "key": "pd1", "distributionStream": "ds1", // defined in a distributionStreams[] object with an MPEG-TS container "srtPush": { "uri": "srt://SRT_SERVER_IP:SRT_SERVER_PORT?streamid=SRT_SERVER_STREAM_ID" } }, { "key": "pd2", "distributionStream": "ds2", // defined in a distributionStreams[] object with an FLV container "rtmpPush": { "uri": "rtmp://RTMP_SERVER_IP:RTMP_SERVER_PORT/RTMP_APP_NAME/", "streamKey": "RTMP_STREAM_KEY" } } ] }
Informationen zum Verteilen von KI-generierten Untertiteln und übersetzten Untertiteln finden Sie im Leitfaden Automatische Untertitel und Übersetzungen konfigurieren.
In den folgenden Beispielen werden nur ein DistributionStream
-Objekt und ein Distribution
-Objekt verwendet.
REST
SRT
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
PROJECT_NUMBER
: Ihre Google Cloud Projektnummer. Sie finden sie auf der Seite IAM-Einstellungen im Feld Projektnummer.LOCATION
: der Ort, an dem der Channel erstellt werden soll. Verwenden Sie eine der unterstützten Regionen.Standorte anzeigenus-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-south1
asia-northeast1
asia-southeast1
australia-southeast1
europe-north1
europe-west1
europe-west2
europe-west3
europe-west4
CHANNEL_ID
: Eine benutzerdefinierte Kennung für den zu erstellenden Channel. Dieser Wert muss 1–63 Zeichen lang sein, mit[a-z0-9]
beginnen und enden und darf zwischen den Zeichen Bindestriche (-) enthalten.INPUT_ID
: die benutzerdefinierte Kennung für den EingabeendpunktBUCKET_NAME
: Der Name des Cloud Storage-Buckets, den Sie zum Speichern des Livestream-Manifests und der Segmentdateien erstellt haben.SRT_SERVER_IP
: die IP-Adresse oder der Domainname des Remote-EndpunktsSRT_SERVER_PORT
: die Portnummer des Remote-EndpunktsSRT_SERVER_STREAM_ID
: die Stream-ID des Remote-Endpunkts
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.video.livestream.v1.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID", "verb": "create", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
RTMP
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
PROJECT_NUMBER
: Ihre Google Cloud Projektnummer. Sie finden sie auf der Seite IAM-Einstellungen im Feld Projektnummer.LOCATION
: der Ort, an dem der Channel erstellt werden soll. Verwenden Sie eine der unterstützten Regionen.Standorte anzeigenus-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-south1
asia-northeast1
asia-southeast1
australia-southeast1
europe-north1
europe-west1
europe-west2
europe-west3
europe-west4
CHANNEL_ID
: Eine benutzerdefinierte Kennung für den zu erstellenden Channel. Dieser Wert muss 1–63 Zeichen lang sein, mit[a-z0-9]
beginnen und enden und darf zwischen den Zeichen Bindestriche (-) enthalten.INPUT_ID
: die benutzerdefinierte Kennung für den EingabeendpunktBUCKET_NAME
: Der Name des Cloud Storage-Buckets, den Sie zum Speichern des Livestream-Manifests und der Segmentdateien erstellt haben.RTMP_SERVER_IP
: die IP-Adresse oder der Domainname des Remote-EndpunktsRTMP_SERVER_PORT
: die Portnummer des Remote-EndpunktsRTMP_APP_NAME
: das Pfadpräfix für den StreamnamenRTMP_STREAM_KEY
: der Stream-Schlüssel des Remote-Endpunkts
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.video.livestream.v1.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID", "verb": "create", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
Sie können das Ergebnis des Vorgangs anhand der neuen Vorgangs-ID abrufen.
Kanal abrufen
Nachdem der Channel erstellt wurde, können Sie den Channelstatus mit der Methode projects.locations.channels.get
abfragen.
REST
SRT
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
PROJECT_NUMBER
: Ihre Google Cloud Projektnummer. Sie finden sie auf der Seite IAM-Einstellungen im Feld Projektnummer.LOCATION
: Der Standort Ihres Channels. Verwenden Sie eine der unterstützten Regionen.Standorte anzeigenus-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-south1
asia-northeast1
asia-southeast1
australia-southeast1
europe-north1
europe-west1
europe-west2
europe-west3
europe-west4
CHANNEL_ID
: eine benutzerdefinierte Kennung für den Channel
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID", "createTime": CREATE_TIME, "updateTime": UPDATE_TIME, "inputAttachments": [ { "key": "INPUT_ID", "input": "projects/PROJECT_NUMBER/locations/LOCATION/inputs/INPUT_ID" } ], "activeInput": "INPUT_ID", "output": { "uri": "gs://BUCKET_NAME" }, "elementaryStreams": [ { "videoStream": { "h264": { "widthPixels": 1280, "heightPixels": 720, "frameRate": 30, "bitrateBps": 3000000, "gopDuration": "2s", "vbvSizeBits": 3000000, "vbvFullnessBits": 2700000, "entropyCoder": "cabac", "profile": "high" } }, "key": "es_video" }, { "audioStream": { "codec": "aac", "bitrateBps": 160000, "channelCount": 2, "sampleRateHertz": 48000 }, "key": "es_audio" } ], "muxStreams": [ { "key": "mux_video_ts", "container": "ts", "elementaryStreams": [ "es_video", "es_audio" ], "segmentSettings": { "segmentDuration": "2s" } } ], "manifests": [ { "fileName": "main.m3u8", "type": "HLS", "muxStreams": [ "mux_video_ts" ], "maxSegmentCount": 5, "segmentKeepDuration": "60s", "key": "manifest_hls" } ], "streamingState": "STOPPED", "distributionStreams": [ { "key": "ds1", "container": "ts", "elementaryStreams": [ "es_video", "es_audio" ] } ], "distributions": [ { "key": "pd1", "distributionStream": "ds1", "state": "NOT_READY", "srtPush": { "uri": "srt://SRT_SERVER_IP:SRT_SERVER_PORT?streamid=SRT_SERVER_STREAM_ID" } } ] }
RTMP
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
PROJECT_NUMBER
: Ihre Google Cloud Projektnummer. Sie finden sie auf der Seite IAM-Einstellungen im Feld Projektnummer.LOCATION
: Der Standort Ihres Channels. Verwenden Sie eine der unterstützten Regionen.Standorte anzeigenus-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-south1
asia-northeast1
asia-southeast1
australia-southeast1
europe-north1
europe-west1
europe-west2
europe-west3
europe-west4
CHANNEL_ID
: eine benutzerdefinierte Kennung für den Channel
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID", "createTime": CREATE_TIME, "updateTime": UPDATE_TIME, "inputAttachments": [ { "key": "INPUT_ID", "input": "projects/PROJECT_NUMBER/locations/LOCATION/inputs/INPUT_ID" } ], "activeInput": "INPUT_ID", "output": { "uri": "gs://BUCKET_NAME" }, "elementaryStreams": [ { "videoStream": { "h264": { "widthPixels": 1280, "heightPixels": 720, "frameRate": 30, "bitrateBps": 3000000, "gopDuration": "2s", "vbvSizeBits": 3000000, "vbvFullnessBits": 2700000, "entropyCoder": "cabac", "profile": "high" } }, "key": "es_video" }, { "audioStream": { "codec": "aac", "bitrateBps": 160000, "channelCount": 2, "sampleRateHertz": 48000 }, "key": "es_audio" } ], "muxStreams": [ { "key": "mux_video_ts", "container": "ts", "elementaryStreams": [ "es_video", "es_audio" ], "segmentSettings": { "segmentDuration": "2s" } } ], "manifests": [ { "fileName": "main.m3u8", "type": "HLS", "muxStreams": [ "mux_video_ts" ], "maxSegmentCount": 5, "segmentKeepDuration": "60s", "key": "manifest_hls" } ], "streamingState": "STOPPED", "distributionStreams": [ { "key": "ds1", "container": "flv", "elementaryStreams": [ "es_video", "es_audio" ] } ], "distributions": [ { "key": "pd1", "distributionStream": "ds1", "state": "NOT_READY", "rtmpPush": { "uri": "rtmp://RTMP_SERVER_IP:RTMP_SERVER_PORT/RTMP_APP_NAME", "streamKey": "RTMP_STREAM_KEY" } } ] }
Die vollständige Antwort enthält die folgenden Felder:
{
...
"streamingState": "STOPPED",
"distributions": [
{
...
"state": "NOT_READY"
...
}
]
...
}
Diese Antwort gibt den Streamingstatus des Kanals und die Kanalverteilungen an.
Wenn sich die Verteilung im NOT_READY
-Status befindet, kann sie nicht gestartet werden. Du musst warten, bis sich der Status in READY
geändert hat, bevor du deinen Stream verteilen kannst.
Das Erstellen des ersten Vertriebsstroms kann bis zu 10 Minuten dauern. Der Status der Verteilung ist unabhängig vom Channel-Status. Sie können den Channel starten und warten, bis die Verteilung READY
ist, und dann die Verteilung starten.
Sie können den Kanal jetzt starten.
Kanal starten
Verwenden Sie die Methode projects.locations.channels.start
, um den Channel zu starten. Ein Channel muss gestartet werden, bevor er Eingabestreams empfangen oder einen Ausgabestream generieren kann.
Das Starten des ersten Kanals in einer Region dauert etwa 10 Minuten.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
PROJECT_NUMBER
: Ihre Google Cloud Projektnummer. Sie finden sie auf der Seite IAM-Einstellungen im Feld Projektnummer.LOCATION
: Der Standort Ihres Channels. Verwenden Sie eine der unterstützten Regionen.Standorte anzeigenus-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-south1
asia-northeast1
asia-southeast1
australia-southeast1
europe-north1
europe-west1
europe-west2
europe-west3
europe-west4
CHANNEL_ID
: eine benutzerdefinierte Kennung für den Channel
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.video.livestream.v1.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID", "verb": "start", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
Um festzustellen, ob der Channel gestartet wurde, rufen Sie die Channelinformationen ab, wie zuvor beschrieben. Die Antwort sollte Folgendes enthalten:
{
...
"streamingState": "AWAITING_INPUT"
...
}
Eingabestream senden
Öffnen Sie ein neues Terminalfenster. Führen Sie den folgenden Befehl aus und verwenden Sie dabei INPUT_STREAM_URI aus dem Abschnitt Ergebnis prüfen:
ffmpeg -re -f lavfi -i "testsrc=size=1280x720 [out0]; sine=frequency=500 [out1]" \
-acodec aac -vcodec h264 -f flv INPUT_STREAM_URI
Der Kanal streamt jetzt, aber die Veröffentlichungen sind weiterhin angehalten.
Verteilungen starten
Die Verteilungen müssen den Status READY
haben, damit sie gestartet werden können. Verwenden Sie die Methode projects.locations.channels.startdistribution
, um die Ausgabe des Livestreams an alle Remote-Endpunkte zu verteilen.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
PROJECT_NUMBER
: Ihre Google Cloud Projektnummer. Sie finden sie auf der Seite IAM-Einstellungen im Feld Projektnummer.LOCATION
: Der Standort Ihres Channels. Verwenden Sie eine der unterstützten Regionen.Standorte anzeigenus-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-south1
asia-northeast1
asia-southeast1
australia-southeast1
europe-north1
europe-west1
europe-west2
europe-west3
europe-west4
CHANNEL_ID
: eine benutzerdefinierte Kennung für den Channel
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.video.livestream.v1.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID", "verb": "startdistribution", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
Sie können das Ergebnis des Vorgangs anhand der neuen Vorgangs-ID abrufen. Nach dem Start einer Verteilung kann sie sich im Status AWAITING_INPUT
befinden, wenn der Eingabestream nicht gestartet wurde, oder im Status DISTRIBUTING
, wenn der Eingabestream an die angegebenen Endpunkte verteilt wird.
(Optional) Verteilungen starten
Sie können eine Reihe von Verteilungen starten, anstatt alle auf einmal. Listen Sie die Verteilungen auf, die Sie hinzufügen möchten, indem Sie ihre Schlüssel der Array-Liste distributionKeys
hinzufügen.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
PROJECT_NUMBER
: Ihre Google Cloud Projektnummer. Sie finden sie auf der Seite IAM-Einstellungen im Feld Projektnummer.LOCATION
: Der Standort Ihres Channels. Verwenden Sie eine der unterstützten Regionen.Standorte anzeigenus-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-south1
asia-northeast1
asia-southeast1
australia-southeast1
europe-north1
europe-west1
europe-west2
europe-west3
europe-west4
CHANNEL_ID
: eine benutzerdefinierte Kennung für den ChannelDISTRIBUTION_KEYS
: Eine durch Kommas getrennte Liste von String-Schlüsseln (z. B."pd1"
)
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.video.livestream.v1.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID", "verb": "startdistribution", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
Sie können das Ergebnis des Vorgangs anhand der neuen Vorgangs-ID abrufen.
Prüfen, ob die Verteilungen ausgeführt werden
Um zu prüfen, ob die Verteilungen gestartet wurden, rufen Sie die Kanalinformationen ab, wie zuvor beschrieben. Die Antwort sollte Folgendes enthalten:
{
"distributions": [
{
...
"state": "DISTRIBUTING"
...
},
...
]
}
Prüfen Sie auf dem Remote-SRT- oder RTMP-Server, ob der von Ihnen erstellte Endpunkt Daten empfängt.
Verteilungen beenden
Wenn Sie die Verteilung des Livestream-Outputs an alle Remote-Endpunkte beenden möchten, verwenden Sie die Methode projects.locations.channels.stopdistribution
.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
PROJECT_NUMBER
: Ihre Google Cloud Projektnummer. Sie finden sie auf der Seite IAM-Einstellungen im Feld Projektnummer.LOCATION
: Der Standort Ihres Channels. Verwenden Sie eine der unterstützten Regionen.Standorte anzeigenus-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-south1
asia-northeast1
asia-southeast1
australia-southeast1
europe-north1
europe-west1
europe-west2
europe-west3
europe-west4
CHANNEL_ID
: eine benutzerdefinierte Kennung für den Channel
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.video.livestream.v1.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID", "verb": "stopdistribution", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
Sie können das Ergebnis des Vorgangs anhand der neuen Vorgangs-ID abrufen.
Optional: Eine Reihe von Verteilungen beenden
Sie können eine Reihe von Verteilungen anhalten, anstatt alle gleichzeitig. Führen Sie die Verteilungen auf, die Sie beenden möchten, indem Sie ihre Schlüssel der Array-Liste distributionKeys
hinzufügen.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
PROJECT_NUMBER
: Ihre Google Cloud Projektnummer. Sie finden sie auf der Seite IAM-Einstellungen im Feld Projektnummer.LOCATION
: Der Standort Ihres Channels. Verwenden Sie eine der unterstützten Regionen.Standorte anzeigenus-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-south1
asia-northeast1
asia-southeast1
australia-southeast1
europe-north1
europe-west1
europe-west2
europe-west3
europe-west4
CHANNEL_ID
: eine benutzerdefinierte Kennung für den ChannelDISTRIBUTION_KEYS
: Eine durch Kommas getrennte Liste von String-Schlüsseln (z. B."pd1"
)
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.video.livestream.v1.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID", "verb": "stopdistribution", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
Sie können das Ergebnis des Vorgangs anhand der neuen Vorgangs-ID abrufen.
Unterstützung für SRT-Verschlüsselung
Wenn Sie das SRT-Protokoll verwenden, um die Livestream-Ausgabe an den Remote-Endpunkt zu verteilen, schützt die Live Stream API Ihre Livestream-Inhalte mit AES-Verschlüsselung.
Passphrase erstellen und Remote-SRT-Server vorbereiten
Erstellen Sie zuerst eine SRT-Passphrase, die dem Remote-SRT-Server entspricht. Die Passphrase sollte in der Regel ein String mit 10 bis 79 Zeichen sein.
Achten Sie darauf, dass die Entschlüsselung funktioniert, indem Sie dieselbe Passphrase auf dem Remote-SRT-Server festlegen. Informationen dazu finden Sie im Nutzerhandbuch des Remote-SRT-Servers.
Passphrase in Secret Manager hinzufügen
Die Live Stream API akzeptiert oder verwaltet die Passphrase nicht direkt. Sie müssen die Passphrase über Google Secret Manager für die Live Stream API freigeben.
Sie müssen alle diese Schritte ausführen, bevor Sie den Channel konfigurieren:
- Erstellen Sie ein Secret mit Secret Manager.
- Konfigurieren Sie die IAM-Berechtigungen (Identity and Access Management) für Ihr Secret so, dass die Live Stream API auf den Secret-Inhalt zugreifen kann. Weisen Sie dazu dem Dienstkonto
service-PROJECT_NUMBER@gcp-sa-livestream.iam.gserviceaccount.com
die Rollesecretmanager.secretAccessor
zu. Das ist ähnlich wie beim Zugriff des Dienstkontos auf Ihre Cloud Storage-Buckets. - Suchen Sie den Ressourcennamen der Secret-Version, die Sie erstellt haben (z. B.
projects/PROJECT_NUMBER/secrets/SECRET_ID/versions/VERSION_ID
). Sie benötigen diesen Namen, um den Channel zu konfigurieren.
Kanal konfigurieren
Die Secret-Version der Passphrase wird innerhalb von SrtPushOutputEndpoint
angegeben:
{
"distributions": [
{
"key": "pd1",
"distributionStream": "ds1", // defined in a distributionStreams[] object with an MPEG-TS container
"srtPush": {
"uri": "srt://{SRT_SERVER_IP}:{SRT_SERVER_PORT}?streamid={SRT_SERVER_STREAM_ID}",
"passphrase_secret_version": "projects/PROJECT_NUMBER/secrets/key1/versions/1"
}
}
]
}
Bereinigen
Mit den folgenden Schritten vermeiden Sie, dass Ihrem Google Cloud -Konto die auf dieser Seite verwendeten Ressourcen in Rechnung gestellt werden:
Kanal beenden
Verwenden Sie die Methode projects.locations.channels.stop
, um den Channel zu stoppen. Sie müssen den Channel beenden, bevor Sie ihn löschen können.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
PROJECT_NUMBER
: Ihre Google Cloud Projektnummer. Sie finden sie auf der Seite IAM-Einstellungen im Feld Projektnummer.LOCATION
: Der Standort Ihres Channels. Verwenden Sie eine der unterstützten Regionen.Standorte anzeigenus-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-south1
asia-northeast1
asia-southeast1
australia-southeast1
europe-north1
europe-west1
europe-west2
europe-west3
europe-west4
CHANNEL_ID
: eine benutzerdefinierte Kennung für den Channel
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.video.livestream.v1.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID", "verb": "stop", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
Sie können das Ergebnis des Vorgangs anhand der neuen Vorgangs-ID abrufen.
Eingabestream beenden
Wenn du ffmpeg
zum Senden des Eingabestreams verwendet hast, wird die Verbindung automatisch getrennt, nachdem du den Kanal beendet hast.
Den Kanal löschen
Verwende die Methode projects.locations.channels.delete
, um den Channel zu löschen. Sie müssen den Kanal löschen, bevor Sie den vom Kanal verwendeten Eingabeendpunkt löschen können.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
PROJECT_NUMBER
: Ihre Google Cloud Projektnummer. Sie finden sie auf der Seite IAM-Einstellungen im Feld Projektnummer.LOCATION
: Der Standort Ihres Channels. Verwenden Sie eine der unterstützten Regionen.Standorte anzeigenus-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-south1
asia-northeast1
asia-southeast1
australia-southeast1
europe-north1
europe-west1
europe-west2
europe-west3
europe-west4
CHANNEL_ID
: eine benutzerdefinierte Kennung für den Channel
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.video.livestream.v1.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID", "verb": "delete", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
Sie können das Ergebnis des Vorgangs anhand der neuen Vorgangs-ID abrufen.
Eingabeendpunkt löschen
Verwenden Sie die Methode projects.locations.inputs.delete
, um den Eingabeendpunkt zu löschen.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
PROJECT_NUMBER
: Ihre Google Cloud Projektnummer. Sie finden sie auf der Seite IAM-Einstellungen im Feld Projektnummer.LOCATION
: Der Standort Ihres Eingabeendpunkts. Verwenden Sie eine der unterstützten Regionen.Standorte anzeigenus-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-south1
asia-northeast1
asia-southeast1
australia-southeast1
europe-north1
europe-west1
europe-west2
europe-west3
europe-west4
INPUT_ID
: die benutzerdefinierte Kennung für den Eingabeendpunkt
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.video.livestream.v1.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/inputs/INPUT_ID", "verb": "delete", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
Sie können das Ergebnis des Vorgangs anhand der neuen Vorgangs-ID abrufen.
Cloud Storage-Bucket löschen
Wechseln Sie in der Google Cloud Console zur Seite „Cloud Storage-Browser“.
Klicken Sie das Kästchen neben dem von Ihnen erstellten Bucket an.
Klicken Sie auf Löschen.
Klicken Sie im angezeigten Dialogfeld auf Löschen, um den Bucket und seinen Inhalt zu löschen.