1

Я пытаюсь использовать палитру для улучшения рендеринга GIF из MP4, как было предложено. Тем не менее, я сталкиваюсь с причудливой проблемой:

$ ffmpeg -v warning -i test.mp4 -vf "fps=15,scale=320:-1:flags=lanczos,palettegen" -y /tmp/palette.png

$ ffmpeg -v warning -i /tmp/palette.png -i test.mp4 -lavfi paletteuse -y test.gif
[Parsed_paletteuse_0 @ 0x7f83a8c0eb20] Palette input must contain exactly 256 pixels. Specified input has 480x480=230400 pixels

palettegen кажется, выплевывает палитру, которую палитра в paletteuse не может использовать. Это было бы менее загадочно, если бы в документах не было указано, что это не ожидаемое поведение:

reserve_transparent

Создайте палитру максимум из 255 цветов и зарезервируйте последнюю для прозрачности. Резервирование цвета прозрачности полезно для оптимизации GIF. Если не установлен, максимум цветов в палитре будет 256. Вы, вероятно, хотите отключить эту опцию для автономного изображения. Устанавливается по умолчанию.

Так что Что? (Для записи: OsX 10.12, ffmpeg 3.2.4)

1 ответ1

2

Фильтр paletteuse ожидает, что 2-й вход будет палитрой. В вашей настоящей команде, поскольку входные данные не имеют явной пометки, фильтр вводит входные данные в указанном порядке. Так,

ffmpeg -v warning -i test.mp4 -i /tmp/palette.png -lavfi paletteuse -y test.gif

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .