网站免费正能量安全,WordPress城市切换,seo网站seo,wordpress黑糖问题描述 最近遇到一个需求是需要将视频生成gif#xff0c;这个看上去不是很难#xff0c;所以有了以下的解决办法
解决办法 首先想到的当然是自己写一个#xff0c;用了两套代码#xff1a;
from moviepy.editor import *# 读取视频文件
video_clip VideoFileClip(这个看上去不是很难所以有了以下的解决办法
解决办法 首先想到的当然是自己写一个用了两套代码
from moviepy.editor import *# 读取视频文件
video_clip VideoFileClip(280361337.mp4)# 将视频转为gif格式
gif_clip video_clip.to_gif(output.gif)# 关闭视频文件
video_clip.close() 运行这个的话可能会遇到的问题就是没有moviepy这个modulepip install一下就可以了但是安装完之后会报错提示有些依赖包没有只需要按提示逐个安装就行了。 但是上述的代码不能够控制帧率和大小于是又完善了一下。
import imageio
from PIL import Imagedef convert_video_to_gif(input_path, output_path, fps10, scale0.5):# 读取视频文件video imageio.get_reader(input_path)# 获取视频的帧率、宽度和高度fps_video video.get_meta_data()[fps]width, height video.get_meta_data()[source_size]# 设置输出的帧率和尺寸output_fps min(fps, fps_video)output_width int(scale * width)output_height int(scale * height)# 创建一个Image对象列表用于保存每一帧的图像frames []for frame in video:# 调整帧的尺寸frame_img Image.fromarray(frame).resize((output_width, output_height), Image.ANTIALIAS)frames.append(frame_img)# 保存为gif动图frames[0].save(output_path, formatGIF, append_imagesframes[1:], save_allTrue, duration1000/output_fps, loop0, optimizeTrue)# 关闭视频文件video.close()# 调用函数进行视频转换为gif
convert_video_to_gif(studio_video_1698138576505.mp4, output4.gif, fps20, scale1)这样一来就能比较控制帧率和大小了但相比来说只压缩了一半还是有点大也正因为这个原因没有办法在这里展示效果简单来说效果还是可以的只是太大了超过了5M所以不能上传。
更好的办法 像这种都有现成的工具比如本次推荐的这个就是效果挺好的 压缩比大概为1/5 可以自己指定宽度 也可以进行压缩只是这个过程有点曼能再压缩1/2效果几乎无变化 还支持其他的功能