【强烈推荐】视频转gif、图片拼gif,嘎嘎好用,免费免费真的免费,亲测有效,无效过来打我

news2024/9/24 13:23:27

问题描述

        最近遇到一个需求是需要将视频生成gif,这个看上去不是很难,所以有了以下的解决办法

解决办法

        首先想到的当然是自己写一个,用了两套代码:

from moviepy.editor import *

# 读取视频文件
video_clip = VideoFileClip("280361337.mp4")

# 将视频转为gif格式
gif_clip = video_clip.to_gif("output.gif")

# 关闭视频文件
video_clip.close()

        运行这个的话可能会遇到的问题就是没有moviepy这个module,pip install一下就可以了,但是安装完之后会报错提示有些依赖包没有,只需要按提示逐个安装就行了。

        但是上述的代码不能够控制帧率和大小,于是又完善了一下。

import imageio
from PIL import Image

def convert_video_to_gif(input_path, output_path, fps=10, scale=0.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, format='GIF', append_images=frames[1:], save_all=True, duration=1000/output_fps, loop=0, optimize=True)

    # 关闭视频文件
    video.close()

# 调用函数进行视频转换为gif
convert_video_to_gif("studio_video_1698138576505.mp4", "output4.gif", fps=20, scale=1)

        这样一来就能比较控制帧率和大小了,但相比来说只压缩了一半,还是有点大,也正因为这个原因,没有办法在这里展示效果,简单来说,效果还是可以的,只是太大了超过了5M,所以不能上传。

更好的办法        

        像这种都有现成的工具,比如本次推荐的这个就是,效果挺好的,

        压缩比大概为1/5

        可以自己指定宽度

        也可以进行压缩,只是这个过程有点曼,能再压缩1/2,效果几乎无变化

        还支持其他的功能

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1134245.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

若依微服务上传图片文件代理配置

在使用若依微服务文件上传时候,文件上传成功会上传到D:/ruoyi/uploadPath目录下。默认使用9300端口进行访问图片文件,现在我想把它代理到80端口应该怎么做呢? 配置前:http://localhost:9300/statics/2023/09/24/test.jpg 配置后:http://localhost/statics/2023/09/24/test…

Kafka KRaft模式探索

1.概述 Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。其核心组件包含Producer、Broker、Consumer,以及依赖的Zookeeper集群。其中Zookeeper集群是Kafka用来负责集群元数据的管理、控制器的选举等。 2.内容…

StableDiffusion学习

模型推荐 majicMIX realistic 麦橘写实(写实近景人像): https://civitai.com/models/43331/majicmix-realisticDreamShaper(各种画风, 比较全能): https://civitai.com/models/4384/dreamshaperLOFI (更精致人像面部): https://civitai.com/models/9052?modelVersionId146253…

MSQL系列(九) Mysql实战-Join算法底层原理

Mysql实战-Join算法底层原理 前面我们讲解了BTree的索引结构,及Mysql的存储引擎MyISAM和InnoDB,今天我们来详细讲解下Mysql的查询连接Join的算法原理 文章目录 Mysql实战-Join算法底层原理1.Simple Nested-Loop Join 简单嵌套循环2.Block Nested-Loop Join 块嵌套…

查找算法-二分查找法(Binary Search)

目录 查找算法-二分查找法(Binary Search) 1、说明 2、算法分析 3、C代码 查找算法-二分查找法(Binary Search) 1、说明 如果要查找的数据已经事先排好序了,就可以使用二分查找法来进行查找。二分查找法是将数据…

HackTheBox - Starting Point -- Tier 0 ---Preignition

文章目录 一 题目二 实验过程 一 题目 Tags Network、Programming、RDP、Reconnaissance、Weak Credentials译文:网络、编程、RDP、侦察、凭证薄弱Connect To attack the target machine, you must be on the same network.Connect to the Starting Point VPN us…

【面试经典150 | 链表】合并两个有序链表

文章目录 Tag题目来源题目解读解题思路方法一:递归方法二:迭代 写在最后 Tag 【递归】【迭代】【链表】 题目来源 21. 合并两个有序链表 题目解读 合并两个有序链表。 解题思路 一种朴素的想法是将两个链表中的值存入到数组中,然后对数组…

16、window11+visual studio 2022+cuda+ffmpeg进行拉流和解码(RTX3050)

基本思想:需要一个window11 下的gpu的编码和解码代码,逐开发使用,先上个图 几乎0延迟的,使用笔记本的显卡 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.0\extras\demo_suite>deviceQuery.exe deviceQuery.exe Starting...CUDA Device Query (Runtime API…

Xcode自定义快捷键

一、新建脚本 1. 编写脚本 把脚本sh文件保存在安全的目录,不会被删除 我这里主要是两个常用的: 1.打开终端: xcode-terminal.sh #!/bin/shif [ -n "$XcodeProjectPath" ]; then open -a Terminal "$XcodeProjectPath"/.. elseo…

macOS鼠标管理操作增强BetterMouse简体中文

BetterMouse是一款专为Mac用户设计的鼠标增强工具,旨在帮助用户更好地掌握和管理鼠标操作。它提供了全局鼠标手势、高度可定制的鼠标设置选项以及一些有用的鼠标增强功能,如鼠标放大镜、鼠标轨迹和应用程序切换功能。这些功能可以大大提高用户的工作效率…

Redis桌面管理工具:Redis Desktop Manager for Mac

Redis Desktop Manager是一款非常实用的Redis管理工具,它不仅提供了方便易用的图形用户界面,还支持多种Redis数据结构,可以帮助用户轻松地完成Redis数据库的管理工作。 以下是一些推荐Redis Desktop Manager的理由: 多平台支持&a…

2021-arXiv-The Power of Scale for Parameter-Efficient Prompt Tuning

2021-arXiv-The Power of Scale for Parameter-Efficient Prompt Tuning Paper: https://arxiv.org/abs/2104.08691 Code: https://github.com/google-research/ text-to-text-transfer-transformer/ blob/main/released_checkpoints.md# lm-adapted-t511lm100k 在这项工作中&…

如何编辑pdf?推荐福昕高级pdf编辑器

这里写目录标题 安装教程1.双击FoxitPhantomPDF941_L10N_Setup.exe安装2.打开FiX UZ1文件夹 复制plugins文件夹和FoxitPhantomPDF.exe到安装目录中替换3. 双击Express2BusinessFix New.reg导入注册表 如何复制页面如何修改pdf的内容福昕高级pdf编辑器安装包 【Note】学校要求加…

http代理IP它有哪些应用场景?如何提升访问速度?

随着互联网的快速发展,越来越多的人开始关注网络速度和安全性。其中,代理IP技术作为一种有效的网络加速和安全解决方案,越来越受到人们的关注。那么,http代理IP有哪些应用场景?又如何提升访问速度呢? 一、h…

TeeChart for .NET 2023.10.19 Crack

TeeChart.NET 的 TeeChart 图表控件提供了一个出色的通用组件套件,可满足无数的图表需求,也针对重要的垂直领域,例如金融、科学和统计领域。 数据可视化 数十种完全可定制的交互式图表类型、地图和仪表指示器,以及完整的功能集&am…

DevOps持续集成-Jenkins(1)

文章目录 DevOpsDevOps概述Code阶段工具(centos7-gitlab主机)Windows下安装Git(作用是:使我们可以上传代码到GitLab)Linux下安装GitLab⭐(作用是:运行一个GitLab接收代码)环境准备先…

电脑QQ如何录制视频文件?

听说QQ可以录制视频,还很方便,请问该如何录制呢?是需要先打开QQ才可以录制吗?还是可以直接使用快捷键进行录制呢?录制的质量又如何呢? 不要着急,既然都打开这篇文章看了,那小编今天…

使用Docker快速搭建服务器环境

简介 这篇文章也是方便自己记录搭建流程,服务器的购买啥的就不说了,最终目标就是在一个空白的Linux系统上,使用docker运行MySQL、TomcatJava、Nginx、Redis 的单机环境,以后方便自己快速的部署服务器。 安装Docker 首先需要安装…

宏电5G RedCap工业智能网关获首个中国移动5G物联网开放实验室5G及轻量化产品能力认证

10月21日,2023世界物联网博览会——中国移动物联网开发者大会暨物联网产业论坛在无锡圆满举行。宏电股份参与中国移动5G物联网开放实验室5G及轻量化产品能力认证成果授牌仪式,并获得认证证书。 此次认证主要对产品功能、产品性能、RedCap网络兼容性进行测…

为什么POST请求经常发送两次?

大多数初级前端程序员,在通过浏览器F12的调试工具调试网络请求时,可能都会有一个发现,在进行POST请求时,明明代码里只请求了一次,为什么network里发送了两次呢,难道我代码出bug了?带着疑问点开第…