En esta página se explica cómo crear y gestionar sesiones de grabadora de vídeo digital (DVR) de la API Live Stream. Una sesión de DVR es un subrecurso de un canal. Puedes usar una sesión de DVR para grabar una emisión en directo futura. Para obtener más información, consulta la guía Crear una sesión de DVR.
Configurar el Google Cloud proyecto y la autenticación
Si no has creado un Google Cloud proyecto y credenciales, consulta la sección Antes de empezar.Requisitos previos
Debes crear los siguientes recursos antes de crear una sesión de DVR:
Crea un canal con una configuración de conservación y una clave de manifiesto.
Crear una sesión de DVR
Para crear una sesión de DVR, usa el método projects.locations.channels.dvrSessions.create
.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
PROJECT_NUMBER
: número de tu proyecto. Google Cloud Se encuentra en el campo Número de proyecto de la página Configuración de gestión de identidades y accesos.LOCATION
: la ubicación de tu canal. Elige una de las regiones admitidas.Mostrar ubicacionesus-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
: identificador definido por el usuario del canalDVR_SESSION_ID
: identificador definido por el usuario de la sesión de DVR.INTERVAL_START_TIME
: marca de tiempo de inicio de la época de Unix en el manifiesto de la emisión en directo original. Usa una marca de tiempo en formato RFC3339 UTC "Zulu" (por ejemplo,2014-10-02T15:01:23Z
).INTERVAL_END_TIME
: hora de inicio de la marca de tiempo de Unix en el manifiesto de la emisión en directo original. Usa una marca de tiempo en formato RFC3339 UTC "Zulu" (por ejemplo,2014-10-02T15:01:23Z
).
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "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 crea una operación de larga duración (OLD) que puedes usar para monitorizar el progreso de tu solicitud. Consulta más información en el artículo sobre cómo gestionar operaciones de larga duración .
Obtener detalles de la sesión de DVR
Para obtener los detalles de una sesión de DVR, utiliza el método projects.locations.channels.dvrSessions.get
.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
PROJECT_NUMBER
: número de tu proyecto. Google Cloud Se encuentra en el campo Número de proyecto de la página Configuración de gestión de identidades y accesos.LOCATION
: la ubicación de tu canal. Elige una de las regiones admitidas.Mostrar ubicacionesus-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
: identificador definido por el usuario del canalDVR_SESSION_ID
: identificador definido por el usuario de la sesión de DVR.
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "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" } } ] }
Las sesiones de DVR y los manifiestos generados se eliminan cuando vence el primer segmento según el retentionConfig
del canal principal. Si quieres que la sesión dure más que el periodo de conservación configurado, crea un clip del canal.
Actualizar una sesión de DVR
Para actualizar una sesión de DVR, usa el método projects.locations.channels.dvrSessions.patch
.
En el siguiente ejemplo se actualizan los periodos de tiempo de la grabación de vídeo usados por la sesión de grabación de vídeo. No todos los campos se pueden actualizar. Consulta la lista de campos admitidos.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
PROJECT_NUMBER
: número de tu proyecto. Google Cloud Se encuentra en el campo Número de proyecto de la página Configuración de gestión de identidades y accesos.LOCATION
: la ubicación de tu canal. Elige una de las regiones admitidas.Mostrar ubicacionesus-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
: identificador definido por el usuario del canalDVR_SESSION_ID
: identificador definido por el usuario de la sesión de DVR.INTERVAL_START_TIME
: marca de tiempo de inicio de la época de Unix en el manifiesto de la emisión en directo original. Usa una marca de tiempo en formato RFC3339 UTC "Zulu" (por ejemplo,2014-10-02T15:01:23Z
).INTERVAL_END_TIME
: hora de inicio de la marca de tiempo de Unix en el manifiesto de la emisión en directo original. Usa una marca de tiempo en formato RFC3339 UTC "Zulu" (por ejemplo,2014-10-02T15:01:23Z
).
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "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 crea una operación de larga duración (OLD) que puedes usar para monitorizar el progreso de tu solicitud. Consulta más información en el artículo sobre cómo gestionar operaciones de larga duración .
Las solicitudes de actualización se rechazan si el estado de la sesión de DVR es
LIVE
y la actualización podría sobrescribir el manifiesto de DVR actual. La única excepción es cuando la actualización acorta la sesión de la DVR (por ejemplo, si se cambia la hora de finalización a la hora actual o a una hora anterior). En ese caso, la sesión de la DVR se detiene inmediatamente y pasa al estado COOLDOWN
.
Después del periodo de bloqueo de 60 segundos, el manifiesto de la DVR se sobrescribe para reflejar las horas de inicio y de finalización actualizadas.
Listar sesiones de DVR
Para enumerar todas las sesiones de grabación que has creado para un canal, usa el método
projects.locations.channels.dvrSessions.list
.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
PROJECT_NUMBER
: número de tu proyecto. Google Cloud Se encuentra en el campo Número de proyecto de la página Configuración de gestión de identidades y accesos.LOCATION
: la ubicación de tu canal. Elige una de las regiones admitidas.Mostrar ubicacionesus-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
: identificador definido por el usuario del canal
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "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" } } ] }, ] }
Eliminar una sesión de DVR
Para eliminar una sesión de grabación de DVR, utiliza el método projects.locations.channels.dvrSessions.delete
. Este método elimina la tarea de sesión de DVR y el manifiesto generado.
Los recursos creados en el segmento de Cloud Storage se eliminan según la configuración de retención.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
PROJECT_NUMBER
: número de tu proyecto. Google Cloud Se encuentra en el campo Número de proyecto de la página Configuración de gestión de identidades y accesos.LOCATION
: la ubicación de tu canal. Elige una de las regiones admitidas.Mostrar ubicacionesus-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
: identificador definido por el usuario del canalDVR_SESSION_ID
: identificador definido por el usuario de la sesión de DVR.
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "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 crea una operación de larga duración (OLD) que puedes usar para monitorizar el progreso de tu solicitud. Consulta más información en el artículo sobre cómo gestionar operaciones de larga duración .