由于一些小需求,想将视频转成GIF,然后呢,网上一搜这种转换,收费,那本人就自己动手搜搜Python上有没有解决方法咯,于是就有了这篇文章,主打的就是省钱跟好玩~
pip install moviepy
注入的灵魂如下:
'''
# -*- coding:utf-8 -*-
from moviepy.editor import VideoFileClip
def convert_to_gif(input_file, output_file):
"""
会将视频完整的转换为GIF,然后GIF的大小会很大
:param input_file:输入的文件
:param output_file:输出的文件
:return:
"""
video = VideoFileClip(input_file)
gif = video.write_gif(output_file)
return gif
def convert_to_gif1(input_file, output_file, target_size):
"""
可以设置转换后的GIF大小、帧率、宽度
:param input_file:输入的文件
:param output_file:输出的文件
:param target_size:更改输出文件的内存大小
:return:
"""
video = VideoFileClip(input_file)
duration = video.duration
target_duration = target_size / (video.size[0] * video.size[1] * 1) # 相当于快进,数字越大则GIF显示的内容越短
if duration > target_duration:
video = video.subclip(0, target_duration)
video = video.resize(width=640) # 控制宽度,会影响GIF大小和像素
video.write_gif(output_file, fps=10) # 控制帧率,帧率越高越流畅。会影响GIF大小
input_file = '控制机械臂.mp4'
output_file = 'output_video___114.gif'
target_size = 15 * 1024 * 1024 # 15MB # 能一定程度的控制GIF整体的大小
# convert_to_gif(input_file, output_file) # 完整的转换成GIF
convert_to_gif1(input_file, output_file, target_size) # 压缩式的转换成GIF
2024.01.15写
有写得不好、写得不对的地方还请各位指出,谢谢!