ffmpeg Звук не синхронизирован с -concat или -ss - PullRequest
3 голосов
/ 12 сентября 2011

У меня есть инструмент, который выплевывает видео из 3D-приложения, а затем объединяет отдельные видео для создания последовательности.Но звук, кажется, не синхронизирован в последовательности (отдельные файлы в порядке), и он заикается в VLC и Quicktime.Windows Media Player, кажется, справляется с этим, к моему удивлению, но он все еще не синхронизирован.У меня есть два senarios, один работает, а другой нет, но мне нужно, чтобы оба работали:

Работа:
получить уже созданные мов ...

конвертироватьв 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")

Пожалуйста, дайте мне знать, где я ошибся?

1 Ответ

3 голосов
/ 28 сентября 2011

Оказывается, это был флаг "-sameq" во время процесса резки. Это испортило звук, поэтому я просто изменил

os.system(ffmpeg + " -i C:\clip.avi -sameq -r 24 -ss " + startTime + " -vframes " + totalFrames + " -y C:\clip.avi" )

до

os.system(ffmpeg + " -i C:\clip.avi -sameq -r 24 - acodec pcm_s16le -ss " + startTime + " -vframes " + totalFrames + " -y C:\clip.avi" )

- принуждение ffmpeg использовать pcm_s16le в качестве аудиокодека вместо несинхронизированного, который использовал -sameq ... и это исправило!

Надеюсь, что это может помочь кому-то еще.

...