好的,我正在制作一个视频。我想知道如何精确地使用FPS参数。它是一个浮点数,所以我认为它是每帧之间的时间间隔。你能举个例子吗?我只是想知道在不同的FPS参数值下视频会如何变化,因为我现在制作的视频速度太快了。谢谢!
好的,我正在制作一个视频。我想知道如何精确地使用FPS参数。它是一个浮点数,所以我认为它是每帧之间的时间间隔。你能举个例子吗?我只是想知道在不同的FPS参数值下视频会如何变化,因为我现在制作的视频速度太快了。谢谢!
它实际上就是这样 - 每秒帧数
。换句话说,您想每秒显示多少帧?
这里有一个例子:
writer = cv2.VideoWriter(filename="my_video.avi", #Provide a file to write the video to
fourcc=cv2.cv.CV_FOURCC('i','Y', 'U', 'V'), #Use whichever codec works for you...
fps=15, #How many frames do you want to display per second in your video?
frameSize=(width, height)) #The size of the frames you are writing
使用示例:
while True:
flag, frame = capture.read()
cv2.imshow("Camera", frame)
key_pressed = cv2.waitKey(10)
if key_pressed == 27: #Escape key
break
writer.write(frame)
cv2.destroyAllWindows()
因此,您将拥有一个视频文件,其中包含相机捕捉的所有静止帧拼接在一起形成一个单独的视频。每秒显示的帧数将根据您设置的fps
参数进行设置。(如果您的视频过快,建议将fps
设置为较低值)
我凭记忆编写了这段代码,所以我没有测试过它,但它应该可以工作。如果您有任何疑问或问题,请让我知道。希望这能帮助您!
kivy
的Clock.schedule_interval( func, 0)
来记录我的屏幕,而不是使用while loop
。我已经尝试将fps
设置为15
、10
和5
,但对于快速运动的视频,当fps = 5 或 10
时,它似乎有点卡顿。有什么解决办法吗? - Paul Lamthread
来线程化一个使用while循环捕获帧的函数。我认为它可以捕获更多的帧,但似乎仍然不够。我使用print
打印True
,如果已经捕获了1秒钟,否则print("")
,我得到了大约13-15个空行,在True
被打印出来之前。 - Paul Lam