[PYTHON] Extrayez des vidéos de YouTube et créez des animations GIF pour LGTM à partir d'elles

(^ Ω ^) La vidéo Youtube est là, non?

https://www.youtube.com/watch?v=h3jFRvXFwWA)

Faites ceci ... ( ^ω^) ≡⊃⊂≡

Par ici

( ^ω^)

Choses à faire

--Télécharger youtube sur pytube --Utilisez ffmpeg pour convertir la vidéo en image image par image --Utilisez la commande composite d'ImageMagick pour superposer LGTM sur l'image convertie --GIF animer une image à l'aide de la commande de conversion d'ImageMagick --Recolor animation GIF pour réduire la taille

Téléchargez youtube sur pytube

Qu'est-ce que pytube?

Bibliothèque Python pour youtube

Installation

$ pip install pytube

Téléchargement vidéo

Exécuter selon l'exemple d'utilisation

$ python

Python 2.7.6 (default, Apr  9 2014, 11:54:50)
[GCC 4.2.1 Compatible Apple LLVM 4.2 (clang-425.0.28)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from pytube import YouTube
>>> yt = YouTube()
>>> yt.url = "https://www.youtube.com/watch?v=h3jFRvXFwWA"
>>> from pprint import pprint

#Obtenir des informations vidéo
>>> pprint(yt.videos)
[<Video: MPEG-4 Visual (.3gp) - 144p>,
 <Video: MPEG-4 Visual (.3gp) - 240p>,
 <Video: Sorenson H.263 (.flv) - 240p>,
 <Video: H.264 (.mp4) - 360p>,
 <Video: H.264 (.mp4) - 720p>,
 <Video: VP8 (.webm) - 360p>]

#Télécharger
>>> video = yt.get('mp4', '720p')
>>> video.download('/tmp')

Downloading: 'Le flirt du lézard et de l'oncle du gardien était trop mignon.mp4' (Bytes: 2862856)

ll /tmp
-rw-r--r--  1 kasei_san  wheel  2862856  7 20 15:04 Le flirt du lézard et de l'oncle du gardien était trop mignon.mp4

Téléchargé

Convertir une vidéo en image image par image à l'aide de ffmpeg

Installation

$ brew install ffmpeg

Convertir la vidéo en image image par image

$ mkdir pngs
$ ffmpeg -i 01.mp4 -an -r 10 -vf crop=406:406:0:157 pngs/%04d.png

option

-i: spécifier le fichier d'entrée -an: pas de sortie audio -r: Fréquence d'images (combien d'images sont extraites par seconde) -vf crop: résultat de la sortie de rognage (taille de sortie x: y: position de début de la rognage x: y) -s: Redimensionner (taille de sortie): 640x480 etc.

La vidéo originale est longue verticalement, je l'ai donc coupée

Résultat de sortie

Un grand nombre d'images sont générées dans le répertoire pngs /

Superposez LGTM sur l'image convertie à l'aide de la commande composite d'ImageMagick

Installation

$ brew install imagemagick

LGTM pour la synthèse

Préparer une image PNG transparente

Composition d'image

Extraire certaines images, pas toutes les vidéos

$ for i in {0200..0220}; do; composite -gravity center -compose over lgtm.png pngs/${i}.png 
$ tmp/${i}.png; done

Résultat de synthèse

GIF animer une image à l'aide de la commande de conversion d'ImageMagick

$ convert -delay 10 -layers optimize tmp/*.png lgtm.gif

-delay x: affiche une image pendant x secondes pendant 100 minutes -optimisation des couches: devrait optimiser la taille de l'image

Résultat de sortie

Animation GIF réduite pour réduire la taille

$ convert lgtm.gif -coalesce -colors 50 lgtm_color50.gif
$ convert lgtm.gif -coalesce -colors 25 lgtm_color25.gif

Comparaison de taille

ll -h lgtm*.gif
-rw-r--r--  1 kasei_san  wheel   1.7M  7 20 15:39 lgtm.gif
-rw-r--r--  1 kasei_san  wheel   1.0M  7 20 15:42 lgtm_color25.gif
-rw-r--r--  1 kasei_san  wheel   1.3M  7 20 15:42 lgtm_color50.gif

Comparaison d'apparence

Non traité

50 couleurs

25 couleurs

Je pense qu'il vaut mieux réduire la couleur de manière appropriée comme la vidéo originale

Télécharger sur lgtm.in

Vous devez le publier quelque part pour le télécharger Puisque tumblr est facile, téléchargez-le une fois, puis soumettez-le.

TODO

Je veux écrire un script qui fasse tout en même temps

référence

Recommended Posts

Extrayez des vidéos de YouTube et créez des animations GIF pour LGTM à partir d'elles
LGTM --Composez des images LGTM avec des vidéos et des photos et produisez une animation GIF