Синхронизация видео и звука

alexey_ko

New Member
8 Апр 2025
11
1
3
54
Подскажите, пожалуйста, как решить проблему. Я совсем новичок (пользуюсь ПК и Windows), много чего перечитал по теме, но всё как-то очень, ну просто чересчур сложно, не могу поверить, что нет простого решения.
Суть - у меня есть 2 видеоролика со звуком. Если смотреть на свойства роликов, то один ролик имеет частоту кадров 23,98 кадр/сек, а второй 24 кадр/сек. Мне надо аудиодорожку из первого ролика вставить во второй. Так чтоб к концу просмотра не набегал рассинхрон аудио и видео, полагаю, вызванный разницей в числе кадров.
Подскажите, пожалуйста, как можно решить эту задачу и возможно ли это в принципе некой настройкой в каком-то ПО, перекодировкой аудиодорожки еще как-то?
 
Я в этом не профи совершенно, но так как все молчат.. Рассинхрон из-за чуть разной частоты тактовых генераторов ваших рекордеров, которая всегда будет. Подгоняется потянув за границу клипа в видеоредакторе. В Вегасе надо, кажется, альт зажать? - уточните. А вообще это тут наверное оффтоп, потому может и тишина.
 
  • Like
Реакции: alexey_ko
@alexey_ko, можно сделать проще, загрузите ролик 23.98 к/с в редактор и сделайте рендер в 24 (задайте в настройках экспорта),
затем получившийся файл грузите в проект на 24к/с
(иногда сам прибегаю к таким манёврам, если нужно привести разнородные файлы к одной частоте кадров)
 
  • Like
Реакции: alexey_ko
Рассинхрон из-за чуть разной частоты тактовых генераторов ваших рекордеров,
Я в этом не профи совершенно,
Не зная темы, лучше в неё вообще не влезать!
то один ролик имеет частоту кадров 23,98 кадр/сек, а второй 24 кадр/сек.
Первый ролик NTSC, второй кино.

Снимок экрана 2025-04-09 в 23.31.20.png


 
  • Like
Реакции: alexey_ko
@alexey_ko, можно сделать проще, загрузите ролик 23.98 к/с в редактор и сделайте рендер в 24 (задайте в настройках экспорта),
затем получившийся файл грузите в проект на 24к/с
(иногда сам прибегаю к таким манёврам, если нужно привести разнородные файлы к одной частоте кадров)
Если не затруднит, подскажите, пожалуйста, максимально простую для новичка прогу, в которой можно такую перекодировку сотворить.
Я правильно понимаю, что в теории видео будет перекодировано вместе с аудиодорожкой (собственно ради нее всё это и затевается) и аудиодорожка соответственно изменит свою продолжительность?
 
не могу поверить, что нет простого решения.
Если бы оно было....
то не было-бы сначала компании
Snell & Wilcox
а далее grassvalley
Которые выпускали аппаратные транскодеры форматов.
А теперь и софтовые.
 
  • Like
Реакции: alexey_ko
прогу, в которой можно такую перекодировку сотворить.
Раньше назывался Canopus Procoder, потом Grass Valley Pro Coder.
Из практики, он меньше всего глючил и выдавал артефакты по картинке.
Потом, производитель прекратил разработку, в пользу аппаратных приборов.
Но в интернете можно найти последнюю версию (ну или любую).
Для ваших целей, думаю, будет достаточно.
 
  • Like
Реакции: alexey_ko
@alexey_ko, не знаю, получится или нет, правда ли это) но ChatGPT предлагает через FFmpeg

Что такое​


FFmpeg — это мощный бесплатный инструмент командной строки для работы с видео и аудио. Он позволяет:


  • конвертировать видео и аудио между форматами,
  • извлекать или заменять аудиодорожки,
  • менять частоту кадров, размер, кодеки,
  • обрезать, склеивать видео и многое другое.

Это как швейцарский нож для мультимедиа

Где скачать FFmpeg?​



Для Windows:​


  1. Перейди на сайт: https://ffmpeg.org/download.html
  2. Нажми на Windows → gyan.dev или BtbN (оба хорошие варианты).
  3. Скачай архив со сборкой ffmpeg-release-full.zip.
  4. Распакуй в любую папку, например: C:\ffmpeg
  5. Добавь путь к C:\ffmpeg\bin в переменные среды (PATH), чтобы запускать ffmpeg из любого места:
    • Поиск → “Переменные среды” → Изменить PATH → Добавить C:\ffmpeg\bin

Или, если хочешь быстро — можешь просто запустить ffmpeg.exe из этой папки вручную.

Как пользоваться FFmpeg?​

Примеры простых команд:

ЗадачаКоманда
Извлечь аудио из видеоffmpeg -i video.mp4 -vn audio.wav
Конвертировать в MP3ffmpeg -i input.wav output.mp3
Изменить частоту кадровffmpeg -i input.mp4 -r 24 output.mp4
Объединить видео и аудиоffmpeg -i video.mp4 -i audio.wav -c:v copy -c:a aac output.mp4
Изменить скорость аудиоffmpeg -i audio.wav -filter:a "atempo=0.999" output.wav

9245b0a2-85e1-43f6-90aa-d8ce01876697.png

Пошаговая инструкция по синхронизации​


Предположим у тебя есть:


  • source_23.mp4 — видео с 23.976 fps, откуда берём аудио,
  • target_24.mp4 — видео с 24 fps, куда вставим аудио,
  • Цель: вставить аудио из первого ролика во второй без рассинхрона.



✅ Шаг 1: Создай папку и скопируй туда оба видео​


Назови их:


  • source_23.mp4
  • target_24.mp4



✅ Шаг 2: Открой папку с файлами через командную строку​


  1. Нажми Shift + ПКМ в этой папке.
  2. Выбери "Открыть окно PowerShell/командной строки здесь".



✅ Шаг 3: Введи команды по очереди​


1. Извлечь аудиодорожку из первого видео:​


Код:
ffmpeg -i source_23.mp4 -vn -acodec pcm_s16le audio.wav




2. Подогнать скорость аудио (растянуть на 0.999x):​


Код:
ffmpeg -i audio.wav -filter:a "atempo=0.999" audio_fixed.wav



  • Это скорректирует длину, чтобы она совпала с видео 24 fps.



️ 3. Вставить исправленную аудиодорожку во второе видео:​


Код:
ffmpeg -i target_24.mp4 -i audio_fixed.wav -c:v copy -map 0:v:0 -map 1:a:0 -shortest output_synced.mp4



  • Получится файл output_synced.mp4, где:
    • Видео с 24 fps,
    • Аудио из видео с 23.976, но синхронизированное.



Готово!​


Теперь ты можешь открыть output_synced.mp4 и убедиться, что рассинхрона нет — звук и видео идут ровно от начала до конца


Вот тебе готовый .bat файл для Windows — просто скопируй этот код в Блокнот, сохрани как sync_audio.bat (обязательно с расширением .bat), положи в ту же папку с видеофайлами и запускай двойным щелчком.




sync_audio.bat — СКРИПТ .bat файл (одним кликом запускаешь и всё делается)​


Код:
@echo off
setlocal

REM ==== Названия файлов ====
set "SOURCE=source_23.mp4"
set "TARGET=target_24.mp4"
set "AUDIO=audio.wav"
set "FIXED_AUDIO=audio_fixed.wav"
set "OUTPUT=output_synced.mp4"

echo [1/4] Извлечение аудио из %SOURCE%
ffmpeg -i "%SOURCE%" -vn -acodec pcm_s16le "%AUDIO%"

echo [2/4] Коррекция скорости аудио (растягиваем до 24 fps)
ffmpeg -i "%AUDIO%" -filter:a "atempo=0.999" "%FIXED_AUDIO%"

echo [3/4] Вставка аудио в %TARGET%
ffmpeg -i "%TARGET%" -i "%FIXED_AUDIO%" -c:v copy -map 0:v:0 -map 1:a:0 -shortest "%OUTPUT%"

echo [4/4] Готово! Результат: %OUTPUT%

pause




Как пользоваться:​


  1. Убедись, что рядом в папке лежат два файла:
    • source_23.mp4 — видео с нужной аудиодорожкой (23.976 fps),
    • target_24.mp4 — видео, куда вставляем звук (24 fps).
  2. Дважды кликни по sync_audio.bat.
  3. Через несколько секунд появится файл output_synced.mp4 — уже синхронный


DaVinci Resolve (бесплатно, мощно)


⚙️ Что делать:​


  1. Создай новый проект.
  2. Импортируй оба видео (source_23.976.mp4 и target_24.mp4).
  3. Перетащи видео с 24 fps на таймлайн — оно станет основой.
  4. Перетащи на таймлайн видео с 23.976 fps, используй только его аудиодорожку:
    • Можно правой кнопкой кликнуть → Link Clips (отключить), потом удалить его видео-часть.
  5. Теперь у тебя:
    • Видео: 24 fps
    • Аудио: из 23.976 видео
  6. Растяни аудио, чтобы оно соответствовало длительности:
    • Перейди на вкладку Fairlight (аудио).
    • Кликни правой кнопкой на аудиоклип → Change Clip Speed.
    • В поле "Speed" введи:

Код:
100.1001

Это ≈ 1 / (23.976 / 24)

Перейди во вкладку Deliver и экспортируй видео с нужными настройками.

Adobe Premiere Pro


⚙️ Шаги:​


  1. Импортируй оба файла.
  2. Создай новую последовательность (Sequence) с параметрами 24 fps (можно просто кинуть 24 fps видео на таймлайн).
  3. Перетащи видео с 24 fps на таймлайн.
  4. Перетащи второе видео (23.976 fps) и оставь только аудиодорожку:
    • Разъедини аудио и видео (Right Click > Unlink), удали видео-часть.
  5. Выдели аудиоклип → Right Click > Speed/Duration....
    • Введи Speed: 100.1001% — это компенсирует расхождение в fps.
  6. Убедись, что длина аудио совпадает с видео.
  7. Экспортируй как обычный файл (Ctrl+M).



Важное:​


  • Разница между 23.976 и 24 fps кажется микроскопической, но на длинном ролике (10+ мин) может дать секундный рассинхрон.
  • Оба метода (ffmpeg и ручной через монтажку) работают точно, просто выбирай, что тебе удобнее: автомат или контроль.


Adobe Premiere Pro:


  1. Монтаж видео с разной частотой кадров
    Это видео объясняет, как работать с материалами, имеющими разную частоту кадров, в Adobe Premiere Pro CC 2018:


Синхронизация звука в Adobe Premiere
В этом уроке подробно рассказывается о методах синхронизации звука в Premiere Pro:


DaVinci Resolve:


  1. Изменение частоты кадров в DaVinci Resolve
    Это видео показывает, как изменить частоту кадров в DaVinci Resolve, что может помочь в решении проблемы рассинхронизации:


Полный гайд по монтажу в DaVinci Resolve 17
Этот подробный гайд для новичков охватывает основы монтажа, включая работу со звуком:
 
Последнее редактирование:
  • Like
Реакции: alexey_ko и Bernard
@alexey_ko, если я правильно понял проблему, вам необходимо ускорить аудио на 0,1%. Выложите аудио - я вам его ускорю.
 
  • Like
Реакции: alexey_ko
@alexey_ko, если я правильно понял проблему, вам необходимо ускорить аудио на 0,1%. Выложите аудио - я вам его ускорю.
Вот тут 3 мои аудиофайла, которые требуют конвертации: https://www.mediafire.com/file/3prqw3nct2kkliv/SYNHRON.rar/file
Какое количество кадров было и под какое надо подогнать - во вложенном readme по этой же ссылке.
Не сочтите за наглость, если вдруг возможно записать видео того что вы делаете буду очень признателен.
Спасибо за помощь и отзывчивость!
 
@Tpt, исключительно из желания помочь.. ну вот и профи подтянулись, сразу всё ожило )
 
@alexey_ko, аудио файлы (три!) длиною по полтора часа - это не совсем то что я ожидал увидеть, исходя из слова "ролик" в вашем стартовом посте))

Конвертированные файлы по ссылке https://dropmefiles.com/sBWaF

Записывать видео не было времени. Вы проверьте получился ли звук синхронным. Потому, что есть нюансы. Если все ок, то видео запишу позже.
 
максимально простую для новичка прогу
Камрады выше дали в принципе исчерпывающие ответы.. (у меня же adobe premiere);

и кстати, если не нужна картинка, а только аудио, то еще способ:
можно загрузить файл 23.98fps в редактор, и извлечь только аудио в виде обычного pcm файла...
 
можно загрузить файл 23.98fps в редактор, и извлечь только аудио в виде обычного pcm файла...

Проблема в том, что этот извлеченный файл будет длиннее и, соответственно, несинхронен к видео на 24 к/сек.
 
  • Like
Реакции: alexey_ko
@alexey_ko, ChatGPT сделал батник - https://disk.yandex.ru/d/EDjQuBZ4KILRmQ - скачать и распаковать. Туда уже поместил исходники аудио. Затем отсюда скачать - https://www.gyan.dev/ffmpeg/builds/ - ffmpeg-git-full.7z .ver .sha256, распаковать на любой диск. Из папки bin/ взять: ffmpeg.exe. Скопировать ffmpeg.exe в ту же папку, где convert_all.bat. Запустить convert_all.bat. и в этой же папке появятся пофиксенные аудио файлы. На скрине показал, что должно получиться в папке перед запуском convert_all.bat
Вот сам сделал, результат этого батника - https://disk.yandex.ru/d/UG-hO7D5ZhCoaQ
 

Вложения

  • 2025-04-10_10-21-19.png
    2025-04-10_10-21-19.png
    40,8 KB · Просмотры: 16
  • Like
Реакции: Bernard
@alexey_ko, UPDATE. По моей ссылке не качайте - файлы получились неправильные. Я сделал обратный процесс - то есть ускорил, те которые нужно было замедлить и замедлил тот который нужно было ускорить)) Переконвертировать пока не буду - будем надеяться, что у камрада Bavar всё сработало.
 
@alexey_ko, ChatGPT сделал батник - https://disk.yandex.ru/d/EDjQuBZ4KILRmQ - скачать и распаковать. Туда уже поместил исходники аудио. Затем отсюда скачать - https://www.gyan.dev/ffmpeg/builds/ - ffmpeg-git-full.7z .ver .sha256, распаковать на любой диск. Из папки bin/ взять: ffmpeg.exe. Скопировать ffmpeg.exe в ту же папку, где convert_all.bat. Запустить convert_all.bat. и в этой же папке появятся пофиксенные аудио файлы. На скрине показал, что должно получиться в папке перед запуском convert_all.bat
Вот сам сделал, результат этого батника - https://disk.yandex.ru/d/UG-hO7D5ZhCoaQ

а разdt shutter encoder тоже самое не сделает? ffmpeg с графической оболочкой
 
@zga, без понятия) наверно, может, раз использует FFmpeg, только какой скрипт нужен или как пользоваться, я не знаю, батник писал джипити и рассказал, как использовать)
 
@Bavar, может я чего так и не понял, но что вам мешает просто собрать MKV матрёшку с нужными звуковыми дорожками (раз уж они всё равно в формате matroska audio) при помощи самой банальной MKVToolNix?

Не надо ничего ни растягивать, ни сжимать и никакого премьера
 
  • Like
Реакции: dugdum®
Я вот тоже не понял. В аудиодорожке никакой частоты кадров нет. Она отдельно идёт, её надо просто извлечь и без преобразований вставить в другое видео.
 
  • Like
Реакции: Anthony Scott
@fakeitback, если бы я знал, как это делается, я бы собрал)) Я просто вставил первое сообщение в джипити. Стало самому интересно, вдруг когда-нибудь пригодится. А батник писал джипити, когда я ему скинул уже текст из readme по ссылки в 11 посте, вот джипити и описал, как это сделать с помощью ffmpeg.
 
Я вот тоже не понял. В аудиодорожке никакой частоты кадров нет. Она отдельно идёт, её надо просто извлечь и без преобразований вставить в другое видео.

Просто вы не сталкивались с этим. В результате одного из алгоритмов конвертации видео файла из 23, 98 в 24, видео становится короче (просто то же кол-во кадров проигрываются быстрее) и соответственно при такой конвертации аудио сжимается. И нельзя потом взять аудио из таким образом конвертированного видео в 24 и забросить назад в видео 23,98 - будет рассинхрон.
 
  • Like
Реакции: alexey_ko
@Bernard, сталкивался и сталкиваюсь ежедневно, нет, не будет. Алгоритмы пересчёта фреймрейта давно не изменяют длительность
 
@dugdum®, в первом посте ТС написал, что есть два видео файла (по логике с одним и тем же контентом) один 23,98 другой 24. И аудио из первого файла в рассинхроне со вторым.

Алгоритмы пересчёта фреймрейта давно не изменяют длительность

Возможно. Я последний раз сталкивался с такой проблемой лет 10 назад (из 16 лет ежедневной работы на аудиопосте). Но у ТС похоже проблема именно из-за пересчета. Кто-то может пользовался софтом типа Carbon Coder там есть алгоритмы пересчета с изменением длительности.

В телеграм канале, где тусуются киношные звукорежиссеры и аудио-постпродакшн Звук Кино Pro, относительно недавно ( наверное, в прошлом году) кто-то из аудио-поста жаловался что в результате пертурбаций на видео монтаже сериала над которым они работали, пришло перемонтированное видео в рассинхроне с их версией именно по причине неадекватной работы с фреймрейтом. И им пришлось все в ручную синхронизировать.
 
Последнее редактирование:
  • Like
Реакции: alexey_ko
косяки и факапы случаются, куда без этого)

но в целом я давно не сталкивался с проблемами именно по этой причине, условно если надо 29.97 NTSC выгнать в 25 кадров, то никаких проблем не имеем, если подцепить в контейнер тем же ffmpeg исходную аудиодорожку без всякого пересчёта
 
  • Like
Реакции: Bernard
Вижу, чтоб была яснее суть чуть поясню на конкретном жизненном примере:
- Вот у меня есть кино с русской аудиодорожкой.
- Вот выходит новое издание фильма, допустим некая реставрация картинки и т.п. уже без русской дороги.
- Беру русскую дорогу от старого издания и прикручиваю к новому. Это делаю без проблем через MKVToolNix GUI
- По факту получается набегающий рассинхрон (т.е. по началу просмотра терпимо, а к концу фильма набегает уже секунд 5 отставания или обгона). Ну собственно и издания чуть-чуть отличаются по времени т.к. есть небольшая, но разница в кадрах в секунду в видео.
Каких-то настроек в MKVToolNix GUI для устранения рассинхрона звука в MKVToolNix GUI не вижу. Перекодировать само видео точно нет желания, это как я пронимаю, вообще отдельная и страшно сложная тема, для этого на всяких форумах целые команды существуют, Мне, скорее всего, надо просто ускорить или замедлить звук с учетом кадров/сек того видео, куда я хочу его вставить. А потом уже эту поправленную аудиодорожку прикрутить к нужному файлу.

Вот, если прям в лоб, то попробовал FFmpeg, но застопорился на шаге - "просто запустить ffmpeg.exe из этой папки вручную." Просто мелькает какое-то окно и сразу закрывается. Антивирус отключен. Конечно, я явно делаю что-то не так, но вот пока не могу понять что.
Другие варианты пока не пробовал.
 
@alexey_ko в этом случае надо сделать тайм стретч (time stretch) новой аудио дороги под длительность старой и вставить её в видео.
это в любом аудио редакторе есть или DAW.
 
  • Like
Реакции: alexey_ko

Сейчас просматривают