首页 > 其他分享 >FFmpeg 视频转 GIF

FFmpeg 视频转 GIF

时间:2024-10-22 18:09:47浏览次数:1  
标签:视频 FFmpeg s1 s0 filter GIF palettegen bayer

Filtergraph

ffmpeg 命令中,可以使用 -filter-vf-af-filter_complex 选项指定 filter graph

Filtergraph 由 filter chain 组成,语法如下:

filterchain_1;filterchain_2;...

filterchain 由 filter 连接而成,上一个 filter 的输出成为下一个 filter 的输入,语法如下:

filter_1,filter_2,...

filter 语法:

[in_link_1]...[in_link_N]filter_name@id=key1=value1:key2=value2:...[out_link_1]...[out_link_M]

key 可以省略,如果省略,则只能放在具名参数前面,实际参数会根据 filter 的定义分配

如果 value 的值是列表类型,则每个元素由 | 隔开

示例:

fps=10,scale=320:-1:flags=lanczos,split[s0][s1];[s0]palettegen=stats_mode=diff[p];[s1][p]paletteuse=dither=bayer:bayer_scale=1

等价于:

fps=10,scale=width=320:height=-1:flags=lanczos,split[s0][s1];[s0]palettegen=stats_mode=diff[p];[s1][p]paletteuse=dither=bayer:bayer_scale=1

Video 转 Gif

ffmpeg -ss 1 -t 9 -i foo.mp4 -vf "fps=10,split[s0][s1];[s0]palettegen=stats_mode=diff[p];[s1][p]paletteuse=dither=bayer:bayer_scale=1" -loop 0 output.gif

解释:

  • -ss 1: 从输入视频的第 1 秒开始处理。

  • -t 9: 从起始时间起提取 9 秒的内容(即从第 1 秒到第 10 秒)。

  • -i foo.mp4: 指定输入文件为 foo.mp4

  • -vf: 应用视频过滤器,后面跟着过滤器的详细设置。

    过滤器的具体内容是:

    • fps=10: 设置输出 GIF 的帧率为每秒 10 帧。
    • split[s0][s1]: 将视频流分成两个相同的流,分别命名为 s0s1
    • [s0]palettegen=stats_mode=diff[p]: 对第一个流 s0 生成一个调色板 p,使用差异统计模式来优化颜色。
    • [s1][p]paletteuse=dither=bayer:bayer_scale=1: 对第二个流 s1 使用生成的调色板 p,并应用 Bayer 抖动(dithering),使 GIF 的色彩更平滑。
  • -loop 0: 指定 GIF 循环播放,0 表示无限循环。

  • output.gif: 指定输出文件名为 output.gif

filter graph 可视化:

                           [s0]               [p]
input ---> fps ---> split ------> palettegen -----> paletteuse ---> output 
                      |                                 ^
                      |              [s1]               |
                      +---------------------------------+

使用上面的命令创建 GIF 可能会遇到产生出来的 GIF 文件后面几帧有卡顿现象,这时可以使用两步法:

palette="/tmp/palette.png"
filters="fps=15,scale=320:-1:flags=lanczos"

# 1. 先生成调色板
ffmpeg -v warning -i foo.mp4 -vf "$filters,palettegen" -y $palette
# 2. 再结合调色板生成 GIF
ffmpeg -v warning -i foo.mp4 -i $palette -lavfi "$filters [x]; [x][1:v] paletteuse" -y output.png

参考:

  1. High Quality GIF with FFmpeg
  2. Filtergraph description
  3. palettegen

标签:视频,FFmpeg,s1,s0,filter,GIF,palettegen,bayer
From: https://www.cnblogs.com/1bite/p/18493460

相关文章

  • 项目方案:集团企业多区域分公司视频监控接入汇聚技术解决方案
    目录一、概述二、总目标及需求分析2.1建设总目标2.2需求分析三、设计依据与设计原则3.1设计依据3.2设计原则四、方案设计和说明4.1系统方案设计4.2组网说明五、平台介绍5.1 监控平台介绍5.2 监控平台接入能力六、功能介绍6.1视频浏览及控制6.2录像存储、数......
  • 磁力天堂视频下载时DLL文件不见了?这里提供解决方案
    当您在使用磁力天堂或者任何其他软件时遇到丢失DLL文件的提示,这通常意味着某个动态链接库文件(.dll)缺失或损坏,这个文件是Windows操作系统的一部分,也是很多应用程序运行所必需的。以下是一些可能的解决方法:重新安装软件:尝试卸载磁力天堂软件,然后从官方网站或可信来源重新下载......
  • 024_net基于ASP.NET的视频点播系统的设计与实现2024_5gjvxer5
    目录系统展示开发背景代码实现项目案例 获取源码博主介绍:CodeMentor毕业设计领航者、全网关注者30W+群落,InfoQ特邀专栏作家、技术博客领航者、InfoQ新星培育计划导师、Web开发领域杰出贡献者,博客领航之星、开发者头条/腾讯云/AWS/Wired等平台优选内容创作者、深耕Web......
  • GA/T1400视图库平台EasyCVR多品牌摄像机视频平台的级联对接
    随着网络视频监控技术的广泛应用,众多政府机构和跨区域运作的组织不再满足于仅限于本地的视频监控网络。他们正在寻求在现有本地监控系统的基础上,构建更广泛的省级或全国性监控网络,目的是为了打造一个全面的视频数据共享平台。EasyCVR视频融合云平台提供了众多的视频监控特性,如实时......
  • GA/T1400视图库平台EasyCVR多品牌摄像机视频平台的级联对接
    随着网络视频监控技术的广泛应用,众多政府机构和跨区域运作的组织不再满足于仅限于本地的视频监控网络。他们正在寻求在现有本地监控系统的基础上,构建更广泛的省级或全国性监控网络,目的是为了打造一个全面的视频数据共享平台。EasyCVR视频融合云平台提供了众多的视频监控特性,如实......
  • EHOME视频平台EasyCVR视频融合平台结合AI技术助力智慧园区转型升级
    一、智慧园区背景智慧园区是一种新兴的发展模式,它通过整合先进的信息技术、物联网、人工智能等技术,旨在提升园区的管理效率、居民生活质量以及企业运营水平。智慧园区可以是工业园区、科技园区、商业园区、住宅小区等不同类型的园区,其核心目标是通过技术手段实现资源的优化配置、......
  • 150+Premiere剪辑视频制作视频3D空间转场特效
    特征:11类视频无缝转场风格。超轻:仅3MB。混搭,为你的过渡打造无限造型.PrProj格式文件,兼容PremierePro2023及以上版本。无需预渲染。快速渲染时间。易于使用的拖放。包含的样式:3D旋转投影仪过渡。3D旋转过渡。3D旋转缩放过渡。3D倾斜过渡。3D倾斜缩放过渡。......
  • 告别加班!含pr视频剪辑的4款工具助力搬砖人,高效工作轻松get√
    短视频和直播现在超级流行,剪辑视频的技能越来越重要了。但是,那些传统的视频剪辑软件操作起来太麻烦,新手一看到就头大。就算是有经验的剪辑师,面对一大堆视频素材和紧张的截止时间,也会觉得压力山大。所以,我帮大家找到好用的剪辑工具选了四款视频剪辑软件,这些软件各有千秋,但都能帮......
  • 1亿播放量!AI风景治愈视频杀疯了,网友调侃:生活不易,需要治愈
    打工人,打工魂,“牛马”们需要一个AI风景治愈视频来提神!上班背负着老板的KPI,下班背负着人生的KPI,在这个快节奏、高压力的"内卷"时代,每个人心灵都像是被生活浪潮不断拍打的孤帆,日日悬命。而释放高压的最好方式就是看AI风景治愈视频,这些视频以超乎想象的创意、温暖人心的......
  • 如何下载youtube 视频
    推荐工具:yt-dlp  youtube-dl已经不更新,推荐使用yt-dlp  安装方法:pipinstallyt-dlp 下载方法-o指定下载目录以及对文件进行重命名yt-dlp-odst/123.mp4https://www.youtube.com/watch?v=DwLXVBjry6o 有些视频会验证是否为机器人或需要登录,此时需要获取co......