Heim > Backend-Entwicklung > Python-Tutorial > So verwenden Sie Python zum Konvertieren zwischen MP4- und GIF-Formaten

So verwenden Sie Python zum Konvertieren zwischen MP4- und GIF-Formaten

王林
Freigeben: 2023-04-27 10:31:14
nach vorne
1909 Leute haben es durchsucht

Das Prinzip der Konvertierung von MP4 in GIF ist eigentlich sehr einfach, nämlich die Frames der MP4-Datei zu lesen und sie dann zu einem GIF zusammenzuführen. Dies lässt sich ganz einfach mit den beiden Bibliotheken cv2 und PIL bewerkstelligen.

import glob

import cv2
from PIL import Image


def convert_mp4_to_jpgs(input_file):
# 先将mp4文件的所有帧读取出保存为图片
video_capture = cv2.VideoCapture(input_file)
still_reading, image = video_capture.read()
frame_count = 0
while still_reading:
cv2.imwrite(f"output/frame_{frame_count:03d}.jpg", image)
# read next image
still_reading, image = video_capture.read()
frame_count += 1


def convert_images_to_gif(output_file):
# 读取目录下图片,用Pillow模块的Image和所有图片合并
# 成一张gif
images = glob.glob(f"output/*.jpg")
images.sort()
frames = [Image.open(image) for image in images]
frame_one = frames[0]
frame_one.save(output_file, format="GIF", append_images=frames[1:],
 save_all=True, duration=40, loop=0)


def convert_mp4_to_gif(input_file, output_file):
convert_mp4_to_jpgs(input_file)
convert_images_to_gif(output_file)


if __name__ == "__main__":
convert_mp4_to_gif("demo.mp4", "output.gif")
Nach dem Login kopieren

Nach Abschluss der Ausführung wird festgestellt, dass die Größe der GIF-Datei stark zugenommen hat:

So verwenden Sie Python zum Konvertieren zwischen MP4- und GIF-Formaten

Sie können versuchen, die Größe des GIF zu optimieren, indem Sie die Anzahl der Frames reduzieren Wenn wir nur 30 Bilder aufnehmen, wird die Größe um die Hälfte reduziert von 3,9 Mio. bis 2 Mio.

Nachdem ich diesen Code geschrieben habe, habe ich herausgefunden, dass es eine weitere großartige Bibliothek gibt, moviepy, die mit nur 2 Zeilen Code erstellt werden kann.

frame_one.save(output_file, format="GIF", append_images=[f for i, f in enumerate(frames[1:]) if i % 2 == 0],
 save_all=True, duration=40, loop=0)
Nach dem Login kopieren

moviepy hat die Implementierungsdetails auf sehr einfache Weise gekapselt und stellt dann viele davon bereit Parameter, die Entwickler selbst konfigurieren können. Aber die mit moviepy konvertierte Datei ist 9 MB groß. Ich glaube, dass Parameter zur Optimierung und Anpassung verwendet werden können.

So verwenden Sie Python zum Konvertieren zwischen MP4- und GIF-FormatenSie müssen zugeben, dass das Python-Ökosystem voller Bibliotheken ist. Es gibt nichts, was Sie nicht tun können, nur Dinge, die Sie nicht finden können.

Natürlich können Sie GIFs auch wieder in das MP4-Format konvertieren. Wenn Sie beispielsweise einige lustige GIFs sehen, konvertieren Sie sie in mp4 und stellen Sie sie auf die Kurzvideoplattform, vielleicht werden sie populär.

def mp4_to_gif2():
clip = VideoFileClip("demo.mp4")
clip.write_gif("output2.gif")
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonSo verwenden Sie Python zum Konvertieren zwischen MP4- und GIF-Formaten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage