Gerenciar a reprodução de vídeo

Os controles de reprodução cumprem com as normas do RTSP e com a Especificação de Transmissão ONVIF (https://www.onvif.org/profiles/specifications/).

Resumo da gravação

Você pode obter uma visão geral de todos os vídeos gravados disponíveis no dispositivo usando o comando GetRecordingSummary. Isso não é necessário, mas fornece informações úteis antes de realizar uma pesquisa.

Você pode usar GetRecordingSummary e/ou GetMediaAttributes para obter o carimbo de data/hora da primeira e da última gravação, mas primeiro você deve habilitar a configuração Usar configurações de câmeras no Milestone Open Network Bridge plug-in no XProtect Management Client.

Use configuration from cameras check box in the Open Network Bridge Information pane.

Gere um proxy para o serviço RecordingSearchusando o ponto final retornado pelo GetServices. Gere objetos de solicitação e resposta, em seguida, chame GetRecordingSummary.

SearchBindingProxy searchProxy( &soapSearch );

std::string searchEndpoint = "http://" + host + "/onvif/recording_search_service";

_tse__GetRecordingSummary tse__GetRecordingSummary;

_tse__GetRecordingSummaryResponse tse__GetRecordingSummaryResponse;

result = searchProxy.GetRecordingSummary( searchEndpoint.c_str(), NULL,

&tse__GetRecordingSummary, &tse__GetRecordingSummaryResponse );

Pesquisar gravações

O método do serviço de pesquisa FindRecordings inicia uma pesquisa assíncrona na câmera. FindRecordings retorna um token que faz referência aos resultados da pesquisa. Mesmo que exista apenas uma gravação disponível, uma pesquisa é a maneira correta de obter uma referência para essa gravação.

Envie uma solicitação FindRecordings com os seguintes parâmetros obrigatórios:

Por exemplo:

boolean(//Track[TrackType = “Video”]),2016-12-06T08:07:43Z,99999999,20,99999999,20

Você receberá uma resposta com um SearchToken, que é exclusivo para os critérios de pesquisa.

Passe o SearchToken para GetRecordingSearchResults e você receberá uma lista com todas as faixas correspondentes ao critério de pesquisa.

Iniciando a reprodução

Quando estiver visualizando uma reprodução de vídeo, a velocidade padrão é 1 (reprodução normal na direção de avanço).

A reprodução é iniciada por meio do método REPRODUZIR do RTSP. Um intervalo pode ser especificado. Se nenhum intervalo for especificado, o fluxo é reproduzido do início até o final ou, se o fluxo for pausado, é retomado do ponto em que foi parado. Nesse exemplo, Range: npt=3-20 instrui o servidor do RTSP para iniciar a reprodução a partir do 3º segundo até o 20º segundo.

Por exemplo:

PLAY rtsp://user:1234@test01:554/vod/943ffaad-42be-4584-bc2c-c8238ed96373 RTSP/1.0

CSeq: 123

Session: 12345678

Require: onvif-replay

Range: npt=3-20

Rate-Control: no

Reprodução em recuo

Os dispositivos ONVIF podem fazer a reprodução reversa. A reprodução em recuo é indicada utilizando o campo da plataforma Escala com um valor negativo. Por exemplo, para reproduzir em recuo sem perda de dados, um valor de -1,0 seria usado.

O Milestone Open Network Bridgesuporta os valores [-32 : 32].

PLAY rtsp://user:1234@test01:554/vod/943ffaad-42be-4584-bc2c-c8238ed96373 RTSP/1.0

CSeq: 123

Session: 12345678

Require: onvif-replay

Range: clock=20090615T114900.440Z

Rate-Control: no

Scale: -1.0

Mudança de velocidade

A velocidade é controlada pela plataforma do Rate-Control do RTSP. Se Rate-Control=yes, o servidor está controlando a velocidade da reprodução. O fluxo é entregue em tempo real usando os mecanismos de temporização padrão do RTP. Se Rate-Control=no, o cliente está controlando a velocidade da reprodução. A repetição da reprodução com frequência controlada geralmente será utilizada somente por não clientes ONVIF específicos porque eles não especificarão Rate-Control=no.

Para controlar a velocidade da reprodução em um cliente, use os controladores fornecidos. Por exemplo, com o media player VLC, selecione Reprodução > Velocidade > Mais rápido ou Mais lento. Isso aumenta ou diminui a velocidade em 0,5.

Fim mais rápido e Fim mais lento alteram a velocidade em 0,25.

Gerenciar a reprodução do media player VLC com entradas na linha de comando

Você pode gerenciar a reprodução de vídeos no media player VLC usando linhas de comando. Consulte Ajuda da linha de comando VLC (https://wiki.videolan.org/VLC_command-line_help/) para obter detalhes.

Estes comandos permitem, por exemplo, inverter a reprodução e alterar a hora de início da reprodução.

Um exemplo típico de uma linha de comando:

>vlc.exe --rate=-1.0 --start-time=3600 "rtsp://user:1234@test01:554/vod/943ffaad-42be-4584-bc2c-c8238ed96373"

Onde:

A seguir, estão os controles de reprodução para media player VLC:

Código

ObjetivoValores

Uso

input-repeat=Repetições de entrada<integer [-2147483648 .. 2147483647]>

Número de vezes que a mesma entrada será repetida.

start-time=

Hora de início<float>

O fluxo começará nessa posição (em segundos).

stop-time=

Hora do fim<float>

O fluxo parará nessa posição (em segundos).

run-time=

Tempo de execução<float>

O fluxo será executado nessa duração (em segundos).

input-fast-seek

no-input-fast-seek

Busca rápida (padrão desativado) 

Durante a busca, dê preferência à velocidade em vez da precisão.

rate=

Vel. de reprodução<float>

Isto define a velocidade da reprodução (a velocidade nominal é de 1,0).

input-list=

Lista de entrada<string>

Você pode fornecer uma lista de entradas separadas por vírgula que serão concatenadas juntas após a entrada normal.

input-slave=

Entrada escravo (experimental)<string>

Isto permite a reprodução a partir de várias entradas ao mesmo tempo. Este recurso é experimental, nem todos os formatos são suportados. Use uma lista de entradas separadas por "#".

Recuperar gravações de um intervalo específico de tempo

Você pode solicitar a reprodução de vídeo de um momento específico usando o parâmetro opcional de URL clock em um link RTSP.

O formato deve ser: rtsp://[hostname]:[port]/vod/[camera_guid]?clock=[start_time]-[end_time]Z.

As propriedades [start_time] e [end_time] geralmente seguem o formato yyyyMMddTHHmmssZ (ano, mês, dia, letra fixa T, hora no formato 24 horas, minutos, segundos e letra fixa Z).

A propriedade end_time é opcional. Para solicitar apenas a hora de início, use o formato: rtsp://[hostname]:[port]/vod/[camera_guid]?clock=[start_time]-. Por exemplo, rtsp://onbhost:554/vod/3bf3b583-768a-43c7-ae74-38df708c4dbf?clock=20250830T140000Z- recuperará um fluxo que começa às 14:00 UTC no dia 30 de agosto de 2025.

A letra fixa Z indica o fuso horário UTC. Mesmo que você a omita (não se recomenda), o horário será considerado em UTC, salvo especificação em contrário. Para definir um fuso horário, use um dos sufixos compatíveis: