У меня есть несколько видеофайлов, снятых за несколько дней семейного отдыха, и я надеялся объединить их в один двухчасовой файл. Некоторые из исходных файлов взяты с iPhone, некоторые - с телефона Android. Форматы видео: .mp4 или .mov .

Я использую ffmpeg для объединения видео. Вот пример команды, которую я использую для соединения файлов на один день.

ffmpeg -i 20170904_083335.mp4 -i 20170904_174254.mp4 -i 20170904_174751.mp4 -i 20170904_195950.mp4 -filter_complex "[0:v] [0:a] [1:v] [1:a] [2:v] [2:a] [3:v] [3:a] concat=n=4:v=1:a=1 [v] [a] " -map "[v]" -map "[a]" 20170904.mkv

Моя проблема в том, что на протяжении всего процесса ffmpeg будет пропускать видеокадр здесь и там. На протяжении всего процесса это может составлять сотни или тысячи пропущенных кадров (в зависимости от количества входных файлов). Мои глаза не могут видеть разницу с пропущенными кадрами, но я точно могу сказать, что звук не синхронизируется, чем дольше видео.

Если ffmpeg может пропустить аудио-фрейм одновременно, он пропускает видео-фрейм, я чувствую, что это было бы идеально (таким образом, заголовок моего вопроса). Я бы тогда получил именно то, что хотел. Но я понятия не имею, как заставить это сделать это.

Что я действительно хочу: один единственный видеофайл, где аудио синхронизируется с видео на протяжении всего видео. Если у кого-то из вас есть представление о том, как это сделать, я весь слух и буду очень признателен за помощь.

Другие вещи, которые я пробовал:

  • MP4Joiner
  • Avidemux
  • просто добавив все файлы в качестве заголовков на DVD и записав его

Вещи, которые я не пробовал, но мог бы попробовать

  • Просто скачайте Premiere Pro и перекиньте все файлы на временную шкалу, чтобы все конвертировалось.

0