Давайте перейдем прямо к делу, у меня проблема с функцией наложения ffmpeg. У меня есть два видео. Один 2865 кадров, второй 2865 кадров. Оба в 30000/1001 кадров в секунду. Я проверил обе их метки времени перед наложением и записал их в файл, который я наложил бы на свой пост, поскольку изображение имело бы мою репутацию, так что сейчас вам просто нужно поверить, что я говорю правду, когда я говорят, что их метки времени точно такие же.
Теперь, несмотря на совпадение частоты кадров видео, результат этой команды:
"ffmpeg", "-i", fmt.Sprintf("%s%s", CCME.PathsToUse[0], CCME.UnderlayVideo),
"-i", fmt.Sprintf("%s%s", CCME.PathsToUse[1], CCME.VideoName),
"-filter_complex", "overlay=0:0", "-vsync", "0", "-crf", "18", "-y", "-shortest", "-strict", "-2",
fmt.Sprintf("%s%s.%s", CCME.PathsToUse[2], CCME.FinalVideoName, CCME.VidFormat
В результате в конце видео добавляются два дополнительных кадра, что было бы неплохо, поскольку я могу исключить или удалить дополнительные кадры, добавленные в конец видео. Однако при запуске анализа появляются следующие предупреждения:
Frame 770: Repeated
Frame 1500: Repeated
Frame 2276: Repeated
Missing Or Mangled Frame(s) After Frame 2591
QR DATA: 2593
3 frames repeated and or added.
Похоже, что несмотря на точную частоту кадров, номер кадра и временные метки, ffmpeg трудно наложить видео таким образом, чтобы выровнять каждый кадр с соответствующим кадром для другого видео. Для целей этого проекта мне нужна абсолютная точность в том, как эти кадры выровнены, и я не получаю это. Я уже две недели бьюсь головой об стену и не нашел ответа на вопрос, почему это происходит, или какие еще варианты я могу использовать, чтобы предотвратить дублирование кадров, падение и добавление кадров до конца видео.
Кто-нибудь имеет представление о том, почему это происходит и чего не хватает в приведенной выше команде или что можно добавить, чтобы эти видео выстроились в линию и / или предотвратили повторения и отбрасывание кадров? Насколько я знаю, этого не должно происходить, но, похоже, все, что я сделал до сих пор, не удалось исправить.