ffmpeg `palettegen` cospe uma paleta` paletteuse` não pode usar

1

Eu estou tentando usar uma paleta para melhorar a renderização gif a partir de MP4s, como foi sugerido . No entanto, estou correndo para um problema bizarro:

$ 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 parece estar cuspindo uma paleta que paletteuse não pode realmente usar. Isso seria menos confuso se os documentos não especificassem que esse não é o comportamento esperado:

reserva_transparente

Crie uma paleta de 255 cores no máximo e reserve a última para transparência. Reservar a cor da transparência é útil para a otimização de GIFs. Se não estiver definido, o máximo de cores na paleta será 256. Você provavelmente desejará desabilitar essa opção para uma imagem autônoma. Definido por padrão.

Então ... Fazer o que? (Para o registro: OsX 10.12, ffmpeg 3.2.4)

Gastove
fonte

Respostas:

2

O filtro paletteuse espera que a segunda entrada seja a paleta. Em seu comando atual, uma vez que as entradas não são explicitamente rotuladas, o filtro indica as entradas na ordem em que são especificadas. Assim,

ffmpeg -v warning -i test.mp4 -i /tmp/palette.png -lavfi paletteuse -y test.gif
Gyan
fonte
Ha! Wunderbar! Nunca pensei em verificar isso: P Obrigado!
Gastove