簡體   English   中英

RTCP 發送方報告中的 NTP 時間戳不正確

[英]NTP Timestamp in RTCP Sender Report is Incorrect

我正在使用亞馬遜的示例代碼將 rtsp stream 從 IP 攝像頭上傳到 Kinesis 視頻流。 代碼在這里找到: https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp/blob/master/samples/kvs_gstreamer_sample.cpp

我想從攝像機獲取每一幀的 NTP 時間。 我的理解是,這樣做的第一步是讀取 RTCP 發送方報告以獲取相機 RTP 和 NTP 時間的同步時間。

為此,我在接收 RTCP 數據包時添加了一個回調,如下所示:

g_signal_connect_after(session, "on-receiving-rtcp", G_CALLBACK(on_rtcp_callback), data);

然后,在從緩沖區獲取 SR 數據包后的回調 function 中,我嘗試獲取兩個時間戳:

gst_rtcp_packet_sr_get_sender_info (packet, ssrc, ntptime, rtptime, packet_count, octet_count);

將我在此處獲得的“ntptime”和“rtptime”變量與我在 Wireshark 中看到的進行比較時,rtp 時間完全匹配。 然而,我在 C++ 代碼中得到的 NTP 時間是非常錯誤的,它顯示了大約一個月前的時間,而 Wireshark 數據包顯示的 NTP 時間看起來是正確的。

是否有某些設置導致 gstreamer 覆蓋我的發件人報告數據包中的 NTP 時間,如果是這樣,我該如何禁用該設置?

事實證明,提供的 gst_rtcp_packet_sr_get_sender_info 不是我以前見過的任何格式的 NTP 時間。 要轉換為有意義的時間戳,您必須使用 gst_rtcp_ntp_to_unix,然后它會為您提供 unix 時間,這實際上是有意義的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM