Видео рассинхронизируется со звуком со временем

Я записываю кадры с помощью OBS и делаю озвучку, записанную в дерзости. Я обрабатываю звук в Audacity, затем синхронизирую звук с видео. Однако, поскольку я начал делать это таким образом, аудио и видео не синхронизируются.

Все начинается нормально с определенной точки синхронизации (обратный отсчет с 3, а затем я делаю что-то вроде нажатия на что-то), но по мере продвижения видео видео начинает отставать от звука. ближе к концу 20-минутного видео разница составляет почти 3 секунды.

Кто-то поднимал частоту кадров. кадры составляют 30 кадров в секунду, а Lightworks указывает звук как 24 кадра в секунду. Микрофон также настроен на 44100 Гц, если это поможет.

Ответы (4)

Убедитесь, что частоты дискретизации в обеих системах одинаковы. Я не знаю, что такое OBS, но если бы я использовал Final Cut для редактирования видео, я бы сделал свой проект 48 кГц и убедился, что любые внешние записи также имеют частоту 48 кГц. Даже при одинаковых частотах дискретизации звук будет дрейфовать в течение периодов, превышающих несколько минут. Либо синхронизируйте его вручную по частям, либо используйте что-то вроде Pluralize, чтобы сделать это за вас. (Или иметь фиксированные часы выборки между всеми вашими устройствами, когда вы записываете - вероятно, это невозможно)

Но видео 30 кадров в секунду. что бы я изменил, чтобы отразить это?
Частота кадров относится только к видео. Аудио не разбивается на кадры — вам нужно только установить одинаковые скорости выборки и битрейт.

Интересно, что LW показывает это как «24 кадра в секунду», поскольку аудио технически не имеет частоты кадров, что является концепцией видео.

Как предлагает @tomh, убедитесь, что частота дискретизации для проекта составляет 48 КБ, и что вы экспортируете файл WAV 48 КБ из Audacity.

Если это не поможет, вы можете использовать Audacity, чтобы «предварительно растянуть» звук на некоторый процент. Найдите точки синхронизации в начале и в конце фрагмента (самый длинный отрезок, который вы можете), затем вычислите разницу как отношение. Используя «Effect..Change Tempo», примените обратное соотношение. Возможно, это число будет относиться ко всему, что вы делаете, поэтому запишите его... (-:

Как вы устанавливаете частоту дискретизации в Audacity, если вы не возражаете против моего вопроса? В Audacity чертовски много кнопок.
Нет смысла передискретизировать звук до 48 кГц, если только ваше видео программное обеспечение не собирается это делать. (скорость проекта устанавливается в нижнем левом углу.) Важным моментом является нахождение точки синхронизации в начале и конце, потому что часы для вашего аудио работают с немного другой скоростью, чем для вашего видео. Вы можете либо растянуть звук с дерзостью, либо настроить видео FPS с 30 кадров в секунду обратно до НАСТОЯЩИХ 30 кадров в секунду, при условии, что ваши звуковые часы были точными.ffmpeg -vf setpts=...
упс, неверно сказано для случая растяжения видео: камера с неточными часами будет думать, что записывает со скоростью 30 кадров в секунду, но на самом деле записывает где-то с 29,95 или 30,05. Пока я сделал только один из своих образцов, но, вероятно, такая же коррекция скорости будет работать и для других. Итак, что я сделал, так это растянул видео, чтобы оно соответствовало звуку, и в итоге получил видео с частотой 29,97 кадра в секунду (совпадение, что это близко к цветному NTSC кадрам в секунду), потому что это то, что моя цифровая камера фактически записала, предполагая, что часы частоты дискретизации звука моего ноутбука точны. .

В вопросе « Синхронизация отдельного звука с видео + плохая камера-аудио, бесплатные рекомендации NLE» я подробно описал, как я вручную выполнял синхронизацию аудио/видео для звука, записанного отдельно от видео, с помощью Audacity и ffmpeg.

44,1 кГц против 48 кГц не имеет ничего общего с дрейфом. Проблема в том, что часы камеры не совсем совпадают с часами ноутбука, поэтому, хотя они оба думают, что записывают 1 секунду в секунду, они дрейфуют относительно друг друга. Вам нужно растянуть видео или звук на 3 секунды за 20 минут, а не просто передискретизировать.

Оба других ответа довольно хорошо охватывают идеальный случай, но есть и другой, менее идеальный случай. В зависимости от типа вашего видео, возможно, у вас плохая синхронизация часов или пропущенные кадры. Мы надеемся, что плохая синхронизация часов будет исправлена ​​с помощью метода растяжения, упомянутого Джимом Маком, но если часы нерегулярны (что в наши дни маловероятно), то вы можете получить что-то практически невосстановимое без больших ручных усилий.

Более распространенная проблема, которую можно увидеть, — это пропущенные кадры. В том случае, если либо камера, либо в случае чего на ленте передача лагала, то из видео могут выпадать кадры. В случае пропуска кадров звук может дрейфовать при пропуске отсутствующей видеоинформации. В этих случаях вы должны попытаться определить, где находятся пропущенные кадры, и удалить звук из этих точек, чтобы он соответствовал видео. Опять же, это довольно кропотливый и ручной процесс, поэтому я надеюсь, что один из других ответов поможет, прежде чем вы застрянете с одним из этих неидеальных сценариев.