ffmpeg:缩放 png 时保持透明度

标签 ffmpeg png

我正在尝试调用以下命令:

ffmpeg -y -i 1.png -vf "thumbnail=300,scale='min(300,iw)':-1" -frames:v 1 o.png

输入文件:

enter image description here

输出文件:

enter image description here

有可能修复它吗?

最佳答案

删除 thumbnail筛选。它不保留透明度,并且在您的命令中不执行任何操作,因为它旨在用于视频输入而不是单个图像输入:

thumbnail
Select the most representative frame in a given sequence of consecutive frames.


ffmpeg -y -i 1.png -vf "scale='min(300,iw)':-1" -frames:v 1 o.png

可以查看libavfilter/vf_thumbnail.c的源码查看支持的像素格式:
static const enum AVPixelFormat pix_fmts[] = {
    AV_PIX_FMT_RGB24, AV_PIX_FMT_BGR24,
    AV_PIX_FMT_NONE
};

这些都不支持透明度(它会在支持透明度/alpha 的像素格式名称中包含 A)。

关于ffmpeg:缩放 png 时保持透明度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58491426/

相关文章:

flash - 用于网络的有损图像压缩和透明度?

javascript - 将形状加载到 d3

html - 具有透明部分的 PNG 图像上的 CSS 边框

macos - 以编程方式创建和更新 HLS 播放列表

cocoa - 从 libswscale 中获取 PIX_FMT_YUYV422

html - 从 YouTube-DL 自动生成 HTML5 <video> 标签

audio - 合并 2 视频使用 ffmpeg 但我想要

image - PNG、GIF、JPEG 和 SVG 的不同用例是什么?

android - 使用 ffmpeg 播放带有音轨的 mp3 数据

javascript - 执行文档范围 PNG 动画的最有效方法