使用PyAV的视频中的帧数

问题描述 投票:0回答:1

我使用库PyAV,因为它是Python中最好的一个。

这是我想要使用的代码的简单示例:

import av

video = av.open("My_Super_Video.mp4")

total_frames = # ????

for i, frame in enumerate(video.decode(video=0)):
    img = frame.to_image()  # PIL image

    print("Frame: %d/%d ..." % (i, total_frames))

我显然可以使用其他库来加载库,但是如果可能的话我会更喜欢使用PyAV,因为它的处理速度很快。

问题1:是否可以使用PyAV获取帧数?如果有,怎么样?

问题2:在这种情况下,我会考虑使用另一个库逐帧加载和处理视频。哪个库允许我以尽可能高的速度执行上述操作。我知道以下内容,但不知道他们如何比较:

  1. PIMS在PyAV之上,可以添加一些有趣的功能吗?
  2. MoviePy(限于适合RAM的视频),但是怎么样?
  3. Imageio(可能与上面相同的限制),但是怎么样?
  4. OpenCV(可能与上面相同的限制),但是怎么样?
  5. 其他 ?
python opencv video moviepy pyav
1个回答
0
投票

您可以使用Stream.frames属性获取流中的帧数。

资料来源:http://docs.mikeboers.com/pyav/develop/api/stream.html#av.stream.Stream

© www.soinside.com 2019 - 2024. All rights reserved.