Os controles de reprodução cumprem com as normas do RTSP e com a Especificação de Transmissão ONVIF.
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 a marcação de tempo da primeira e da última gravação, mas você deve primeiro ativar a definição Usar configurações de câmeras na guia Configurações avançadas no plug-in Milestone ONVIF Bridge no XProtect Management Client.
Gere um proxy para o serviço RecordingSearch
usando 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:
SearchScope
> IncludedSources
> Token
– você deve fornecer o token GUID da câmeraSearchScope
> 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
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 Reprodução 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. Neste exemplo, "Intervalo: npt=3-20" instrui o servidor de RTSP para iniciar a reprodução a partir do terceiro segundo até o vigésimo segundo.
Por exemplo:
REPRODUZIR rtsp://basic:basic@bgws-pvv-04:554/vod/943ffaad-42ser-4584-bc2c-c8238ed96373 RTSP/1.0
CSeq: 123
Sessão: 12345678
Necessário: onvif-replay
Intervalo: npt=3-20
Controle de Frequência: nenhum
Reprodução em recuo
Os dispositivos ONVIF PODEM suportar a reprodução em recuo. 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 ONVIF Bridge suporta os valores [-32 : 32].
REPRODUZIR rtsp://basic:basic@bgws-pvv-04:554/vod/943ffaad-42ser-4584-bc2c-c8238ed96373 RTSP/1.0
CSeq: 123
Sessão: 12345678
Necessário: onvif-replay
Intervalo: relógio=20090615T114900.440Z
Controle de Frequência: nenhum
Escala: -1.0
Mudança de velocidade
A velocidade é controlada pela plataforma do Controle de Frequência do RTSP. Se "Controle de Frequência=sim", então o servidor está no controle da velocidade de reprodução. O fluxo é entregue em tempo real usando os mecanismos de temporização padrão do RTP. Se "Controle de Frequência=Não", então o cliente está no controle da velocidade de reprodução. A reprodução com frequência controlada normalmente será utilizada apenas por não clientes ONVIF específicos porque eles não irão especificar "Controle de Frequência=Não".
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 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 --frequência=-1.0 --hora-de-início=3600 "rtsp://basic:basic@bgws-pvv-04:554/vod/943ffaad-42be-4584-bc2c-c8238ed96373"
Onde:
A seguir, estão os controles de reprodução para o media player VLC:
entrada-repetir= |
<integer [-2147483648 .. 2147483647]> Repetições de entrada Número de vezes que a mesma entrada será repetida |
hora-de-início= |
<float> Hora de início O fluxo vai começar nesta posição (em segundos) |
hora-do-fim= |
<float> Hora do fim O fluxo irá parar nesta posição (em segundos) |
tempo-de-execução= |
<float> Tempo de execução O fluxo será executado nesta duração (em segundos) |
busca--rápida-pela-entrada nenhuma-busca-rápida-pela-entrada |
Busca rápida (padrão desativado) Favorecer a velocidade sobre a precisão durante a busca |
frequência= |
<float> Vel. de reprodução Isto define a velocidade de reprodução (a velocidade nominal é de 1,0) |
lista-de-entrada= |
<string> Lista de entrada Você pode dar uma lista de entradas separadas por vírgula que serão concatenadas juntas após a normal |
entrada-escravo= |
<string> 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 '#' |
marcadores= |
<string> Lista de marcadores para um fluxo Você pode dar manualmente uma lista de marcadores para um fluxo na forma "{name=bookmark-name,time=optional-time-offset,bytes=optional-byte-off set},{...}" |
© 2019 Milestone Systems A/S