OpenCV FPS速率在我的一台相机中降低

ep6jt1vc  于 2023-08-06  发布在  其他
关注(0)|答案(1)|浏览(82)

我有三个罗技Brio摄像头,我使用OpenCV从不同Angular 同时录制视频。为了实现这一点,我打开了三个线程,并在每个线程中创建一个捕获和VideoWriter对象,以捕获视频帧并将其写入文件。我将每个相机的FPS(每秒帧数)设置为60。然而,当我回顾录音时,我注意到视频之间的帧率存在差异。具体地,两个相机一致地保持其帧速率,而第三相机随着时间逐渐降低其帧速率。
例如,在
camera1_frames_time:2019 - 02 - 16 00:00:00
camera2_frames_time:2019 - 02 - 16 00:00:00
camera3_frames_time:2019 - 01 - 16 00:00:00
尽管我努力解决这个问题,但我已经尝试了几种可能的修复方法,但都没有成功:

  • 我试图通过更换摄像机电缆来解决问题。
  • 我还试验了不同的USB端口,看看这是否会有所不同。
  • 为了将问题隔离到特定的相机,我购买了一台新相机,并在有问题的相机旁边进行了测试,但帧率仍然下降。
  • 尝试用两个摄像头拍摄(“有问题”和好的一个,FPS速率仍然下降)
  • 我甚至进行了测试,只用有问题的相机拍摄视频,但帧率继续下降。
  • 在最后一次尝试中,我用一个全新的相机替换了有问题的相机,但问题仍然存在。
  • 此外,我使用OBS(开放广播软件)将相机配置重置为默认设置,看看这是否能解决问题。

我有一个运行的时钟,显示毫秒,这有助于我调试帧速率。该脚本在Ubuntu 20上使用Python 3,OpenCV www.example.com运行4.7.0.72。

def run(self) -> None:
    """Thread runnable function."""

    self.capture = cv2.VideoCapture(int(self.src_id))
    self.capture.set(cv2.CAP_PROP_FOURCC, cv2.VideoWriter_fourcc('M', 'J', 'P', 'G'))
    self.capture.set(cv2.CAP_PROP_FRAME_WIDTH, 1080);
    self.capture.set(cv2.CAP_PROP_FRAME_HEIGHT, 720);
    self.capture.set(cv2.CAP_PROP_FPS, 60)
    self.capture.set(cv2.CAP_PROP_BUFFERSIZE, 10)

    width = int(self.capture.get(cv2.CAP_PROP_FRAME_WIDTH))
    height = int(self.capture.get(cv2.CAP_PROP_FRAME_HEIGHT))
    fps = self.capture.get(cv2.CAP_PROP_FPS)

    file_name = f"recording-{self.src_id}.avi"
    out = cv2.VideoWriter(
        file_name,
        cv2.VideoWriter_fourcc("M", "J", "P", "G"),
        fps,
        (width, height)
    )

    if self.capture.isOpened():
        prev_frame_ts = 0
        while not self.done:
            (self.status, self.frame) = self.capture.read()
            if self.status:
                out.write(self.frame)
            else:
                print("could not read frame, Return")
                break
    else:
        print("Failed to open camera. source id:" + str(self.src_id))
        self.capture.release()

字符串
在投入了相当多的时间进行故障排除之后,我发现自己已经没有办法解决这个持续存在的问题了。令人困惑的是,虽然其中两个摄像机准确地捕获帧,但第三个摄像机的帧速率随着时间的推移而逐渐下降。我正在寻找这种差异背后的潜在原因。

7gcisfzg

7gcisfzg1#

似乎相机之间存在差异。通过调整多个配置设置,我能够解决“有问题”的相机的FPS较低的问题。具体来说,修改曝光增益速率配置值使我能够实现接近60 FPS的帧速率。

相关问题