Creare e gestire le sessioni DVR

Questa pagina mostra come creare e gestire le sessioni di videoregistratori digitali (DVR) dell'API Live Stream. Una sessione DVR è una risorsa secondaria di un canale. Puoi utilizzare una sessione DVR per registrare un live streaming futuro. Per ulteriori informazioni, consulta la guida separata Creare una sessione DVR.

Configura il progetto Google Cloud e l'autenticazione

Se non hai creato un progetto Google Cloud e le credenziali, consulta Prima di iniziare.

Prerequisiti

Prima di creare una sessione DVR, devi creare le seguenti risorse:

  1. Creare un endpoint di input

  2. Crea un canale con una configurazione di conservazione e una chiave del manifest

Creare una sessione DVR

Per creare una sessione DVR, utilizza il metodo projects.locations.channels.dvrSessions.create.

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_NUMBER: il numero del tuo progetto Google Cloud, che si trova nel campo Numero progetto della pagina Impostazioni IAM
  • LOCATION: la località in cui si trova il tuo canale. Utilizza una delle regioni supportate
    Mostra sedi
    • 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: un identificatore del canale definito dall'utente
  • DVR_SESSION_ID: un identificatore definito dall'utente per la sessione DVR
  • INTERVAL_START_TIME: l'ora Unix del mark-in nel manifest dello stream live originale; utilizza un timestamp in formato "Zulu" UTC RFC3339 (ad es. 2014-10-02T15:01:23Z)
  • INTERVAL_END_TIME: l'ora Unix del markup nel manifest del live streaming originale; utilizza un timestamp in formato "Zulu" UTC RFC3339 (ad es. 2014-10-02T15:01:23Z)

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "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
}

Questo comando crea un'operazione a lunga esecuzione (LRO) che puoi utilizzare per monitorare l'avanzamento della richiesta. Per ulteriori informazioni, consulta Gestire le operazioni che richiedono molto tempo .

Visualizzare i dettagli della sessione DVR

Per visualizzare i dettagli di una sessione DVR, utilizza il metodo projects.locations.channels.dvrSessions.get.

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_NUMBER: il numero del tuo progetto Google Cloud, che si trova nel campo Numero progetto della pagina Impostazioni IAM
  • LOCATION: la località in cui si trova il tuo canale. Utilizza una delle regioni supportate
    Mostra sedi
    • 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: un identificatore del canale definito dall'utente
  • DVR_SESSION_ID: un identificatore definito dall'utente per la sessione DVR

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "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"
      }
    }
  ]
}

Le sessioni DVR e i manifest generati vengono rimossi quando scade il primo segmento in base al retentionConfig del canale principale. Se vuoi che la sessione duri più a lungo del periodo di conservazione configurato, crea un clip del canale.

Aggiornare una sessione DVR

Per aggiornare una sessione DVR, utilizza il metodo projects.locations.channels.dvrSessions.patch.

Il seguente esempio aggiorna le finestre di tempo DVR utilizzate dalla sessione DVR. Non tutti i campi possono essere aggiornati; consulta l'elenco dei campi supportati.

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_NUMBER: il numero del tuo progetto Google Cloud, che si trova nel campo Numero progetto della pagina Impostazioni IAM
  • LOCATION: la località in cui si trova il tuo canale. Utilizza una delle regioni supportate
    Mostra sedi
    • 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: un identificatore del canale definito dall'utente
  • DVR_SESSION_ID: un identificatore definito dall'utente per la sessione DVR
  • INTERVAL_START_TIME: l'ora Unix del mark-in nel manifest dello stream live originale; utilizza un timestamp in formato "Zulu" UTC RFC3339 (ad es. 2014-10-02T15:01:23Z)
  • INTERVAL_END_TIME: l'ora Unix del markup nel manifest del live streaming originale; utilizza un timestamp in formato "Zulu" UTC RFC3339 (ad es. 2014-10-02T15:01:23Z)

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "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
}

Questo comando crea un'operazione a lunga esecuzione (LRO) che puoi utilizzare per monitorare l'avanzamento della richiesta. Per ulteriori informazioni, consulta Gestire le operazioni che richiedono molto tempo .

Le richieste di aggiornamento vengono rifiutate se lo stato della sessione del DVR èLIVE e l'aggiornamento potrebbe sovrascrivere il manifest DVR corrente. L'unica eccezione è quando l'aggiornamento accorcia la sessione DVR (ad esempio, modificando l'ora di fine in quella corrente o in un momento nel passato); in questo caso, la sessione DVR si interrompe immediatamente e passa allo stato COOLDOWN. Dopo il periodo di attesa di 60 secondi, il file manifest DVR viene sovrascritto in modo da riflettere le ore di inizio e di fine aggiornate.

Elenco sessioni DVR

Per elencare tutte le sessioni DVR create per un canale, utilizza il metodo projects.locations.channels.dvrSessions.list.

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_NUMBER: il numero del tuo progetto Google Cloud, che si trova nel campo Numero progetto della pagina Impostazioni IAM
  • LOCATION: la località in cui si trova il tuo canale. Utilizza una delle regioni supportate
    Mostra sedi
    • 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: un identificatore del canale definito dall'utente

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "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"
          }
        }
      ]
    },
  ]
}

Eliminare una sessione DVR

Per eliminare una sessione DVR, utilizza il metodo projects.locations.channels.dvrSessions.delete. Questo metodo elimina l'attività della sessione DVR e il manifest generato. Le risorse create nel bucket Cloud Storage vengono eliminate in base alla configurazione di conservazione.

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_NUMBER: il numero del tuo progetto Google Cloud. Puoi trovarlo nel campo Numero progetto della pagina Impostazioni IAM.
  • LOCATION: la località in cui si trova il tuo canale. Utilizza una delle regioni supportate
    Mostra sedi
    • 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: un identificatore del canale definito dall'utente
  • DVR_SESSION_ID: un identificatore definito dall'utente per la sessione DVR

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "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
}

Questo comando crea un'operazione a lunga esecuzione (LRO) che puoi utilizzare per monitorare l'avanzamento della richiesta. Per ulteriori informazioni, consulta Gestire le operazioni che richiedono molto tempo .