1

Я пытаюсь собрать данные для проекта обработки данных и загружаю кадры из онлайн-видео с помощью ffmpeg. Я хочу загрузить подмножество кадров в видео, не требуя точной информации, единственное требование - чтобы они были разумно разнесены друг от друга.

я пытался

ffmpeg -i "http://www.somevideo.com" -r 1 -f image2 "image%06d.jpg"

а также

ffmpeg -i "http://www.somevideo.com" -vf fps=1 "image%06d.jpg"

и в итоге нашел следующий метод

ffmpeg -ss offset1 -i "http://www.somevideo.com" -ss offset2 -i "http://www.somevideo.com" -map 0:v -frames:v 10 -start_number 0 "image%06d.jpg" -map 1:v -frames:v 10 -start_number 10 "image%06d.jpg"

и все работают, но работают медленно. Я нашел хак, где я запускаю следующую команду несколько раз, с разными смещениями, и она кажется самой быстрой (где каждая команда ffmpeg выполняется параллельно многопоточно)

ffmpeg -ss offset -i "http://www.somevideo.com" -vframes frames_per_fragment -an -start_number start_index "image%06d.jpg"

это примерно на 25% быстрее, чем в предыдущем методе

Есть ли более быстрый способ сделать это? Проблема в том, что загрузка по сети является узким местом, поэтому я хочу загружать только те кадры, которые мне нужны. Я хочу загружать видео / кадры оптом, поэтому любое улучшение скорости будет полезно.

0