gpt4 book ai didi

python - 录像逻辑错误-fps

转载 作者:行者123 更新时间:2023-12-02 17:55:34 26 4
gpt4 key购买 nike

我用开放的简历创建了一个摄像机/录像机,一切都很好。问题是当我播放视频时,即使视频文件仅以30.0 fps的速度播放,我仍可以超高速播放。有人可以帮我找出我录制不到足够帧的逻辑错误吗?我确实根据fps延迟了几毫秒。

我知道我对数学很傻,只是找不到。

    self.FPS = 30.0
self.VIDEO_FILENAME = 'test.mp4'
self.CODEC = highgui.CV_FOURCC('D','I','V','X') #mpeg-4 codec
self.VIDEO_RESOLUTION = (640,480)
self.camera = highgui.cvCreateCameraCapture(0)
self.writer = highgui.cvCreateVideoWriter(self.VIDEO_FILENAME, self.CODEC,
self.FPS, self.VIDEO_RESOLUTION, 1)

while True:
im = highgui.cvQueryFrame(self.camera)
im = opencv.cvGetMat(im)
highgui.cvWriteFrame(self.writer, im)
pygame.time.delay(int(1000 * 1.0/self.FPS)) ## of milliseconds

最佳答案

不,没有线索,听起来像延迟功能没有延迟,奇怪的是。但是,这里有一些其他注释:

  • 不要仅使用浮点数来使除法器正常工作。使用将来的导入代替:
    >>> from __future__ import division
    >>> 1000/30
    33.3333333333336

    现在您可以执行int(1000/30)而不是int(1000 * 1.0 / 30)。好多了。
  • 您还使用了pygames延迟功能,该功能基本上是通过减少处理器时间来延迟的。馊主意。使用wait()代替。
  • 1000/30是33.33333,而您的代码将延迟33,因此它将以1%的速度运行,除非显示图像花费的时间恰好是1%。 :)如果显示图像花费的时间超过0.333333333毫秒,则您实际上应该运行缓慢。 :-)您可能应该改为查看显示页面后的时间,然后等待剩余时间直到下一帧出现为止。 pygame.time.Clock可能对此有所帮助。
  • 关于python - 录像逻辑错误-fps,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4414890/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com