ffmpeg: сохранить прозрачность при масштабировании png - PullRequest
0 голосов
/ 21 октября 2019

Я пытаюсь вызвать следующую команду:

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

Возможно ли это исправить?

1 Ответ

1 голос
/ 21 октября 2019

Удалите фильтр thumbnail . Он не сохраняет прозрачность и ничего не делает в вашей команде, так как он предназначен для использования с видеовходом, а не с одним входом изображения:

thumbnail
Выберите наиболее представительный кадр взаданная последовательность последовательных кадров.

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
};

Ни одна из этих функций не поддерживает прозрачность (этобудет содержать A в названии формата пикселей, который поддерживает прозрачность / альфа).

...