Как я могу объединить видео MP4 и точно сопоставить это объединенное видео со звуковой дорожкой в ​​ffmpeg? - PullRequest
0 голосов
/ 17 июня 2020

Обычно я хочу объединить 4 видео в одно видео, а затем заменить объединенный звук на другую дорожку. Аудиодорожка должна быть неизменной и синхронизировать c точно с видео.

В частности, я создаю многостраничные динамические c аудиоспектрограммы (визуализации звукового файла) с помощью ggplot2 и gganimate в R, которые я хочу объединить с помощью ffmpeg. Таким образом, исходный WAV разбивается на 3 se c сегмента, видео создается для визуализации изменений частоты с течением времени для каждого сегмента, который я хочу объединить в 1 видео с совпадающей исходной звуковой дорожкой.

Все мои соответствующие файлы находятся на github здесь в папке vids: Ссылка DL здесь

Индивидуальные динамические c спектрограммы экспортируются отлично (1-4. mp4 в архиве). Каждый из них на ~ 20 мс длиннее; они должны быть ровно 3 с, но в остальном отлично.

Затем я использую ffmpeg для их объединения:

ffmpeg -f concat -safe 0 -i "mp4Segments.txt" -codec copy -t 12 -y "(1-4)vid.mp4"

но вы можете видеть, что конец (1-4) vid.mp4 немного сбивается (курсор не полностью путь до конца, поэтому я предполагаю, что видео обрезается до конца. Это не помеха, поскольку звук все еще очень хорошо выравнивается с видео курсором.

Теперь, поскольку объединенное видео приводит к сбоям аудио между клипами, я хочу взять неразрезанный исходный звук и добавить его к собранному видео.

ffmpeg -ss 0 -i "(1-4)vid.mp4" -i "origWAV.wav"  -c:v libx264 -map 0:v:0 -map 1:a:0 -c:a aac -ac 1 -b:a 192k -y -vsync 1 -t 12 "(1-4)vid+origWAV.mp4"

но звук сейчас немного отключен и заканчивается еще дальше до конца видео. действительно важно согласовать аудио и видео именно для этого, как я могу ускорить видео, чтобы он соответствовал точной продолжительности звука или иным образом исправить эту проблему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...