使用Moviepy获取剪辑中的帧数

时间:2016-06-03 20:06:22

标签: python python-3.x moviepy

您会认为这将是一个如此简单的操作,但文档中没有关于如何获取视频剪辑中的帧数的信息。我能想到的唯一方法是使用iter_frames()并逐个计算帧数,但由于某种原因,即使我没有执行,也需要几乎整整一秒来迭代15帧视频对他们的任何行动。

4 个答案:

答案 0 :(得分:8)

因为事实证明,moviepy不会保存单个帧数据,因此它不会存储确切的帧数。这是我发现得到近似值的最佳方法:

frames = int(clip.fps * clip.duration)

答案 1 :(得分:4)

使用此代码对我来说非常快:

clip = VideoFileClip('test.mp4')
n_frames = sum(1 for x in clip.iter_frames())
print n_frames

答案 2 :(得分:2)

好的,所以我最近偶然发现了上述问题。 事实证明,当前有一种方法可以通过简单地访问clip.reader.nframes

来获取剪辑中的总帧数

因此,总体而言,用于访问帧数的代码如下:

clip = VideoFileClip('video.mp4')
n_frames = clip.reader.nframes

答案 3 :(得分:0)

这可能会快一点。

clip = VideoFileClip('video.mp4')
num_frames = len(list(clip.iter_frames()))
print(num_frames)