【发布时间】:2021-09-27 15:33:34
【问题描述】:
目前我使用2017_08_31_0121.mp4 作为我的视频,这是一个 21 秒长的视频,一旦我将它分成帧,我会得到 504 帧。这意味着每秒帧数设置为24。我想更改帧数但我不知道下面代码的哪一部分负责设置每秒帧数。
问题:
-
我一直以为默认FPS是25,现在我是24,请问可以告诉我默认FPS是在哪里设置的吗?
-
如果我想使用自定义 FPS 比如说 10,我该如何修改以下代码来做到这一点?
import cv2
vidcap = cv2.VideoCapture('/content/2017_08_31_0121.mp4')
success, image = vidcap.read()
count = 0
while success:
if count<10:
id = f'00{count}'
elif count < 100:
id = f'0{count}'
else:
id = count
cv2.imwrite(f"./new_frames/frame{id}.jpg", image) # save frame as JPEG file
success, image = vidcap.read()
count += 1
【问题讨论】:
-
无意义的要求。 OpenCV 将尽快读取视频。您将获得文件中的那些帧。你想完成什么?
-
顺便说一句,您可以使用
f"./new_frames/frame{id:03d}.jpg"更简单地实现零填充 -
@Christoph Rackwitz:“OpenCV 将尽快阅读视频”。谢谢你。我没有意识到这一点。哪个读它
cv2.VideoCapture或vidcap.read()。我问这个是因为我不想完全阅读它,我想从原始文件的每一秒中提取(3 或 5)帧。这是我的最终目标。 -
@Christoph Rackwitz:具体来说,我想在不读取所有帧的情况下每秒提取 3 或 5 帧。
-
从每秒帧数退后一步,跳来跳去片刻,试着简单地说出你想要做什么,这样我们就能更好地帮助你。您是否出于某种原因试图缩短视频?还是加快速度?什么?为什么?谢谢。