Gstreamer时间戳错误值,缓冲区没有偏移量或持续时间

2024-05-02 21:14:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Gstreamer用Python同时录制两个实时摄像机。我想看看摄像机是否同步流,所以我访问缓冲区时间戳(pts和dts)、偏移量和持续时间,并将它们全部保存到文件中。我很困惑的是,每台相机的时间戳似乎都不规则。我以30fps的速度捕获,因此我预计连续时间戳之间的差异约为33ms,但我看到的是10ms到50ms之间的差异。此外,两个时间戳pts和dts是相同的,并且偏移量和持续时间没有有效值

这是我的输入管道

def gstreamer_in(cam_id):
    """ Creates string with gstreamer input pipeline """
    gst_in =  ('nvarguscamerasrc sensor-id={} ! ' 
    'video/x-raw(memory:NVMM), height=1080, width=1920, framerate=(fraction)30/1, format=NV12 ! ' 
    'nvvidconv ! video/x-raw, height=1080, width=1920, format=BGRx ! '
    'videoconvert ! video/x-raw, format=BGR ! '
    'appsink emit-signals=true sync=false').format(cam_id)
    return gst_in

这里是我得到的一些值

N frame,dts,pts,offset,duration
0,0:00:03.527208860,0:00:03.527208860,CLOCK_TIME_NONE,CLOCK_TIME_NONE
1,0:00:03.606427245,0:00:03.606427245,CLOCK_TIME_NONE,CLOCK_TIME_NONE
2,0:00:03.643383157,0:00:03.643383157,CLOCK_TIME_NONE,CLOCK_TIME_NONE
3,0:00:03.682110536,0:00:03.682110536,CLOCK_TIME_NONE,CLOCK_TIME_NONE
4,0:00:03.730528664,0:00:03.730528664,CLOCK_TIME_NONE,CLOCK_TIME_NONE
5,0:00:03.771878491,0:00:03.771878491,CLOCK_TIME_NONE,CLOCK_TIME_NONE

我是Gstreamer的初学者,任何关于理解正在发生的事情的帮助都将不胜感激


Tags: innoneidformatrawtimevideo时间