【发布时间】:2022-08-14 17:35:20
【问题描述】:
我正在使用uridecodebin 捕获实时流,并将帧输入appsink。我需要以 UTC 或系统时间记录接收到的帧的时间戳。到目前为止,我设法收到了 PTS 时间戳:
guint64 timestamp = GST_BUFFER_TIMESTAMP(buffer)
我可以从中获得运行时间和流时间:
guint64 pos = gst_segment_to_stream_time(segment, GST_FORMAT_TIME, timestamp);
guint64 run_time = gst_segment_to_running_time(segment, GST_FORMAT_TIME, timestamp)
对于第一帧pos 始终为0,但run_time 在7008 ms 附近。这是为什么?我不明白那个时间是从哪里来的。
对于问题的主要部分,我如何获得可以将appsink帧与系统时间或UTC中捕获的实际时间帧尽可能接近的时间戳?
标签: gstreamer