Что такое хорошая библиотека Python для управления кадрами видеофайла? - PullRequest
7 голосов
/ 11 апреля 2011

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

Я нашел пару похожих вопросов, но сейчас они довольно старые:

Они рекомендуют PyMedia и PyFFMPEG . PyMedia кажется довольно устаревшим (но все еще может работать?), А PyFFMPEG, хотя и более свежий, почти не имеет документации.

Мне не повезло, что я установил их на Ubuntu 10.10, прежде чем я нажму на:

а) Лучшая библиотека, на которую мне стоит взглянуть?

б) Хорошие инструкции о том, как запустить и запустить какой-либо из них?

Ответы [ 3 ]

7 голосов
/ 11 апреля 2011

Мне часто требовалось одно и то же, и, насколько я знаю, в Python нет хорошего решения с привязками.

Также не все так просто, как может показаться для манипулирования кадрами видео.файл.Современный формат файла для видео не хранит кадры один кадр за другим, а вместо этого использует «дельта-кадры», в которых сохраняются только изменения от одного кадра к другому.Другие соображения, такие как видео с переменной частотой кадров, делают проблему еще сложнее.

В прошлом я использовал следующую команду для генерации изображений из видео.

ffmpeg -i /path/to/file.mpg -an -r 30 -s 320x240 tmp%06d.jpg

Где 30 - этоцелевая частота кадров, 320x240 размер изображения и tmp% 06d.jpg шаблон, который будет использоваться для хранения сгенерированных JPEG-файлов.Затем вы можете использовать PIL для управления каждым кадром и mencoder или ffmpeg, чтобы снова вставить изображения в фильм:

ffmpeg -r 30 -i tmp%06d.jpg output.mpg

Очевидно, вы потеряете звуковую дорожку.

2 голосов
/ 29 мая 2017

Я искал использование py.processing для аналогичной работы. Он делает все, что вы просите, но это гибрид с Processing. Вы не пишете код Python как таковой. В любом случае, с ним довольно легко работать, но при этом возникает много программ / интерпретаций, поэтому редактирование фильмов в реальном времени может быть медленным. Вы сказали, что хотите отредактировать файл, чтобы он был работоспособным.

1 голос
/ 31 мая 2017

Я рекомендую scikit-video для вас, которая является самой простой библиотекой обработки видео на питоне, которую я когда-либо встречал.

Это официальное введение в scikit-видео с сайта проекта:

Scikit-video предназначен для удобной обработки видео с использованием Python. Он моделируется в духе других успешных scikits, таких как scikit-learn и scikit-image. Разработчики scikit-video знают библиотеки для манипулирования видео, такие как PyFFmpeg, MoviePy, PyAV, imageIO и opencv. Однако не было найдено ни одной библиотеки, обеспечивающей комплексное решение для инструментов обработки видео на исследовательском уровне.

...