У меня есть несколько видеофайлов, снятых за несколько дней семейного отдыха, и я надеялся объединить их в один двухчасовой файл. Некоторые из исходных файлов взяты с 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
может пропустить аудио-фрейм одновременно, он пропускает видео-фрейм, я чувствую, что это было бы идеально (таким образом, заголовок моего вопроса). Я бы тогда получил именно то, что хотел. Но я понятия не имею, как заставить это сделать это.
Что я действительно хочу: один единственный видеофайл, где аудио синхронизируется с видео на протяжении всего видео. Если у кого-то из вас есть представление о том, как это сделать, я весь слух и буду очень признателен за помощь.
Другие вещи, которые я пробовал:
Вещи, которые я не пробовал, но мог бы попробовать
- Просто скачайте Premiere Pro и перекиньте все файлы на временную шкалу, чтобы все конвертировалось.