python 实现将视频转换为gif

每次视频转gif找网站在线转的,经常忘记地址,有的网站要登陆,有的网站有水印,有的网站还要开会员。不想麻烦,干脆自己用程序写一个。

1、先安装imageio
pip3 install imageio -i https://pypi.tuna.tsinghua.edu.cn/simple

2、视频转gif:
(注意,清晰度高的视频转换时间比较久,动图也比较大,并不是程序死机了,缩短时间和动图大小看下面)

import imageio
import os
import cv2.cv2 as cv
video_path = "E:/jcy/1.MP4"
save_path = "E:/jcy/1.gif"
cap = cv.VideoCapture(video_path)
gif = []
while cap.isOpened():
    ret,frame = cap.read()
    if ret == False:
        break
    gif.append(frame)
imageio.mimsave(save_path, gif, 'GIF', duration=0.1)

3、对于分辨率比较高的视频
对于分辨率比较高,时间比较长的视频转gif,程序会运行很久,甚至卡死。为了解决这个问题,两个方案,一个是缩小图片,一个是抽帧。

import imageio
import os
import cv2.cv2 as cv
import numpy as np
video_path = "E:/jcy/1.MP4"    #视频地址
save_path = "E:/jcy/1.gif"     #gif保存地址
cap = cv.VideoCapture(video_path)
gif = []
count = 1    #抽帧标志
while cap.isOpened():
    ret,frame = cap.read()
    if ret == False:
        break
    img = cv.resize(frame,(int(frame.shape[1]/4),int(frame.shape[0]/4)))   #尺寸缩小为原图的1/4
    if count%7 == 0:    #每7帧抽1帧
        gif.append(img)
    count+=1
imageio.mimsave(save_path, gif, 'GIF', duration=0.1)

4、运行结果:

使用上面这段代码通过缩图和抽帧,把原本转换下来要400多M的gif缩小到了4M多。
在这里插入图片描述

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值