当前位置: 首页 > 后端技术 > Python

使用Python轻松将视频转成gif动画

时间:2023-03-25 22:22:55 Python

不知道大家有没有类似的经历。看视频的时候,觉得某个片段很有意思,想把它做成动画,但是一直下不了手!或者你可以在网上找到一些在线工具但或多或少需要付费或有水印,然后!?是的,今天就来学习使用Python来满足这个需求吧!礼物效果1.准备工作需要准备用于生成gif的视频文件。此外,还需要moviepy库。关于这个库更详细的介绍,可以查看其官方文档。https://zulko.github.io/moviepy/命令行输入pip进行安装pipinstallmoviepy这样就完成了第一步!2.初步探索这一步也是我们开篇第一个动画的制作脚本。frommoviepy.editorimport*video_path="F:\PythonCool\Video\【法术归来】第20话五条武帅有点过分.mp4"video=VideoFileClip(video_path)clip=(video.subclip((2,4.5),(2,6.0)).resize(0.2))clip.write_gif("动画完成.gif",fps=8)我们的原始视频素材大小为1920*1080,帧率为30。Videoproperties这张旋转图片的参数设置如下:subclip((2,4.5),(2,6.0)选取2.45秒到2.60秒的整个视频resize(0.2)改变大小为原来大小的0.2是1/5尺寸(毕竟动画尺寸太大,文件太大)write_gif("Theanimationisdone.gif",fps=8)保存gif时,调整帧率到8根据上面的参数设置,这个动画其实是由(2.60-2.45)*8=12张图片组成的!赠送属性3.抓取区域旋转图片有时候我们可能只需要抓取屏幕上指定的矩形区域制作动画。这将使用裁剪功能截图区域。video.crop(x1=None,y1=None,x2=None,y2=None,width=None,height=None,x_center=None,y_center=None,)参数:x1,y1:视频左上角坐标矩形区域x2,y2:矩形区域的右下角坐标width,height:宽高x_center,y_center:x1的坐标为x_center-width/2,x2的坐标为x_center+width/2、y_center同样处理动画代码如下:crop=(video.subclip((2,4.5),(2,6.0)).resize(0.2).crop(x1=70,y1=0,x2=310,y2=216))crop.write_gif("cropping.gif",fps=8)在这里裁剪确定左上角和右下角的坐标,可以使用preview方式预览视频,以及然后点击相应的位置得到它。video.resize(0.2).preview()4.固定区域旋转贴图对于上面的动画,我们希望它是永久的,所以我们可以截图固定一下此时的内容,然后覆盖原来的位置即可永久。snapshot=(crop#截图区域.crop(x1=100,y1=190,x2=140,y2=216)#截取时间段(1秒).to_ImageClip(上角位置(1)的左上角截取的区域相同).set_position((100,190)).set_duration(crop.duration))#mergecomposition=CompositeVideoClip([crop,snapshot])composition.write_gif('overwrite.gif',fps=8)叠加5.添加自定义文字对于上面的操作,我们还有很多方法可以完成,比如用一张固定图片的图片叠加(和上面的情况类似,但是不需要单独截图而是看Takeaready-制成);此外,我们还可以通过添加遮罩和自定义文本来进行播放。frommoviepy.video.VideoClipimportTextClip#Maskmask=(#长宽为40*20的mask为黑色ColorClip((40,20),(0,0,0))#设置位置(同上)第4段).set_pos((100,190)).set_duration(crop.duration))#Texttext=(TextClip("完成",fontsize=30,color='white',eift-Simline='25).set_pos((80,160)).set_duration(crop.duration))composition=CompositeVideoClip([crop,mask,text])composition.write_gif('overwrite.gif',fps=8)上面的自定义文字就是这一次的全部内容。moviepy库中有很多有趣的视频编辑功能。以后慢慢研究、分享、学习吧~以上就是本次分享的全部内容了。如果觉得文章还可以,欢迎关注公众号:Python编程学习圈,每日干货分享,发送“J”还能领取大量学习资料。或者去编程学习网了解更多编程技术知识。