FFMPEG: конвертировать GIF в MP4, сохраняя прозрачный (альфа-канал) фон - PullRequest
0 голосов
/ 15 января 2020

Я пытаюсь сжать / преобразовать файл GIF в MP4 через FFMPEG. Все хорошо, но я пытаюсь найти способ сохранить альфа-канал, а не прозрачность, превращающуюся в белый. GIF - это просто набор изображений, которые меняются, но они различаются по размеру с изображением psuedo на контейнере, поэтому поддержание прозрачности является обязательным.

Понятно, что после долгого поиска в Google MP4 действительно кажется не поддерживает альфа-каналы. Мне интересно, сможет ли кто-нибудь найти решение о том, как обойти это?

Команда, которую я сейчас выполняю, которая отлично преобразуется, но с белым фоном:

ffmpeg -an -i 2.gif -vf scale="trunc(oh*a/2)*2:720" -vcodec libx264 -pix_fmt rgba yuv420p -profile:v baseline -level 3 2-test-remade.mp4

И я также попробовал приведенную ниже команду безуспешно:

 ffmpeg -an lavfi -i color=RRGGBB -i 2.gif -vf scale="trunc(oh*a/2)*2:720" \
  -filter_complex "[0][1]scale2ref[bg][gif];[bg]setsar=1[bg];[bg][gif]overlay=shortest=1" \
-vcodec libx264 -pix_fmt rgba yuv420p -profile:v baseline -level 3 2-test-trans.mp4

Сообщение об ошибке сверху команды:

[color @ 0x7fe49ed19500] Cannot find color 'RRGGBB'
[color @ 0x7fe49ed19500] Unable to parse option value "RRGGBB" as color
[color @ 0x7fe49ed19500] Cannot find color 'RRGGBB'
[color @ 0x7fe49ed19500] Unable to parse option value "RRGGBB" as color
[color @ 0x7fe49ed19500] Error setting option color to value RRGGBB.
[Parsed_color_0 @ 0x7fe49ed19400] Error applying options to the filter.
[lavfi @ 0x7fe4a0009c00] Error initializing filter 'color' with args 'RRGGBB'
color=RRGGBB: Invalid argument

Любая помощь будет принята с благодарностью! Спасибо:)

РЕДАКТИРОВАТЬ: WebM поддерживает альфа-канал, но это уже хорошо. Это сделано для создания запасного варианта MP4 для устройств и браузеров, которые еще не поддерживают воспроизведение WebM.

...