Esta página explica como configurar legendas geradas pela IA e legendas traduzidas (ou seja, traduções) para uma stream em direto.
As legendas e as traduções geradas pela IA são suportadas para streams em direto HLS e DASH.
Antes de começar
Esta página pressupõe que concluiu os passos na secção Antes de começar
do
Início rápido para uma stream em direto HLS ou do
Início rápido para uma stream em direto MPEG-DASH .
Localizações suportadas
Os códigos de idioma para legendas geradas pela IA são suportados por localização.
Mostrar localizações
Localização
Códigos de idiomas suportados
asia-northeast1
en-US
asia-south1
en-IN
en-GB
en-US
asia-southeast1
en-US
australia-southeast1
en-AU
europe-west1
da-DK
nl-NL
en-GB
en-US
fr-FR
de-DE
it-IT
es-ES
europe-west2
en-GB
europe-west3
da-DK
nl-NL
en-GB
en-US
fr-FR
de-DE
it-IT
es-ES
northamerica-northeast1
en-CA
fr-CA
us-central1
en-US
pt-BR
es-CO
es-MX
es-US
us-east1
en-US
pt-BR
es-CO
es-MX
es-US
us-west1
en-US
pt-BR
es-CO
es-MX
es-US
A funcionalidade de tradução gerada pela IA só é suportada no us-west1
e no europe-west1
.
Use us-west1
ou europe-west1
para todos os pedidos da API nesta página.
Para criar o ponto final de entrada, use o método
projects.locations.inputs.create
.
Antes de usar qualquer um dos dados do pedido,
faça as seguintes substituições:
PROJECT_NUMBER
: o número do seu Google Cloud projeto. Este encontra-se no campo Número do projeto na página Definições do IAM
LOCATION
: a localização na qual criar o ponto final de entrada; use uma das regiões suportadas
Mostrar localizações
us-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
: um identificador definido pelo utilizador para o novo ponto final de entrada a criar (para o qual envia a sua stream de entrada). Este valor tem de ter entre 1 e 63 carateres, começar e terminar com [a-z0-9]
e
pode conter travessões (-) entre carateres. Por exemplo, my-input
.
Corpo JSON do pedido:
Para enviar o seu pedido, expanda uma destas opções:
curl (Linux, macOS ou Cloud Shell)
Nota:
O comando seguinte pressupõe que tem sessão iniciada na CLI gcloud
com a sua conta de utilizador executando gcloud init
ou gcloud auth login
, ou usando o Cloud Shell , que inicia automaticamente sessão na CLI gcloud
.
Pode verificar a conta atualmente ativa executando o comando
gcloud auth list
.
Guarde o corpo do pedido num ficheiro denominado request.json
.
Execute o seguinte comando no terminal para criar ou substituir
este ficheiro no diretório atual:
cat > request.json << 'EOF'
{
"type": "RTMP_PUSH"
}
EOF
Em seguida, execute o seguinte comando para enviar o seu pedido REST:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://livestream.googleapis.com/v1/projects/PROJECT_NUMBER /locations/LOCATION /inputs?inputId=INPUT_ID "
PowerShell (Windows)
Nota:
O comando seguinte pressupõe que iniciou sessão na CLI do
Google Cloud com a sua conta de utilizador executando
gcloud init
ou
gcloud auth login
.gcloud
Pode verificar a conta atualmente ativa executando o comando
gcloud auth list
.
Guarde o corpo do pedido num ficheiro denominado request.json
.
Execute o seguinte comando no terminal para criar ou substituir
este ficheiro no diretório atual:
@'
{
"type": "RTMP_PUSH"
}
'@ | Out-File -FilePath request.json -Encoding utf8
Em seguida, execute o seguinte comando para enviar o seu pedido REST:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile request.json ` -Uri "https://livestream.googleapis.com/v1/projects/PROJECT_NUMBER /locations/LOCATION /inputs?inputId=INPUT_ID " | Select-Object -Expand Content
Deve receber uma resposta JSON semelhante à seguinte:
{
"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
}
Copie o OPERATION_ID devolvido para usar na secção seguinte.
Verifique o resultado
Use o método projects.locations.operations.get
para verificar se o ponto final de entrada foi criado. Se a resposta contiver "done: false"
, repita o comando até que a resposta contenha "done: true"
. A criação do primeiro ponto final de entrada numa região pode demorar até 10 minutos.
Antes de usar qualquer um dos dados do pedido,
faça as seguintes substituições:
PROJECT_NUMBER
: o número do seu Google Cloud projeto. Este encontra-se no campo Número do projeto na página Definições do IAM
LOCATION
: a localização onde o seu ponto final de entrada está localizado; use uma das regiões suportadas
Mostrar localizações
us-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
: o identificador da operação
Para enviar o seu pedido, expanda uma destas opções:
curl (Linux, macOS ou Cloud Shell)
Nota:
O comando seguinte pressupõe que tem sessão iniciada na CLI gcloud
com a sua conta de utilizador executando gcloud init
ou gcloud auth login
, ou usando o Cloud Shell , que inicia automaticamente sessão na CLI gcloud
.
Pode verificar a conta atualmente ativa executando o comando
gcloud auth list
.
Execute o seguinte comando:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://livestream.googleapis.com/v1/projects/PROJECT_NUMBER /locations/LOCATION /operations/OPERATION_ID "
PowerShell (Windows)
Nota:
O comando seguinte pressupõe que iniciou sessão na CLI do
Google Cloud com a sua conta de utilizador executando
gcloud init
ou
gcloud auth login
.gcloud
Pode verificar a conta atualmente ativa executando o comando
gcloud auth list
.
Execute o seguinte comando:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://livestream.googleapis.com/v1/projects/PROJECT_NUMBER /locations/LOCATION /operations/OPERATION_ID " | Select-Object -Expand Content
Deve receber uma resposta JSON semelhante à seguinte:
{
"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"
}
}
Encontre o campo uri
e copie o valor INPUT_STREAM_URI devolvido para usar mais tarde na secção Envie o fluxo de entrada .
Crie o canal
Para criar o canal, use o método
projects.locations.channels.create
.
Tenha em atenção o seguinte na configuração do canal:
Uma
ElementaryStream
, um TextStream
, é
usado para as legendas.
{
"key" : "webvtt_english_ai" ,
"textStream" : {
"codec" : "webvtt" ,
"displayName" : "English (AI captioned)" ,
"languageCode" : "en-US" ,
"mapping" : [
{
"inputTrack" : 1 // audio track number
}
]
}
}
O campo TextStream
codec
tem de estar definido como webvtt
.
O campo TextStream
mapping
usa
inputTrack
para designar a faixa de áudio de entrada a partir da qual gerar legendas. O mapeamento não pode incluir um campo inputCeaChannel
, que só é usado para legendas fechadas fornecidas pelo utilizador.
Defina o languageCode
para o idioma falado na faixa de áudio.
A stream elementar é usada para criar um MuxStream
com a chave vtt_english_ai
.
{
"key" : "vtt_english_ai" ,
"container" : "vtt" ,
"elementaryStreams" : [
"webvtt_english_ai"
],
"segmentSettings" : {
"segmentDuration" : "2s"
}
}
Esta stream mux é, em seguida, referenciada nos manifestos HLS e DASH.
{
"fileName" : "main.m3u8" ,
"type" : "HLS" ,
"muxStreams" : [
"mux_video_ts" ,
"vtt_english_ai"
],
"maxSegmentCount" : 5
}
Antes de usar qualquer um dos dados do pedido,
faça as seguintes substituições:
PROJECT_NUMBER
: o número do seu Google Cloud projeto. Este encontra-se no campo Número do projeto na página Definições do IAM
LOCATION
: a localização na qual criar o canal; use uma das regiões suportadas
Mostrar localizações
us-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
: um identificador definido pelo utilizador para o canal a criar; este valor tem de ter entre 1 e 63 carateres, começar e terminar com [a-z0-9]
e pode conter traços (-) entre carateres
INPUT_ID
: o identificador definido pelo utilizador para o ponto final de entrada
BUCKET_NAME
: o nome do contentor do Cloud Storage que criou para conter o manifesto da stream em direto e os ficheiros de segmentos
Corpo JSON do pedido:
{
"inputAttachments": [
{
"key": "my-input",
"input": "projects/PROJECT_NUMBER /locations/LOCATION /inputs/INPUT_ID "
}
],
"output": {
"uri": "gs://BUCKET_NAME "
},
"elementaryStreams": [
{
"key": "es_video",
"videoStream": {
"h264": {
"profile": "high",
"widthPixels": 1280,
"heightPixels": 720,
"bitrateBps": 3000000,
"frameRate": 30
}
}
},
{
"key": "es_audio",
"audioStream": {
"codec": "aac",
"channelCount": 2,
"bitrateBps": 160000
}
},
{
"key": "webvtt_english_ai",
"textStream": {
"codec": "webvtt",
"displayName": "English (AI captioned)",
"languageCode": "en-US",
"mapping": [
{
"inputTrack": 1
}
]
}
}
],
"muxStreams": [
{
"key": "mux_video_fmp4",
"container": "fmp4",
"elementaryStreams": [
"es_video"
],
"segmentSettings": {
"segmentDuration": "2s"
}
},
{
"key": "mux_audio_fmp4",
"container": "fmp4",
"elementaryStreams": [
"es_audio"
],
"segmentSettings": {
"segmentDuration": "2s"
}
},
{
"key": "mux_video_ts",
"container": "ts",
"elementaryStreams": [
"es_video",
"es_audio"
],
"segmentSettings": {
"segmentDuration": "2s"
}
},
{
"key": "vtt_english_ai",
"container": "vtt",
"elementaryStreams": [
"webvtt_english_ai"
],
"segmentSettings": {
"segmentDuration": "2s"
}
}
],
"manifests": [
{
"key": "manifest_dash",
"fileName": "main.mpd",
"type": "DASH",
"muxStreams": [
"mux_video_fmp4",
"mux_audio_fmp4",
"vtt_english_ai"
],
"maxSegmentCount": 5
},
{
"key": "manifest_hls",
"fileName": "main.m3u8",
"type": "HLS",
"muxStreams": [
"mux_video_ts",
"vtt_english_ai"
],
"maxSegmentCount": 5
}
]
}
Para enviar o seu pedido, expanda uma destas opções:
curl (Linux, macOS ou Cloud Shell)
Nota:
O comando seguinte pressupõe que tem sessão iniciada na CLI gcloud
com a sua conta de utilizador executando gcloud init
ou gcloud auth login
, ou usando o Cloud Shell , que inicia automaticamente sessão na CLI gcloud
.
Pode verificar a conta atualmente ativa executando o comando
gcloud auth list
.
Guarde o corpo do pedido num ficheiro denominado request.json
.
Execute o seguinte comando no terminal para criar ou substituir
este ficheiro no diretório atual:
cat > request.json << 'EOF'
{
"inputAttachments": [
{
"key": "my-input",
"input": "projects/PROJECT_NUMBER /locations/LOCATION /inputs/INPUT_ID "
}
],
"output": {
"uri": "gs://BUCKET_NAME "
},
"elementaryStreams": [
{
"key": "es_video",
"videoStream": {
"h264": {
"profile": "high",
"widthPixels": 1280,
"heightPixels": 720,
"bitrateBps": 3000000,
"frameRate": 30
}
}
},
{
"key": "es_audio",
"audioStream": {
"codec": "aac",
"channelCount": 2,
"bitrateBps": 160000
}
},
{
"key": "webvtt_english_ai",
"textStream": {
"codec": "webvtt",
"displayName": "English (AI captioned)",
"languageCode": "en-US",
"mapping": [
{
"inputTrack": 1
}
]
}
}
],
"muxStreams": [
{
"key": "mux_video_fmp4",
"container": "fmp4",
"elementaryStreams": [
"es_video"
],
"segmentSettings": {
"segmentDuration": "2s"
}
},
{
"key": "mux_audio_fmp4",
"container": "fmp4",
"elementaryStreams": [
"es_audio"
],
"segmentSettings": {
"segmentDuration": "2s"
}
},
{
"key": "mux_video_ts",
"container": "ts",
"elementaryStreams": [
"es_video",
"es_audio"
],
"segmentSettings": {
"segmentDuration": "2s"
}
},
{
"key": "vtt_english_ai",
"container": "vtt",
"elementaryStreams": [
"webvtt_english_ai"
],
"segmentSettings": {
"segmentDuration": "2s"
}
}
],
"manifests": [
{
"key": "manifest_dash",
"fileName": "main.mpd",
"type": "DASH",
"muxStreams": [
"mux_video_fmp4",
"mux_audio_fmp4",
"vtt_english_ai"
],
"maxSegmentCount": 5
},
{
"key": "manifest_hls",
"fileName": "main.m3u8",
"type": "HLS",
"muxStreams": [
"mux_video_ts",
"vtt_english_ai"
],
"maxSegmentCount": 5
}
]
}
EOF
Em seguida, execute o seguinte comando para enviar o seu pedido REST:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://livestream.googleapis.com/v1/projects/PROJECT_NUMBER /locations/LOCATION /channels?channelId=CHANNEL_ID "
PowerShell (Windows)
Nota:
O comando seguinte pressupõe que iniciou sessão na CLI do
Google Cloud com a sua conta de utilizador executando
gcloud init
ou
gcloud auth login
.gcloud
Pode verificar a conta atualmente ativa executando o comando
gcloud auth list
.
Guarde o corpo do pedido num ficheiro denominado request.json
.
Execute o seguinte comando no terminal para criar ou substituir
este ficheiro no diretório atual:
@'
{
"inputAttachments": [
{
"key": "my-input",
"input": "projects/PROJECT_NUMBER /locations/LOCATION /inputs/INPUT_ID "
}
],
"output": {
"uri": "gs://BUCKET_NAME "
},
"elementaryStreams": [
{
"key": "es_video",
"videoStream": {
"h264": {
"profile": "high",
"widthPixels": 1280,
"heightPixels": 720,
"bitrateBps": 3000000,
"frameRate": 30
}
}
},
{
"key": "es_audio",
"audioStream": {
"codec": "aac",
"channelCount": 2,
"bitrateBps": 160000
}
},
{
"key": "webvtt_english_ai",
"textStream": {
"codec": "webvtt",
"displayName": "English (AI captioned)",
"languageCode": "en-US",
"mapping": [
{
"inputTrack": 1
}
]
}
}
],
"muxStreams": [
{
"key": "mux_video_fmp4",
"container": "fmp4",
"elementaryStreams": [
"es_video"
],
"segmentSettings": {
"segmentDuration": "2s"
}
},
{
"key": "mux_audio_fmp4",
"container": "fmp4",
"elementaryStreams": [
"es_audio"
],
"segmentSettings": {
"segmentDuration": "2s"
}
},
{
"key": "mux_video_ts",
"container": "ts",
"elementaryStreams": [
"es_video",
"es_audio"
],
"segmentSettings": {
"segmentDuration": "2s"
}
},
{
"key": "vtt_english_ai",
"container": "vtt",
"elementaryStreams": [
"webvtt_english_ai"
],
"segmentSettings": {
"segmentDuration": "2s"
}
}
],
"manifests": [
{
"key": "manifest_dash",
"fileName": "main.mpd",
"type": "DASH",
"muxStreams": [
"mux_video_fmp4",
"mux_audio_fmp4",
"vtt_english_ai"
],
"maxSegmentCount": 5
},
{
"key": "manifest_hls",
"fileName": "main.m3u8",
"type": "HLS",
"muxStreams": [
"mux_video_ts",
"vtt_english_ai"
],
"maxSegmentCount": 5
}
]
}
'@ | Out-File -FilePath request.json -Encoding utf8
Em seguida, execute o seguinte comando para enviar o seu pedido REST:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile request.json ` -Uri "https://livestream.googleapis.com/v1/projects/PROJECT_NUMBER /locations/LOCATION /channels?channelId=CHANNEL_ID " | Select-Object -Expand Content
Deve receber uma resposta JSON semelhante à seguinte:
Resposta
{
"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
}
Aceda ao canal
Pode verificar o resultado da operação através do novo ID da operação.
Depois de criar o canal, use o método
projects.locations.channels.get
para consultar o estado do canal.
Antes de usar qualquer um dos dados do pedido,
faça as seguintes substituições:
PROJECT_NUMBER
: o número do seu Google Cloud projeto. Este encontra-se no campo Número do projeto na página Definições do IAM
LOCATION
: a localização onde o seu canal está
localizado; use uma das regiões suportadas
Mostrar localizações
us-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
: um identificador definido pelo utilizador para o canal
Para enviar o seu pedido, expanda uma destas opções:
curl (Linux, macOS ou Cloud Shell)
Nota:
O comando seguinte pressupõe que tem sessão iniciada na CLI gcloud
com a sua conta de utilizador executando gcloud init
ou gcloud auth login
, ou usando o Cloud Shell , que inicia automaticamente sessão na CLI gcloud
.
Pode verificar a conta atualmente ativa executando o comando
gcloud auth list
.
Execute o seguinte comando:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://livestream.googleapis.com/v1/projects/PROJECT_NUMBER /locations/LOCATION /channels/CHANNEL_ID "
PowerShell (Windows)
Nota:
O comando seguinte pressupõe que iniciou sessão na CLI do
Google Cloud com a sua conta de utilizador executando
gcloud init
ou
gcloud auth login
.gcloud
Pode verificar a conta atualmente ativa executando o comando
gcloud auth list
.
Execute o seguinte comando:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://livestream.googleapis.com/v1/projects/PROJECT_NUMBER /locations/LOCATION /channels/CHANNEL_ID " | Select-Object -Expand Content
Deve receber uma resposta JSON semelhante à seguinte:
Resposta
{
"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": [
{
"key": "es_video",
"videoStream": {
"h264": {
"profile": "high",
"widthPixels": 1280,
"heightPixels": 720,
"bitrateBps": 3000000,
"frameRate": 30
}
}
},
{
"key": "es_audio",
"audioStream": {
"codec": "aac",
"channelCount": 2,
"bitrateBps": 160000
}
},
{
"key": "webvtt_english_ai",
"textStream": {
"codec": "webvtt",
"displayName": "English (AI captioned)",
"languageCode": "en-US",
"mapping": [
{
"inputTrack": 1
}
]
}
}
],
"muxStreams": [
{
"key": "mux_video_fmp4",
"container": "fmp4",
"elementaryStreams": [
"es_video"
],
"segmentSettings": {
"segmentDuration": "2s"
}
},
{
"key": "mux_audio_fmp4",
"container": "fmp4",
"elementaryStreams": [
"es_audio"
],
"segmentSettings": {
"segmentDuration": "2s"
}
},
{
"key": "mux_video_ts",
"container": "ts",
"elementaryStreams": [
"es_video",
"es_audio"
],
"segmentSettings": {
"segmentDuration": "2s"
}
},
{
"key": "vtt_english_ai",
"container": "vtt",
"elementaryStreams": [
"webvtt_english_ai"
],
"segmentSettings": {
"segmentDuration": "2s"
}
}
],
"manifests": [
{
"key": "manifest_dash",
"fileName": "main.mpd",
"type": "DASH",
"muxStreams": [
"mux_video_fmp4",
"mux_audio_fmp4",
"vtt_english_ai"
],
"maxSegmentCount": 5
},
{
"key": "manifest_hls",
"fileName": "main.m3u8",
"type": "HLS",
"muxStreams": [
"mux_video_ts",
"vtt_english_ai"
],
"maxSegmentCount": 5
}
],
"streamingState": "STOPPED"
}
A resposta completa contém o seguinte campo:
{
...
"streamingState": "STOPPED"
...
}
Esta resposta indica que já pode iniciar o canal.
Inicie o canal
Use o método projects.locations.channels.start
para iniciar o canal. Um canal tem de ser iniciado antes de poder aceitar streams de entrada ou gerar uma stream de saída.
O início do primeiro canal numa região demora cerca de 10 minutos.
Antes de usar qualquer um dos dados do pedido,
faça as seguintes substituições:
PROJECT_NUMBER
: o número do seu Google Cloud projeto. Este encontra-se no campo Número do projeto na página Definições do IAM
LOCATION
: a localização onde o seu canal está
localizado; use uma das regiões suportadas
Mostrar localizações
us-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
: um identificador definido pelo utilizador para o canal
Para enviar o seu pedido, expanda uma destas opções:
curl (Linux, macOS ou Cloud Shell)
Nota:
O comando seguinte pressupõe que tem sessão iniciada na CLI gcloud
com a sua conta de utilizador executando gcloud init
ou gcloud auth login
, ou usando o Cloud Shell , que inicia automaticamente sessão na CLI gcloud
.
Pode verificar a conta atualmente ativa executando o comando
gcloud auth list
.
Execute o seguinte comando:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d "" \ "https://livestream.googleapis.com/v1/projects/PROJECT_NUMBER /locations/LOCATION /channels/CHANNEL_ID :start"
PowerShell (Windows)
Nota:
O comando seguinte pressupõe que iniciou sessão na CLI do
Google Cloud com a sua conta de utilizador executando
gcloud init
ou
gcloud auth login
.gcloud
Pode verificar a conta atualmente ativa executando o comando
gcloud auth list
.
Execute o seguinte comando:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method POST ` -Headers $headers ` -Uri "https://livestream.googleapis.com/v1/projects/PROJECT_NUMBER /locations/LOCATION /channels/CHANNEL_ID :start" | Select-Object -Expand Content
Deve receber uma resposta JSON semelhante à seguinte:
Resposta
{
"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
}
Para determinar se o canal foi iniciado, aceda às informações do canal
como fez anteriormente. A resposta deve conter o seguinte:
{
...
"streamingState": "AWAITING_INPUT"
...
}
Agora que o canal está pronto, envie uma stream de entrada para o ponto final de entrada para gerar a stream em direto. Pode transferir um ficheiro MP4 (ou outro
TEST_VOD_FILE ) com legendas e
usar ffmpeg
para o enviar para o ponto final de entrada.
Abra uma nova janela de terminal. Execute o seguinte comando, usando o
INPUT_STREAM_URI da secção
Verifique o resultado :
ffmpeg -re -stream_loop -1 -i "TEST_VOD_FILE " \
-c:v copy -c:a aac -strict 2 -f "flv" "INPUT_STREAM_URI "
Nota: use o formato flv
se o ponto final de entrada usar o protocolo RTMP. Use
mpegts
para o protocolo SRT.
Valide as legendas no manifesto de saída
Execute o seguinte comando para ver o conteúdo do manifesto HLS gerado:
gcloud storage cat gs://BUCKET_NAME /main.m3u8
As legendas em inglês geradas pela IA aparecem no manifesto de saída
de forma semelhante ao seguinte:
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="sub",LANGUAGE="en-US",NAME="English (AI captioned)",AUTOSELECT=YES,DEFAULT=YES,FORCED=NO,URI="vtt_english_ai/index-1.m3u8"
Pare o canal
Tem de parar um canal antes de atualizar a configuração do canal.
Use o método
projects.locations.channels.stop
para parar o canal.
Antes de usar qualquer um dos dados do pedido,
faça as seguintes substituições:
PROJECT_NUMBER
: o número do seu Google Cloud projeto. Este encontra-se no campo Número do projeto na página Definições do IAM
LOCATION
: a localização onde o seu canal está
localizado; use uma das regiões suportadas
Mostrar localizações
us-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
: um identificador definido pelo utilizador para o canal
Para enviar o seu pedido, expanda uma destas opções:
curl (Linux, macOS ou Cloud Shell)
Nota:
O comando seguinte pressupõe que tem sessão iniciada na CLI gcloud
com a sua conta de utilizador executando gcloud init
ou gcloud auth login
, ou usando o Cloud Shell , que inicia automaticamente sessão na CLI gcloud
.
Pode verificar a conta atualmente ativa executando o comando
gcloud auth list
.
Execute o seguinte comando:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d "" \ "https://livestream.googleapis.com/v1/projects/PROJECT_NUMBER /locations/LOCATION /channels/CHANNEL_ID :stop"
PowerShell (Windows)
Nota:
O comando seguinte pressupõe que iniciou sessão na CLI do
Google Cloud com a sua conta de utilizador executando
gcloud init
ou
gcloud auth login
.gcloud
Pode verificar a conta atualmente ativa executando o comando
gcloud auth list
.
Execute o seguinte comando:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method POST ` -Headers $headers ` -Uri "https://livestream.googleapis.com/v1/projects/PROJECT_NUMBER /locations/LOCATION /channels/CHANNEL_ID :stop" | Select-Object -Expand Content
Deve receber uma resposta JSON semelhante à seguinte:
Resposta
{
"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
}
Atualize a configuração do canal para uma tradução
Atualize a configuração do canal para incluir legendas traduzidas (ou seja, uma
tradução).
Tenha em atenção as seguintes adições à configuração do canal:
Um
ElementaryStream
, um TextStream
, é usado para as legendas de um único idioma traduzido.
{
"key" : "webvtt_spanish_ai" ,
"textStream" : {
"codec" : "webvtt" ,
"displayName" : "Spanish (AI captioned)" ,
"languageCode" : "es-MX" ,
"mapping" : [
{
"inputTrack" : 1 , // audio track number
"fromLanguageCode" : "en-US" // original audio in English
}
]
}
}
Defina languageCode
para o idioma
traduzido escolhido.
Defina fromLanguageCode
para o idioma de origem original na faixa de áudio.
A stream elementar é usada para criar um MuxStream
com a chave vtt_spanish_ai
.
{
"key" : "vtt_spanish_ai" ,
"container" : "vtt" ,
"elementaryStreams" : [
"webvtt_spanish_ai"
],
"segmentSettings" : {
"segmentDuration" : "2s"
}
}
Esta stream mux é, em seguida, referenciada nos manifestos HLS e DASH.
{
"fileName" : "main.m3u8" ,
"type" : "HLS" ,
"muxStreams" : [
"mux_video_ts" ,
"vtt_english_ai" ,
"vtt_spanish_ai"
],
"maxSegmentCount" : 5
}
Para atualizar o canal, use o método
projects.locations.channels.patch
.
Antes de usar qualquer um dos dados do pedido,
faça as seguintes substituições:
PROJECT_NUMBER
: o número do seu Google Cloud projeto. Este encontra-se no campo Número do projeto na página Definições do IAM
LOCATION
: a localização na qual criar o canal; use uma das regiões suportadas
Mostrar localizações
us-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
: um identificador definido pelo utilizador para o canal a criar; este valor tem de ter entre 1 e 63 carateres, começar e terminar com [a-z0-9]
e pode conter traços (-) entre carateres
Corpo JSON do pedido:
{
"inputAttachments": [
{
"key": "my-input",
"input": "projects/PROJECT_NUMBER /locations/LOCATION /inputs/INPUT_ID "
}
],
"output": {
"uri": "gs://BUCKET_NAME "
},
"elementaryStreams": [
{
"key": "es_video",
"videoStream": {
"h264": {
"profile": "high",
"widthPixels": 1280,
"heightPixels": 720,
"bitrateBps": 3000000,
"frameRate": 30
}
}
},
{
"key": "es_audio",
"audioStream": {
"codec": "aac",
"channelCount": 2,
"bitrateBps": 160000
}
},
{
"key": "webvtt_english_ai",
"textStream": {
"codec": "webvtt",
"displayName": "English (AI captioned)",
"languageCode": "en-US",
"mapping": [
{
"inputTrack": 1
}
]
}
},
{
"key": "webvtt_spanish_ai",
"textStream": {
"codec": "webvtt",
"displayName": "Spanish (AI captioned)",
"languageCode": "es-MX",
"mapping": [
{
"inputTrack": 1,
"fromLanguageCode": "en-US"
}
]
}
}
],
"muxStreams": [
{
"key": "mux_video_fmp4",
"container": "fmp4",
"elementaryStreams": [
"es_video"
],
"segmentSettings": {
"segmentDuration": "2s"
}
},
{
"key": "mux_audio_fmp4",
"container": "fmp4",
"elementaryStreams": [
"es_audio"
],
"segmentSettings": {
"segmentDuration": "2s"
}
},
{
"key": "mux_video_ts",
"container": "ts",
"elementaryStreams": [
"es_video",
"es_audio"
],
"segmentSettings": {
"segmentDuration": "2s"
}
},
{
"key": "vtt_english_ai",
"container": "vtt",
"elementaryStreams": [
"webvtt_english_ai"
],
"segmentSettings": {
"segmentDuration": "2s"
}
},
{
"key": "vtt_spanish_ai",
"container": "vtt",
"elementaryStreams": [
"webvtt_spanish_ai"
],
"segmentSettings": {
"segmentDuration": "2s"
}
}
],
"manifests": [
{
"key": "manifest_dash",
"fileName": "main.mpd",
"type": "DASH",
"muxStreams": [
"mux_video_fmp4",
"mux_audio_fmp4",
"vtt_english_ai",
"vtt_spanish_ai"
],
"maxSegmentCount": 5
},
{
"key": "manifest_hls",
"fileName": "main.m3u8",
"type": "HLS",
"muxStreams": [
"mux_video_ts",
"vtt_english_ai",
"vtt_spanish_ai"
],
"maxSegmentCount": 5
}
]
}
Para enviar o seu pedido, expanda uma destas opções:
curl (Linux, macOS ou Cloud Shell)
Nota:
O comando seguinte pressupõe que tem sessão iniciada na CLI gcloud
com a sua conta de utilizador executando gcloud init
ou gcloud auth login
, ou usando o Cloud Shell , que inicia automaticamente sessão na CLI gcloud
.
Pode verificar a conta atualmente ativa executando o comando
gcloud auth list
.
Guarde o corpo do pedido num ficheiro denominado request.json
.
Execute o seguinte comando no terminal para criar ou substituir
este ficheiro no diretório atual:
cat > request.json << 'EOF'
{
"inputAttachments": [
{
"key": "my-input",
"input": "projects/PROJECT_NUMBER /locations/LOCATION /inputs/INPUT_ID "
}
],
"output": {
"uri": "gs://BUCKET_NAME "
},
"elementaryStreams": [
{
"key": "es_video",
"videoStream": {
"h264": {
"profile": "high",
"widthPixels": 1280,
"heightPixels": 720,
"bitrateBps": 3000000,
"frameRate": 30
}
}
},
{
"key": "es_audio",
"audioStream": {
"codec": "aac",
"channelCount": 2,
"bitrateBps": 160000
}
},
{
"key": "webvtt_english_ai",
"textStream": {
"codec": "webvtt",
"displayName": "English (AI captioned)",
"languageCode": "en-US",
"mapping": [
{
"inputTrack": 1
}
]
}
},
{
"key": "webvtt_spanish_ai",
"textStream": {
"codec": "webvtt",
"displayName": "Spanish (AI captioned)",
"languageCode": "es-MX",
"mapping": [
{
"inputTrack": 1,
"fromLanguageCode": "en-US"
}
]
}
}
],
"muxStreams": [
{
"key": "mux_video_fmp4",
"container": "fmp4",
"elementaryStreams": [
"es_video"
],
"segmentSettings": {
"segmentDuration": "2s"
}
},
{
"key": "mux_audio_fmp4",
"container": "fmp4",
"elementaryStreams": [
"es_audio"
],
"segmentSettings": {
"segmentDuration": "2s"
}
},
{
"key": "mux_video_ts",
"container": "ts",
"elementaryStreams": [
"es_video",
"es_audio"
],
"segmentSettings": {
"segmentDuration": "2s"
}
},
{
"key": "vtt_english_ai",
"container": "vtt",
"elementaryStreams": [
"webvtt_english_ai"
],
"segmentSettings": {
"segmentDuration": "2s"
}
},
{
"key": "vtt_spanish_ai",
"container": "vtt",
"elementaryStreams": [
"webvtt_spanish_ai"
],
"segmentSettings": {
"segmentDuration": "2s"
}
}
],
"manifests": [
{
"key": "manifest_dash",
"fileName": "main.mpd",
"type": "DASH",
"muxStreams": [
"mux_video_fmp4",
"mux_audio_fmp4",
"vtt_english_ai",
"vtt_spanish_ai"
],
"maxSegmentCount": 5
},
{
"key": "manifest_hls",
"fileName": "main.m3u8",
"type": "HLS",
"muxStreams": [
"mux_video_ts",
"vtt_english_ai",
"vtt_spanish_ai"
],
"maxSegmentCount": 5
}
]
}
EOF
Em seguida, execute o seguinte comando para enviar o seu pedido REST:
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://livestream.googleapis.com/v1/projects/PROJECT_NUMBER /locations/LOCATION /channels/CHANNEL_ID ?updateMask=elementary_streams,mux_streams,manifests"
PowerShell (Windows)
Nota:
O comando seguinte pressupõe que iniciou sessão na CLI do
Google Cloud com a sua conta de utilizador executando
gcloud init
ou
gcloud auth login
.gcloud
Pode verificar a conta atualmente ativa executando o comando
gcloud auth list
.
Guarde o corpo do pedido num ficheiro denominado request.json
.
Execute o seguinte comando no terminal para criar ou substituir
este ficheiro no diretório atual:
@'
{
"inputAttachments": [
{
"key": "my-input",
"input": "projects/PROJECT_NUMBER /locations/LOCATION /inputs/INPUT_ID "
}
],
"output": {
"uri": "gs://BUCKET_NAME "
},
"elementaryStreams": [
{
"key": "es_video",
"videoStream": {
"h264": {
"profile": "high",
"widthPixels": 1280,
"heightPixels": 720,
"bitrateBps": 3000000,
"frameRate": 30
}
}
},
{
"key": "es_audio",
"audioStream": {
"codec": "aac",
"channelCount": 2,
"bitrateBps": 160000
}
},
{
"key": "webvtt_english_ai",
"textStream": {
"codec": "webvtt",
"displayName": "English (AI captioned)",
"languageCode": "en-US",
"mapping": [
{
"inputTrack": 1
}
]
}
},
{
"key": "webvtt_spanish_ai",
"textStream": {
"codec": "webvtt",
"displayName": "Spanish (AI captioned)",
"languageCode": "es-MX",
"mapping": [
{
"inputTrack": 1,
"fromLanguageCode": "en-US"
}
]
}
}
],
"muxStreams": [
{
"key": "mux_video_fmp4",
"container": "fmp4",
"elementaryStreams": [
"es_video"
],
"segmentSettings": {
"segmentDuration": "2s"
}
},
{
"key": "mux_audio_fmp4",
"container": "fmp4",
"elementaryStreams": [
"es_audio"
],
"segmentSettings": {
"segmentDuration": "2s"
}
},
{
"key": "mux_video_ts",
"container": "ts",
"elementaryStreams": [
"es_video",
"es_audio"
],
"segmentSettings": {
"segmentDuration": "2s"
}
},
{
"key": "vtt_english_ai",
"container": "vtt",
"elementaryStreams": [
"webvtt_english_ai"
],
"segmentSettings": {
"segmentDuration": "2s"
}
},
{
"key": "vtt_spanish_ai",
"container": "vtt",
"elementaryStreams": [
"webvtt_spanish_ai"
],
"segmentSettings": {
"segmentDuration": "2s"
}
}
],
"manifests": [
{
"key": "manifest_dash",
"fileName": "main.mpd",
"type": "DASH",
"muxStreams": [
"mux_video_fmp4",
"mux_audio_fmp4",
"vtt_english_ai",
"vtt_spanish_ai"
],
"maxSegmentCount": 5
},
{
"key": "manifest_hls",
"fileName": "main.m3u8",
"type": "HLS",
"muxStreams": [
"mux_video_ts",
"vtt_english_ai",
"vtt_spanish_ai"
],
"maxSegmentCount": 5
}
]
}
'@ | Out-File -FilePath request.json -Encoding utf8
Em seguida, execute o seguinte comando para enviar o seu pedido REST:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method PATCH ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile request.json ` -Uri "https://livestream.googleapis.com/v1/projects/PROJECT_NUMBER /locations/LOCATION /channels/CHANNEL_ID ?updateMask=elementary_streams,mux_streams,manifests" | Select-Object -Expand Content
Deve receber uma resposta JSON semelhante à seguinte:
Resposta
{
"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": "update",
"requestedCancellation": false,
"apiVersion": "v1"
},
"done": false
}
Pode verificar o resultado da operação através do novo ID da operação.
Tal como fez anteriormente, inicie o canal e envie novamente o fluxo de entrada .
Valide a tradução no manifesto de saída
Execute o seguinte comando para ver o conteúdo do manifesto HLS gerado:
gcloud storage cat gs://BUCKET_NAME /main.m3u8
As legendas em inglês e espanhol geradas pela IA são apresentadas no manifesto de saída de forma semelhante à seguinte:
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="sub",LANGUAGE="en-US",NAME="English (AI captioned)",AUTOSELECT=YES,DEFAULT=YES,FORCED=NO,URI="vtt_english_ai/index-1.m3u8"
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="sub",LANGUAGE="es-MX",NAME="Spanish (AI captioned)",AUTOSELECT=NO,DEFAULT=NO,FORCED=NO,URI="vtt_spanish_ai/index-1.m3u8"
Configure transcrições geradas pela IA para distribuição
Antes de configurar as legendas e as traduções geradas pela IA para distribuição,
familiarize-se com a forma de
distribuir streams em direto para pontos finais remotos .
Para distribuir legendas e traduções geradas pela IA para pontos finais remotos,
não faça referência às streams de texto no formato webvtt
que foram configuradas anteriormente quando criou um canal com legendas geradas pela IA
e atualizou o canal para tradução .
As streams de texto para distribuição têm de ser legendas incorporadas, com o elemento
codec
definido como cea608
ou cea708
.
Na configuração do canal, considere o seguinte:
Um
ElementaryStream
, um TextStream
, é
usado para as legendas e outro ElementaryStream
, um
TextStream
, é usado para a tradução.
{
"key" : "embedded_english_ai" ,
"textStream" : {
"codec" : "cea608" ,
"displayName" : "English (AI captioned)" ,
"languageCode" : "en-US" ,
"outputCeaChannel" : "CC1" , // closed caption channel that will contain AI-generated English captions
"mapping" : [
{
"inputTrack" : 1 // audio track number
}
]
}
}
{
"key" : "embedded_spanish_ai" ,
"textStream" : {
"codec" : "cea608" ,
"displayName" : "Spanish (AI captioned)" ,
"languageCode" : "es-MX" ,
"outputCeaChannel" : "CC2" , // closed caption channel that will contain AI-generated Spanish captions
"mapping" : [
{
"inputTrack" : 1 , // audio track number
"fromLanguageCode" : "en-US" // original audio in English
}
]
}
}
O campo TextStream
codec
tem de estar definido como cea608
ou cea708
.
O campo TextStream
mapping
usa
inputTrack
para designar a faixa de áudio de entrada a partir da qual gerar legendas. O mapeamento não pode incluir um campo inputCeaChannel
, que só é usado para legendas fechadas fornecidas pelo utilizador.
Defina o elemento outputCeaChannel
para o canal de legendas de modo a conter transcrições geradas pela IA na stream de distribuição.
Defina o languageCode
para o idioma falado na faixa de áudio.
Os streams elementares estão incluídos no campo elementaryStreams
do objeto DistributionStream
.
{
"distributionStreams" : [
{
"key" : "ds1" ,
"container" : "ts" , // to be used with an SRT distribution
"elementaryStreams" : [
"es_video" ,
"es_audio" ,
"embedded_english_ai" , // distribute both English
"embedded_spanish_ai" // and Spanish captions
]
},
{
"key" : "ds2" ,
"container" : "flv" , // to be used with an RTMP distribution
"elementaryStreams" : [
"es_video" ,
"es_audio" ,
"embedded_spanish_ai" // only distribute Spanish captions
]
}
]
}
Conclua a criação do canal seguindo o guia de distribuição de streams em direto para um ponto final remoto .
Configurações avançadas
Defina AutoTranscriptionConfig
ao nível do canal
para ajustar ainda mais as streams de texto geradas pela IA às suas necessidades.
Indicações de tempo de apresentação das legendas
Por predefinição, as legendas geradas pela IA são apresentadas de forma assíncrona com o áudio e o vídeo. Defina o campo DisplayTiming
em AutoTranscriptionConfig
como SYNC
para os apresentar de forma síncrona.
{
"autoTranscriptionConfig" : {
"displayTiming" : "SYNC"
}
}
A apresentação de legendas de forma síncrona diminui a latência de visualização entre o áudio e o texto, mas aumenta a latência geral de multimédia de ponta a ponta.
Predefinições de qualidade
Use o campo QualityPreset
em
AutoTranscriptionConfig
para configurar as preferências de qualidade para streams de texto
geradas pela IA.
Por exemplo, pode reduzir ainda mais a latência da geração de streams de texto ao definir:
{
"autoTranscriptionConfig" : {
"qualityPreset" : "LOW_LATENCY"
}
}
Limpar
Pare o canal
Use o método
projects.locations.channels.stop
para parar o canal.
Tem de parar o canal antes de o poder eliminar.
Antes de usar qualquer um dos dados do pedido,
faça as seguintes substituições:
PROJECT_NUMBER
: o número do seu Google Cloud projeto. Este encontra-se no campo Número do projeto na página Definições do IAM
LOCATION
: a localização onde o seu canal está
localizado; use uma das regiões suportadas
Mostrar localizações
us-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
: um identificador definido pelo utilizador para o canal
Para enviar o seu pedido, expanda uma destas opções:
curl (Linux, macOS ou Cloud Shell)
Nota:
O comando seguinte pressupõe que tem sessão iniciada na CLI gcloud
com a sua conta de utilizador executando gcloud init
ou gcloud auth login
, ou usando o Cloud Shell , que inicia automaticamente sessão na CLI gcloud
.
Pode verificar a conta atualmente ativa executando o comando
gcloud auth list
.
Execute o seguinte comando:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d "" \ "https://livestream.googleapis.com/v1/projects/PROJECT_NUMBER /locations/LOCATION /channels/CHANNEL_ID :stop"
PowerShell (Windows)
Nota:
O comando seguinte pressupõe que iniciou sessão na CLI do
Google Cloud com a sua conta de utilizador executando
gcloud init
ou
gcloud auth login
.gcloud
Pode verificar a conta atualmente ativa executando o comando
gcloud auth list
.
Execute o seguinte comando:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method POST ` -Headers $headers ` -Uri "https://livestream.googleapis.com/v1/projects/PROJECT_NUMBER /locations/LOCATION /channels/CHANNEL_ID :stop" | Select-Object -Expand Content
Deve receber uma resposta JSON semelhante à seguinte:
Resposta
{
"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
}
Se usou ffmpeg
para enviar a stream de entrada, a ligação é automaticamente
interrompida depois de parar o canal.
Eliminar o canal
Use o método
projects.locations.channels.delete
para eliminar o
canal. Tem de eliminar o canal antes de poder eliminar o ponto final de entrada
usado pelo canal.
Antes de usar qualquer um dos dados do pedido,
faça as seguintes substituições:
PROJECT_NUMBER
: o número do seu Google Cloud projeto. Este encontra-se no campo Número do projeto na página Definições do IAM
LOCATION
: a localização onde o seu canal está
localizado; use uma das regiões suportadas
Mostrar localizações
us-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
: um identificador definido pelo utilizador para o canal
Para enviar o seu pedido, expanda uma destas opções:
curl (Linux, macOS ou Cloud Shell)
Nota:
O comando seguinte pressupõe que tem sessão iniciada na CLI gcloud
com a sua conta de utilizador executando gcloud init
ou gcloud auth login
, ou usando o Cloud Shell , que inicia automaticamente sessão na CLI gcloud
.
Pode verificar a conta atualmente ativa executando o comando
gcloud auth list
.
Execute o seguinte comando:
curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://livestream.googleapis.com/v1/projects/PROJECT_NUMBER /locations/LOCATION /channels/CHANNEL_ID "
PowerShell (Windows)
Nota:
O comando seguinte pressupõe que iniciou sessão na CLI do
Google Cloud com a sua conta de utilizador executando
gcloud init
ou
gcloud auth login
.gcloud
Pode verificar a conta atualmente ativa executando o comando
gcloud auth list
.
Execute o seguinte comando:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method DELETE ` -Headers $headers ` -Uri "https://livestream.googleapis.com/v1/projects/PROJECT_NUMBER /locations/LOCATION /channels/CHANNEL_ID " | Select-Object -Expand Content
Deve receber uma resposta JSON semelhante à seguinte:
Resposta
{
"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
}
Use o método projects.locations.inputs.delete
para eliminar o ponto final de entrada.
Antes de usar qualquer um dos dados do pedido,
faça as seguintes substituições:
PROJECT_NUMBER
: o número do seu Google Cloud projeto. Este encontra-se no campo Número do projeto na página Definições do IAM
LOCATION
: a localização onde o seu ponto final de entrada está localizado; use uma das regiões suportadas
Mostrar localizações
us-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
: o identificador definido pelo utilizador para o ponto final de entrada
Para enviar o seu pedido, expanda uma destas opções:
curl (Linux, macOS ou Cloud Shell)
Nota:
O comando seguinte pressupõe que tem sessão iniciada na CLI gcloud
com a sua conta de utilizador executando gcloud init
ou gcloud auth login
, ou usando o Cloud Shell , que inicia automaticamente sessão na CLI gcloud
.
Pode verificar a conta atualmente ativa executando o comando
gcloud auth list
.
Execute o seguinte comando:
curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://livestream.googleapis.com/v1/projects/PROJECT_NUMBER /locations/LOCATION /inputs/INPUT_ID "
PowerShell (Windows)
Nota:
O comando seguinte pressupõe que iniciou sessão na CLI do
Google Cloud com a sua conta de utilizador executando
gcloud init
ou
gcloud auth login
.gcloud
Pode verificar a conta atualmente ativa executando o comando
gcloud auth list
.
Execute o seguinte comando:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method DELETE ` -Headers $headers ` -Uri "https://livestream.googleapis.com/v1/projects/PROJECT_NUMBER /locations/LOCATION /inputs/INPUT_ID " | Select-Object -Expand Content
Deve receber uma resposta JSON semelhante à seguinte:
Resposta
{
"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
}
Elimine o contentor do Cloud Storage
Na Google Cloud consola, aceda à página do navegador do Cloud Storage.
Aceda à página do navegador do armazenamento na nuvem
Selecione a caixa de verificação junto ao grupo criado.
Clique em Eliminar .
Na janela de diálogo apresentada, clique em Eliminar para eliminar o contentor e o respetivo conteúdo.