По-перше, я просто хочу сказати трохи більше про свою назву, я не маю на увазі той факт, що збільшення масштабу не додає даних (як це часто запитують при підвищенні масштабу) - але щось інше.
Приклад
У мене є сире відео A1 (854x480)
Я кодую від А1 до В1 ігноруючу шкалу - тому зберігаю ту саму 854x480.
ffmpeg -i C:\A1.mkv -preset veryslow -crf 24 C:\B1.mkv
Я відтворюю це відео в програвачі, і збільшую його, збільшуючи вікно програвача, зараз це відео 1092x614, я зберігаю скріншот кадру 88.
Я тепер кодую A1 до C1 із зазначенням масштабу 1092x614 (як і скріншот, який ми маємо)
ffmpeg -i C:\A1.mkv -preset veryslow -crf 24 -filter_complex scale=1092:614 C:\C1.mkv
Я зберігаю скріншот кадру 88 у C1 на його рідному екрані - 1092x614
Оскільки я використовую Raw Original для обох кодувань, я припускав, що обидва знімки екрана будуть виглядати однаково - але вони не роблять, що перевищує масштаб коду C1 набагато гіршої якості порівняно з кодовим B1 розширеного коду.
Я думав, що коли я збільшую масштаб вручну зі своїм плеєром і бачу зображення, ffmpeg робить те саме під час його кодування - тому він бачив би те саме зображення, яке я бачу, і будує кодування на основі цього, але його як би двигун візуалізації ffmpeg використовує: різні / не такі хороші.
Чи є спосіб обійти це питання?
Чи можемо ми досягти подібного різною технікою? Наприклад, редагування метаданих Original Raw A1 та встановлення Ширини: Висота - змушує будь-який програвач відкривати відео такого розміру, несвідомо збільшуючи його масштаб під час відтворення.
Мій випадок використання для цього полягає в тому, що я намагаюся імітувати розміри, визнані в більшості основних відеохостів - будь-яке відео, що не перевищує поріг, буде кодується хостом з певними налаштуваннями.