ffmpeg `palettegen` виплітає палітру` paletteuse` не може використовувати


1

Я намагаюся використовувати палітру для поліпшення надання графічних зображень у форматі 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насправді не можна використовувати. Це було б менш містично, якби документи не вказали, що це не очікувана поведінка:

резерв_прозорий

Створіть максимум 255 кольорів і залиште останній для прозорості. Збереження кольору прозорості корисно для оптимізації GIF. Якщо не встановлено, максимум кольорів у палітрі становитиме 256. Напевно, ви хочете відключити цю опцію для окремого зображення. Встановити за замовчуванням.

Так що. Що робити? (Для запису: OsX 10.12, ffmpeg 3.2.4)

Відповіді:


2

Фільтр палітри очікує, що другим входом стане палітра. У вашій теперішній команді, оскільки вхідні дані не позначені явно, фільтр індукує входи у вказаному порядку. Тому,

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

Га! Вундербар! Ніколи навіть не думав перевірити це: P Спасибі!
Гастове
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.