Esta página mostra como criar e gerenciar sessões de gravador de vídeo digital (DVR) da API Live Stream. Uma sessão de DVR é um subrecurso de um canal. Você pode usar uma sessão de DVR para gravar uma transmissão ao vivo futura. Para mais informações, consulte o guia separado Criar uma sessão de DVR.
Configurar o projeto e a autenticação Google Cloud
Se você não criou um projetoGoogle Cloud e credenciais, consulte Antes de começar.Pré-requisitos
É necessário 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 de manifesto.
Criar uma sessão de DVR
Para criar uma sessão de DVR, use o
método
projects.locations.channels.dvrSessions.create.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
PROJECT_NUMBER: o número do projeto Google Cloud , localizado no campo Número do projeto na página Configurações do IAM.LOCATION: o local em que seu canal está localizado. Use uma das regiões com suporte.Mostrar locaisus-central1us-east1us-east4us-west1us-west2northamerica-northeast1southamerica-east1asia-east1asia-east2asia-south1asia-northeast1asia-southeast1australia-southeast1europe-north1europe-west1europe-west2europe-west3europe-west4
CHANNEL_ID: um identificador definido pelo usuário para o canalDVR_SESSION_ID: um identificador definido pelo usuário para a sessão de DVRINTERVAL_START_TIME: o horário da marcação da época Unix no manifesto original da transmissão ao vivo; usa um carimbo de data/hora no formato "Zulu" UTC RFC3339 (por exemplo,2014-10-02T15:01:23Z).INTERVAL_END_TIME: o horário da época Unix de marcação no manifesto original da transmissão ao vivo; usa um carimbo de data/hora no formato "Zulu" UTC RFC3339 (por exemplo,2014-10-02T15:01:23Z).
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{
"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
}
Esse comando cria uma operação de longa duração (LRO, na sigla em inglês) que pode ser usada para acompanhar o andamento da solicitação. Consulte Gerenciar operações de longa duração para mais informações.
Receber detalhes da sessão de DVR
Para conferir os detalhes de uma sessão de DVR, use o
método
projects.locations.channels.dvrSessions.get.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
PROJECT_NUMBER: o número do projeto Google Cloud , localizado no campo Número do projeto na página Configurações do IAM.LOCATION: o local em que seu canal está localizado. Use uma das regiões com suporte.Mostrar locaisus-central1us-east1us-east4us-west1us-west2northamerica-northeast1southamerica-east1asia-east1asia-east2asia-south1asia-northeast1asia-southeast1australia-southeast1europe-north1europe-west1europe-west2europe-west3europe-west4
CHANNEL_ID: um identificador definido pelo usuário para o canalDVR_SESSION_ID: um identificador definido pelo usuário para a sessão de DVR
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{
"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 o retentionConfig do canal pai. Se você quiser que a sessão
dure mais do que a janela de retenção configurada,
crie um clipe de canal.
Atualizar uma sessão de DVR
Para atualizar uma sessão de DVR, use o
método
projects.locations.channels.dvrSessions.patch.
O exemplo a seguir atualiza as janelas de tempo do DVR usadas pela sessão do DVR. Nem todos os campos podem ser atualizados. Consulte a lista de campos compatíveis.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
PROJECT_NUMBER: o número do projeto Google Cloud , localizado no campo Número do projeto na página Configurações do IAM.LOCATION: o local em que seu canal está localizado. Use uma das regiões com suporte.Mostrar locaisus-central1us-east1us-east4us-west1us-west2northamerica-northeast1southamerica-east1asia-east1asia-east2asia-south1asia-northeast1asia-southeast1australia-southeast1europe-north1europe-west1europe-west2europe-west3europe-west4
CHANNEL_ID: um identificador definido pelo usuário para o canalDVR_SESSION_ID: um identificador definido pelo usuário para a sessão de DVRINTERVAL_START_TIME: o horário da marcação da época Unix no manifesto original da transmissão ao vivo; usa um carimbo de data/hora no formato "Zulu" UTC RFC3339 (por exemplo,2014-10-02T15:01:23Z).INTERVAL_END_TIME: o horário da época Unix de marcação no manifesto original da transmissão ao vivo; usa um carimbo de data/hora no formato "Zulu" UTC RFC3339 (por exemplo,2014-10-02T15:01:23Z).
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{
"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
}
Esse comando cria uma operação de longa duração (LRO, na sigla em inglês) que pode ser usada para acompanhar o andamento da solicitação. Consulte Gerenciar operações de longa duração para mais informações.
As solicitações de atualização são rejeitadas se o estado da sessão do DVR for
LIVE e a atualização puder substituir o manifesto atual do DVR. A única
exceção é quando a atualização encurta a sessão do DVR (por exemplo,
mudando o horário de término para o presente ou o passado). Nesse caso, a sessão
é interrompida imediatamente e entra no estado COOLDOWN.
Após o período de espera de 60 segundos, o manifesto do DVR é substituído para refletir
os horários de início e término atualizados.
Listar sessões de DVR
Para listar todas as sessões de DVR criadas para um canal, use o
método
projects.locations.channels.dvrSessions.list.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
PROJECT_NUMBER: o número do projeto Google Cloud , localizado no campo Número do projeto na página Configurações do IAM.LOCATION: o local em que seu canal está localizado. Use uma das regiões com suporte.Mostrar locaisus-central1us-east1us-east4us-west1us-west2northamerica-northeast1southamerica-east1asia-east1asia-east2asia-south1asia-northeast1asia-southeast1australia-southeast1europe-north1europe-west1europe-west2europe-west3europe-west4
CHANNEL_ID: um identificador definido pelo usuário para o canal
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{
"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"
}
}
]
},
]
}
Excluir uma sessão de DVR
Para excluir uma sessão de DVR, use o
método
projects.locations.channels.dvrSessions.delete. Esse método exclui a tarefa da sessão do DVR e o manifesto gerado.
Os recursos criados no bucket do Cloud Storage são excluídos de acordo com a
configuração de retenção.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
PROJECT_NUMBER: o número do projeto Google Cloud , localizado no campo Número do projeto na página Configurações do IAM.LOCATION: o local em que seu canal está localizado. Use uma das regiões com suporte.Mostrar locaisus-central1us-east1us-east4us-west1us-west2northamerica-northeast1southamerica-east1asia-east1asia-east2asia-south1asia-northeast1asia-southeast1australia-southeast1europe-north1europe-west1europe-west2europe-west3europe-west4
CHANNEL_ID: um identificador definido pelo usuário para o canalDVR_SESSION_ID: um identificador definido pelo usuário para a sessão de DVR
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{
"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
}
Esse comando cria uma operação de longa duração (LRO, na sigla em inglês) que pode ser usada para acompanhar o andamento da solicitação. Consulte Gerenciar operações de longa duração para mais informações.