社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

3行Python代码即可将视频转Gif

Python面试官 • 1 周前 • 27 次点击  

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:

https://blog.csdn.net/momoda118/article/details/120561447


一、前言

很多网站提供视频转GIF的功能,但要么收费要么有广告

实际上我们通过python,几行代码就能够实现视频转gif


二、教程

1. 安装必备库moviepy

pip install moviepy -i https://pypi.tuna.tsinghua.edu.cn/simple


2. 写入代码

from moviepy.editor import *
clip = (VideoFileClip("movie.mp4"))  # 需要转为GIF的视频文件路径clip.write_gif("movie.gif")

3. 转换效果


刚刚的GIF图虽然只有几秒,但大小却有9M之多!(还是已经缩放了分辨率的情况下)



如果需要转换的视频有几十秒,那文件大小就得上百兆甚至更多!

那该怎么解决呢?


4. GIF很大的解决方案

我们除了设置缩放分辨率resize外,还可以通过设置fps参数抽帧来减少大小

from moviepy.editor import *
clip = (VideoFileClip("movie.mp4").resize((488,225)))clip.write_gif("movie.gif",fps=15)  #设置为每秒15


置为每秒15帧后,文件大小只有2m多,一下缩小了4倍之多!



而且视觉效果也没有多大的区别


5. 截取视频长度转换

我们还可以通过设置subclip参数来指定转换的视频范围:

subclip:截取原视频中的自t_start t_end间的视频片段

将视频1-2秒片段转化为Gif

from moviepy.editor import *
clip = (VideoFileClip("movie.mp4").subclip(t_start=1, t_end=2).resize((488225)))clip.write_gif("movie.gif", fps=15)


6. 指定转换后的图片大小(分辨率)

resize参数可指定转换后的图片大小

接受的参数为:

  1. 以像素或浮点表示的(width,height)

  2. 缩放百分比,如 0.5

示例

1.设置转换后的图片为600*400

clip = (VideoFileClip("movie.mp4").resize((600400)))

2.原视频缩放50%

clip = (VideoFileClip("movie.mp4").resize(0.5))

最后别忘了点赞在看转发哦~

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/183909
 
27 次点击