8
votes

H.264 Temps Absolute RTSP

est-il possible de lire un horodatage absolu d'un flux H.264 envoyé auge RTSP à partir d'une caméra d'axe?

Il sera nécessaire de savoir quand le cadre a été pris par la caméra.

merci Andrea


0 commentaires

4 Réponses :


3
votes

Les horodatages sont contenus dans le flux RTP. Le RTSP est un protocole qui peut être utilisé pour démarrer / contrôler une session de média RTP. Je suppose que RTP utilisée et que vous pouvez regarder l'en-tête RTP ici .


2 commentaires

Mais je pense que l'horodatage poursuivi par le protocole RTP est relatif, pas absolu. N'est-ce pas? TimeStamp: 32 octets; donne l'instant d'échantillonnage du premier octet audio / vidéo dans le paquet; utilisé pour éliminer la jitter introduit par la fréquence de l'horloge de réseau dépend des applications - une valeur initiale aléatoire - plusieurs paquets peuvent avoir des horodatages égaux (par exemple, un même cadre vidéo) ou même dans un trouble (par exemple, des cadres interpolés dans MPEG


Si je vous comprends correctement, vous voulez le temps de présentation original. Les rapports de l'expéditeur RTCP peuvent être utilisés à cette fin: ils contiennent à la fois un horodatage RTP et un horodatage NTP. Voir Outils.ietf.org/html/rfc3550#ssection-6.4.1 et Outils.ietf.org/html/rfc3550#ssection-4



5
votes

Comme Ralf a déjà dit - les horodatages RTP sont liés à une horloge aléatoire - elles ne sont utiles que pour calculer la différence entre deux cadres (ou des paquets RTP en général). Pour synchroniser ces valeurs relatives à une horloge murale, vous pouvez utiliser l'expéditeur RTCP - il suffit de regarder les liens RALF fournis.

Pour les produits d'axe à l'aide de H.264, cela fonctionne plutôt bien. Si vous utilisez également MPEG4, le micrologiciel de l'axe est une buggy et que les horodatages absolus de RTCP SR ne sont pas fiables - dans ce cas, vous devez synchroniser les horodatages relatifs RTP à votre climat murale.


0 commentaires

4
votes

En supposant que le micrologiciel des caméras fonctionne correctement et il est synchronisé avec NTP régulièrement, vous pouvez extraire l'horodatage absolu du rapport de l'expéditeur RTCP. Mais cette fonctionnalité n'est pas disponible dans l'API de la bibliothèque FFMPEG, vous devez utiliser l'en-tête LibavFormat / RTSP.H afin d'accéder à des structures de données internes. Et ensuite, vous devez calculer l'horodatage NTP pour chaque image: xxx

exemple complet est Ici .


4 commentaires

Intéressant. Est rtp_demux_context-> last_rtcp_ntp_time supposé être constant? Sur mon appareil photo, c'est toujours -9223372036854775808 . first_rtcp_ntp_time aussi. image_ntp_time me donne l'heure relative depuis le début du flux plutôt que l'horloge murale cependant.


Non, last_rtcp_ntp_time devrait être mis à jour périodiquement. Dans mon expérience, toutes les caméras ne mettent pas en œuvre le protocole de manière appropriée. J'ai testé avec succès avec Dahua et Hikvision, mais avec HIDWATCH était un problème similaire que le vôtre


Le mien est en fait une hikvision. Quel modèle Hikvision est à vous?


Malheureusement, je ne me souviens pas du modèle, c'était il y a 3 ans.



0
votes

Il existe un programme appelé OpenRTSP ( LIVEMEDIA-UTILS CODE> ON Debian, live-media code> sur une arche) qui récupère un paramètre o code>: xxx pré>

sans avoir lu le code source, je pense que Soyez le tampon code> NTS code> à partir du expéditeur Signaler des paquets RTCP Islam Sabyrgaliyev mentionné. P>

date -d@$( echo $(openRTSP -r rtsp://109.98.78.106 2>&1 | grep -Po '(?<=o=-\s)\d+' | head -n1 ) / 1000000 | bc )
Thu Feb 11 10:46:07 PM CET 2021


0 commentaires