[PYTHON] Je suis tombé sur l'utilisation de MoviePy, alors prenez note

Je voulais éditer une vidéo, alors j'ai pensé utiliser moviepy, mais je suis tombé dessus, alors j'ai pris une note.

environnement

mac Mojave python 3.6.8

Conclusion

Ce qui suit est simple pour le cas d'utilisation de "l'ajout de texte et d'images en utilisant un fichier vidéo comme entrée et l'exportation du fichier vidéo comme sortie".

pip install moviepy==1.0.0

##* Comme il a été confirmé qu'il ne fonctionne qu'avec QuickTime Player sur mac, il peut ne pas fonctionner à moins qu'il ne soit ici.
##moviepy version 1.0.Un peu de bricolage avec 0
# pip install -U git+https://github.com/mynkit/moviepy.git@mynkit/dev

sample_moviepy.py

import moviepy.editor as mp


AUDIOPATH = 'hogehoge.mp4'
IMGPATH = 'hogehoge.png'


video = mp.VideoFileClip(AUDIOPATH)

img = (mp.ImageClip(IMGPATH)
          .set_start(1) #Combien de secondes dans la vidéo pour afficher l'image
          .set_duration(10) #Combien de secondes pour afficher l'image
          .resize(height=250) #Hauteur de l'image
          .margin(right=0, top=0, opacity=0) #Réglage de la taille de la marge(Pas de marge cette fois)
          .set_pos(('right','bottom'))) #Cette fois, l'image est affichée en bas à droite

final = mp.CompositeVideoClip([video, img])
# mynkit/Si vous installez à partir de dev`final.subclip(0,10).write_videofile('test.mp4')`Seul besion.
final.subclip(0,10).write_videofile(
    "test.mp4",
    codec='libx264', 
    audio_codec='aac', 
    temp_audiofile='temp-audio.m4a', 
    remove_temp=True
) # 0~Testez jusqu'à 10 secondes.Sortie vers mp4

Point de trébuchement

Apparemment, write_videofile ne semble pas être différent.

Write_videofile ne fonctionne pas en premier lieu

Pour le moment (07/03/2020), la dernière version de MoviePy est 1.1.0, mais si vous exécutez write_videofile tel quel, l'erreur suivante apparaîtra.

AttributeError: 'NoneType' object has no attribute 'stdout'

En regardant issue938, il est dit que la version devrait être abaissée à 1.0.0. Pour le moment, abaissez-le comme indiqué.

Pas de son du fichier de sortie cette fois

Le fichier d'entrée a certainement de l'audio, et sur le jupyter

final.subclip(0,10).ipython_display(width=400)

Ensuite, j'ai pu le prévisualiser sous forme de son. Cependant, il n'y a pas de son dans le fichier de sortie. ..

Cela a également été décrit dans issue876.

'-i', '-i', décrit dans moviepy / video / io / ffmpeg_writer.py L'ordre de '-', '- an' 'est faux, et l'ordre correct est' '-an', '- i', '-' '. Cela a été pris en charge par forké sur mon github.

À propos, même si cette correspondance n'est pas prise, elle a été lue par QuickTime Player si seule la correspondance suivante a été effectuée.

Impossible de jouer avec QuickTime Player sur Mac

Je pensais que c'était sûr, mais quand je l'ai vérifié avec QuickTime Player sur mac, il n'y avait toujours pas de son ...

Comme mentionné dans issue51 et issue820, avec QuickTime Player Dans l'argument de write_videofile pour jouer

    codec='libx264', 
    audio_codec='aac', 
    temp_audiofile='temp-audio.m4a', 
    remove_temp=True

Cela semble nécessaire. Lorsque j'ai exporté la vidéo dans cet état, cela a fonctionné.

Recommended Posts

Je suis tombé sur l'utilisation de MoviePy, alors prenez note
J'ai touché "Orator" alors j'ai fait une note
[Python] J'ai essayé d'implémenter un tri stable, alors notez
J'ai essayé d'utiliser pipenv, alors prenez note
Ce sur quoi je suis tombé lors de l'utilisation de CodeIgniter sur un serveur Linux
J'étais accro à essayer Cython avec PyCharm, alors prenez note
J'ai créé un jeu ○ ✕ avec TensorFlow
[Fabric] J'étais accro à l'utilisation de booléen comme argument, alors notez les contre-mesures.
Notez que j'étais accro à la configuration de TensowFlow
Je suis tombé sur essayer Pylearn 2
J'ai trébuché lorsque j'ai essayé d'installer Basemap, donc un mémorandum
J'ai fait un chronomètre en utilisant tkinter avec python
J'ai créé un éditeur de texte simple en utilisant PyQt
J'ai fait un Line-bot avec Python!
J'ai essayé de créer une expression régulière de "montant" en utilisant Python
Créer un outil de reconnaissance de visage à l'aide de TensorFlow
J'ai essayé de créer une expression régulière de "temps" en utilisant Python
J'ai essayé de créer une expression régulière de "date" en utilisant Python
J'ai essayé de trouver la différence entre A + = B et A = A + B en Python, alors notez
J'ai essayé de créer une application todo en utilisant une bouteille avec python
Construction d'environnement Postgres avec Docker J'ai eu un peu de mal, alors notez
Je suis resté coincé quand j'ai essayé d'installer diverses choses avec Mac El capitaine pip, alors notez
J'ai appris le grattage à l'aide de sélénium pour créer un modèle de prédiction de courses de chevaux.
[Streamlit] Je déteste JavaScript, donc je crée une application Web uniquement avec Python
Notes J'ai recherché la création d'outils de ligne de commande en Python
Je souhaite créer une application Web en utilisant React et Python flask
Histoire de trébucher sur l'installation de matplotlib
J'ai essayé de jouer au jeu ○ ✕ en utilisant TensorFlow
Une histoire qui a trébuché sur un calcul de comparaison
Débutant: j'ai créé un lanceur à l'aide d'un dictionnaire
Je suis tombé sur l'installation de la phrase sur ubuntu
Faisons un site multilingue en utilisant flask-babel
J'ai créé une API Web
Je voulais utiliser le module de recherche d'Ansible2, mais cela a pris du temps, alors prenez note
Soudain, j'avais besoin de travailler sur un projet utilisant Python et Pyramid, donc une note sur la façon dont j'étudie
Mémorandum de travail (pymongo) Partie 3. Je ne veux pas le réexaminer, alors prenez-en note (agrégé)
Un mémo sur lequel je suis tombé par hasard en faisant une citation RT sur Twitter Bot
J'ai essayé de créer un BOT de traduction qui fonctionne avec Discord en utilisant googletrans
J'ai essayé de faire MAP rapidement une personne suspecte en utilisant les données d'adresse Geolonia
Je veux faire de matplotlib un thème sombre
Je veux faire un jeu avec Python
J'ai essayé d'utiliser Pythonect, un langage de programmation de flux de données.
J'ai essayé de lire un fichier CSV en utilisant Python
J'ai lu "Comment créer un laboratoire de piratage"
[Chat De Tornado] Créez un chat en utilisant WebSocket dans Tornado
J'ai écrit un analyseur japonais en japonais en utilisant pyparsing.
Faisons un module pour Python en utilisant SWIG
J'ai essayé d'utiliser la base de données (sqlite3) avec kivy
Je voulais collecter beaucoup d'images, j'ai donc essayé d'utiliser "google image download"
Les débutants en Python ont créé un chat BOT alors j'ai essayé de résumer comment le faire