Existe uma maneira de usar o FFMPEG para decompor um vídeo em arquivos de imagem individuais e depois remontar esses arquivos de imagem em um vídeo com o áudio do vídeo original em sincronia com a nova faixa de vídeo?
Acredito que um dos principais elementos pode ser definir as taxas de quadros corretamente, mas todas as combinações que tentei não funcionaram.
As combinações que tentei são as seguintes:
ffmpeg -i "/InputVideoFilePath" "/OutputImageFilePath"
(Esse comando retorna o mesmo número de arquivos de imagem de saída, independentemente de uma especificação de taxa de quadros ser colocada no arquivo de entrada, no arquivo de saída ou em ambos).
Em seguida, puxo o áudio para um arquivo separado, seguindo este comando:
ffmpeg -i "/InputVideoFilePath" "/OutputAudioFilePath"
Depois, removo as imagens em outro arquivo de vídeo, digitando uma das seguintes opções:
ffmpeg -i "/OutputImageFilePath" "/OutputVideoFilePath"
ffmpeg -i "/OutputImageFilePath" -r 23.98 "/OutputVideoFilePath"
ffmpeg -r 23.98 -i "/OutputImageFilePath" -r 23.98 "/OutputVideoFilePath"
(23,98 foi a taxa de quadros de vídeo original)
Até agora, tanto o 1 quanto o 2 criam um vídeo mais curto que o original, enquanto o 3 cria um vídeo do mesmo tamanho. Eu não entendo como configurar a taxa de quadros para a entrada pode fazer alguma diferença, já que a entrada é simplesmente uma série de imagens (ou seja, como uma série de imagens pode ter uma taxa de quadros?). A documentação do FFmpeg afirma que a configuração da taxa de quadros na entrada faz com que os timestamps sejam ignorados, mas como as imagens podem ter timestamps se não fizerem parte de um vídeo?
Depois de usar o método 3, eu sobreponho o áudio mp3 sobre o arquivo de vídeo recém-criado com o comando:
ffmpeg -i "/PathToVideoFile" -i "/PathToAudioFile" "/PathOfFinalVideoOutput"
O produto final está apenas ligeiramente fora de sincronia, mas ainda assim é notavelmente. Eu posso mostrar a saída do FFmpeg para cada uma dessas etapas, se necessário (é bastante saída, é claro).
Tags ffmpeg