Усреднение передачи фильма с 59,94 кадров в секунду до 24 кадров в секунду с помощью ffmpeg?
У меня есть несколько видеофайлов, которые были перенесены с черно-белой пленки на чересстрочную частоту 29,97 кадров в секунду. Пленка была перенесена слишком темной (это означает, что она требует некоторого осветления), а также имеет некоторые тусклые артефакты цвета. Мне удалось настроить уровни яркости, установить насыщенность на ноль и выполнить деинтерлейсинг с помощью ffmpeg:
ffmpeg -y -hwaccel cuda -hwaccel_output_format cuda -i in.mkv -vf curves=psfile="curves.acv",hue=s=0,hwupload,yadif_cuda=1 -c:v h264_nvenc -preset:v p7 -tune:v hq -rc:v vbr -cq:v 10 -b:v 0 -maxrate 240M -bufsize 480M -c:a copy out.mkv
Используя выходной файл (теперь деинтерлейсный до 59,94 кадров в секунду), я выполнял покадровую обработку в VLC, где подсчитывал повторяющийся шаблон повторяющихся кадров: 3, 2, 3, 2, 3, 2, 3,... что, как я понял, происходит в результате преобразования 24 кадров в секунду -> 60 кадров в секунду. «Дубликаты» кадры на самом деле не идентичны — каждый из них имеет разное количество шума, который можно объяснить способом записи фильма и работой по деинтерлейсингу, которую я сейчас выполняю.
Я знаю, что эти дубликаты кадров можно выкинуть с помощью ffmpeg, но поскольку видео было закодировано с низким уровнем освещенности, динамический диапазон был нарушен, а темные области в каждом кадре имеют плохое разрешение. Вместо того, чтобы просто выбрасывать дубликаты кадров, я задаюсь вопросом, как я мог бы усреднить их, чтобы получить немного лучшую четкость в зашумленных областях.
Мне также необходимо убедиться, что удаляемые кадры соответствуют фактическим дубликатам: т. е. ffmpeg должен выбрасывать два повторяющихся кадра, которые соответствуют цифрам «3» выше, а не «2», для которых только один кадр. следует удалить.
Я попытался проверить документацию ffmpeg по фильтру fps:
https://ffmpeg.org/ffmpeg-filters.html#fps
. Но, похоже, не существует ни процедуры усреднения, ни четкого алгоритма выбора того, какие кадры удаляются. Будет ли оно начинаться с повторения «3» или «2»?
В принципе, я хотел бы добавить что-нибудь к своим видеофильтрам в приведенной выше команде, чтобы видеофайл перекодировался только один раз.
Спасибо за любую помощь или совет!