Відображення масштабу відео FFmpeg


1

По-перше, я просто хочу сказати трохи більше про свою назву, я не маю на увазі той факт, що збільшення масштабу не додає даних (як це часто запитують при підвищенні масштабу) - але щось інше.

Приклад

У мене є сире відео 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 та встановлення Ширини: Висота - змушує будь-який програвач відкривати відео такого розміру, несвідомо збільшуючи його масштаб під час відтворення.

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


3
масштаб просто робить необмеженим інтерполятом, пропонується додати -sws_flags lanczos + точно_rnd + full_chroma_int + full_chroma_inp, щоб мати кращий фільтр розміру для масштабу. дивіться тут ffmpeg-users.933282.n4.nabble.com/… для багатьох методів інтерполяції, іноді гравці можуть використовувати прості білінеарні або двостулкові.
— Psycogeek

Спробуйте проміжний крок спочатку масштабувати сировинний вміст, а потім зробити кодування. Я виявив, що фільтр може змінювати деякі параметри. CRF може бути за замовчуванням до 23 (підвищення якості), але попередньо встановлений за замовчуванням до середнього (можливе зниження). Незважаючи на це, це допоможе вирішити проблему.
— dstob
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.