Je recherche une bibliothèque de traitement vidéo Python, similaire à PIL , où Je peux parcourir tous les cadres d'une vidéo source, accéder aux données de pixels pour chaque image, dessiner sur chaque image et enregistrer le résultat sous forme de nouveau fichier vidéo. P>
J'ai trouvé quelques questions similaires, mais elles sont assez anciennes maintenant: p>
Ils recommandent Pymedia et pyffmpmpeg . La Pymedia semble plutôt obsolète (mais peut toujours fonctionner?) Et PyffMpeg, bien que plus récente, n'a presque aucune documentation. P>
Je n'ai pas eu de chance d'installer les deux sur Ubuntu 10.10, avant d'appuyer sur ON, est là: p>
a) une meilleure bibliothèque que je devrais regarder? P>
b) de bonnes instructions sur la manière d'en faire l'une de ces portes? P>
5 Réponses :
J'ai souvent eu besoin de la même chose et aussi loin que je sache, il n'y a pas de bonne solution avec des liaisons dans Python.
Ce n'est pas aussi simple que cela puisse sembler manipuler des cadres d'un fichier vidéo. Un format de fichier moderne pour la vidéo ne stocke pas les cadres une image après l'autre, mais utilise plutôt des "cadres Delta", dans lequel seuls les changements d'une image à l'autre sont stockés. D'autres considérations telles que la vidéo avec un taux de trame variable rendent le problème encore plus difficile. P>
Dans le passé, j'ai utilisé la commande suivante pour générer des images de la vidéo. P>
ffmpeg -r 30 -i tmp%06d.jpg output.mpg
Oui, c'est ce que j'ai essayé, mais cela semble assez gaspillé et comme s'il y avait une solution qui coupe les fichiers d'image intermédiaires (comme il y en a 10000s). Je comprends le problème avec les cadres clés, mais je ne m'attends pas à un processus sans perte ici. La piste audio peut être dépouillée et mélangée facilement avec le mencoder et vraisemblablement FFMPEG.
Il s'agit d'une approche de démarrage raisonnable et peut-être une simplification ok, mais elle est probablement trop une réduction pour dire «Format de fichier moderne pour la vidéo. Utilise des cadres Delta. ' Les algorithmes varient beaucoup de Codec et de nombreux types de cadres sont utilisés dans certains des codecs les plus complexes, et la plupart ne gardent pas réellement toutes les données (Pertes vs sans perte). Par exemple, H264 essaiera de conserver les données du cadre qui compte la perception humaine.
Je cherche à utiliser py.processing pour un travail similaire. Tout ce que vous demandez, mais est un hybride avec traitement. Vous n'écrivez pas le code Python en soi. Quoi qu'il en soit, il est assez facile de travailler avec, mais il y a beaucoup de frais de programme / interprétation afin qu'il puisse être lent à faire une modification en temps réel des films. Vous avez dit que vous vouliez modifier le fichier afin de pouvoir être fonctionnel. p>
Je recommande SCIKIT-VIDEO pour vous qui est la bibliothèque de traitement vidéo la plus simple de Python J'ai déjà rencontré. P>
Ceci est l'introduction officielle à Scikit-Video depuis son site Web de projet: P>
Scikit-Video est conçu pour un traitement vidéo facile à l'aide de Python. Il est modelé dans l'esprit d'autres scrutins, tels que Scikit-Apprendre et Scikit-Image. Les développeurs de Scikit-Video connaissent des bibliothèques pour manipuler des vidéos, telles que PyffMpeg, MoviePy, Pyav, ImagePy, et Opencv. Cependant, aucune bibliothèque n'a été trouvée pour fournir une solution tout-en-un pour les outils de traitement vidéo au niveau de la recherche. p> blockQuote>
Vous pouvez utiliser mon Vidgear strong> La bibliothèque de Python de traitement vidéo WriteGear API qui nous permet d'exploiter presque tous les paramètres disponibles pris en charge par FFMPEG (Framerate, Bittrate, codecs, format et taille, mux, demux, etc.) em> in Mode de compression , sans effort et de manière flexible et tout en faisant de manière robuste gère des erreurs / des avertissements très silencieux. Par exemple, pour utiliser H.264 pour la production Une vidéo de haute qualité utilisant l'encodeur X264, nous pouvons modifier ses paramètres comme suit pour produire une vidéo de sortie sans perte: P> puis transmettez ce dictionnaire à electricar comme exemple indiqué ci-dessous. P> caisse plus advancée E Utilisation Détails ici A > et complétez les docs ici em> strong> p> p> P> P> P> P> P> P > Paramètres: h3>
Exemple d'utilisation de base h3>
Je trouve imageo La bibliothèque de manipulation vidéo la plus facile à utiliser pour Python. Rend la lecture de vidéos de vidéos par image, leur traitement et sauvegarder le disque d'une brise. De nos jours, les auteurs fournissent également un accès facile à PIP Installez Wrapper pour FFMPEG qui peut être utilisé dans Windows, Linux ou OSX. Il existe également une communauté active ici répondant à des questions relatives à la bibliothèque sous la balise [Python-ImageoIO]. P>