Esta página mostra-lhe como criar e gerir sessões de gravador de vídeo digital (DVR) da API Live Stream. Uma sessão de DVR é um sub-recurso de um canal. Pode usar uma sessão de DVR para gravar uma stream em direto futura. Para mais informações, consulte o guia separado Crie uma sessão de DVR.
Configure o seu Google Cloud projeto e autenticação
Se não tiver criado um Google Cloud projeto e credenciais, consulte a secção Antes de começar.Pré-requisitos
Tem de criar os seguintes recursos antes de criar uma sessão de DVR:
Crie um canal com uma configuração de retenção e uma chave do manifesto
Crie uma sessão de DVR
Para criar uma sessão de DVR, use o método
projects.locations.channels.dvrSessions.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 IAMLOCATION
: a localização onde o seu canal está localizado; use uma das regiões suportadasMostrar localizaçõesus-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 canalDVR_SESSION_ID
: um identificador definido pelo utilizador para a sessão de DVRINTERVAL_START_TIME
: a hora de início da marcação no tempo de época Unix no manifesto da stream em direto original; usa uma data/hora no formato "Zulu" UTC RFC3339 (por exemplo,2014-10-02T15:01:23Z
)INTERVAL_END_TIME
: a hora de exclusão da época Unix no manifesto da stream em direto original; usa uma data/hora no formato "Zulu" UTC RFC3339 (por exemplo,2014-10-02T15:01:23Z
)
Para enviar o seu pedido, expanda uma destas opções:
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/channels/CHANNEL_ID/dvrSessions/DVR_SESSION_ID", "verb": "create", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
Este comando cria uma operação de longa duração (LRO) que pode usar para acompanhar o progresso do seu pedido. Consulte o artigo Faça a gestão de operações de longa duração para mais informações.
Obtenha detalhes da sessão de DVR
Para obter os detalhes de uma sessão de DVR, use o método
projects.locations.channels.dvrSessions.get
.
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 IAMLOCATION
: a localização onde o seu canal está localizado; use uma das regiões suportadasMostrar localizaçõesus-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 canalDVR_SESSION_ID
: um identificador definido pelo utilizador para a sessão de DVR
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID/dvrSessions/DVR_SESSION_ID", "createTime": CREATE_TIME, "startTime": START_TIME, "updateTime": UPDATE_TIME, "state": "SUCCEEDED", "dvrManifests": [ { "manifestKey": "manifest_hls", "outputUri": "gs://BUCKET_NAME/dvr/DVR_SESSION_ID/main.m3u8" } ], "dvrWindows": [ { "timeInterval": { "startTime": "INTERVAL_START_TIME", "endTime": "INTERVAL_END_TIME" } } ] }
As sessões de DVR e os manifestos gerados são removidos quando o primeiro segmento expira de acordo com a retentionConfig
do canal principal. Se quiser que a sessão dure mais tempo do que o período de retenção configurado, crie um clipe do canal.
Atualize uma sessão de DVR
Para atualizar uma sessão de DVR, use o método
projects.locations.channels.dvrSessions.patch
.
O exemplo seguinte atualiza os intervalos de tempo do DVR usados pela sessão de DVR. Nem todos os campos podem ser atualizados. Consulte a lista de campos suportados.
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 IAMLOCATION
: a localização onde o seu canal está localizado; use uma das regiões suportadasMostrar localizaçõesus-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 canalDVR_SESSION_ID
: um identificador definido pelo utilizador para a sessão de DVRINTERVAL_START_TIME
: a hora de início da marcação no tempo de época Unix no manifesto da stream em direto original; usa uma data/hora no formato "Zulu" UTC RFC3339 (por exemplo,2014-10-02T15:01:23Z
)INTERVAL_END_TIME
: a hora de exclusão da época Unix no manifesto da stream em direto original; usa uma data/hora no formato "Zulu" UTC RFC3339 (por exemplo,2014-10-02T15:01:23Z
)
Para enviar o seu pedido, expanda uma destas opções:
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/channels/CHANNEL_ID/dvrSessions/DVR_SESSION_ID", "verb": "update", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
Este comando cria uma operação de longa duração (LRO) que pode usar para acompanhar o progresso do seu pedido. Consulte o artigo Faça a gestão de operações de longa duração para mais informações.
Os pedidos de atualização são rejeitados se o estado da sessão de DVR for
LIVE
e a atualização puder substituir o manifesto de DVR atual. A única exceção a isto é quando a atualização torna a sessão de DVR mais curta (por exemplo, alterar a hora de fim para agora ou para algum momento no passado). Neste caso, a sessão de DVR para imediatamente e passa para o estado COOLDOWN
.
Após o período de repouso de 60 segundos, o manifesto do DVR é substituído para refletir
as horas de início e fim atualizadas.
Liste as sessões de DVR
Para apresentar uma lista de todas as sessões de DVR que criou para um canal, use o método
projects.locations.channels.dvrSessions.list
.
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 IAMLOCATION
: a localização onde o seu canal está localizado; use uma das regiões suportadasMostrar localizaçõesus-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:
Deve receber uma resposta JSON semelhante à seguinte:
{ "dvrSessions": [ { "name": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID/dvrSessions/DVR_SESSION_ID", "createTime": CREATE_TIME, "startTime": START_TIME, "updateTime": UPDATE_TIME, "state": "SCHEDULED", "dvrManifests":[ { "manifestKey": "manifest_hls", "outputUri": "gs://BUCKET_NAME/dvr/DVR_SESSION_ID/main.m3u8" } ], "dvrWindows":[ { "timeInterval": { "startTime": "INTERVAL_START_TIME", "endTime": "INTERVAL_END_TIME" } } ] }, { "name": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID/dvrSessions/my-other-DVR-session", "createTime": CREATE_TIME, "startTime": START_TIME, "updateTime": UPDATE_TIME, "state": "SCHEDULED", "dvrManifests":[ { "manifestKey": "manifest_hls2", "outputUri": "gs://BUCKET_NAME/dvr/my-other-DVR-session/main.m3u8" } ], "dvrWindows":[ { "timeInterval": { "startTime": "INTERVAL_START_TIME", "endTime": "INTERVAL_END_TIME" } } ] }, ] }
Elimine uma sessão de DVR
Para eliminar uma sessão de DVR, use o método
projects.locations.channels.dvrSessions.delete
. Este método elimina a tarefa da sessão de DVR e o manifesto gerado.
Os recursos criados no contentor do Cloud Storage são eliminados de acordo com a configuração de retenção.
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 IAMLOCATION
: a localização onde o seu canal está localizado; use uma das regiões suportadasMostrar localizaçõesus-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 canalDVR_SESSION_ID
: um identificador definido pelo utilizador para a sessão de DVR
Para enviar o seu pedido, expanda uma destas opções:
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/channels/CHANNEL_ID/dvrSessions/DVR_SESSION_ID", "verb": "delete", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
Este comando cria uma operação de longa duração (LRO) que pode usar para acompanhar o progresso do seu pedido. Consulte o artigo Faça a gestão de operações de longa duração para mais informações.