Estou tentando combinar umarquivo de áudioe umgifdentro devídeoe estou enfrentando alguns problemas, apesar de tentar algumas soluções no Stack Overflow.
Gostaria que a duração combinada do arquivo correspondesse à do áudio, além de preservar a transparência do GIF.
- A duração do arquivo de áudio é00:00:17,53
- A duração do arquivo Gif é00:00:00,40, é transparente.
Consegui combiná-los, mas a duração que obtive está bastante errada e a transparência foi perdida com o seguinte comando:
ffmpeg -i input.mp3 -ignore_loop 0 \
-i input.gif -movflags +faststart \
-vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" \
-shortest -strict -2 \
-c:v libx264 -c:a aac -b:a 192k -b:v 2M -pix_fmt yuv420p output.mp4
A duração do vídeo resultante é00:00:24,21
- Existe alguma maneira de acertar a duração da saída sem precisar usar
-t 00:00:17.53
a opção? - Tentei converter usando outros codecs, como libvpx-vp9, mas não consegui acertar a transparência. Existe algum outro codec que devo usar?
Editar: consegui gerar um vídeo transparente (formato webm) usando o seguinte comando:
ffmpeg -i source.mp3 -ignore_loop 0 -i source.gif -c:v libvpx -pix_fmt yuva420p -auto-alt-ref 0 -t 00:00:17.53
No entanto, minha primeira pergunta sobre a duração não ser automaticamente correta ainda permanece.