ffmpeg `palettegen` escupe una paleta que` paletteuse` no puede usar

1

Estoy tratando de usar una paleta para mejorar la representación de gif desde MP4, como se ha sugerido . Sin embargo, me encuentro con un problema extraño:

$ 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

palettegenparece estar escupiendo una paleta que en paletteuserealidad no puede usar. Esto sería menos desconcertante si los documentos no especificaran que este no es el comportamiento esperado:

reserva_transparente

Cree una paleta de 255 colores como máximo y reserve el último para transparencia. Reservar el color de transparencia es útil para la optimización de GIF. Si no se establece, el máximo de colores en la paleta será 256. Probablemente desee deshabilitar esta opción para una imagen independiente. Establecido por defecto.

Entonces uh ¿Qué hacer? (Para el registro: OsX 10.12, ffmpeg 3.2.4)

Estufa de gas
fuente

Respuestas:

2

El filtro de uso de la paleta espera que la segunda entrada sea la paleta. En su comando actual, dado que las entradas no están explícitamente etiquetadas, el filtro induce las entradas en el orden en que se especifican. Entonces,

ffmpeg -v warning -i test.mp4 -i /tmp/palette.png -lavfi paletteuse -y test.gif
Gyan
fuente
¡Decir ah! Wunderbar! Nunca pensé en comprobar eso: P ¡Gracias!
Gastove