Gérer la lecture de vidéos
Les commandes de lecture sont conformes aux normes RTSP et à la spécification de diffusion ONVIF (https://www.onvif.org/profiles/specifications/).
Résumé de l’enregistrement
Vous pouvez obtenir une vue d’ensemble de toutes les vidéos enregistrées disponibles sur le périphérique en utilisant la commande GetRecordingSummary . Ceci n’est pas obligatoire, mais fournit des informations utiles avant d’effectuer une recherche.
Vous pouvez utiliser GetRecordingSummary et/ou GetMediaAttributes pour obtenir l’horodatage du premier et du dernier enregistrement, mais vous devez d’abord activer le paramètre Utiliser les configurations des caméras sur le plug-in Milestone Open Network Bridge dans le XProtect Management Client.

Créez un proxy pour le service RecordingSearch en utilisant le point de terminaison du service renvoyé par GetServices. Créez des objets de demande et de réponse, puis appelez 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 );
Recherche d’enregistrement
La méthode Service de recherche lance FindRecordings une recherche asynchrone sur la caméra. FindRecordings renvoie un jeton qui référence les résultats de la recherche. Même s’il n’y a qu’un seul enregistrement disponible, une recherche est le moyen approprié d’obtenir une référence pour cet enregistrement.
Envoyez une requête FindRecordings avec les paramètres obligatoires suivants :
SearchScope>IncludedSources>Token– vous devez fournir le jeton de la caméra GUIDVous recevrez une réponse avec
SearchToken, qui est unique pour les critères de recherche.SearchScope>RecordingInformationFilter– schaîne avec les paramètres suivants :timestamp(au format UTC)maxTimeBefore(l’heure avant l’estampille temporelle demandée, en millisecondes)maxCountBefore(le nombre maximum de pistes avant l’estampille temporelle demandée)maxTimeAfter(L’heure après l’estampille temporelle demandée, en millisecondes)maxCountAfter(le nombre maximum de pistes après l’estampille temporelle demandée)
Par exemple :
boolean(//Track[TrackType = “Video”]),2016-12-06T08:07:43Z,99999999,20,99999999,20
Transmettez le SearchToken à GetRecordingSearchResults pour obtenir une liste comportant toutes les pistes correspondant aux critères de recherche.
Lancement de la lecture
Lors de la lecture de vidéos, la vitesse par défaut est 1 (lecture normale en direction avant).
La lecture est initiée au moyen de la méthode RTSP PLAY. Une plage peut être spécifiée. Si aucune plage n’est spécifiée, le flux est lu à partir du début et jusqu’à la fin, ou, s’il est mis en pause, il reprend au point où il s’était arrêté. Dans cet exemple, Range: npt=3-20 demande au serveur RTSP de commencer la lecture à partir de la troisième seconde jusqu’à la 20e seconde.
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
Lecture arrière
Les périphériques ONVIF peuvent prendre en charge la lecture arrière. La lecture arrière est indiquée par un champ « Échelle » doté d’une valeur négative dans l’en-tête. Par exemple, pour lire un fichier en arrière sans perdre de données, une valeur de -1,0 sera utilisée.
Le Milestone Open Network Bridge prend en charge des valeurs comprises entre [-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
Changement de vitesse
La vitesse est contrôlée par l’en-tête de Rate-Control RTSP. Si Rate-Control=yes, le serveur contrôle la vitesse de lecture. Le flux est diffusé en temps réel à l’aide des mécanismes temporels standard de RTP. Si Rate-Control=nooui, le client contrôle la vitesse de lecture. La lecture à débit contrôlé est généralement utilisée uniquement par les clients spécifiques non ONVIF, car ils ne Rate-Control=nospécifient pas.
Pour contrôler la vitesse de lecture dans un client, utilisez les commandes fournies. Par exemple, avec le lecteur multimédia VLC, sélectionnez Lecture > Vitesse > Plus rapide ou plus lent. Cela augmente ou diminue la vitesse de 0,5.
Plus vite (fin) et Moins vite (fin) change la vitesse de 0,25.
Gérer la lecture sur le lecture multimédia VLC en saisissant des lignes de commande
Vous pouvez gérer la lecture vidéo dans le lecteur multimédia VLC en utilisant des lignes de commande. Référez-vous à l’aide de la ligne de commande VLC (https://wiki.videolan.org/VLC_command-line_help/) pour plus de détails.
Ces commandes vous permettent, par exemple, de lire un fichier à l’envers et de changer le point de début de la lecture.
Voici un exemple d’une ligne de commande typique :
>vlc.exe --rate=-1.0 --start-time=3600 "rtsp://user:1234@test01:554/vod/943ffaad-42be-4584-bc2c-c8238ed96373"
Où :
Le débit est le paramètre d’échelle et de vitesse
Start-time (l’horaire de début) est exprimé en secondes après le début sur la base de données
Voici les commandes de lecture pour le lecteur multimédia VLC :
Code | Objectif | Valeurs | Utilisation |
|---|---|---|---|
| Répétition des entrées |
| Nombre de répétitions de la même entrée |
| Début Temps |
| Le flux démarrera à cette position (en secondes). |
| Heure d’arrêt |
| Le flux s’arrêtera à cette position (en secondes). |
| Durée d’exécution |
| Le flux sera diffusé sur cette durée (en secondes). |
| Recherche rapide (désactivée par défaut) | Accorde la priorité à la vitesse plutôt qu’à la précision pendant la recherche. | |
| Vitesse de lecture |
| Ceci définit la vitesse de lecture (vitesse nominale de 1,0). |
| Liste d’entrées |
| Vous pouvez fournir une liste d’entrées séparées par des virgules, qui seront concaténées après l’entrée normale. |
| Esclave d’entrée (expérimental) |
| Ceci vous permet de diffuser à partir de plusieurs entrées en même temps. Cette fonction est expérimentale et certains formats ne sont pas pris en charge. Utilisez une liste d’entrées séparées par un « # ». |
Récupérer des enregistrements d’une plage de temps précise
Vous pouvez requérir la lecture vidéo pour un moment spécifique en utilisant le paramètre facultatif d’URL clock dans un lien RTSP.
Le format est alors le suivant : rtsp://[hostname]:[port]/vod/[camera_guid]?clock=[start_time]-[end_time]Z.
Les propriétés [start_time] et [end_time] suivent généralement le format yyyyMMddTHHmmssZ (année, mois, jour, lettre fixe T, heure au format 24 h, minutes, secondes et lettre fixe Z).
La propriété end_time est facultative. Pour demander uniquement l’heure de début, utilisez le format suivant : rtsp://[hostname]:[port]/vod/[camera_guid]?clock=[start_time]-. Par exemple, rtsp://onbhost:554/vod/3bf3b583-768a-43c7-ae74-38df708c4dbf?clock=20250830T140000Z- récupérera un flux qui commence à 14h00 UTC le 30 août 2025.
La Z à lettre fixe indique le fuseau horaire UTC. Même si vous l’omettez (ce n’est pas recommandé), l’heure est toujours considérée comme UTC, sauf indication contraire. Pour définir un fuseau horaire, utilisez l’un des suffixes pris en charge :
Un
pde lettre fixe ou+suivi dehhmmindique un décalage UTC positif. Par exemple,20250830T140000p0100signifie UTC+01:00 (Heure d’Europe centrale).Un
mde lettre fixe suivi dehhmmindique un décalage UTC négatif. Par exemple,20250830T140000m0800signifie UTC-08:00 (heure du Pacifique).