Если загружаемые файлы JPEG всегда будут очень похожими, то при использовании видеокодека вы получите большой размер GOP (группа изображений). Именно здесь видеокодек кодирует первый кадр с относительно высокой скоростью передачи битов, а затем кодирует только изменения для следующего количества кадров с гораздо меньшей скоростью передачи битов.
Если загружаемые файлы JPEG полностью отличаются друг от друга, в зависимости от того, как реализован кодек, он может попытаться сделать то же самое и в конечном итоге кодировать большое количество различий с очень низкой скоростью передачи битов, что ухудшает качество изображения.
Независимо от характера загружаемых файлов JPEG, добавление еще одного этапа (или двух) транскодирования определенно ухудшит качество изображения в некоторой степени.
Относительно вопроса напрямую:
Я подозреваю, что причина, по которой FPS влияет на качество файлов, связана с настройкой битрейта. Битрейт в байтах в секунду, а не в кадре. Вы не указали его (это -b:v
), поэтому он будет использовать либо битрейт по умолчанию, либо метод VBR, он кодирует 10 кадров в x байтов, ваш второй пример пытается сжать 25 кадров в то же количество байтов, и в вашем последнем примере он пытается сжать 60 кадров в одинаковое количество байтов, поэтому качество будет обязательно намного ниже.
Относительно оптимизации качества изображения для размера файла при использовании видеокодека: увеличьте битрейт в зависимости от требуемого качества и уменьшите GOP (-g
) в зависимости от характера загружаемых файлов. Изменение FPS является довольно окольным способом воздействия на эти два значения, поэтому, если вы просто оставите FPS по умолчанию и настроите эти два других значения, у вас будет гораздо лучший контроль.
Не отвечаю прямо на ваш вопрос:
Вы не получите те же изображения, что и вставленные - сжатие видео не позволяет этого, независимо от того, насколько высок битрейт. Если вы хотите иметь хоть какой-то шанс, вам нужно будет использовать схему сжатия без потерь, и, учитывая, что они уже сжаты в формате JPEG, нормальное сжатие данных, вероятно, будет лучшим выбором, потому что все, что пытается воспринять эти файлы с помощью перцепции, будет пытаться закодировать все Артефакты JPEG («шум»), а также фактическое требуемое изображение. Определенно стоило бы попробовать обычный файл zip (gzip, bzip, 7zip, ...) и посмотреть, сможет ли он получить размер файла, достаточно низкий для ваших требований. Или попробуйте уменьшить качество отдельных файлов (например, Изображение Магия или подобное), а затем застегнуть их.