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 GetRecordingSummary comando. 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.

Criar um proxy para o serviço RecordingSearch usando o ponto de extremidade do serviço retornado por GetServices. Crie objetos de solicitação e resposta, depois chameGetRecordingSummary.
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 haja apenas uma gravação disponível, uma pesquisa é a maneira adequada de obter uma referência para essa gravação.
Envie uma solicitação FindRecordings com os seguintes parâmetros obrigatórios:
SearchScope>IncludedSources>Token– você deve fornecer o token GUID da câmeraVocê receberá uma resposta com um
SearchToken, que é exclusivo para os critérios de pesquisa.SearchScope>RecordingInformationFilter– string com os seguintes parâmetros:timestamp(em formato UTC)maxTimeBefore(o tempo antes da marcação de tempo solicitada, em milissegundos)maxCountBefore(o número máximo de faixas antes da marcação de tempo solicitada)maxTimeAfter(o tempo após a marcação de tempo solicitada, em milissegundos)maxCountAfter(o número máximo de faixas após a marcação de tempo solicitada)
Por exemplo:
boolean(//Track[TrackType = “Video”]),2016-12-06T08:07:43Z,99999999,20,99999999,20
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 RTSP PLAY. Um intervalo pode ser especificado. Se nenhum intervalo for especificado, o fluxo é reproduzido do início ao fim ou, se o fluxo for pausado, é retomado no ponto em que foi pausado. Neste exemplo, Range: npt=3-20 instrui o servidor RTSP a iniciar a reprodução do terceiro segundo até o 20º segundo.
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 pelo cabeçalho do RTSPRate-Control. Se Rate-Control=yes, então o servidor está no controle da velocidade de reprodução. O fluxo é entregue em tempo real usando mecanismos de temporização padrão da RTP. SeRate-Control=no, então o cliente está no controle da velocidade de reprodução. A reprodução com frequência controlada normalmente só será usada por clientes não específicos da ONVIF porque eles não irão Rate-Control=noespecificar.
Para controlar a velocidade de reprodução em um cliente, use os controladores fornecidos. Por exemplo, com o reprodutor de mídia 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ídeo no reprodutor de mídia VLC usando linhas de comando. Consulte a ajuda da linha de comando do 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:
Frequência é o parâmetro de escala e velocidade
Hora de início são os segundos após o início do banco de dados
A seguir, estão os controles de reprodução para media player VLC:
Código | Objetivo | Valores | Uso |
|---|---|---|---|
| Repetições de entrada |
| Número de vezes que a mesma entrada será repetida. |
| Hora de início |
| O fluxo começará nessa posição (em segundos). |
| Hora do fim |
| O fluxo parará nessa posição (em segundos). |
| Tempo de execução |
| O fluxo será executado nessa duração (em segundos). |
| Busca rápida (padrão desativado) | Durante a busca, dê preferência à velocidade em vez da precisão. | |
| Vel. de reprodução |
| Isto define a velocidade da reprodução (a velocidade nominal é de 1,0). |
| Lista de entrada |
| Você pode fornecer uma lista de entradas separadas por vírgula que serão concatenadas juntas após a entrada normal. |
| Entrada escravo (experimental) |
| 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 end_time propriedade é 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- você recuperará um fluxo que começa às 14:00 UTC em 30 de agosto de 2025.
A letra fixa Z indica o fuso horário UTC. Mesmo que você o omita (não recomendado), a hora ainda é considerada UTC, a menos que especificado de outra forma. Para definir um fuso horário, use um dos sufixos compatíveis:
Uma letra fixa
pou+seguida porhhmmindica um deslocamento UTC positivo. Por exemplo,20250830T140000p0100significa UTC+01:00 (Horário da Europa Central).Uma letra fixa
mseguida porhhmmindica um deslocamento UTC negativo. Por exemplo,20250830T140000m0800significa UTC-08:00 (Horário do Pacífico).