ffmpeg - 创建透明动画 gif 时出现故障
问题描述
我正在使用 FFMPEG 从一组具有透明度的帧创建动画 gif。首先创建一个调色板。
input file: -f frameinput -input_type canvas -pix_fmt bgra -r 6 -s 640x360
output file: -vf palettegen=stats_mode=full -an
然后创建 gif。
input file: -f frameinput -input_type canvas -pix_fmt bgra -r 6 -s 640x360
output file: -f gif -lavfi paletteuse=diff_mode=rectangle:dither=none -an
结果看起来像这样。在所有透明背景区域都被不透明区域覆盖后,会立即出现此问题。
它应该如下所示。这是使用 ezgif 网站创建的。
有谁知道这里会发生什么?我可以包含任何参数来防止这种情况吗?生成的调色板文件看起来是正确的,除了右下角的一个透明像素外,全黑,所以我认为问题出在paletteuse 调用中。
我尝试解决的问题包括更改 diff_mode 和抖动。Use_alpha 看起来像是我应该尝试的东西,但我似乎无法正确使用语法。用户指南没有给出示例,我在其他任何地方都找不到任何示例。
解决方案
推荐阅读
- sql - TSQL - 从随机文本创建一个 GUID,然后从该 GUID 取回原始文本值
- compare - Pinescript - 具有百分比变化功能的“比较”指标仅采用最后一根柱线数据
- reactjs - 将表单数据作为 json 从 ReactJS 发布到嵌套序列化程序
- c# - 如何使用实体框架中的字符串参数类型数组执行 where 查询?
- amazon-web-services - 将 AWS CodePipeline 变量传递给操作
- java - Spring中部分数据导入的新事务
- c - C UDP套接字连接没有正确分配端口
- vue.js - Vue JS 和 Quasar:路由器视图中的 @functionname 是什么?
- python - Python:如何导入写在另一个目录中的文件中的函数?
- angular - 带 Angular 的雪堆?