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

问题描述

我正在使用 Gstreamer 使用 Python 同时录制两个实时摄像机。我想查看摄像机是否同步流式传输,因此我访问缓冲区时间戳(pts 和 dts)、偏移量和持续时间并将它们全部保存到文件中。我对每个相机的时间戳似乎根本不规则这一事实感到困惑。我以 30fps 捕获,所以我预计连续时间戳之间的差异约为 33 毫秒,但我看到的却在 10 毫秒到 50 毫秒之间变化。而且两个时间戳pts和dts是一样的,offset和duration没有有效值。

这是我的输入管道

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,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,CLOCK_TIME_NONE,CLOCK_TIME_NONE
1,0:00:03.606427245,CLOCK_TIME_NONE
2,0:00:03.643383157,CLOCK_TIME_NONE
3,0:00:03.682110536,CLOCK_TIME_NONE
4,0:00:03.730528664,CLOCK_TIME_NONE
5,0:00:03.771878491,CLOCK_TIME_NONE

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

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)