Я пытаюсь использовать палитру для улучшения рендеринга 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)