Синхронизируйте отдельный звук с видео + звук плохой камеры, бесплатные рекомендации NLE

Мой вариант использования, на случай, если подробности помогут людям понять, что я ищу: моему брату нужно несколько видео, где он поет, играя на пианино, чтобы отправить его на прослушивание в обеденный театр. Для этой работы он уже встречался с музыкальным руководителем, так что это не первое впечатление, но, очевидно, мы хотим, чтобы он хорошо выглядел и особенно звучал. Я не собираюсь добавлять какие-либо видеоэффекты или титры/титры. (Мы полагаем, что метаданные должны быть метаданными, такими как название веб-страницы или имя файла, и храниться в метаданных видеоконтейнера, а не записываться в видео.) Таким образом, целью этих видео является просмотр на компьютере, вероятно, через YouTube, а не DVD. или транслировать.

Мы использовали цифровую камеру для записи видео, но качество звука недостаточно хорошее. Мы записали звук одновременно с аналоговым микрофоном, подключенным к его ноутбуку (с помощью Audacity), но его необходимо синхронизировать вручную. Подробнее о деталях внизу, для всех любопытных. Часы камеры и ноутбука не совсем согласны с тем, сколько длится секунда : камера фактически записывает со скоростью около 29,981 кадра в секунду, когда она думает, что записывает со скоростью 30 кадров в секунду (со звуком, остающимся синхронизированным).

Итак, у меня есть 4 видео продолжительностью от 7 до 22 минут и 4 проекта Audacity с лучшим звуком для каждого видео (которые я могу просто экспортировать в wav или flac), но они не синхронизированы. Желаемый результат: один файл на песню, с минимальным искажением аудио из Audacity.

Мне нужно:

  • выровняйте начало каждого внешнего аудио (wav или flac) с синхронизированным, но плохо звучащим звуком, который находится в том же файле, что и каждое видео
  • растяните клип внешней аудиокамеры или камеры A+V, чтобы они также выровнялись в конце
  • удалить звук, прилагаемый к видеофайлу (или отключить звук и сохранить его для справки, чтобы я мог вернуться и исправить выравнивание, если замечу проблему, не начиная с нуля).
  • выберите временной диапазон «хорошего дубля» каждой песни.
  • экспортировать эти неперекрывающиеся сегменты моих исходных видео, по одному выходному файлу на песню. (В более длинных исходных видео есть несколько песен)
  • закодируйте каждую песню с помощью ffmpeg/x264/libfdk-aac и загрузите на YouTube и/или прикрепите к моему веб-сайту видеотег HTML5. Экспорт из NLE в формате без потерь, который я могу передать в ffmpeg, в порядке.

Я знаю, что я делаю с контейнером ffmpeg/x264/libfdk-aac/flac/libmp3lame/mp4, чтобы сделать окончательные файлы для размещения на YouTube и/или на моем веб-сайте; Мне не нужна помощь с этой частью.

Я выполнил часть проблемы синхронизации аудио/видео для первого видео в качестве проверки концепции перед записью большего:

В смелости я загрузил звук с камеры .MOV и обнаружил, что мне нужно сдвинуть дорожку внешнего микрофона влево на 5,34563 с, чтобы выровнять ее с дорожкой камеры. Я сделал это и отрезал часть до нуля секунд. Затем, в конце, я обнаружил, что дорожку камеры пришлось сдвинуть вправо на 0,43144 с, чтобы выровнять ее с дорожкой внешнего микрофона на 11:30. Поэтому мне пришлось удлинить видео на 0,431 секунды, чтобы оно синхронизировалось со звуком. Я экспортировал сдвинутую и обрезанную дорожку внешнего микрофона в файл .flac из Audacity после использования фильтра шумоподавления.

Затем я скормил это ffmpeg:ffmpeg -i session2-shifted.flac -an -i P1000669-sess2.MOV -shortest -c:a libmp3lame -q:a 1 -c:v libx264 -preset fast -crf 18 -filter:v "setpts=690.43144*PTS/690,transpose=2:passthrough=portrait" -r "30 * 690 / 690.43144" -movflags +faststart out.mp4

(У меня был только встроенный не очень хороший кодировщик AAC ffmpeg в сборке ffmpeg для Windows, которую я поставил на ноутбук моего брата, следовательно, mp3-аудио для тестового прогона.)

Итак, мой результат — mp4 со скоростью 29,981 кадра в секунду, с синхронизацией аудио/видео от начала до конца. (29,981 близко к NTSC 30/1,001 ~= 29,976, но это просто совпадение.) Я должен иметь возможность повторно запустить это с выводом без потерь (или -codec copy), а затем вырезать нужные разделы. Либо с помощью NLE, либо запишите время начала/остановки и используйтеffmpeg -ss [start] -to [stop] -i session2-synced.mp4 -x264 -blah -blah song1.mp4

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

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

Я использую GNU/Linux, мой брат использует Windows. В идеале, есть нелинейный монтаж, который подходит для этого варианта использования и является кросс-платформенным, так что я могу показать моему брату, как вырезать сегменты из более длинного видео, которое он записывает на свой телефон или что-то в этом роде, с тем же программным обеспечением, которое я учусь использовать. . Меня интересует только программное обеспечение с открытым исходным кодом. Я не заинтересован в том, чтобы тратить время на изучение того, что не является открытым исходным кодом. (И не собираюсь тратить на это деньги, когда я уже могу делать то, что мне нужно, с помощью дерзости и ffmpeg.) Однако не пропустите хорошее предложение только из-за отсутствия кроссплатформенной поддержки, пожалуйста.

В GNU/Linux есть много вариантов , и даже на Ask Ubuntu задавали этот вопрос .

Я знаю, что должен делать NLE, но раньше им не пользовался. (Только ffmpeg/mencoder со временем начала/остановки покрыл минимум того, что я делал раньше.)

Я знаю, что обычно люди растягивают и корректируют звук, чтобы он соответствовал видео, но я больше доверяю часам в ноутбуке, чем часам в камере. И я хочу свести искажение звука к минимуму. Хотя мне уже нужно какое-то довольно серьезное шумоподавление / удаление 60 Гц на звуке внешнего микрофона, так что вряд ли это будет нетронутое сверхвысокое качество. Поэтому я готов рассмотреть решение, которое растягивает / корректирует звук вместо создания нестандартных видео с частотой кадров в секунду.

Я уже пробовал pitivi, но отображение звуковой волны было не очень хорошо видно, поэтому, вероятно, мне все равно придется выполнять синхронизацию в Audacity. Как установлено из пакета Ubuntu 14.04, он не может экспортировать с x264, а единственным кодеком без потерь является Dirac. (нет ffvhuff ...) Экспорт dirac без потерь неприемлемо медленный, так что это еще один большой недостаток. (Мне нравятся кодеки с открытым исходным кодом / необремененные патентами, такие как VP9, ​​но я не хочу, чтобы у кого-то возникали проблемы с воспроизведением видео, поэтому я выбираю видео H.264 и аудио AAC с высоким битрейтом. Или YouTube принимает VP9 загружает?)

Я тоже использовал avidemux, но IIRC плохо справляется с выводом в современные контейнеры. Это деф. не любит читать кодеки с кадрами b из современных контейнеров, так что это почти тупик. (h.264 в mkv или mp4, кто-нибудь?) Он может воспроизводить звук из внешнего файла, но не показывает сигналы для синхронизации.

Этот вопрос похож на другие, которые задавались ранее:

На первый вопрос есть один ответ, который я ищу: http://auxmic.com/ , но это только для Windows, и там ничего не говорится о том, как он обрабатывает дрейф часов на входе. Я мог бы попробовать, так как это проблема. достаточно просто, чтобы нормально работать с WINE в Linux. Мне все еще нужно было бы использовать что-то еще, чтобы вырезать хороший дубль каждой песни из видео.

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

Для тех, кому интересно, что я на самом деле использовал:

камера была Panasonic Lumix FZ28 на штативе, возможно, в 2 м от объекта, достаточно высоко, чтобы хорошо видеть клавиши пианино и его лицо. Он записывает 1280x720 или 640x480 MJPEG + 16 кГц моно PCM в контейнере MOV на SD-карты. Качество видео довольно хорошее при достаточном освещении. При разрешении 720p он может работать чуть менее 12 минут, прежде чем достигнет максимального размера файла 2 ГБ для FAT32 и остановится. (22 Мбит/с или около того, очевидно, что для окончательного использования требуется xcoded.) Масштабирование видео в камере плохое, и появились некоторые уродливые полосы из-за эффектов сглаживания или чего-то в стене, висящей позади моего брата, когда мы записывали в 640x480 (11 МБ). /с MJPEG). Мы все равно использовали разрешение 640x480, чтобы камера работала дольше, поскольку каждый отдельный кадр требует ручного труда для синхронизации аудио/видео. Вдобавок ко времени, чтобы просто выбрать начальную/конечную точку и экспортировать файл.

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

Я сделал отдельный проект в Audacity для каждого видеофайла, так как смещение A/V для каждого из них будет разным. Я мог бы просто сделать один большой проект дерзости, но я не думаю, что это помогло бы в чем-либо, за исключением, возможно, возможности настроить шумоподавление/высокие частоты (возможно, чтобы уменьшить шум ударов по клавишам пианино) настройки фильтра, а затем применить ко всему сразу.

Кстати, является ли «дрейф часов» правильным термином для рассинхронизации с течением времени из-за источников, записанных с часами с разной скоростью? Я только что придумал эту терминологию, но я полагаю, что это, вероятно, устоявшийся термин.
Я задал этот вопрос на softwarerecs , и ответ был также Kdenlive.
@sebix, спасибо, но, как я уже сказал, kdenlive не обрабатывает треки настолько долго, что нужно растягивать один, чтобы он соответствовал другому, а также выравнивать в одной точке, чтобы синхронизироваться по всей длине. Вот почему я не отметил свой ответ как принятый. :/
Это также ограничение, с которым я борюсь. Может быть, я когда-нибудь так раздражаюсь из-за этого, что начинаю исправлять ситуацию...

Ответы (3)

Я попробовал kdenlive, поэтому я опубликую свои выводы об этом в качестве ответа. Это не совсем сработало, поэтому я не буду отмечать это как принятое решение.

kdenlive легко импортирует мои клипы в форматах mjpeg+pcm и flac. И похоже, что он может экспортировать через ffmpeg, чего я и хочу.

В нем есть функция «установить ссылку на звук», а для других дорожек «выровнять звук по ссылке». Это прекрасно, программно выравнивать звук намного приятнее, чем вручную перетаскивать элементы для выравнивания сигналов на глаз. Однако, похоже, он вообще не справляется с дрейфом часов. В моем 23-минутном снимке у него была идеальная синхронизация примерно через 4 минуты. В начале была рассинхронизация касания, и, возможно, рассинхронизация на 0,5 секунды на 19-й минуте. (После этого у меня нет хорошей точки синхронизации, так как этот снимок достиг предела размера файла в 2 ГБ, xD)

Временная шкала KDENlive отображается в h:mm:ss.frames, а не в десятичных долях секунды, что поначалу меня смутило. Я думал, что он растянул одну дорожку, но нет, это не так.

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

Я проверил вручную в дерзости: когда начало обоих треков выровнено, они находятся на расстоянии около 0,68 с на одной и той же 19-минутной отметке синхронизации. Таким образом, я мог бы выполнить выравнивание в kdenlive вручную, но его автоматический инструмент для этого, к сожалению, не поддерживает коррекцию дрейфа часов путем растяжения.

kdenlive действительно хорошо отображает звуковые волны, особенно. если вы идете настроить-> временная шкала-> высота дорожки: увеличьте до 80 или 100 пикселей. Хороший пользовательский интерфейс для увеличения масштаба на временной шкале.

Если я закончу синхронизацию AV в Audacity перед экспортом, я вполне могу использовать kdenlive для остальной части процесса. Я должен увидеть, как легко сделать несколько видео из сегментов одной временной шкалы.

Попробуйте редактирование видео в Blender.

Если видео и аудио были записаны одновременно, их будет легко синхронизировать, просто убедитесь, что частота кадров вашего видео правильно установлена ​​в Blender, и что вы проверили синхронизацию в видеоредакторе (внизу рядом со шкалой времени и воспроизведением, стоп и т.д... кнопки.

Не пугайтесь сложности Blender, вы не собираетесь использовать какие-либо другие функции, вы просто будете использовать редактирование видео, и это довольно просто.

Спасибо, я попробую, если вы скажете, что это делает то, что я ищу. Лет 15 назад я делал блендер с 3D-текстом. Помню, пользовательский интерфейс мне показался аккуратным. :)
Хорошо, я загрузил свое видео с внешним звуком в блендер, но я еще ничего не видел об автоматическом выравнивании их на основе сходства звука. Или растянуть одну дорожку, чтобы выровнять ее с другой, учитывая две точки синхронизации. Этот ответ не отвечает ни на какие особенности моего вопроса, особенно в части работы с несинхронизированными часами. (т.е. та часть, которая делает синхронизацию нетривиальной, даже несмотря на то, что материал был записан в то же время...) Возможно, блендер может что-то сделать, я продолжу тыкать. Но этот ответ не указал мне ничего полезного.
Вам не нужно ничего растягивать, если вы установите правильную частоту кадров для видео, которое собираетесь загрузить. В этом нет никакой магии, вам, очевидно, нужно знать приблизительный момент, когда звук соответствует изображению, и оттуда вы можете точно настроить точный кадр с точным временем звука. Как только вы синхронизируете один кадр, синхронизируется все видео (при условии, что вы установили правильную частоту кадров видео и нажали кнопку sync-av).
Перечитайте мой вопрос. Два моих записывающих устройства не согласны с тем, сколько длится секунда (потому что одно из них — камера Lumix, а не цифровая зеркальная фотокамера). В этом вся суть вопроса. Если мне нужно использовать что-то еще для определения смещения и растяжения синхронизации A/V, я мог бы просто подключить это к командной строке ffmpeg. (Однако блендер может растянуть видео, установив собственный FPS.)
Кроме того, экспорт блендера в h.264 с x264 очень негибкий, поэтому мне пришлось бы экспортировать в без потерь и перекодировать. Единственным вариантом является ABR, а не CRF, и, похоже, даже нет предустановленного выбора использования процессора x264 (от сверхбыстрого до среднего и очень медленного).

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

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

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

Как только вы выровняете аудио и видео; вместо того, чтобы удалять звук видео, отключите звуковую дорожку видео. Если программное обеспечение для редактирования видео, которое вы используете, не позволяет отключить звуковую дорожку в вашем видео, значит, у вас проблема с программным обеспечением, и вы можете поискать другую программу. Я смотрел на OpenShot.org. Похоже, это полнофункциональный кроссплатформенный видеоредактор с открытым исходным кодом, который я сейчас загружаю и еще не пробовал.

Это должно помочь вам улучшить и упростить производство видео.

СТ.

Когда вы выравниваете эти два пика формы волны на временной шкале, видео и внешний звук идеально выравниваются и синхронизируются. Правильно, это ручной процесс, который я описал. Вопрос был о том, какое программное обеспечение дает вам пользовательский интерфейс, который может делать то, что вы описываете. (И (предпочтительно в моем случае) может масштабировать частоту кадров видео вместо растяжения звука с коррекцией высоты тона.) IIRC, в итоге я использовал ffmpeg со смещением и настраиваемой частотой кадров. Для меня это был разовый случай, когда я помогал моему брату сделать видео для прослушивания, поэтому я не стал искать другое программное обеспечение.
Вы можете попробовать следующие программы. Serif MoviePlus starter Edition - freeserifsoftware.com Снимки экрана для OpenShot на OpenShot.org также имеют эту функцию. Сейчас скачиваю для обзора. Скотт