Crie e faça a gestão de sessões de DVR

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:

  1. Crie um ponto final de entrada

  2. 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 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
  • DVR_SESSION_ID: um identificador definido pelo utilizador para a sessão de DVR
  • INTERVAL_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 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
  • DVR_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 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
  • DVR_SESSION_ID: um identificador definido pelo utilizador para a sessão de DVR
  • INTERVAL_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 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:

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 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
  • DVR_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.