【视频如何转gif - 有感】

某天有个视频转gif动图的需求,本想着在网上找个工具,一键转换。

网上的gif转换工具很多,花花绿绿 ,但实际能到达需求效果的,一个都没有!不是转出来的清晰度巨低,就是要注册付费会员,试了多个都不符合预期。

这个时候,突然想到很久之前做视频流媒体开发时,用到的一个神器ffmpeg,搜了下,果然可以用,安装ffmpeg后就一行命令,即可完成转换,且清晰度无损,帧数等关键参数也可以自定义调整!

mov → gif

复制代码
ffmpeg -ss 00:00:10 -i input.mov -t 2 -r 10 -s 1080x1920 output.gif
  • ss 00:00:10: 指定从视频的第10秒开始截取。
  • i input.mov : 指定输入文件为 input.mov
  • t 2: 指定截取的时长为 2 秒(从第十秒到第十二秒,即两秒)。
  • r 10: 设置输出 GIF 的帧率为 10 帧/秒。
  • s 1080x1920: 设置输出 GIF 的分辨率为 1080x1920 像素。
  • output.gif : 指定输出文件名为 output.gif

感想:有时候使用软件工具虽然操作简单,但是也同样因为操作简单,只要稍微有些定制化需求 ,软件就很难实现了。

了解原理 , 自己转换 ,科技就是生产力 !✿ヽ(°▽°)ノ✿


参考

FFmpeg 是一个强大的多媒体处理工具,它可以用来处理音频、视频和其他多媒体文件。它是一个开源项目,可以在多种操作系统上运行,包括 Linux、Windows 和 macOS。

FFmpeg 可以执行的一些常见任务包括:

  1. 格式转换: 可以将一个多媒体文件从一个格式转换为另一个格式。比如将一个视频文件从 MP4 转换为 AVI 格式,或者将一个音频文件从 MP3 转换为 WAV 格式等。
  2. 剪辑和拼接: 可以截取视频或音频文件的一部分,也可以将多个文件合并成一个文件。比如截取视频的某一段,或者将多个音频文件合并成一个音频文件等。
  3. 编解码: 可以对音频和视频进行编解码操作。比如对视频进行解码以提取其中的帧,或者对音频进行编码以改变其格式等。
  4. 添加/提取元数据: 可以添加或提取多媒体文件中的元数据信息,比如标题、作者、描述等。
  5. 调整参数: 可以调整音频或视频文件的参数,比如调整音频的音量、视频的分辨率、帧率等。
  6. 流处理: 可以处理实时的音视频流,比如从摄像头捕获视频流并进行处理,或者将处理后的流发送到网络上等。

总的来说,FFmpeg 是一个非常强大且灵活的多媒体处理工具,可以满足各种多媒体处理需求,从简单的格式转换到复杂的流处理都可以胜任。

GIF 原理:GIF(Graphics Interchange Format)是一种使用无损压缩算法的位图图形文件格式,最初由CompuServe开发。GIF 使用 LZW 压缩算法来减小文件大小,它支持动画和透明度,并且可以包含多帧图像以创建简单的动画效果。GIF 图像由多个图像帧组成,每一帧都可以有不同的延迟时间,这样就可以创建动画效果。

MOV 格式与 GIF 格式的区别

  1. 文件类型 :MOV 是一种视频文件格式,通常用于存储电影或其他视频内容;而 GIF 是一种图像文件格式,通常用于简单动画、图标等。

  2. 压缩算法 :MOV 使用不同的编解码器(如H.264、HEVC等)来压缩视频数据,而 GIF 使用 LZW 无损压缩算法来压缩图像数据。

  3. 颜色深度 :MOV 文件通常支持较高的颜色深度和分辨率,适合存储高质量视频内容;而 GIF 文件通常是8位色深,支持最多256种颜色。

  4. 动画支持 :MOV 可以包含音频、视频轨道,支持复杂的视频和音频内容;而 GIF 只支持简单的动画效果,不包含音频轨道。

  5. 应用场景:MOV 适合用于存储电影、视频剪辑等内容;而 GIF 更适合用于简单动画、表情包、网页图像等场景。

相关推荐
2301_79658850几秒前
Navicat连ClickHouse出现中文乱码怎么办_字符集编码调整
jvm·数据库·python
编码者卢布几秒前
【App Service】常规排查 App Service 启动 Application Insights 无数据的步骤 (.NET版本)
python·flask·.net
2401_837163892 分钟前
CSS如何处理带有状态切换的折叠菜单_利用BEM修饰符管理状态
jvm·数据库·python
m0_617881424 分钟前
Navicat连接MariaDB报1045密码错误怎么办_权限排查与解决
jvm·数据库·python
m0_515098426 分钟前
C#怎么操作WPF数据模板 C#如何用DataTemplate定义集合项的显示样式和布局【控件】
jvm·数据库·python
qq_654366986 分钟前
golang如何实现告警分级与升级_golang告警分级与升级实现步骤
jvm·数据库·python
2401_897190556 分钟前
Redis怎样在Spring中执行批量Pipeline指令
jvm·数据库·python
2301_815279527 分钟前
使用 Go 语言安全高效地将 SSH 公钥复制到远程服务器
jvm·数据库·python
迷藏4947 分钟前
**绿色AI:用Python构建节能型机器学习模型的实践与优化策略**在人工智能飞速发展的今天,模型训练和
java·人工智能·python·机器学习
LiAo_1996_Y7 分钟前
WordPress 自定义分类归档分页失效的完整解决方案
jvm·数据库·python