2011-01-28 1 views
3

je dois effectuer les opérations suivantes dans mon projet python + django:Montage vidéo avec la ligne python ou commande

  • vidéos joignant avec la même taille et le bitrate
  • vidéos de jonction et des images (pour la manipulation d'image I « utiliserai PIL: texte écrit à une image existante)
  • fondu dans les transitions entre les vidéos

Je connais déjà certaines bibliothèques d'édition vidéo pour python: MLT framework (t oo complexe pour mes besoins), pygame et pymedia (ne pas inclure toutes les fonctionnalités que je veux), gstreamer bindings (documentation terrible).

Je pourrais également faire tout le travail à partir de la ligne de commande, en utilisant ffmpeg, mencoder ou transcode.

Quelle est la meilleure approche pour faire une telle chose sur une machine Linux.

EDIT: finalement j'ai choisi de travailler avec fusion (la ligne de commande de MLT)

Répondre

0

http://avisynth.org/mediawiki/Main_Page est un langage de script pour la vidéo.

+0

Bonjour, merci, mais j'ai oublié de mentionner que j'en ai besoin sur un serveur Linux. Ou si vous voulez dire cette version de avisynth http://avisynth3.unite-video.com/download.html alors ce n'est pas encore utilisable. – reese

+0

Désolé, il ne m'est jamais venu à l'esprit que les fenêtres –

0

Parce que ffmpeg est disponible sur GNU/Linux, je chose de l'utiliser avec des modules tels que pexpect ou subprocess est la meilleure solution ....

+0

J'utilise ffmpeg en ce moment, mais c'est plutôt difficile (ou impossible?) D'ajouter des effets comme fondu et fondu, superposant des images et des trucs comme ça. Ou tout cela est possible et facile à faire? – reese

+0

C'est vrai: il semble impossible de faire un fondu entrant/sortant avec ffmpeg ... Alternativement, peut-être ce lien vous aidera: http://michaelminn.com/linux/mmsuper8/ –

0

Vous pouvez utiliser OpenCV pour joindre des vidéos et des images. Voir le documentation, en particulier le image/video I/O functions.

Cependant, je ne suis pas sûr si la bibliothèque a des fonctions qui feront l'évanouissement pour vous.

+0

S'il pouvait rejoindre, couldn ' t vous venez de rejoindre une vidéo "fondu" avec votre vidéo actuelle? Ou je suppose que les jointures ne sont que des coupures? – Jeff

+1

Ouais, leurs jointures sont plutôt difficiles. Si vous vouliez fondre deux vidéos ensemble, vous devez implémenter le code qui génère les images passées. C'est juste un mélange d'alpha, donc ce n'est pas trop dur, mais aussi pas trivial. – misha

0

Quel codec utilisez-vous?

Il existe deux façons de compresser la vidéo: avec perte et sans perte. C'est facile de les différencier. En fonction de leur longueur, les fichiers vidéo avec perte sont dans la plage de mégaoctets, sans perte (y compris non compressé) sont dans la gamme de gigaoctets.

Voici une simplification excessive. L'édition de fichiers vidéo est très différente de l'édition de film, où vous collectez simplement les morceaux de film ensemble. Il ne s'agit pas seulement du débit binaire, du débit et de la résolution. La plupart des codecs vidéo avec perte (MPEG 1-4, Ogg Theora, H.26x, VC-1, etc.) démarrent avec une image complète puis n'enregistrent que les changements de mouvement. Lorsque vous regardez la vidéo, ce que vous voyez est une scène statique avec des changements de couche après couche collés dessus. Il semble que vous voyiez plein cadre après une image complète, mais si vous regardez les données dans le fichier tout ce que vous verriez serait un fond noir et des blocs de vidéo brouillés.

S'il n'est pas compressé ou utilise un codec sans perte (HuffYUV, Lagarith, FFV1, etc.), vous pouvez éditer votre fichier vidéo comme un film. Vous devez encore réencoder la vidéo, mais cela n'affectera pas la qualité vidéo et vous pouvez couper, copier et coller comme bon vous semble, tant que la résolution et la fréquence d'images sont les mêmes. Si votre vidéo est lossy, vous devez la réencoder avec une perte de qualité vidéo, tout comme enregistrer la même image en JPEG, encore et encore.

Une autre option pourrait être de mettre plusieurs morceaux de vidéo dans un conteneur comme MKV et utiliser des chapitres pour le faire sauter de pièce en pièce. J'ai l'impression de me souvenir qu'on m'avait dit que c'était possible mais je ne l'ai jamais essayé alors peut-être que non.

Questions connexes