Gestisci riproduzione video
I controlli di riproduzione sono conformi agli standard RTSP e alle specifiche ONVIF per lo streaming (https://www.onvif.org/profiles/specifications/).
Riepilogo registrazione
È possibile ottenere una panoramica di tutti i video registrati disponibili sul dispositivo utilizzando il GetRecordingSummary comando. Non è obbligatorio, ma fornisce informazioni utili prima di condurre una ricerca.
È possibile utilizzare GetRecordingSummary e/o GetMediaAttributes per ottenere l'etichetta temporale della prima e dell'ultima registrazione, ma è prima necessario abilitare l'impostazione Usa configurazioni da telecamere sul Milestone Open Network Bridge plug-in XProtect Management Client.

Creare un proxy per il RecordingSearch servizio utilizzando l'endpoint del servizio restituito da GetServices. Creare oggetti di richiesta e risposta, quindi chiamare 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 );
Cerca registrazioni
Il metodo del servizio Search FindRecordings avvia una ricerca asincrona sulla telecamera. FindRecordings restituisce un token che fa riferimento ai risultati della ricerca. Anche se è disponibile una sola registrazione, una ricerca è il modo corretto per ottenere un riferimento per quella registrazione.
Invia una FindRecordings richiesta con i seguenti parametri obbligatori:
SearchScope>IncludedSources>Token– fornire il token GUID della telecameraSi riceverà una risposta con un
SearchToken, univoco per i criteri di ricerca.SearchScope>RecordingInformationFilter– stringa con i seguenti parametri:timestamp(in formato UTC)maxTimeBefore(il tempo prima dell'etichetta temporale richiesta, in millisecondi)maxCountBefore(il numero massimo di tracce prima dell'etichetta temporale richiesta)maxTimeAfter(il tempo dopo l'etichetta temporale richiesta, in millisecondi)maxCountAfter(il numero massimo di tracce dopo l'etichetta temporale richiesta)
Ad esempio:
boolean(//Track[TrackType = “Video”]),2016-12-06T08:07:43Z,99999999,20,99999999,20
Passare il SearchToken a GetRecordingSearchResults e si otterrà un elenco con tutti i tracciamenti corrispondenti ai criteri di ricerca.
Avvio della riproduzione
Quando si visualizza la riproduzione video, la velocità predefinita è 1 (riproduzione normale in avanti).
La riproduzione viene avviata tramite il metodo RTSP PLAY. È possibile specificare un intervallo. Se non viene specificato alcun intervallo, il flusso viene riprodotto dall'inizio alla fine o, se il flusso è in pausa, viene ripreso nel punto in cui è stato messo in pausa. In questo esempio, Range: npt=3-20 indica al server RTSP di avviare la riproduzione dal terzo al ventesimo secondo.
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
Riproduzione inversa
I dispositivi ONVIF potrebbero supportare la riproduzione inversa. La riproduzione inversa è indicata utilizzando il campo di intestazione Scala con un valore negativo. Ad esempio, per riprodurre al contrario senza perdita di dati, viene utilizzato un valore di –1,0.
Il Milestone Open Network Bridge supporta i valori [-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
Cambia velocità
La velocità è controllata dall'intestazione RTSPRate-Control. Se Rate-Control=yes, il server controlla la velocità di riproduzione. Il flusso viene fornito in tempo reale utilizzando meccanismi di temporizzazione RTP standard. Se Rate-Control=no, il client ha il controllo della velocità di riproduzione. La riproduzione controllata dalla frequenza viene in genere utilizzata solo da client non specifici di ONVIF perché non Rate-Control=nospecificano .
Per controllare la velocità di riproduzione in un client, utilizzare i controller forniti. Ad esempio, con il lettore multimediale VLC, selezionare Riproduzione > Velocità > Più veloce o più lento. Questo aumenta o diminuisce la velocità di 0,5.
Più veloce Fine e più lento Fine modifica la velocità di 0,25.
Gestione della riproduzione del riproduttore multimediale VLC con voci della riga di comando
È possibile gestire la riproduzione video nel lettore multimediale VLC utilizzando le righe di comando. Per ulteriori informazioni, consultare la guida della riga di comando di VLC (https://wiki.videolan.org/VLC_command-line_help/).
Tali comandi consentono, ad esempio, di invertire la riproduzione e modificare l'ora di inizio della riproduzione.
Un esempio di una tipica riga di comando:
>vlc.exe --rate=-1.0 --start-time=3600 "rtsp://user:1234@test01:554/vod/943ffaad-42be-4584-bc2c-c8238ed96373"
In cui:
Velocità è il parametro di scala e velocità
Il tempo di avvio è di secondi dopo l'avvio del database
Di seguito sono elencati i comandi di riproduzione per il lettore multimediale VLC:
Codice | Scopo | Valori | Uso |
|---|---|---|---|
| Ripetizioni input |
| Numero di volte che lo stesso input verrà ripetuto. |
| Ora di inizio |
| Il flusso inizierà da questa posizione (in secondi). |
| Ora di arresto |
| Il flusso si arresterà in questa posizione (in secondi). |
| Tempo di esecuzione |
| Il flusso eseguirà questa durata (in secondi). |
| Ricerca rapida (predefinita disabilitata) | Favorisci la velocità rispetto alla precisione durante la ricerca. | |
| Velocità di riproduzione |
| Definisce la velocità di riproduzione (la velocità nominale è 1,0), |
| Elenco input |
| È possibile fornire un elenco separato da virgole di input che verranno concatenati insieme dopo quello normale. |
| Input slave (sperimentale) |
| Ciò consente di riprodurre da più input contemporaneamente. Questa funzione è sperimentale, non tutti i formati sono supportati. Utilizzare un elenco di input separato '#'. |
Recupera le registrazioni da un intervallo di tempo specifico
È possibile richiedere la riproduzione video in un determinato momento utilizzando il parametro URL opzionale clock in un link RTSP.
Il formato è: rtsp://[hostname]:[port]/vod/[camera_guid]?clock=[start_time]-[end_time]Z.
Le proprietà [start_time] e [end_time] seguono in genere il formato yyyyMMddTHHmmssZ (anno, mese, giorno, lettera fissa T, ora 24 ore, minuti, secondi e lettera fissa Z).
La end_time proprietà è facoltativa. Per richiedere solo l'ora di inizio, utilizzare il formato: rtsp://[hostname]:[port]/vod/[camera_guid]?clock=[start_time]-. Ad esempio, rtsp://onbhost:554/vod/3bf3b583-768a-43c7-ae74-38df708c4dbf?clock=20250830T140000Z- recupererà un flusso che inizia alle 14:00 UTC del 30 agosto 2025.
La lettera fissa Z indica il fuso orario UTC. Anche se omesso (non consigliato), l'ora è ancora considerata UTC, salvo diversa indicazione. Per impostare un fuso orario, utilizzare uno dei suffissi supportati:
Una lettera fissa
po+seguita dahhmmindica un offset UTC positivo. Ad esempio,20250830T140000p0100significa UTC+01:00 (ora dell'Europa centrale).Una lettera fissa
mseguita dahhmmindica un offset UTC negativo. Ad esempio,20250830T140000m0800significa UTC-08:00 (ora del Pacifico).