我使用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:在这种情况下,我会考虑使用另一个库来逐帧加载和处理视频。哪个库可以让我以最快的速度完成上述操作。我知道以下内容,但不知道它们之间的比较:
答案 0 :(得分:0)
您可以使用Stream.frames属性获取流中的帧数。
来源:http://docs.mikeboers.com/pyav/develop/api/stream.html#av.stream.Stream
答案 1 :(得分:0)
要获取第一个视频流的帧,请执行以下操作:
container = av.open("My_Super_Video.mp4")
total_frames = container.streams.video[0].frames