ffmpeg Som saindo de sincronia com -concat ou -ss
Pergunta
Eu tenho uma ferramenta que reproduz o vídeo de um aplicativo 3D e, em seguida, combina os vídeos individuais para fazer uma sequência.Mas o som parece sair de sincronia na sequência (os arquivos individuais estão bem) e falha no VLC e Quicktime.O Windows Media Player parece lidar com isso melhor para minha surpresa, mas ainda assim sai de sincronia.Tenho dois senários, um funciona e outro não, mas preciso que os dois funcionem:
Funcionando:
já criou os movs ...
converter para avi:
os.system( ffmpeg + " -i C:\clip.mov -sameq -r 24 -y C:\clip.avi")
concat na sequência avi:
os.system( ffmpeg + ''' -i concat: C:\clip.avi|C:\clip1.avi|C:\clip2.avi -sameq -r 24 -y C:\sequence.avi''' )
converter sequência em mov:
os.system( ffmpeg + " -i C:\sequence.avi -sameq -r 24 -y C:\sequence.mov")
Não funciona: criar avi's individuais a partir do programa 3D ...
corte no comprimento correto:
os.system(ffmpeg + " -i C:\clip.avi -sameq -r 24 -ss " + startTime + " -vframes " + totalFrames + " -y C:\clip.avi" )
concat na sequência avi:
os.system( ffmpeg + ''' -i concat: C:\clip.avi|C:\clip1.avi|C:\clip2.avi -sameq -r 24 -y C:\sequence.avi''' )
converter sequência em mov:
os.system( ffmpeg + " -i C:\sequence.avi -sameq -r 24 -y C:\sequence.mov")
converter avis individuais em mov:
os.system( ffmpeg + " -i C:\clip.avi-sameq -r 24 -y C:\clip.mov")
Por favor, deixe-me saber onde eu errei?
Solução
Acontece que era a bandeira "-sameq" durante o processo de corte.Estava bagunçando o áudio, então mudei
os.system(ffmpeg + " -i C:\clip.avi -sameq -r 24 -ss " + startTime + " -vframes " + totalFrames + " -y C:\clip.avi" )
para
os.system(ffmpeg + " -i C:\clip.avi -sameq -r 24 - acodec pcm_s16le -ss " + startTime + " -vframes " + totalFrames + " -y C:\clip.avi" )
- forçando o ffmpeg a usar o pcm_s16le como o codec de áudio em vez do fora de sincronia que o -sameq estava usando ... e isso corrigiu o problema!
Espero que isso possa ajudar alguém.