Я использую библиотеку 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: В этом случае я хотел бы рассмотреть возможность использования другой библиотеки для загрузки и обработки видео кадр за кадром. Какая библиотека позволила бы мне делать вышеупомянутое с максимально возможной скоростью. Я знаю следующее, но не знаю, как они сравниваются:
- PIMS В дополнение к PyAV, можете добавить какую-нибудь интересную функцию?
- MoviePy (ограничено видео, которые помещаются в ОЗУ), но как насчет перфорации?
- Imageio (возможно, такое же ограничение, как указано выше), но как насчет перфорации?
- OpenCV (возможно, такое же ограничение, как указано выше), но как насчет perf?
- Другие?