ffmpeg Звук не синхронизируется с -concat или -ss
Вопрос
У меня есть инструмент, который выводит видео из 3D-приложения, а затем объединяет отдельные видео в последовательность.Но кажется, что звук в последовательности не синхронизирован (отдельные файлы в порядке), и он заикается в VLC и Quicktime.Проигрыватель Windows Media, кажется, справляется с этим хуже, чем я предполагал, но все равно он не синхронизируется.У меня два сенария, один работает, а другой нет, но мне нужно, чтобы оба работали:
Работает:
получить уже созданные мовы ...
преобразовать в avi:
os.system( ffmpeg + " -i C:\clip.mov -sameq -r 24 -y C:\clip.avi")
преобразовать последовательность в avi:
os.system( ffmpeg + ''' -i concat: C:\clip.avi|C:\clip1.avi|C:\clip2.avi -sameq -r 24 -y C:\sequence.avi''' )
преобразовать последовательность в mov:
os.system( ffmpeg + " -i C:\sequence.avi -sameq -r 24 -y C:\sequence.mov")
Не работает: создавать индивидуальные avi из 3D программы ...
обрезать до нужной длины:
os.system(ffmpeg + " -i C:\clip.avi -sameq -r 24 -ss " + startTime + " -vframes " + totalFrames + " -y C:\clip.avi" )
преобразовать последовательность в avi:
os.system( ffmpeg + ''' -i concat: C:\clip.avi|C:\clip1.avi|C:\clip2.avi -sameq -r 24 -y C:\sequence.avi''' )
преобразовать последовательность в mov:
os.system( ffmpeg + " -i C:\sequence.avi -sameq -r 24 -y C:\sequence.mov")
конвертировать отдельные avi в mov:
os.system( ffmpeg + " -i C:\clip.avi-sameq -r 24 -y C:\clip.mov")
Пожалуйста, дайте мне знать, где я ошибся?
Решение
Оказывается, во время резки использовался флаг "-sameq".Звук был испорчен, поэтому я просто изменил
родовое словов
родовое слово- принуждение ffmpeg к использованию pcm_s16le в качестве аудиокодека вместо несинхронизированного, которое использовал -sameq ... и это исправило!
Надеюсь, это поможет кому-то другому.