[PYTHON] Extrahieren Sie Videos von YouTube und erstellen Sie daraus GIF-Animationen für LGTM

(^ Ω ^) Youtube Video ist hier, oder?

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

Mach das ... ( ^ω^) ≡⊃⊂≡

Diesen Weg

( ^ω^)

Dinge die zu tun sind

Laden Sie youtube auf pytube herunter

Was ist Pytube?

Python-Bibliothek für YouTube

$ pip install pytube

Video herunterladen

Führen Sie gemäß Verwendungsbeispiel aus

$ 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

#Holen Sie sich Videoinformationen
>>> 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>]

#herunterladen
>>> video = yt.get('mp4', '720p')
>>> video.download('/tmp')

Downloading: 'Das Flirten der Eidechse und des Onkels des Bewahrers war zu süß.mp4' (Bytes: 2862856)

ll /tmp
-rw-r--r--  1 kasei_san  wheel  2862856  7 20 15:04 Das Flirten der Eidechse und des Onkels des Bewahrers war zu süß.mp4

Heruntergeladen

Konvertieren Sie Videos mit ffmpeg Bild für Bild in ein Bild

Installation

$ brew install ffmpeg

Konvertieren Sie Videos Bild für Bild in ein Bild

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

Möglichkeit

-i: Geben Sie die Eingabedatei an -an: Keine Audioausgabe -r: Bildrate (wie viele Bilder pro Sekunde extrahiert werden) -vf Zuschneiden: Trimmen des Ausgabeergebnisses (Ausgabegröße x: y: Trimmen der Startposition x: y) -s: Größe ändern (Ausgabegröße): 640x480 usw.

Das Originalvideo ist vertikal lang, daher habe ich es zugeschnitten

Ausgabeergebnis

Im Verzeichnis pngs / wird eine große Anzahl von Bildern generiert

Überlagern Sie LGTM mit dem zusammengesetzten Befehl von ImageMagick auf dem konvertierten Bild

Installation

$ brew install imagemagick

LGTM zur Synthese

Bereiten Sie ein transparentes PNG-Bild vor

Bildkomposition

Extrahieren Sie einige Bilder, nicht alle Videos

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

Syntheseergebnis

GIF animiert ein Bild mit dem Konvertierungsbefehl von ImageMagick

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

-verzögerung x: Zeigt 100 Minuten lang ein Bild für x Sekunden an -Lagen optimieren: sollte die Bildgröße optimieren

Ausgabeergebnis

Reduzierte GIF-Animation zur Größenreduzierung

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

Größenvergleich

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

Aussehensvergleich

Unverarbeitet

50 Farben

25 Farben

Ich denke, es ist besser, die Farbe entsprechend dem Originalvideo zu reduzieren

Auf lgtm.in hochladen

Sie müssen es irgendwo veröffentlichen, um es hochzuladen Da tumblr einfach ist, laden Sie es einmal hoch und senden Sie es dann ab.

TODO

Ich möchte ein Skript schreiben, das alles auf einmal erledigt

Referenz

Recommended Posts

Extrahieren Sie Videos von YouTube und erstellen Sie daraus GIF-Animationen für LGTM
LGTM - Erstellen Sie LGTM-Bilder mit Videos und Fotos und geben Sie GIF-Animationen aus