赞
踩
Python 可用于读取常见的 MP4 视频格式并将其转换为 GIF动画。当然,如果你愿意,你可以使用预先构建的软件,但是自己做很有趣(并且是一种很好的学习体验)。
在本教程中,你将学习以下内容:
让我们开始吧!
你需要安装 OpenCV 绑定以读取 MP4 文件并将视频中的每一帧转换为 JPG 文件。安装教程:
python3 -m pip install opencv-python
你还需要Pillow从你从视频中提取的 JPG 创建动画 GIF。也可以用pip安装:
python3 -m pip install Pillow
要创建 GUI,我这里会用到PySimpleGUI。要安装该库,请使用以下命令:
python3 -m pip install PySimpleGUI
如果你使用的是 Anaconda,则包含 opencv-python 和 Pillow。你只需要单独安装 PySimpleGUI。
从 MP4 视频中提取帧的第一步是找到要转换为 GIF 的视频。
要从上面的视频中提取单个帧,你需要编写一些 Python。创建一个新文件并将其命名为mp4_converter.py
。然后输入以下代码:
import cv2 def convert_mp4_to_jpgs(path): video_capture = cv2.VideoCapture(path) 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 if __name__ == "__main__": convert_mp4_to_jpgs("flask_demo.mp4")
此代码采用 MP4 视频文件的路径。然后使用cv2.VideoCapture(path)
打开视频。你可以使用此方法通读整个视频并提取每一帧。提取帧时,可以使用cv2.imwrite()
将其写出。
当你运行这段代码时,你会发现这个 7 秒的视频产生了 235 帧!
现在准备好拍摄这些帧并将它们转换为动画 GIF。
该过程的下一步是将使用 OpenCV 从 MP4 文件
中提取的帧转换为动画 GIF。
这就是 Pillow
包的用武之地。你可以使用它来接收图像文件夹并创建你的 GIF。打开一个新文件并将其命名为gif_maker.py
。然后输入以下代码:
import glob from PIL import Image def make_gif(frame_folder): images = glob.glob(f"{ frame_folder}/*.jpg") images.sort() frames = [Image.open(image) for image in images] frame_one = frames[0] frame_one.save("flask_demo.gif", format="GIF", append_images=frames, save_all=True, duration=50, loop=0) if __name__ == "__main__": make_gif("output"
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。