某天有个视频转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 可以执行的一些常见任务包括:
- 格式转换: 可以将一个多媒体文件从一个格式转换为另一个格式。比如将一个视频文件从 MP4 转换为 AVI 格式,或者将一个音频文件从 MP3 转换为 WAV 格式等。
- 剪辑和拼接: 可以截取视频或音频文件的一部分,也可以将多个文件合并成一个文件。比如截取视频的某一段,或者将多个音频文件合并成一个音频文件等。
- 编解码: 可以对音频和视频进行编解码操作。比如对视频进行解码以提取其中的帧,或者对音频进行编码以改变其格式等。
- 添加/提取元数据: 可以添加或提取多媒体文件中的元数据信息,比如标题、作者、描述等。
- 调整参数: 可以调整音频或视频文件的参数,比如调整音频的音量、视频的分辨率、帧率等。
- 流处理: 可以处理实时的音视频流,比如从摄像头捕获视频流并进行处理,或者将处理后的流发送到网络上等。
总的来说,FFmpeg 是一个非常强大且灵活的多媒体处理工具,可以满足各种多媒体处理需求,从简单的格式转换到复杂的流处理都可以胜任。
GIF 原理:GIF(Graphics Interchange Format)是一种使用无损压缩算法的位图图形文件格式,最初由CompuServe开发。GIF 使用 LZW 压缩算法来减小文件大小,它支持动画和透明度,并且可以包含多帧图像以创建简单的动画效果。GIF 图像由多个图像帧组成,每一帧都可以有不同的延迟时间,这样就可以创建动画效果。
MOV 格式与 GIF 格式的区别 :
-
文件类型 :MOV 是一种视频文件格式,通常用于存储电影或其他视频内容;而 GIF 是一种图像文件格式,通常用于简单动画、图标等。
-
压缩算法 :MOV 使用不同的编解码器(如H.264、HEVC等)来压缩视频数据,而 GIF 使用 LZW 无损压缩算法来压缩图像数据。
-
颜色深度 :MOV 文件通常支持较高的颜色深度和分辨率,适合存储高质量视频内容;而 GIF 文件通常是8位色深,支持最多256种颜色。
-
动画支持 :MOV 可以包含音频、视频轨道,支持复杂的视频和音频内容;而 GIF 只支持简单的动画效果,不包含音频轨道。
-
应用场景:MOV 适合用于存储电影、视频剪辑等内容;而 GIF 更适合用于简单动画、表情包、网页图像等场景。