Ele pode ter perdido quadros se eles forem duplicados, se a origem for reproduzida corretamente, o problema provavelmente está relacionado ao fato de que os contêineres AVI não lidam muito bem com os formatos codificados VBR (o h264 em particular não funciona bem com AVI). Eu recomendo começar despejando o vídeo para um AVI não comprimido para teste, pois é o formato mais consistente para codificar de
ffmpeg -i input.avi -acodec copy -vcodec rawvideo output.avi
Então, supondo que isso seja reproduzido em sincronia, você deve tentar fazer uma cópia direta do codec e remontar a fonte para um formato diferente, por exemplo:
ffmpeg -i input.avi -acodec copy -vcodec copy output.mkv
O MKV normalmente lida com praticamente qualquer coisa que você tenha, sem nenhum problema. Eu até escondo alguns arquivos zip criptografados em vários vídeos mkv no meu computador, já que você pode codificar anexos de arquivo em MKVs. Portanto, se qualquer um dos dois funcionar sem problemas de sincronização, tente a mesma coisa, mas recodifique o vídeo ou o áudio, mas apenas um ou outro para iniciar e manter o formato do contêiner para que você saiba onde está o problema. ou seja:
ffmpeg -i input.avi -acodec copy -vcodec libx264 output.mkv
ou
ffmpeg -i input.avi -acodec libmp3lame -vcodec copy output.mkv
Tente tornar cada conversão de teste o mais simples possível, ou seja, não altere a taxa de bits / taxa de amostragem, use os parâmetros de exemplo que listei primeiro. Depois de cada um, você estará um passo mais perto de saber exatamente o que pode e não pode fazer. Se você tem que ter h.264 eu recomendo ir com um contêiner mp4 como é muito mais compatível do que avi, por outro lado, se o requisito é um contêiner avi, então eu recomendo wmv3 ou msvideo1 para vídeo como eles seriam o mais provável de codificar corretamente.