问题描述
我正在使用 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 (将#修改为@)