Я использую библиотеку pims (
https://github.com/soft-matter/pims) для доступа к кадрам из файла .MOV с более чем 25 тысячами кадров, 3840 × 2160, H.264 (высокий профиль) ), 60 кадров в секунду.
Код: Выделить всё
import pims
from time import perf_counter
video = pims.Video('video/v1.MOV')
t0 = perf_counter()
img = video[1000]
t1 = perf_counter()
print(f'{(t1-t0):.3f}s {img.shape}')
Вот тайминги на довольно быстром ПК после открытия файла:
- кадр № 100: 2,97 с< /li>
Кадр №1000: 28,39 с
- Кадр №10000: 280,19 с
AFAIK, эта библиотека использует ffmpeg, который может получить доступ к кадру № 10,000 с помощью ffmpeg -ss 00:02:46.66 -i v1.MOV -frames:v 1 f10k.png практически мгновенно. Есть ли способ улучшить доступ к кадрам с помощью pim или какого-либо другого метода?
Подробнее здесь:
https://stackoverflow.com/questions/790 ... ith-python