Документація фільтрів FFmpeg

Зміст

1 Description

У цьому документі описано фільтри, джерела та приймачі, надані бібліотекою libavfilter.

2 Filtering Introduction

Фільтрування у FFmpeg увімкнено через бібліотеку libavfilter.

У libavfilter фільтр може мати кілька входів і кілька виходів. Щоб проілюструвати можливі речі, ми розглянемо наступний фільтр-граф.

                [головний]
вхід --> розділити ---------------------> накладення --> вихід
            | ^
            |[tmp] [фліп]|
            +-----> кадрування --> vflip -------+

Цей filtergraph розділяє вхідний потік на два потоки, потім надсилає один потік через фільтр кадрування та фільтр vflip, перш ніж об’єднати його з іншим потоком, наклавши його зверху. Ви можете скористатися такою командою, щоб досягти цього:

ffmpeg -i INPUT -vf "split [main][tmp]; [tmp] crop=iw:ih/2:0:0, vflip [flip]; [main][flip] overlay=0:H/2" OUTPUT

Результатом буде те, що верхня половина відео дзеркально відображається на нижній половині вихідного відео.

Фільтри в одному лінійному ланцюжку відокремлюються комами, а окремі лінійні ланцюжки фільтрів розділяються крапкою з комою. У нашому прикладі crop,vflipзнаходяться в одному лінійному ланцюжку, splitа overlayокремо в іншому. Точки з’єднання лінійних ланцюгів позначені назвами в квадратних дужках. У прикладі розділений фільтр генерує два виходи, пов’язані з мітками [main]та [tmp].

Потік, надісланий на другий вихід split, позначений як [tmp], обробляється через cropфільтр, який обрізає нижню половину відео, а потім перевертається вертикально. Фільтр overlayприймає на вхід перший незмінений вихід розділеного фільтра (який був позначений як [main]), і накладає на його нижню половину вихід, згенерований crop,vflipланцюжком фільтрів.

Деякі фільтри приймають на вході список параметрів: вони вказуються після імені фільтра та знака рівності та відокремлюються один від одного двокрапкою.

Існують так звані source filters, які не мають аудіо/відеовходу та sink filtersне матимуть аудіо/відеовиходу.

3 graph2dot

Thegraph2dotпрограма, що входить до складу FFmpegtools каталог можна використовувати для аналізу опису filtergraph і видачі відповідного текстового представлення мовою точок.

Виклик команди:

graph2dot -h

щоб побачити, як використовуватиgraph2dot.

Потім ви можете передати опис точки доdotпрограму (з набору програм graphviz) і отримати графічне представлення filtergraph.

Наприклад, послідовність команд:

echo GRAPH_DESCRIPTION | \
tools/graph2dot -o graph.tmp && \
dot -Tpng graph.tmp -o graph.png && \
display graph.png

можна використовувати для створення та відображення зображення, що представляє граф, описаний GRAPH_DESCRIPTIONрядком. Зауважте, що цей рядок має бути повним самодостатнім графом із явно визначеними входами та виходами. Наприклад, якщо ваш командний рядок має вигляд:

ffmpeg -i infile -vf scale=640:360 outfile

ваш GRAPH_DESCRIPTIONрядок повинен мати такий вигляд:

nullsrc,scale=640:360,nullsink

вам також може знадобитися встановити nullsrcпараметри та додати format фільтр, щоб імітувати певний вхідний файл.

4 Filtergraph description

Фільтрограф — це орієнтований граф зв’язаних фільтрів. Він може містити цикли, і між парою фільтрів може бути кілька зв’язків. Кожна ланка має одну вхідну площадку з одного боку, що з’єднує її з одним фільтром, від якого вона отримує вхідний сигнал, і одну вихідну площадку з іншого боку, що з’єднує її з одним фільтром, який приймає його вихід.

Кожен фільтр у filtergraph є екземпляром класу фільтра, зареєстрованого в програмі, який визначає функції та кількість вхідних і вихідних майданчиків фільтра.

Фільтр без вхідних майданчиків називається «джерелом», а фільтр без вихідних майданчиків називається «приймачем».

4.1 Filtergraph syntax

Граф фільтра має текстове представлення, яке розпізнається -filter/-vf/-afі -filter_complexваріанти в ffmpegі -vf/-afу ffplay, і avfilter_graph_parse_ptr()функцією, визначеною в libavfilter/avfilter.h.

Ланцюжок фільтрів складається з послідовності з’єднаних фільтрів, кожен з яких з’єднаний з попереднім у послідовності. Ланцюжок фільтрів представлено списком описів фільтрів, розділених ",".

Граф фільтрів складається з послідовності ланцюжків фільтрів. Послідовність ланцюжків фільтрів представлена ​​списком описів ланцюжків фільтрів, розділених ";".

Фільтр представлено рядком такого вигляду: [ in_link_1]...[ in_link_N] filter_name@ id= arguments[ out_link_1]...[ out_link_M]

filter_nameце ім’я класу фільтрів, екземпляром якого є описаний фільтр, і це має бути ім’я одного з класів фільтрів, зареєстрованих у програмі, після чого необов’язково слід «@ id». Ім’я класу фільтра необов’язково супроводжується рядком «= arguments».

argumentsце рядок, який містить параметри, які використовуються для ініціалізації екземпляра фільтра. Він може мати одну з двох форм:

  • Список key=valueпар, розділених ':'.
  • Список, розділений ':' value. У цьому випадку передбачається, що ключі є іменами опцій у тому порядку, в якому вони оголошені. Наприклад, fadeфільтр оголошує три параметри в такому порядку –type,start_frameі nb_frames. Тоді список параметрів in:0:30означає, що параметру inприсвоєно значенняtype, 0до start_frameі 30доnb_frames.
  • Список змішаних прямих valueі довгих key=value пар, розділених ':'. Прямий valueмає передувати key=valueпарам і слідувати тому ж порядку обмежень, що й попередній пункт. Наступні key=valueпари можна встановити в будь-якому бажаному порядку.

Якщо саме значення параметра є списком елементів (наприклад, formatфільтр приймає список форматів пікселів), елементи у списку зазвичай розділяються символом '|'.

Список аргументів можна взяти в лапки за допомогою символу ''' як початковий і кінцевий знак, а також символ '\' для екранування символів у цитованому тексті; інакше рядок аргументу вважається закінченим, коли наступний спеціальний символ (належить до набору '[]=;,') зустрічається.

Ім’я та аргументи фільтра необов’язково передують і слідують за списком міток посилань. Мітка посилання дозволяє назвати посилання та пов’язати його з вихідною або вхідною панеллю фільтра. Попередні мітки in_link_1 ... in_link_N, пов'язані з вхідними майданчиками фільтра, наступні мітки out_link_1... out_link_M, пов'язані з вихідними майданчиками.

Коли в діаграмі фільтрів знайдено дві мітки посилань з однаковою назвою, створюється зв’язок між відповідними вхідною та вихідною панелями.

Якщо вихідна площадка не позначена, вона за замовчуванням пов’язана з першою непозначеною вхідною площадкою наступного фільтра в ланцюжку фільтрів. Наприклад, в ланцюжку фільтрів

nullsrc, split[L1], [L2]overlay, nullsink

екземпляр розділеного фільтра має дві вихідні панелі, а екземпляр накладеного фільтра — дві вхідні площадки. Перша вихідна площадка розділення позначена як "L1", перша вхідна площадка накладення позначена як "L2", а друга вихідна площадка розділення пов'язана з другою вхідною площадкою накладення, які обидві не позначені.

В описі фільтра, якщо вхідна мітка першого фільтра не вказана, передбачається «in»; якщо вихідна мітка останнього фільтра не вказана, передбачається "out".

У повному ланцюжку фільтрів усі немарковані вхідні та вихідні колодки фільтра мають бути підключені. Фільтрограф вважається дійсним, якщо всі вхідні та вихідні майданчики фільтрів усіх ланцюжків фільтрів з’єднані.

Libavfilter автоматично вставлятиме масштабні фільтри там, де потрібне перетворення формату. Можна вказати прапорці swscale для автоматично вставлених масштабувальників, додавши їх до опису filtergraph. sws_flags=flags;

Ось опис BNF синтаксису filtergraph:

NAME             ::= sequence of alphanumeric characters and '_'
FILTER_NAME      ::= NAME["@"NAME]
LINKLABEL        ::= "[" NAME "]"
LINKLABELS       ::= LINKLABEL [LINKLABELS]
FILTER_ARGUMENTS ::= sequence of chars (possibly quoted)
FILTER           ::= [LINKLABELS] FILTER_NAME ["=" FILTER_ARGUMENTS] [LINKLABELS]
FILTERCHAIN      ::= FILTER [,FILTERCHAIN]
FILTERGRAPH      ::= [sws_flags=flags;] FILTERCHAIN [;FILTERGRAPH]

4.2 Notes on filtergraph escaping

Композиція опису фільтра передбачає кілька рівнів екранування. Перегляньте (ffmpeg-utils) розділ «Квотування та екранування» в посібнику ffmpeg-utils(1) для отримання додаткової інформації про використану процедуру екранування.

Екранування першого рівня впливає на вміст кожного значення опції фільтра, яке може містити спеціальний символ, що :використовується для розділення значень, або один із екранованих символів \'.

Екранування другого рівня впливає на весь опис фільтра, який може містити екрановані символи \'або спеціальні символи [],;, що використовуються в описі filtergraph.

Нарешті, коли ви вказуєте filtergraph у командному рядку оболонки, вам потрібно виконати третій рівень екранування для спеціальних символів оболонки, які містяться в ньому.

Наприклад, розглянемо наступний рядок, який буде вбудовано в опис фільтра drawtexttextзначення:

this is a 'string': may contain one, or more, special characters

Цей рядок містить 'спеціальний екранований символ і :спеціальний символ, тому його потрібно екранувати таким чином:

text=this is a \'string\'\: may contain one, or more, special characters

Під час вбудовування опису фільтра в опис filtergraph необхідний другий рівень екранування, щоб екранувати всі спеціальні символи filtergraph. Таким чином, наведений вище приклад виглядає так:

drawtext=text=this is a \\\'string\\\'\\: may contain one\, or more\, special characters

(зауважте, що окрім \'спеціальних символів, що екрануються, ,потрібно також екранувати).

Нарешті, під час написання опису filtergraph у команді оболонки потрібен додатковий рівень екранування, який залежить від правил екранування прийнятої оболонки. Наприклад, якщо припустити, що \це спеціальний рядок, який потрібно екранувати за допомогою іншого \, попередній рядок нарешті призведе до:

-vf "drawtext=text=this is a \\\\\\'string\\\\\\'\\\\: may contain one\\, or more\\, special characters"

5 Timeline editing

Деякі фільтри підтримують загальнийenableваріант. Для фільтрів, які підтримують редагування шкали часу, цей параметр можна встановити для виразу, який обчислюється перед надсиланням кадру до фільтра. Якщо оцінка відмінна від нуля, фільтр буде ввімкнено, інакше кадр буде надіслано без змін до наступного фільтра в діаграмі фільтрів.

Вираз приймає такі значення:

't'

позначка часу, виражена в секундах, NAN, якщо позначка часу введення невідома

'n'

порядковий номер вхідного кадру, починаючи з 0

'pos'

позиція у файлі вхідного кадру, NAN, якщо невідома

'w'
'h'

ширина та висота вхідного кадру, якщо відео

Крім того, ці фільтри підтримують anenableкоманда, яку можна використовувати для повторного визначення виразу.

Як і будь-який інший варіант фільтрації,enableваріант дотримується тих же правил.

Наприклад, щоб увімкнути фільтр розмиття ( smartblur ) від 10 секунд до 3 хвилин, а фільтр кривих , починаючи з 3 секунд:

smartblur = enable='between(t,10,3*60)',
curves    = enable='gte(t,3)' : preset=cross_process

Перегляньте ffmpeg -filters, які фільтри підтримують шкалу часу.

6 Changing options at runtime with a command

Деякі параметри можна змінити під час роботи фільтра за допомогою команди. Ці параметри позначені буквою T на виході ffmpeg -h filter=<name of filter>. Ім’я команди – це ім’я параметра, а аргумент – нове значення.

7 Options for filters with several inputs (framesync)

Деякі фільтри з кількома входами підтримують загальний набір параметрів. Ці параметри можна встановити лише за назвою, а не за допомогою короткого позначення.

eof_action

Дія, яку потрібно виконати, коли EOF зустрічається на вторинному вході; він приймає одне з наступних значень:

repeat

Повторити останній кадр (за замовчуванням).

endall

Закінчити обидва потоки.

pass

Пропустіть головний вхід.

shortest

Якщо встановлено значення 1, примусове завершення виведення, коли завершується найкоротший вхід. Значення за замовчуванням 0.

repeatlast

Якщо встановлено значення 1, фільтр змушує розширювати останній кадр вторинних потоків до кінця основного потоку. Значення 0 вимикає цю поведінку. Значення за замовчуванням 1.

8 Audio Filters

Коли ви налаштовуєте збірку FFmpeg, ви можете вимкнути будь-який із наявних фільтрів за допомогою --disable-filters. Вихід configure покаже аудіофільтри, включені у вашу збірку.

Нижче наведено опис доступних на даний момент аудіофільтрів.

8.1 acompressor

Компресор в основному використовується для зменшення динамічного діапазону сигналу. Особливо сучасна музика стискається з високим коефіцієнтом для покращення загальної гучності. Це робиться для того, щоб привернути максимум уваги слухача, «відгодувати» звучання і додати треку більше «потужності». Якщо сигнал надто сильно стиснутий, він може звучати глухо або «мертвим» згодом або він може почати «розкачувати» (що може бути потужним ефектом, але також може повністю зруйнувати трек). Правильне стиснення є ключем до досягнення професійного звуку та високого мистецтва мікшування та мастерингу. Через складні налаштування може знадобитися багато часу, щоб отримати належне відчуття такого ефекту.

Стиснення здійснюється шляхом визначення гучності вище вибраного рівня thresholdта ділення його на коефіцієнт, встановлений за допомогою ratio. Отже, якщо ви встановите поріг на -12 дБ, а ваш сигнал досягне -6 дБ, співвідношення 2:1 призведе до сигналу на рівні -9 дБ. Оскільки точне маніпулювання сигналом спричинило б спотворення форми сигналу, зменшення може бути вирівняно з часом. Це робиться за допомогою налаштувань «Атака» і «Звільнення». attackвизначає, протягом якого часу сигнал має піднятися вище порогового значення, перш ніж відбудеться будь-яке зниження, і releaseвстановлює час, протягом якого сигнал має впасти нижче порогового значення, щоб знову зменшити зниження. Сигнали, коротші за вибраний час атаки, залишатимуться без змін. Загальне зниження сигналу можна компенсувати пізніше за допомогою makeupналаштування. Таким чином, стиснення піків сигналу приблизно на 6 дБ і підвищення наповнення до цього рівня призводить до отримання сигналу вдвічі гучнішого, ніж джерело. Щоб отримати більш м’який запис у стисненні, kneeжорсткий край на порозі згладжується в діапазоні вибраних децибел.

Фільтр приймає такі параметри:

level_in

Встановити посилення вхідного сигналу. За замовчуванням — 1. Діапазон — від 0,015625 до 64.

mode

Встановити режим роботи компресора. Може бути upwardабо downward. Типовим є downward.

threshold

Якщо сигнал потоку піднімається вище цього рівня, це вплине на зменшення посилення. За замовчуванням це 0,125. Діапазон між 0,00097563 і 1.

ratio

Встановіть коефіцієнт зменшення сигналу. 1:2 означає, що якщо рівень піднявся на 4 дБ вище порогового значення, після зниження він буде лише на 2 дБ вище. За замовчуванням — 2. Діапазон — від 1 до 20.

attack

Кількість мілісекунд, протягом якої сигнал повинен перевищити порогове значення, перш ніж почнеться зменшення посилення. За замовчуванням — 20. Діапазон — від 0,01 до 2000.

release

Кількість мілісекунд, протягом якої сигнал має впасти нижче порогового значення, перш ніж зменшення знову зменшиться. За замовчуванням — 250. Діапазон — від 0,01 до 9000.

makeup

Встановіть величину, наскільки сигнал буде посилено після обробки. За замовчуванням 1. Діапазон від 1 до 64.

knee

Зігніть гостре коліно навколо порогу, щоб увійти до зменшення посилення більш м’яко. За замовчуванням 2,82843. Діапазон від 1 до 8.

link

Виберіть, чи впливає на зменшення averageрівень між усіма каналами вхідного потоку або голосніший ( ) канал вхідного потоку. maximumТиповим є average.

detection

Чи слід брати точний сигнал у разі peakчи середньоквадратичний у разі rms. За замовчуванням це rmsздебільшого плавніше.

mix

Скільки використовувати стислий сигнал на виході. За замовчуванням — 1. Діапазон — від 0 до 1.

8.1.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

8.2 acontrast

Простий фільтр стиснення/розширення динамічного діапазону звуку.

Фільтр приймає такі параметри:

contrast

Встановити контраст. За замовчуванням — 33. Дозволений діапазон — від 0 до 100.

8.3 acopy

Скопіюйте вхідне аудіоджерело без змін на вихід. Це в основному корисно для тестування.

8.4 acrossfade

Застосувати перехресне затухання від одного вхідного аудіопотоку до іншого вхідного аудіопотоку. Перехресне затухання застосовується протягом визначеної тривалості ближче до кінця першого потоку.

Фільтр приймає такі параметри:

nb_samples, ns

Укажіть кількість семплів, для яких має тривати ефект перехресного згасання. Після завершення ефекту перехресного затухання перший вхідний аудіо буде повністю безшумним. За замовчуванням 44100.

duration, d

Укажіть тривалість ефекту перехресного згасання. Перегляньте (ffmpeg-utils) розділ «Тривалість часу» в посібнику ffmpeg-utils(1) , щоб дізнатися про прийнятний синтаксис. За замовчуванням тривалість визначається nb_samples. Якщо встановлено, цей параметр використовується замість nb_samples.

overlap, o

Перший кінець потоку має накладатися на початок другого потоку. За замовчуванням увімкнено.

curve1

Встановити криву для переходу з перехресним затуханням для першого потоку.

curve2

Встановіть криву для переходу з перехресним затуханням для другого потоку.

Для опису доступних типів кривих див . опис фільтра afade .

8.4.1 Examples

  • Перехресне затухання від одного входу до іншого:
    ffmpeg -i first.flac -i second.flac -filter_complex acrossfade=d=10:c1=exp:c2=exp output.flac
    
  • Перехресне затухання від одного входу до іншого, але без накладання:
    ffmpeg -i first.flac -i second.flac -filter_complex acrossfade=d=10:o=0:c1=exp:c2=exp output.flac
    

8.5 acrossover

Розділити аудіопотік на кілька смуг.

Цей фільтр розділяє аудіопотік на два або більше частотних діапазонів. Сумування всіх потоків дасть однорідний результат.

Фільтр приймає такі параметри:

split

Встановіть розділені частоти. Вони мають бути позитивними та зростати.

order

Встановіть порядок фільтрів для кожного розділення смуг. Це контролює спад фільтра або крутизну функції передачі фільтра. Доступні значення:

'2nd'

12 дБ на октаву.

'4th'

24 дБ на октаву.

'6th'

36 дБ на октаву.

'8th'

48 дБ на октаву.

'10th'

60 дБ на октаву.

'12th'

72 дБ на октаву.

'14th'

84 дБ на октаву.

'16th'

96 дБ на октаву.

'18th'

108 дБ на октаву.

'20th'

120 дБ на октаву.

Типовим є 4th.

level

Встановити рівень посилення вхідного сигналу. Дозволений діапазон — від 0 до 1. Значення за замовчуванням — 1.

gains

Встановіть вихідне посилення для кожної смуги. Значення за замовчуванням 1 для всіх діапазонів.

precision

Встановіть, яку точність використовувати під час обробки зразків.

auto

Автоматичний вибір внутрішнього формату вибірки залежно від інших фільтрів.

float

Завжди використовуйте формат зразка з точністю до однієї плаваючої коми.

double

Завжди використовуйте формат вибірки з подвійною точністю з плаваючою комою.

Значення за замовчуванням: auto.

8.5.1 Examples

  • Розділіть вхідний аудіопотік на дві смуги (низьку та високу) з роздільною частотою 1500 Гц, кожна смуга буде в окремому потоці:
    ffmpeg -i in.flac -filter_complex 'acrossover=split=1500[LOW][HIGH]' -map '[LOW]' low.wav -map '[HIGH]' high.wav
    
  • Те саме, що й вище, але з вищим порядком фільтра:
    ffmpeg -i in.flac -filter_complex 'acrossover=split=1500:order=8th[LOW][HIGH]' -map '[LOW]' low.wav -map '[HIGH]' high.wav
    
  • Те саме, що й вище, але також із додатковою середньою смугою (частоти між 1500 і 8000):
    ffmpeg -i in.flac -filter_complex 'acrossover=split=1500 8000:order=8th[LOW][MID][HIGH]' -map '[LOW]' low.wav -map '[MID]' mid.wav -map '[HIGH]' high.wav
    

8.6 acrusher

Зменшити роздільну здатність звуку в бітах.

Цей фільтр є подрібнювачем біт з розширеною функціональністю. Подрібнювач бітів використовується для звукового зменшення кількості бітів, якими дискретизується аудіосигнал. Це зовсім не змінює бітову глибину, а лише створює ефект. Матеріал зі зниженою розрядністю звучить більш жорстко і «цифрово». Цей фільтр здатний навіть округляти до безперервних значень замість дискретних бітових глибин. Крім того, він має D/C зміщення, яке призводить до різного подрібнення нижньої та верхньої половини сигналу. Параметр Anti-Aliasing здатний створювати «м'якші» нищівні звуки.

Ще однією особливістю цього фільтра є логарифмічний режим. Цей параметр змінює лінійні відстані між бітами на логарифмічні. Результатом є набагато більш «природне» звучання дробарки, яка, наприклад, не пропускає низькі сигнали. Людське вухо має логарифмічне сприйняття, тому таке дроблення набагато приємніше. Логарифмічне дроблення також може отримати згладжування.

Фільтр приймає такі параметри:

level_in

Встановіть рівень.

level_out

Встановіть рівень.

bits

Встановити розрядність.

mix

Встановіть кількість змішування.

mode

Може бути лінійним: linабо логарифмічним: log.

dc

Встановити DC.

aa

Встановити згладжування.

samples

Встановити зменшення вибірки.

lfo

Увімкнути LFO. За замовчуванням вимкнено.

lforange

Встановити діапазон LFO.

lforate

Встановити швидкість LFO.

8.6.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

8.7 acue

Відкласти фільтрацію аудіо до певної позначки часу настінного годинника. Перегляньте фільтр репліки .

8.8 adeclick

Видаліть імпульсивний шум із вхідного аудіо.

Зразки, виявлені як імпульсний шум, замінюються інтерпольованими за допомогою авторегресійного моделювання.

window, w

Встановити розмір вікна в мілісекундах. Дозволений діапазон від 10до 100. Значення за замовчуванням – 55мілісекунди. Це встановлює розмір вікна, яке буде оброблено одночасно.

overlap, o

Встановити перекриття вікон у відсотках від розміру вікна. Дозволений діапазон від 50до 95. Значенням за замовчуванням є 75відсоток. Встановлення цього значення на дуже високе значення збільшує видалення імпульсного шуму, але робить весь процес набагато сповільненим.

arorder, a

Встановити порядок авторегресії у відсотках від розміру вікна. Дозволений діапазон від 0до 25. Значенням за замовчуванням є 2відсоток. Цей параметр також контролює якість інтерпольованих зразків, використовуючи сусідні хороші зразки.

threshold, t

Встановити порогове значення. Дозволений діапазон від 1до 100. Значення за замовчуванням: 2. Це контролює силу імпульсного шуму, який буде видалено. Чим менше значення, тим більше зразків буде виявлено як імпульсний шум.

burst, b

Встановити пакетне злиття у відсотках від розміру вікна. Дозволений діапазон – 0до 10. Значення за замовчуванням: 2. Якщо будь-які два зразки, визначені як шум, розташовуються менше, ніж це значення, тоді будь-які зразки між цими двома зразками також будуть виявлені як шум.

method, m

Встановити метод перекриття.

Він приймає такі значення:

add, a

Виберіть метод додавання перекриття. Навіть неінтерпольовані зразки дещо змінюються за допомогою цього методу.

save, s

Виберіть метод збереження перекриття. Неінтерпольовані вибірки залишаються незмінними.

Значення за замовчуванням: a.

8.9 adeclip

Видаліть обрізані семпли із вхідного аудіо.

Зразки, виявлені як обрізані, замінюються інтерпольованими за допомогою авторегресійного моделювання.

window, w

Встановити розмір вікна в мілісекундах. Дозволений діапазон від 10до 100. Значення за замовчуванням – 55мілісекунди. Це встановлює розмір вікна, яке буде оброблено одночасно.

overlap, o

Встановити перекриття вікон у відсотках від розміру вікна. Дозволений діапазон від 50 до 95. Значенням за замовчуванням є 75відсоток.

arorder, a

Встановити порядок авторегресії у відсотках від розміру вікна. Дозволений діапазон від 0до 25. Значенням за замовчуванням є 8відсоток. Цей параметр також контролює якість інтерпольованих зразків, використовуючи сусідні хороші зразки.

threshold, t

Встановити порогове значення. Дозволений діапазон від 1до 100. Значення за замовчуванням: 10. Вищі значення роблять виявлення кліпу менш агресивним.

hsize, n

Встановити розмір гістограми, яка використовується для виявлення кліпів. Дозволений діапазон від 100до 9999. Значення за замовчуванням: 1000. Вищі значення роблять виявлення кліпу менш агресивним.

method, m

Встановити метод перекриття.

Він приймає такі значення:

add, a

Виберіть метод додавання перекриття. Навіть неінтерпольовані зразки дещо змінюються за допомогою цього методу.

save, s

Виберіть метод збереження перекриття. Неінтерпольовані вибірки залишаються незмінними.

Значення за замовчуванням: a.

8.10 adecorrelate

Застосувати декореляцію до вхідного аудіопотоку.

Фільтр приймає такі параметри:

stages

Встановити декореляційні етапи фільтрації. Дозволений діапазон — від 1 до 16. Значення за замовчуванням — 6.

seed

Встановіть випадкове початкове число, яке використовується для встановлення затримки у вибірках по каналах.

8.11 adelay

Затримка одного або кількох аудіоканалів.

Зразки в затриманому каналі заповнені тишею.

Фільтр приймає такі параметри:

delays

Встановіть список затримок у мілісекундах для кожного каналу, розділених символом «|». Невикористані затримки мовчки ігноруватимуться. Якщо кількість даних затримок менша за кількість каналів, усі решта каналів не будуть затримані. Якщо ви хочете відкласти точну кількість зразків, додайте «S» до числа. Якщо замість цього ви хочете затримати в секундах, додайте 's' до числа.

all

Використовуйте останню встановлену затримку для всіх інших каналів. За замовчуванням вимкнено. Якщо цей параметр увімкнено, змінюється спосіб delaysйого інтерпретації.

8.11.1 Examples

  • Затримайте перший канал на 1,5 секунди, третій канал на 0,5 секунди та залиште другий канал (і будь-які інші канали, які можуть бути присутні) без змін.
    adelay=1500|0|500
    
  • Затримайте другий канал на 500 вибірок, третій канал на 700 вибірок і залиште перший канал (та будь-які інші канали, які можуть бути присутні) без змін.
    adelay=0|500S|700S
    
  • Затримка всіх каналів на однакову кількість вибірок:
    adelay=delays=64S:all=1
    

8.12 adenorm

Усуньте відхилення в аудіо, додавши надзвичайно низький рівень шуму.

Цей фільтр повинен бути розміщений перед будь-яким фільтром, який може виробляти денормальні зміни.

Нижче наведено опис прийнятих параметрів.

level

Встановіть рівень доданого шуму в дБ. Типовим є -351. Дозволений діапазон від -451 до -90.

type

Встановити тип доданого шуму.

dc

Додайте сигнал постійного струму.

ac

Додайте сигнал змінного струму.

square

Додати квадратний сигнал.

pulse

Додайте імпульсний сигнал.

Типовим є dc.

8.12.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

8.13 aderivative, aintegral

Обчислити похідну/інтеграл аудіопотоку.

Застосування обох фільтрів один за одним створює оригінальний звук.

8.14 adynamicequalizer

Застосувати динамічне вирівнювання до вхідного аудіопотоку.

Нижче наведено опис прийнятих варіантів.

threshold

Встановіть поріг виявлення, який використовується для запуску вирівнювання. Виявлення порогу здійснюється за допомогою смугового фільтра. Значення за замовчуванням — 0. Дозволений діапазон — від 0 до 100.

dfrequency

Встановіть частоту виявлення в Гц, яка використовується для смугового фільтра, який використовується для запуску вирівнювання. Значення за замовчуванням 1000 Гц. Дозволений діапазон становить від 2 до 1000000 Гц.

dqfactor

Встановіть коефіцієнт резонансу виявлення для смугового фільтра, який використовується для запуску вирівнювання. Значення за замовчуванням — 1. Дозволений діапазон — від 0,001 до 1000.

tfrequency

Встановіть цільову частоту фільтра вирівнювання. Значення за замовчуванням 1000 Гц. Дозволений діапазон становить від 2 до 1000000 Гц.

tqfactor

Встановіть цільовий коефіцієнт резонансу для цільового фільтра вирівнювання. Значення за замовчуванням — 1. Дозволений діапазон — від 0,001 до 1000.

attack

Встановіть проміжок часу в мілісекундах, протягом якого сигнал від виявлення має перевищити поріг виявлення, перш ніж почнеться вирівнювання. За замовчуванням — 20. Дозволений діапазон — від 1 до 2000.

release

Встановіть проміжок часу в мілісекундах, протягом якого сигнал від виявлення має впасти нижче порогового значення виявлення до завершення вирівнювання. За замовчуванням — 200. Дозволений діапазон — від 1 до 2000.

knee

Зігніть різке коліно навколо порогу виявлення, щоб м’якше розрахувати коефіцієнт вирівнювання. За замовчуванням — 1. Дозволений діапазон — від 0 до 8.

ratio

Встановіть коефіцієнт, на який підвищується коефіцієнт вирівнювання. За замовчуванням — 1. Дозволений діапазон — від 1 до 20.

makeup

Встановіть зсув компенсації в дБ, на який підвищується коефіцієнт вирівнювання. За замовчуванням — 0. Дозволений діапазон — від 0 до 30.

range

Встановіть максимально допустиму величину скорочення/підсилення в дБ. За замовчуванням 0. Дозволений діапазон від 0 до 200.

slew

Встановіть коефіцієнт повороту. За замовчуванням 1. Дозволений діапазон від 1 до 200.

mode

Встановити режим роботи фільтра можна одним з наступних:

'listen'

Виведення лише ізольованого смугового сигналу.

'cut'

Зрізайте частоти вище порогу виявлення.

'boost'

Підвищення частот нижче порогу виявлення.

Типовий режим: 'cut'.

tftype

Встановлення типу цільового фільтра може бути одним із таких:

'bell'
'lowshelf'
'highshelf'

Тип за замовчуванням: 'bell'.

8.14.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

8.15 adynamicsmooth

Застосуйте динамічне згладжування до вхідного аудіопотоку.

Нижче наведено опис прийнятих варіантів.

sensitivity

Встановіть ступінь чутливості до коливань частоти. За замовчуванням — 2. Дозволений діапазон — від 0 до 1e+06.

basefreq

Встановіть базову частоту для згладжування. Значення за замовчуванням – 22050. Дозволений діапазон – від 2 до 1e+06.

8.15.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

8.16 aecho

Застосувати луну до вхідного аудіо.

Луна – це відбитий звук і може виникати природним чином серед гір (і іноді великих будівель) під час розмови чи крику; цифрові ехо-ефекти імітують цю поведінку та часто використовуються, щоб допомогти наповнити звук окремого інструменту чи вокалу. Різниця в часі між вихідним сигналом і delayвідбитим сигналом дорівнює , а гучність відбитого сигналу дорівнює decay. Кілька відлунь можуть мати різні затримки та загасання.

Нижче наведено опис прийнятих параметрів.

in_gain

Встановити вхідне посилення відбитого сигналу. Типовим є 0.6.

out_gain

Встановити вихідний коефіцієнт посилення відбитого сигналу. Типовим є 0.3.

delays

Встановіть список часових інтервалів у мілісекундах між вихідним сигналом і відбиттям, розділених символом «|». Дозволений діапазон для кожного delayстановить (0 - 90000.0]. Типовим є 1000.

decays

Встановіть список гучності відбитих сигналів, розділених символом '|'. Дозволений діапазон для кожного decayстановить (0 - 1.0]. Типовим є 0.5.

8.16.1 Examples

  • Зробіть так, ніби інструментів у два рази більше, ніж насправді грає:
    aecho=0.8:0.88:60:0.4
    
  • Якщо затримка дуже коротка, це звучить як (металевий) робот, який грає музику:
    aecho=0.8:0.88:6:0.4
    
  • Більша затримка звучатиме як концерт під відкритим небом у горах:
    aecho=0.8:0.9:1000:0.3
    
  • Те саме, що й вище, але з додатковою горою:
    aecho=0.8:0.9:1000|1800:0.3|0.25
    

8.17 aemphasis

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

Фільтр приймає такі параметри:

level_in

Встановити посилення вхідного сигналу.

level_out

Встановити вихідний коефіцієнт посилення.

mode

Встановити режим фільтра. Для відновлення матеріалу використовуйте reproductionрежим, інакше використовуйте productionрежим. Типовим є reproductionрежим.

type

Встановити тип фільтра. Вибирає середній. Може бути одним із таких:

col

виберіть Columbia.

emi

виберіть EMI.

bsi

виберіть BSI (78RPM).

riaa

виберіть RIAA.

cd

виберіть компакт-диск (CD).

50fm

виберіть 50 мкс (FM).

75fm

виберіть 75 мкс (FM).

50kf

виберіть 50 мкс (FM-KF).

75kf

виберіть 75 мкс (FM-KF).

8.17.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

8.18 aeval

Змініть звуковий сигнал відповідно до вказаних виразів.

Цей фільтр приймає один або кілька виразів (по одному для кожного каналу), які оцінюються та використовуються для зміни відповідного аудіосигналу.

Він приймає такі параметри:

exprs

Встановіть список виразів, розділених '|', для кожного окремого каналу. Якщо кількість вхідних каналів перевищує кількість виразів, для решти вихідних каналів використовується останній вказаний вираз.

channel_layout, c

Встановити схему вихідного каналу. Якщо не вказано, макет каналу визначається кількістю виразів. Якщо встановлено "same', за замовчуванням використовуватиме той самий макет вхідного каналу.

Кожен вираз у exprsможе містити такі константи та функції:

ch

номер каналу поточного виразу

n

номер оцінюваного зразка, починаючи з 0

s

частота дискретизації

t

час оцінюваного зразка, виражений у секундах

nb_in_channels
nb_out_channels

вхід і вихід кількість каналів

val(CH)

значення вхідного каналу з номеромCH

Примітка: цей фільтр повільний. Для швидшої обробки слід використовувати спеціальний фільтр.

8.18.1 Examples

  • Половина обсягу:
    aeval=val(ch)/2:c=same
    
  • Інвертувати фазу другого каналу:
    aeval=val(0)|-val(1)
    

8.19 aexciter

Збудник використовується для отримання високого звуку, якого немає в оригінальному сигналі. Це робиться шляхом створення гармонійних спотворень сигналу, які обмежені в діапазоні та додаються до вихідного сигналу. Ексайтер підвищує верхню межу аудіосигналу без простого підвищення вищих частот, як це робив би еквалайзер, щоб створити більш «чіткий» або «яскравий» звук.

Фільтр приймає такі параметри:

level_in

Встановіть вхідний рівень перед обробкою сигналу. Дозволений діапазон — від 0 до 64. Значення за замовчуванням — 1.

level_out

Встановити вихідний рівень після обробки сигналу. Дозволений діапазон — від 0 до 64. Значення за замовчуванням — 1.

amount

Встановіть кількість гармонік, доданих до вихідного сигналу. Дозволений діапазон — від 0 до 64. Значення за замовчуванням — 1.

drive

Встановіть кількість новостворених гармонік. Дозволений діапазон — від 0,1 до 10. Значення за замовчуванням — 8,5.

blend

Встановіть октаву новостворених гармонік. Дозволений діапазон від -10 до 10. Значення за замовчуванням 0.

freq

Встановіть нижню межу частоти вироблення гармонік у Гц. Дозволений діапазон від 2000 до 12000 Гц. За замовчуванням 7500 Гц.

ceil

Встановіть верхню межу частоти вироблення гармонік. Дозволений діапазон від 9999 до 20000 Гц. Якщо значення нижче 10000 Гц, обмеження не застосовується.

listen

Вимкнення вихідного сигналу та виведення лише доданих гармонік. За замовчуванням вимкнено.

8.19.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

8.20 afade

Застосувати ефект поступового згасання до вхідного звуку.

Нижче наведено опис прийнятих параметрів.

type, t

Вкажіть тип ефекту, може бути або inдля ефекту поступового наближення, або outдля ефекту поступового зменшення. Типовим є in.

start_sample, ss

Вкажіть номер початкового зразка для початку застосування ефекту згасання. За замовчуванням 0.

nb_samples, ns

Укажіть кількість семплів, для яких має тривати ефект згасання. Наприкінці ефекту поступового затухання вихідний аудіо матиме таку ж гучність, як і вхідний аудіо, наприкінці переходу затухання вихідний аудіо буде мовчати. За замовчуванням 44100.

start_time, st

Укажіть час початку ефекту згасання. За замовчуванням 0. Значення має бути визначено як тривалість часу; див. (ffmpeg-utils) розділ «Тривалість часу» в посібнику ffmpeg-utils(1) для прийнятного синтаксису. Якщо встановлено, цей параметр використовується замість start_sample.

duration, d

Вкажіть тривалість ефекту згасання. Перегляньте (ffmpeg-utils) розділ «Тривалість часу» в посібнику ffmpeg-utils(1) , щоб дізнатися про прийнятний синтаксис. Наприкінці ефекту поступового затухання вихідний аудіо матиме таку ж гучність, як і вхідний аудіо, наприкінці переходу затухання вихідний аудіо буде мовчати. За замовчуванням тривалість визначається nb_samples. Якщо встановлено, цей параметр використовується замість nb_samples.

curve

Установіть криву для переходу згасання.

Він приймає такі значення:

tri

виберіть трикутний, лінійний нахил (за замовчуванням)

qsin

виберіть чверть синусоїди

hsin

виберіть половину синусоїди

esin

виберіть експоненціальну синусоїду

log

вибрати логарифмічний

ipar

виберіть перевернуту параболу

qua

вибрати квадратичний

cub

вибрати куб

squ

виберіть квадратний корінь

cbr

виберіть кубічний корінь

par

виберіть параболу

exp

вибрати експоненціальний

iqsin

виберіть інвертовану чверть синусоїди

ihsin

виберіть інвертовану половину синусоїди

dese

виберіть подвійне експоненціальне сидіння

desi

виберіть подвійну експоненціальну сигму

losi

виберіть логістичну сигму

sinc

виберіть синус кардинальну функцію

isinc

виберіть інвертовану синус кардинальну функцію

nofade

без вицвітання

8.20.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

8.20.2 Examples

  • Згасання в перші 15 секунд звуку:
    afade=t=in:ss=0:d=15
    
  • Згасання останніх 25 секунд 900-секундного аудіо:
    afade=t=out:st=875:d=25
    

8.21 afftdn

Приглушення звукових зразків за допомогою ШПФ.

Нижче наведено опис прийнятих параметрів.

noise_reduction, nr

Встановіть шумозаглушення в дБ, допустимий діапазон становить від 0,01 до 97. Значення за замовчуванням становить 12 дБ.

noise_floor, nf

Встановіть рівень шуму в дБ, допустимий діапазон від -80 до -20. Значення за замовчуванням -50 дБ.

noise_type, nt

Встановіть тип шуму.

Він приймає такі значення:

white, w

Виберіть білий шум.

vinyl, v

Виберіть вініловий шум.

shellac, s

Виберіть шум шелаку.

custom, c

Виберіть спеціальний шум, визначений у bnпараметрі.

Значення за замовчуванням – білий шум.

band_noise, bn

Встановіть спеціальний профіль шуму діапазону для кожного з 15 діапазонів. Смуги розділені символами « » або «|».

residual_floor, rf

Встановіть залишковий рівень у дБ, допустимий діапазон від -80 до -20. Значення за замовчуванням -38 дБ.

track_noise, tn

Увімкнути відстеження рівня шуму. За замовчуванням вимкнено. Коли це ввімкнено, рівень шуму регулюється автоматично.

track_residual, tr

Увімкнути відстеження залишків. За замовчуванням вимкнено.

output_mode, om

Встановіть режим виведення.

Він приймає такі значення:

input, i

Передайте вхід без змін.

output, o

Шум проходу відфільтровано.

noise, n

Пропускати тільки шум.

Значення за замовчуванням: output.

adaptivity, ad

Установіть коефіцієнт адаптації, який використовується для адаптації коригувань підсилення для кожного діапазону частот. Значення 0забезпечує миттєву адаптацію, тоді як вищі значення реагують набагато повільніше. Дозволений діапазон від 0до 1. Значення за замовчуванням: 0.5.

floor_offset, fo

Встановіть коефіцієнт компенсації рівня шуму. Цей параметр використовується для налаштування зміщення, застосованого до виміряного рівня шуму. Він ефективний лише тоді, коли ввімкнено відстеження рівня шуму. Дозволений діапазон від -2.0до 2.0. Значення за замовчуванням: 1.0.

noise_link, nl

Встановіть шумовий зв'язок, який використовується для багатоканального аудіо.

Він приймає такі значення:

none

Використовуйте незмінний рівень шуму каналу.

min

Використовуйте виміряний мінімальний рівень шуму всіх каналів.

max

Використовуйте виміряний максимальний рівень шуму всіх каналів.

average

Використовуйте виміряний середній рівень шуму всіх каналів.

Значення за замовчуванням: min.

band_multiplier, bm

Встановіть коефіцієнт множення смуг, який використовується для розподілу смуг між діапазонами частот. Дозволений діапазон від 0.2до 5. Значення за замовчуванням: 1.25.

sample_noise, sn

Перемикання захоплення та вимірювання профілю шуму від вхідного аудіо.

Він приймає такі значення:

start, begin

Почніть захоплення зразка шуму.

stop, end

Зупиніть захоплення пробного шуму та виміряйте новий профіль смуги шуму.

Значення за замовчуванням: none.

gain_smooth, gs

Установіть плавний просторовий радіус посилення, який використовується для згладжування посилень, застосованих до кожного діапазону частот. Корисно для зменшення випадкових музичних шумових артефактів. Вищі значення посилюють згладжування посилень. Дозволений діапазон від 0до 50. Значення за замовчуванням: 0.

8.21.1 Commands

Цей фільтр підтримує деякі вищезазначені параметри як команди .

8.21.2 Examples

  • Зменшіть білий шум на 10 дБ і використовуйте попередньо виміряний рівень шуму -40 дБ:
    afftdn=nr=10:nf=-40
    
  • Зменшіть білий шум на 10 дБ, також установіть початковий рівень шуму на -80 дБ і ввімкніть автоматичне відстеження рівня шуму, щоб рівень шуму поступово змінювався під час обробки:
    afftdn=nr=10:nf=-80:tn=1
    
  • Зменшіть рівень шуму на 20 дБ, використовуючи рівень шуму -40 дБ і використовуючи команди для визначення профілю шуму перших 0,4 секунди вхідного аудіо:
    asendcmd=0.0 afftdn sn start,asendcmd=0.4 afftdn sn stop,afftdn=nr=20:nf=-40
    

8.22 afftfilt

Застосуйте довільні вирази до зразків у частотній області.

real

Встановіть дійсний вираз частотної області для кожного окремого каналу, розділеного символом «|». Типовим є "re". Якщо кількість вхідних каналів перевищує кількість виразів, для решти вихідних каналів використовується останній вказаний вираз.

imag

Установіть уявний вираз у частотній області для кожного окремого каналу, розділеного символом «|». Типовим є "im".

Кожен вираз у realі imagможе містити такі константи та функції:

sr

частота дискретизації

b

номер біну поточної частоти

nb

кількість доступних бункерів

ch

номер каналу поточного виразу

chs

кількість каналів

pts

поточний кадр бал

re

поточна дійсна частина діапазону частот поточного каналу

im

поточна уявна частина діапазону частот поточного каналу

real(b, ch)

Повертає значення дійсної частини діапазону частот у місці ( bin, channel)

imag(b, ch)

Повертає значення уявної частини діапазону частот у місці ( bin, channel)

win_size

Встановити розмір вікна. Дозволений діапазон від 16 до 131072. За замовчуванням4096

win_func

Встановити функцію вікна.

Він приймає такі значення:

'rect'
'bartlett'
'hann, hanning'
'hamming'
'blackman'
'welch'
'flattop'
'bharris'
'bnuttall'
'bhann'
'sine'
'nuttall'
'lanczos'
'gauss'
'tukey'
'dolph'
'cauchy'
'parzen'
'poisson'
'bohman'

Типовим є hann.

overlap

Встановити перекриття вікон. Якщо встановлено значення 1, буде вибрано рекомендоване перекриття для вибраної функції вікна. Типовим є 0.75.

8.22.1 Examples

  • Залиште майже лише низькі частоти в аудіо:
    afftfilt="'real=re * (1-clip((b/nb)*b,0,1))':imag='im * (1-clip((b/nb)*b,0,1))'"
    
  • Застосувати ефект роботизації:
    afftfilt="real='hypot(re,im)*sin(0)':imag='hypot(re,im)*cos(0)':win_size=512:overlap=0.75"
    
  • Застосувати ефект шепоту:
    afftfilt="real='hypot(re,im)*cos((random(0)*2-1)*2*3.14)':imag='hypot(re,im)*sin((random(1)*2-1)*2*3.14)':win_size=128:overlap=0.8"
    

8.23 afir

Застосуйте довільний фільтр кінцевої імпульсної характеристики.

Цей фільтр призначений для застосування довгих FIR-фільтрів, тривалістю до 60 секунд.

Його можна використовувати як компонент для цифрових кросоверних фільтрів, вирівнювання кімнати, усунення перехресних перешкод, синтезу хвильового поля, ауралізації, амбіофоніки, амбіоніки та просторування.

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

Він приймає такі параметри:

dry

Встановіть сухе посилення. Це встановлює посилення вхідного сигналу.

wet

Встановіть вологе посилення. Це встановлює остаточне вихідне посилення.

length

Встановіть довжину фільтра імпульсної характеристики. За замовчуванням 1, що означає, що обробляється весь ІЧ-протокол.

gtype

Увімкнути застосування посилення, виміряного за потужністю ІЧ.

Визначте, який підхід використовувати для автоматичного вимірювання посилення.

none

Не застосовуйте жодних посилень.

peak

виберіть пікове посилення, дуже консервативний підхід. Це значення за умовчанням.

dc

виберіть посилення постійного струму, обмежене застосування.

gn

виберіть підхід підсилення до шуму, це найпопулярніший.

irgain

Встановіть посилення, яке буде застосовано до ІЧ-коефіцієнтів перед фільтрацією. Дозволений діапазон від 0 до 1. Це посилення застосовується після будь-якого посилення, застосованого з gtypeопцією.

irfmt

Встановити формат ІЧ-потоку. Може бути monoабо input. Типовим є input.

maxir

Установіть максимальну дозволену тривалість фільтра імпульсної характеристики в секундах. За замовчуванням 30 секунд. Дозволений діапазон від 0,1 до 60 секунд.

response

Показати ІЧ-частотну характеристику, величину (пурпурний), фазу (зелений) і групову затримку (жовтий) у додатковому відеопотоці. За замовчуванням він вимкнений.

channel

Встановіть, для якого ІЧ-каналу відображати АЧХ. За замовчуванням відображається перший канал. Ця опція використовується лише тоді, коли responseввімкнено.

size

Встановити розмір відеопотоку. Ця опція використовується лише тоді, коли responseввімкнено.

rate

Встановити частоту кадрів відеопотоку. Ця опція використовується лише тоді, коли responseввімкнено.

minp

Встановіть мінімальний розмір розділу для згортки. Типовим є 8192. Дозволений діапазон від 1до 32768. Менші значення зменшують затримку за рахунок більшого використання ЦП.

maxp

Встановіть максимальний розмір розділу для згортки. Типовим є 8192. Дозволений діапазон від 8до 32768. Нижчі значення можуть збільшити використання ЦП.

nbirs

Встановіть кількість потоків вхідних імпульсних відповідей, які можна буде перемикати під час виконання. Дозволений діапазон від 1до 32. Типовим є 1.

ir

Встановлений інфрачервоний потік, який використовуватиметься для згортки, починаючи з 0, завжди повинен бути нижчим за надане значення nbirsпараметром. Типовим є 0. Цей параметр можна змінити під час виконання за допомогою команд .

precision

Встановіть, яку точність використовувати під час обробки зразків.

auto

Автоматичний вибір внутрішнього формату вибірки залежно від інших фільтрів.

float

Завжди використовуйте формат зразка з точністю до однієї плаваючої коми.

double

Завжди використовуйте формат вибірки з подвійною точністю з плаваючою комою.

Значення за замовчуванням — авто.

8.23.1 Examples

  • Застосуйте реверберацію до потоку, використовуючи моно-ІЧ-файл як другий вхід, завершіть команду за допомогою ffmpeg:
    ffmpeg -i input.wav -i middle_tunnel_1way_mono.wav -lavfi afir output.wav
    

8.24 aformat

Встановіть обмеження вихідного формату для вхідного аудіо. Фреймворк обговорює найбільш прийнятний формат для мінімізації конверсій.

Він приймає такі параметри:

sample_fmts, f

Список запитаних зразків форматів, розділених '|'.

sample_rates, r

Розділений '|' список запитаних частот дискретизації.

channel_layouts, cl

Розділений '|' список запитаних макетів каналів.

Перегляньте (ffmpeg-utils)розділ «Макет каналу» в посібнику ffmpeg-utils(1) , щоб дізнатися про необхідний синтаксис.

Якщо параметр пропущено, допускаються всі значення.

Примусово примусово виводити беззнаковий 8-бітний або знаковий 16-бітний стерео

aformat=sample_fmts=u8|s16:channel_layouts=stereo

8.25 afreqshift

Застосувати частотний зсув до вхідних аудіо зразків.

Фільтр приймає такі параметри:

shift

Вкажіть частотний зсув. Дозволений діапазон від -INT_MAX до INT_MAX. Значення за замовчуванням 0,0.

level

Встановити посилення вихідного сигналу, застосоване до кінцевого вихідного сигналу. Дозволений діапазон від 0,0 до 1,0. Значення за замовчуванням 1,0.

order

Установити порядок фільтрів, який використовується для фільтрації. Дозволений діапазон — від 1 до 16. Значення за замовчуванням — 8.

8.25.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

8.26 afwtdn

Зменшіть широкосмуговий шум із вхідних зразків за допомогою Wavelets.

Нижче наведено опис прийнятих варіантів.

sigma

Встановіть сигму шуму, дозволений діапазон від 0 до 1. Значення за замовчуванням 0. Цей параметр контролює силу шумозаглушення, застосованого до вхідних зразків. Найбільш корисним способом встановлення цього параметра є децибели, наприклад. -45 дБ.

levels

Встановіть кількість вейвлет-рівнів розкладання. Дозволений діапазон — від 1 до 12. Значення за замовчуванням — 10. Встановлення цього значення занизьке робить шумозаглушення дуже низьким.

wavet

Встановити тип вейвлета для декомпозиції вхідного кадру. Вони відсортовані за кількістю коефіцієнтів, від найменшого до найвищого. Більше коефіцієнтів означає гіршу швидкість фільтрації, але загалом кращу якість. Доступні вейвлети:

'sym2'
'sym4'
'rbior68'
'deb10'
'sym10'
'coif5'
'bl3'
percent

Встановити відсоток повного усунення шумів. Дозволений діапазон від 0 до 100 відсотків. Значення за замовчуванням становить 85 відсотків або часткове усунення шумів.

profile

Якщо ввімкнено, перший вхідний кадр використовуватиметься як профіль шуму. Якщо перші зразки кадрів містять безшумні показники, продуктивність буде дуже низькою.

adaptive

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

samples

Встановити розмір окремого кадру в кількості вибірок. Дозволений діапазон від 512 до 65536. Розмір кадру за замовчуванням становить 8192 вибірки.

softness

Встановити м'якість, застосовану всередині функції порогового визначення. Дозволений діапазон — від 0 до 10. М’якість за замовчуванням — 1.

8.26.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

8.27 agate

Ворота в основному використовуються для зменшення нижніх частин сигналу. Цей вид обробки сигналів зменшує заважаючий шум між корисними сигналами.

Стробування здійснюється шляхом виявлення гучності нижче вибраного рівня threshold та ділення його на коефіцієнт, встановлений за допомогою ratio. Нижня межа рівня шуму встановлюється за допомогою range. Оскільки точне маніпулювання сигналом спричинило б спотворення форми хвилі, зменшення може бути вирівняно з часом. Це робиться за допомогою встановлення attackта release.

attackвизначає, протягом якого часу сигнал повинен опускатися нижче порогового значення, перш ніж відбудеться будь-яке зниження, і releaseвстановлює час, протягом якого сигнал має піднятися вище порогового значення, щоб знову зменшити зниження. Сигнали, коротші за вибраний час атаки, залишатимуться без змін.

level_in

Встановіть вхідний рівень перед фільтрацією. За замовчуванням — 1. Дозволений діапазон — від 0,015625 до 64.

mode

Встановити режим роботи. Може бути upwardабо downward. Типовим є downward. Якщо встановлено upwardрежим, більш високі частини сигналу будуть посилені, розширюючи динамічний діапазон у напрямку вгору. Інакше у випадку downwardнижніх частин сигнал буде знижений.

range

Встановіть рівень зменшення посилення, коли сигнал нижче порогу. За замовчуванням 0,06125. Дозволений діапазон — від 0 до 1. Встановлення цього значення на 0 вимикає зменшення, а потім фільтр поводиться як розширювач.

threshold

Якщо сигнал піднімається вище цього рівня, зниження посилення відключається. За замовчуванням 0,125. Дозволений діапазон від 0 до 1.

ratio

Встановіть коефіцієнт зменшення сигналу. За замовчуванням — 2. Дозволений діапазон — від 1 до 9000.

attack

Кількість мілісекунд, протягом якої сигнал має піднятися вище порогового значення, перш ніж зменшення посилення припиниться. За замовчуванням 20 мілісекунд. Дозволений діапазон від 0,01 до 9000.

release

Кількість мілісекунд, протягом якої сигнал має впасти нижче порогового значення, перш ніж зниження знову збільшиться. За замовчуванням 250 мілісекунд. Дозволений діапазон від 0,01 до 9000.

makeup

Встановити величину посилення сигналу після обробки. За замовчуванням 1. Дозволений діапазон від 1 до 64.

knee

Зігніть гостре коліно навколо порогу, щоб увійти до зменшення посилення більш м’яко. За замовчуванням 2,828427125. Дозволений діапазон від 1 до 8.

detection

Виберіть, чи слід брати для виявлення точний сигнал чи схожий на RMS. Типовим є rms. Може бути peakабо rms.

link

Виберіть, чи впливатиме на зниження середній рівень між усіма каналами чи гучніший канал. Типовим є average. Може бути averageабо maximum.

8.27.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

8.28 aiir

Застосуйте довільний фільтр нескінченної імпульсної характеристики.

Він приймає такі параметри:

zeros, z

Встановіть B/чисельник/нулі/коефіцієнти відбиття.

poles, p

Встановіть A/знаменник/полюси/коефіцієнти сходів.

gains, k

Встановити посилення каналів.

dry_gain

Встановити посилення вхідного сигналу.

wet_gain

Встановити вихідний коефіцієнт посилення.

format, f

Встановити формат коефіцієнтів.

'll'

гратчасто-драбинна функція

'sf'

аналогова передавальна функція

'tf'

функція цифрової передачі

'zp'

Нулі/полюси Z-площини, декартова система (за замовчуванням)

'pr'

Нулі/полюси площини Z, полярні радіани

'pd'

Нулі/полюси Z-площини, полярні градуси

'sp'

S-площина нулів/полюсів

process, r

Встановити тип обробки.

'd'

пряма обробка

's'

серійна обробка

'p'

паралельна обробка

precision, e

Встановити точність фільтрації.

'dbl'

з плаваючою комою подвійної точності (за замовчуванням)

'flt'

з плаваючою комою одинарної точності

'i32'

32-розрядні цілі числа

'i16'

16-розрядні цілі числа

normalize, n

Нормалізувати коефіцієнти фільтра, за замовчуванням увімкнено. Увімкнення нормалізує амплітудну характеристику при постійному струмі до 0 дБ.

mix

Скільки використовувати відфільтрований сигнал на виході. За замовчуванням — 1. Діапазон — від 0 до 1.

response

Показати ІЧ-частотну характеристику, величину (пурпурний), фазу (зелений) і групову затримку (жовтий) у додатковому відеопотоці. За замовчуванням він вимкнений.

channel

Встановіть, для якого ІЧ-каналу відображати АЧХ. За замовчуванням відображається перший канал. Ця опція використовується лише тоді, коли responseввімкнено.

size

Встановити розмір відеопотоку. Ця опція використовується лише тоді, коли responseввімкнено.

Коефіцієнти в tfі sfформаті розділені пробілами та розташовані в порядку зростання.

Коефіцієнти у zpформаті відокремлюються пробілами, порядок коефіцієнтів не має значення. Коефіцієнти у zpформаті є комплексними числами з i уявною одиницею.

Для кожного каналу можна надати різні коефіцієнти та підсилення, у такому випадку використовуйте «|» для розділення коефіцієнтів або прибутків. Останні надані коефіцієнти будуть використані для всіх інших каналів.

8.28.1 Examples

  • Застосуйте 2-полюсний еліптичний паз приблизно на 5000 Гц для частоти дискретизації 48000 Гц:
    aiir=k=1:z=7.957584807809675810E-1 -2.575128568908332300 3.674839853930788710 -2.57512875289799137 7.957586296317130880E-1:p=1 -2.86950072432325953 3.63022088054647218 -2.28075678147272232 6.361362326477423500E-1:f=tf:r=d
    
  • Те саме, що й вище, але у zpформаті:
    aiir=k=0.79575848078096756:z=0.80918701+0.58773007i 0.80918701-0.58773007i 0.80884700+0.58784055i 0.80884700-0.58784055i:p=0.63892345+0.59951235i 0.63892345-0.59951235i 0.79582691+0.44198673i 0.79582691-0.44198673i:f=zp:r=s
    
  • Застосуйте аналоговий нормалізований фільтр низьких частот Баттерворта 3-го порядку, використовуючи формат функції аналогової передачі:
    aiir=z=1.3057 0 0 0:p=1.3057 2.3892 2.1860 1:f=sf:r=d
    

8.29 alimiter

Обмежувач запобігає перевищенню вхідного сигналу над заданим порогом. Цей обмежувач використовує технологію випередження, щоб запобігти викривленню сигналу. Це означає, що є невелика затримка після обробки сигналу. Майте на увазі, що затримка, яку він створює, є встановленим вами часом атаки.

Фільтр приймає такі параметри:

level_in

Встановити посилення вхідного сигналу. За замовчуванням 1.

level_out

Встановити вихідний коефіцієнт посилення. За замовчуванням 1.

limit

Не дозволяйте сигналам вище цього рівня проходити через обмежувач. За замовчуванням 1.

attack

Обмежувач досягне свого рівня ослаблення за цей проміжок часу в мілісекундах. За замовчуванням 5 мілісекунд.

release

Поверніться від обмеження до ослаблення 1,0 за цю кількість мілісекунд. За замовчуванням 50 мілісекунд.

asc

Коли завжди потрібне зменшення підсилення, ASC піклується про вивільнення до середнього рівня зменшення, а не про досягнення 0 скорочення за час вивільнення.

asc_level

Виберіть, наскільки на час випуску впливає ASC, 0 означає, що час випуску майже не змінюється, тоді як 1 забезпечує більший час випуску.

level

Автоматичний рівень вихідного сигналу. За замовчуванням увімкнено. Це нормалізує аудіо до 0 дБ, якщо ввімкнено.

latency

Компенсуйте затримку, введену за допомогою буфера попереднього перегляду з параметром атаки. Також очищайте дійсні аудіодані в буфері попереднього перегляду, коли потік досягає EOF.

Залежно від вибраного налаштування, перед застосуванням цього фільтра рекомендується збільшити дискретизацію вхідних даних у 2 або 4 рази за допомогою aresample .

8.30 allpass

Застосуйте двополюсний всепрохідний фільтр із центральною частотою (у Гц) frequencyі шириною фільтра width. Загальний фільтр змінює співвідношення частоти й фази аудіо, не змінюючи співвідношення частоти й амплітуди.

Фільтр приймає такі параметри:

frequency, f

Встановіть частоту в Гц.

width_type, t

Встановити метод для визначення пропускної здатності фільтра.

h

Гц

q

Q-фактор

o

октава

s

схил

k

кГц

width, w

Укажіть ширину смуги фільтра в одиницях width_type.

mix, m

Скільки використовувати відфільтрований сигнал на виході. За замовчуванням — 1. Діапазон — від 0 до 1.

channels, c

Вкажіть, які канали фільтрувати, за замовчуванням фільтруються всі доступні.

normalize, n

Нормалізувати біквадратичні коефіцієнти, за замовчуванням вимкнено. Увімкнення нормалізує амплітудну характеристику при постійному струмі до 0 дБ.

order, o

Встановіть порядок фільтрів, може бути 1 або 2. За замовчуванням 2.

transform, a

Встановити тип перетворення IIR-фільтра.

di
dii
tdi
tdii
latt
svf
zdf
precision, r

Встановити точність фільтрації.

auto

Виберіть автоматичний формат семплів залежно від фільтрів об’ємного звуку.

s16

Завжди використовуйте 16-бітний знак.

s32

Завжди використовуйте 32-розрядний знак.

f32

Завжди використовуйте 32-бітове значення з плаваючою точкою.

f64

Завжди використовуйте float 64-bit.

8.30.1 Commands

Цей фільтр підтримує такі команди:

frequency, f

Змінити частоту повного проходу. Синтаксис команди: " frequency"

width_type, t

Змінити allpass width_type. Синтаксис команди: " width_type"

width, w

Змінити ширину всіх проходів. Синтаксис команди: " width"

mix, m

Змініть загальну суміш. Синтаксис команди: " mix"

8.31 aloop

Зациклюйте зразки аудіо.

Фільтр приймає такі параметри:

loop

Встановіть кількість петель. Встановлення цього значення на -1 призведе до нескінченних циклів. За замовчуванням 0.

size

Встановіть максимальну кількість зразків. За замовчуванням 0.

start

Встановіть перший зразок циклу. За замовчуванням 0.

8.32 amerge

Об'єднайте два або більше аудіопотоків в один багатоканальний потік.

Фільтр приймає такі параметри:

inputs

Встановіть кількість входів. За замовчуванням 2.

Якщо розкладка каналів входів роз’єднана, а отже, сумісна, розкладка каналів виходу буде встановлена ​​відповідно, а порядок каналів буде змінено за потреби. Якщо схеми каналів входів не перетинаються, вихід матиме всі канали першого входу, потім усі канали другого входу, у такому порядку, і схема каналів виходу буде значенням за замовчуванням, що відповідає загальна кількість каналів.

Наприклад, якщо перший вхід знаходиться в 2.1 (FL+FR+LF), а другий вхід FC+BL+BR, тоді вихід буде в 5.1, з каналами в такому порядку: a1, a2, b1, a3, b2, b3 (a1 – перший канал першого входу, b1 – перший канал другого входу).

З іншого боку, якщо обидва входи є стерео, вихідні канали будуть у порядку за замовчуванням: a1, a2, b1, b2, а розкладка каналів буде довільно встановлена ​​на 4.0, що може бути або не бути очікуваним значенням .

Усі вхідні дані повинні мати однакову частоту дискретизації та формат.

Якщо вхідні дані не мають однакової тривалості, вихідний сигнал зупиниться на найкоротшому.

8.32.1 Examples

  • Об’єднайте два монофайли в стереопотік:
    amovie=left.wav [l] ; amovie=right.mp3 [r] ; [l] [r] amerge
    
  • Кілька об’єднань, припускаючи 1 відеопотік і 6 аудіопотоківinput.mkv:
    ffmpeg -i input.mkv -filter_complex "[0:1][0:2][0:3][0:4][0:5][0:6] amerge=inputs=6" -c:a pcm_s16le output.mkv
    

8.33 amix

Змішує кілька аудіовходів в один вихід.

Зауважте, що цей фільтр підтримує лише плаваючі зразки ( фільтри amerge та panаудіо підтримують багато форматів). Якщо amix вхідні дані містять цілочисельні зразки , aresample буде автоматично вставлено для виконання перетворення на плаваючі зразки.

Наприклад

ffmpeg -i INPUT1 -i INPUT2 -i INPUT3 -filter_complex amix=inputs=3:duration=first:dropout_transition=3 OUTPUT

мікшує 3 вхідних аудіопотоку в один вихід із тією ж тривалістю, що й перший вхід, і час переходу відключення 3 секунди.

Він приймає такі параметри:

inputs

Кількість входів. Якщо не вказано, за умовчанням дорівнює 2.

duration

Як визначити кінець потоку.

longest

Тривалість найдовшого введення. (за умовчанням)

shortest

Тривалість найкоротшого введення.

first

Тривалість першого введення.

dropout_transition

Час переходу в секундах для повторного нормалізації гучності після завершення вхідного потоку. Значення за замовчуванням – 2 секунди.

weights

Вкажіть вагу кожного вхідного аудіопотоку як послідовність. Кожна вага відокремлена пробілом. За замовчуванням усі вхідні дані мають однакову вагу.

normalize

Завжди масштабуйте вхідні дані, а не просто підсумовуйте вибірки. Остерігайтеся сильного відсікання, якщо вхідні дані не нормалізовано до або після фільтрації цим фільтром, якщо цей параметр вимкнено. За замовчуванням увімкнено.

8.33.1 Commands

Цей фільтр підтримує такі команди:

weights
normalize

Синтаксис такий самий, як і параметр із такою ж назвою.

8.34 amultiply

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

За допомогою цього поелементного множення можна створювати завмирання амплітуди та модуляцію амплітуди.

8.35 anequalizer

Параметричний багатосмуговий еквалайзер високого порядку для кожного каналу.

Він приймає такі параметри:

params

Цей рядок параметрів має такий формат: "c chnf= cfw= wg= gt= f| ..." Кожна смуга еквалайзера відокремлена символом "|".

chn

Встановіть номер каналу, до якого буде застосовано еквалайзер. Якщо введення не має цього каналу, запис ігнорується.

f

Встановіть центральну частоту для діапазону. Якщо введення не має такої частоти, запис ігнорується.

w

Встановіть ширину смуги в Герцах.

g

Встановіть посилення діапазону в дБ.

t

Встановити тип фільтра для смуги, необов’язково, може бути:

'0'

Баттерворт, це стандартно.

'1'

Чебишевський тип 1.

'2'

Чебишевський тип 2.

curves

За допомогою цієї опції активована частотна характеристика еквалайзера відображається у відеопотоці.

size

Встановити розмір відеопотоку. Корисно, лише якщо активована опція кривих.

mgain

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

fscale

Встановити частотну шкалу, яка використовується для малювання частотної характеристики у відеовиході. Може бути лінійним або логарифмічним. За замовчуванням логарифмічний.

colors

Встановіть колір для кожної кривої каналу, яка буде відображатися у відеопотоці. Це список назв кольорів, розділених пробілом або «|». Нерозпізнані або відсутні кольори будуть замінені білим кольором.

8.35.1 Examples

  • Менше підсилення на 10 центральної частоти 200 Гц і ширини 100 Гц для перших 2 каналів з використанням фільтра Чебишева типу 1:
    anequalizer=c0 f=200 w=100 g=-10 t=1|c1 f=200 w=100 g=-10 t=1
    

8.35.2 Commands

Цей фільтр підтримує такі команди:

change

Змінити існуючі параметри фільтра. Синтаксис для команд: " fN|f= freq|w= width|g= gain"

fNномер існуючого фільтра, починаючи з 0, якщо такий фільтр недоступний, повертається помилка. freqвстановити новий параметр частоти. widthвстановити новий параметр ширини в Герцах. gainвстановити новий параметр посилення в дБ.

Повний виклик фільтра за допомогою asendcmd може виглядати так: asendcmd=c='4.0 anequalizer change 0|f=200|w=50|g=1',anequalizer=...

8.36 anlmdn

Зменшіть широкосмуговий шум у зразках аудіо за допомогою алгоритму нелокальних середніх.

Кожен зразок коригується шляхом пошуку інших зразків із подібним контекстом. Ця контекстна подібність визначається шляхом порівняння навколишніх частин розміру p. Латки шукають у районіrнавколо зразка.

Фільтр приймає такі параметри:

strength, s

Встановити силу шумозаглушення. Дозволений діапазон — від 0,00001 до 10000. Значення за замовчуванням — 0,00001.

patch, p

Встановити тривалість радіуса патча. Дозволений діапазон від 1 до 100 мілісекунд. Значення за замовчуванням становить 2 мілісекунди.

research, r

Встановити тривалість радіусу дослідження. Дозволений діапазон від 2 до 300 мілісекунд. Стандартне значення становить 6 мілісекунд.

output, o

Встановіть режим виведення.

Він приймає такі значення:

i

Передайте вхід без змін.

o

Шум проходу відфільтровано.

n

Пропускати тільки шум.

Значення за замовчуванням: o.

smooth, m

Встановити коефіцієнт згладжування. Значення за замовчуванням: 11. Дозволений діапазон від 1до 1000.

8.36.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

8.37 anlmf, anlms

Застосуйте нормалізований алгоритм найменшого середнього-(квадрати|четвертий) до першого аудіопотоку за допомогою другого аудіопотоку.

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

Нижче наведено опис прийнятих варіантів.

order

Встановити порядок фільтрів.

mu

Встановіть фільтр mu.

eps

Встановіть фільтр eps.

leakage

Встановити протікання фільтра.

out_mode

Він приймає такі значення:

i

Пройдіть 1-й вхід.

d

Пройдіть 2-й вхід.

o

Передайте відфільтровані проби.

n

Передача різниці між бажаними та відфільтрованими зразками.

Значення за замовчуванням: o.

8.37.1 Examples

  • Одним із багатьох застосувань цього фільтра є зменшення шуму, вхідний звук фільтрується за однаковими зразками, які затримуються на фіксовану величину, один із таких прикладів для стереоаудіо:
    asplit[a][b],[a]adelay=32S|32S[a],[b][a]anlms=order=128:leakage=0.0005:mu=.5:out_mode=o
    

8.37.2 Commands

Цей фільтр підтримує ті самі команди, що й параметри, за винятком параметра order.

8.38 anull

Передайте джерело звуку без змін на вихід.

8.39 apad

Доповніть кінець аудіопотоку тишею.

Це можна використовувати разом ізffmpeg -shortestщоб подовжити аудіопотоки до тієї ж довжини, що й відеопотік.

Нижче наведено опис прийнятих варіантів.

packet_size

Встановіть розмір пакета мовчання. Значення за замовчуванням – 4096.

pad_len

Встановіть кількість зразків мовчання, які потрібно додати до кінця. Після досягнення значення потік припиняється. Цей варіант взаємовиключний зwhole_len.

whole_len

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

pad_dur

Укажіть тривалість зразків мовчання, які потрібно додати. Перегляньте (ffmpeg-utils) розділ «Тривалість часу» в посібнику ffmpeg-utils(1) , щоб дізнатися про прийнятний синтаксис. Використовується, лише якщо встановлено невід’ємне значення.

whole_dur

Укажіть мінімальну загальну тривалість вихідного аудіопотоку. Перегляньте (ffmpeg-utils) розділ «Тривалість часу» в посібнику ffmpeg-utils(1) , щоб дізнатися про прийнятний синтаксис. Використовується, лише якщо встановлено невід’ємне значення. Якщо значення перевищує тривалість вхідного аудіо, тиша додається до кінця, доки значення не буде досягнуто. Цей варіант взаємовиключний зpad_dur

Якщо ніpad_lenніwhole_lenніpad_dur ніwhole_durвстановлено, фільтр додасть тишу до кінця вхідного потоку на невизначений час.

Зауважте, що для ffmpeg 4.4 і раніших нульpad_durабо whole_durтакож призвело до того, що фільтр додав тишу на невизначений термін.

8.39.1 Examples

  • Додайте 1024 зразки тиші в кінець введення:
    apad=pad_len=1024
    
  • Переконайтеся, що аудіовихід міститиме принаймні 10 000 семплів, за потреби доповніть вхід тишею:
    apad=whole_len=10000
    
  • Використовуйте ffmpegдля доповнення аудіовходу тишею, так що відеопотік завжди буде найкоротшим і конвертуватиметься до кінця у вихідний файл під час використанняshortest варіант:
    ffmpeg -i VIDEO -i AUDIO -filter_complex "[1:0]apad" -shortest OUTPUT
    

8.40 aphaser

Додайте ефект фазування до вхідного звуку.

Фазерний фільтр створює ряд піків і спадів у частотному спектрі. Положення піків і спадів модулюється таким чином, що вони змінюються з часом, створюючи розгортаючий ефект.

Нижче наведено опис прийнятих параметрів.

in_gain

Встановити посилення вхідного сигналу. За замовчуванням 0,4.

out_gain

Встановити вихідний коефіцієнт посилення. За замовчуванням 0,74

delay

Встановіть затримку в мілісекундах. За замовчуванням 3.0.

decay

Набір розпаду. За замовчуванням 0,4.

speed

Встановіть швидкість модуляції в Гц. За замовчуванням 0,5.

type

Встановіть тип модуляції. За замовчуванням — трикутник.

Він приймає такі значення:

'triangular, t'
'sinusoidal, s'

8.41 aphaseshift

Застосувати фазовий зсув до вхідних аудіо зразків.

Фільтр приймає такі параметри:

shift

Укажіть фазовий зсув. Дозволений діапазон від -1,0 до 1,0. Значення за замовчуванням 0,0.

level

Встановити посилення вихідного сигналу, застосоване до кінцевого вихідного сигналу. Дозволений діапазон від 0,0 до 1,0. Значення за замовчуванням 1,0.

order

Установити порядок фільтрів, який використовується для фільтрації. Дозволений діапазон — від 1 до 16. Значення за замовчуванням — 8.

8.41.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

8.42 apsyclip

Застосуйте психоакустичний кліпер для вхідного аудіопотоку.

Фільтр приймає такі параметри:

level_in

Встановити посилення вхідного сигналу. За замовчуванням це 1. Діапазон [0,015625 - 64].

level_out

Встановити вихідний коефіцієнт посилення. За замовчуванням це 1. Діапазон [0,015625 - 64].

clip

Встановіть початкове значення відсікання. Значення за замовчуванням 0dBFS або 1.

diff

Виводити лише відмінні зразки, корисні, щоб почути введені спотворення. За замовчуванням вимкнено.

adaptive

Встановити силу застосованого адаптивного спотворення. Значення за замовчуванням 0,5. Дозволений діапазон від 0 до 1.

iterations

Встановити кількість ітерацій психоакустичного кліпера. Дозволений діапазон — від 1 до 20. Значення за замовчуванням — 10.

level

Автоматичний рівень вихідного сигналу. За замовчуванням вимкнено. Це нормалізує звук назад до 0dBFS, якщо ввімкнено.

8.42.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

8.43 apulsator

Аудіо пульсатор - це щось середнє між автопаннером і тремоло. Але він також може створювати смішні стереоефекти. Пульсатор змінює гучність лівого і правого каналів на основі LFO (низькочастотного генератора) з різними формами хвилі і зміщеними фазами. Цей фільтр має можливість визначати зсув між лівим і правим каналом. Зміщення 0 означає, що обидві форми LFO відповідають одна одній. Лівий і правий канал перероблені однаково - звичайне тремоло. Зміщення в 50% означає, що форма правого каналу точно зміщена по фазі (або зміщена назад приблизно на половину частоти) - пульсатор діє як автопаннер. При 1 обидві криві знову збігаються. Кожне налаштування між ними переміщує фазовий зсув без проміжків між усіма етапами та виробляє деякі "обхідні" звуки з синусоїдальною та трикутною формами хвилі.

Фільтр приймає такі параметри:

level_in

Встановити посилення вхідного сигналу. За замовчуванням це 1. Діапазон [0,015625 - 64].

level_out

Встановити вихідний коефіцієнт посилення. За замовчуванням це 1. Діапазон [0,015625 - 64].

mode

Встановіть форму хвилі, яку використовуватиме LFO. Може бути одним із таких: синус, трикутник, квадрат, розпил або розпил. За замовчуванням синус.

amount

Встановити модуляцію. Визначте, на яку частину оригінального сигналу впливає LFO.

offset_l

Встановити зміщення лівого каналу. За замовчуванням 0. Дозволений діапазон [0 - 1].

offset_r

Встановіть зміщення правого каналу. За замовчуванням 0,5. Дозволений діапазон [0 - 1].

width

Встановити ширину імпульсу. За замовчуванням 1. Дозволений діапазон [0 - 2].

timing

Встановіть можливий режим синхронізації. Може бути одним із таких: bpm, ms або Hz. За замовчуванням hz.

bpm

Встановити уд/хв. За замовчуванням — 120. Дозволений діапазон — [30–300]. Використовується, лише якщо час встановлено на уд/хв.

ms

Встановити мс. За замовчуванням — 500. Дозволений діапазон — [10–2000]. Використовується, лише якщо час встановлено на мс.

hz

Встановіть частоту в Гц. За замовчуванням — 2. Дозволений діапазон — [0,01–100]. Використовується, лише якщо час встановлено на Hz.

8.44 aresample

Повторіть дискретизацію вхідного звуку до вказаних параметрів за допомогою бібліотеки libswresample. Якщо нічого не вказано, фільтр автоматично конвертуватиме вхідні дані та вихідні дані.

Цей фільтр також може розтягувати/стискати аудіодані, щоб вони відповідали часовим міткам, або вводити тишу/вирізати аудіо, щоб відповідати часовим міткам, комбінувати обидва або не робити жодного.

Фільтр приймає синтаксис [ sample_rate:] resampler_options, де sample_rate виражає частоту дискретизації та resampler_optionsє списком пар key= value, розділених ":". Перегляньте розділ (ffmpeg-resampler) «Параметри Resampler» у посібнику ffmpeg-resampler(1) , щоб отримати повний список підтримуваних параметрів.

8.44.1 Examples

  • Повторіть вибірку вхідного звуку до 44100 Гц:
    aresample=44100
    
  • Розтягнути/стиснути вибірки до заданих часових позначок із компенсацією максимум 1000 вибірок на секунду:
    aresample=async=1000
    

8.45 areverse

Перевернути аудіозапис.

Попередження: цьому фільтру потрібна пам’ять для буферизації всього кліпу, тому пропонується обрізання.

8.45.1 Examples

  • Візьміть перші 5 секунд кліпу та переверніть його назад.
    atrim=end=5,areverse
    

8.46 arnndn

Зменшіть шум від мови за допомогою повторюваних нейронних мереж.

Цей фільтр приймає такі параметри:

model, m

Налаштувати файл моделі поїзда для завантаження. Ця опція завжди потрібна.

mix

Встановіть, скільки змішувати відфільтровані зразки в кінцевий результат. Дозволений діапазон — від -1 до 1. Значення за замовчуванням — 1. Від’ємні значення є спеціальними, вони встановлюють, скільки фільтрованого шуму слід утримувати в кінцевому виході фільтра. Встановіть цей параметр на -1, щоб почути фактичний шум, видалений із вхідного сигналу.

8.46.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

8.47 asdr

Виміряйте відношення аудіосигналу до спотворення.

Цей фільтр приймає два аудіопотоки для введення та виводить перший аудіопотік. Результати в дБ на канал наприкінці будь-якого входу.

8.48 asetnsamples

Встановіть кількість семплів для кожного вихідного аудіокадру.

Останній вихідний пакет може містити іншу кількість зразків, оскільки фільтр очищає всі зразки, що залишилися, коли вхідний аудіосигнал сигналізує про завершення.

Фільтр приймає такі параметри:

nb_out_samples, n

Встановіть кількість кадрів для кожного вихідного звукового кадру. Число означає кількість зразків на кожен канал . Значення за замовчуванням 1024.

pad, p

Якщо встановлено значення 1, фільтр доповнить останній аудіокадр нулями, щоб останній кадр містив таку саму кількість зразків, як і попередні. Значення за замовчуванням 1.

Наприклад, щоб встановити кількість вибірок на кадр 1234 і вимкнути відступи для останнього кадру, скористайтеся:

asetnsamples=n=1234:p=0

8.49 asetrate

Встановіть частоту дискретизації без зміни даних PCM. Це призведе до зміни швидкості та тону.

Фільтр приймає такі параметри:

sample_rate, r

Встановіть вихідну частоту дискретизації. За замовчуванням 44100 Гц.

8.50 ashowinfo

Показати рядок, що містить різну інформацію для кожного вхідного аудіокадру. Вхідне аудіо не змінено.

Показаний рядок містить послідовність пар ключ/значення у вигляді key: value.

У вихідних даних відображаються такі значення:

n

(Послідовний) номер вхідного кадру, починаючи з 0.

pts

Відмітка часу представлення вхідного кадру в одиницях основного часу; часова база залежить від вхідної панелі фільтра і зазвичай становить 1/ sample_rate.

pts_time

Позначка часу представлення вхідного кадру в секундах.

pos

позиція кадру у вхідному потоці, -1, якщо ця інформація недоступна та/або безглузда (наприклад, у випадку синтетичного аудіо)

fmt

Формат зразка.

chlayout

Макет каналу.

rate

Частота дискретизації для звукового кадру.

nb_samples

Кількість вибірок (на канал) у кадрі.

checksum

Контрольна сума Adler-32 (надрукована в шістнадцятковій системі) аудіоданих. Для планарного аудіо дані обробляються так, ніби всі площини були об’єднані.

plane_checksums

Список контрольних сум Adler-32 для кожної площини даних.

8.51 asoftclip

Застосувати м'яке відсікання звуку.

М’яке відсікання – це тип ефекту спотворення, коли амплітуда сигналу насичується вздовж плавної кривої, а не раптова форма жорсткого відсікання.

Цей фільтр приймає такі параметри:

type

Встановити тип soft-clipping.

Він приймає такі значення:

hard
tanh
atan
cubic
exp
alg
quintic
sin
erf
threshold

Встановіть поріг, з якого починати відсікання. Значення за замовчуванням 0 дБ або 1.

output

Встановити посилення, застосоване до виходу. Значення за замовчуванням 0 дБ або 1.

param

Встановіть додатковий параметр, який керує сигмовидною функцією.

oversample

Встановити коефіцієнт передискретизації.

8.51.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

8.52 aspectralstats

Відображення статистичної інформації частотної області про аудіоканали. Статистичні дані обчислюються та зберігаються як метадані для кожного аудіоканалу та для кожного аудіокадру.

Він приймає наступний варіант:

win_size

Встановити довжину вікна в зразках. Значення за замовчуванням — 2048. Дозволений діапазон — від 32 до 65536.

win_func

Встановити функцію вікна.

Він приймає такі значення:

'rect'
'bartlett'
'hann, hanning'
'hamming'
'blackman'
'welch'
'flattop'
'bharris'
'bnuttall'
'bhann'
'sine'
'nuttall'
'lanczos'
'gauss'
'tukey'
'dolph'
'cauchy'
'parzen'
'poisson'
'bohman'

Типовим є hann.

overlap

Встановити перекриття вікон. Дозволений діапазон від 0 до 1. Значення за замовчуванням: 0.5.

Нижче наведено список кожного ключа метаданих:

mean
variance
centroid
spread
skewness
kurtosis
entropy
flatness
crest
flux
slope
decrease
rolloff

8.53 asr

Автоматичне розпізнавання мовлення

Цей фільтр використовує PocketSphinx для розпізнавання мовлення. Щоб увімкнути компіляцію цього фільтра, вам потрібно налаштувати FFmpeg за допомогою --enable-pocketsphinx .

Він приймає такі варіанти:

rate

Встановити частоту дискретизації вхідного аудіо. За замовчуванням: 16000. Це необхідно для відповідності моделям мовлення, інакше ви отримаєте погані результати.

hmm

Встановити словник, що містить файли акустичних моделей.

dict

Встановити словник вимови.

lm

Файл моделі встановлення мови.

lmctl

Набір моделей мови.

lmname

Визначте, яку мовну модель використовувати.

logfn

Встановити вихід для повідомлень журналу.

Фільтр експортує розпізнане мовлення як метадані кадру lavfi.asr.text.

8.54 astats

Відображати статистичну інформацію про аудіоканали в часовій області. Статистика обчислюється та відображається для кожного аудіоканалу, а також, де це можливо, надається загальна цифра.

Він приймає наступний варіант:

length

Коротка довжина вікна в секундах, що використовується для вимірювання пікового та найнижчого RMS. За замовчуванням 0.05(50 мілісекунд). Дозволений діапазон становить [0 - 10].

metadata

Налаштувати введення метаданих. Усі ключі метаданих мають префікс lavfi.astats.X, де Xномер каналу, починаючи з 1, або рядок Overall. За замовчуванням вимкнено.

Доступні ключі для кожного каналу: DC_offset Min_level Max_level Min_difference Max_difference Mean_difference RMS_difference Peak_level RMS_peak RMS_trough Crest_factor Flat_factor Peak_count Noise_floor Noise_floor_count Entropy Bit_depth Dynamic_range Zero_crossings Zero_crossings_rate Number_of_Nafnormals Number_of_

і для загального: DC_offset Min_level Max_level Min_difference Max_difference Mean_difference RMS_difference Peak_level RMS_level RMS_peak RMS_trough Flat_factor Peak_count Noise_floor Noise_floor_count Entropy Bit_depth Number_of_samples Number_of_naNs Number_of_Infs Number_of_denormals

Наприклад, повний ключ виглядає так lavfi.astats.1.DC_offsetабо так lavfi.astats.Overall.Peak_count.

Опис значення кожної клавіші читайте нижче.

reset

Установіть кількість кадрів, для яких обчислюється сукупна статистика перед скиданням. Значення за замовчуванням вимкнено.

measure_perchannel

Виберіть параметри, які вимірюються для кожного каналу. Ключі метаданих можна використовувати як прапорці, типовоallякий вимірює все. noneвимикає вимірювання всіх каналів.

measure_overall

Виберіть параметри, які вимірюються в цілому. Ключі метаданих можна використовувати як прапорці, типовоallякий вимірює все. noneвимикає всі загальні вимірювання.

Нижче наведено опис кожного показаного параметра:

DC offset

Зміщення середньої амплітуди від нуля.

Min level

Мінімальний рівень вибірки.

Max level

Максимальний рівень вибірки.

Min difference

Мінімальна різниця між двома послідовними зразками.

Max difference

Максимальна різниця між двома послідовними зразками.

Mean difference

Середня різниця між двома послідовними зразками. Середнє значення кожної різниці між двома послідовними зразками.

RMS difference

Середньоквадратична різниця між двома послідовними зразками.

Peak level dB
RMS level dB

Стандартний піковий і середньоквадратичний рівень вимірюється в dBFS.

RMS peak dB
RMS trough dB

Пікові та найнижчі значення середньоквадратичного рівня, виміряні протягом короткого вікна.

Crest factor

Стандартне відношення пікового до середньоквадратичного рівня (примітка: не в дБ).

Flat factor

Рівномірність (тобто послідовні вибірки з однаковим значенням) сигналу на його пікових рівнях (тобто або Min levelабо Max level).

Peak count

Кількість випадків (не кількість вибірок), коли сигнал досяг Min levelабо Max level.

Noise floor dB

Мінімальний локальний пік, виміряний у dBFS протягом короткого вікна.

Noise floor count

Кількість випадків (не кількість зразків), коли сигнал досягав Noise floor.

Entropy

Ентропія, виміряна по всьому звуку. Ентропія зі значенням, близьким до 1,0, зазвичай вимірюється для білого шуму.

Bit depth

Загальна бітова глибина звуку. Кількість бітів, що використовуються для кожної вибірки.

Dynamic range

Виміряний динамічний діапазон звуку в дБ.

Zero crossings

Кількість точок, де сигнал перетинає вісь нульового рівня.

Zero crossings rate

Швидкість переходів через нуль і кількість аудіо зразків.

8.55 asubboost

Підвищити частоти сабвуфера.

Фільтр приймає такі параметри:

dry

Встановіть сухе посилення, скільки оригінального сигналу зберігається. Дозволений діапазон — від 0 до 1. Значення за замовчуванням — 1,0.

wet

Встановіть вологе посилення, скільки відфільтрованого сигналу зберігається. Дозволений діапазон — від 0 до 1. Значення за замовчуванням — 1,0.

boost

Встановіть максимальний коефіцієнт підвищення. Дозволений діапазон — від 1 до 12. Значення за замовчуванням — 2.

decay

Встановіть значення посилення загасання лінії затримки. Дозволений діапазон — від 0 до 1. Значення за замовчуванням — 0,0.

feedback

Встановити значення посилення зворотного зв'язку лінії затримки. Дозволений діапазон — від 0 до 1. Значення за замовчуванням — 0,9.

cutoff

Встановіть частоту зрізу в Герцах. Дозволений діапазон — від 50 до 900. Значення за замовчуванням — 100.

slope

Встановіть величину нахилу для частоти зрізу. Дозволений діапазон — від 0,0001 до 1. Значення за замовчуванням — 0,5.

delay

Встановити затримку. Дозволений діапазон — від 1 до 100. Значення за замовчуванням — 20.

channels

Встановіть канали для обробки. Значення за замовчуванням доступне для всіх.

8.55.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

8.56 asubcut

Обрізати частоти сабвуфера.

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

Фільтр приймає такі параметри:

cutoff

Встановіть частоту зрізу в Герцах. Дозволений діапазон — від 2 до 200. Значення за замовчуванням — 20.

order

Встановити порядок фільтрів. Доступні значення від 3 до 20. Значення за замовчуванням 10.

level

Встановити рівень посилення вхідного сигналу. Дозволений діапазон — від 0 до 1. Значення за замовчуванням — 1.

8.56.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

8.57 asupercut

Вирізати суперчастоти.

Фільтр приймає такі параметри:

cutoff

Встановіть частоту зрізу в Герцах. Дозволений діапазон – від 20000 до 192000. Значення за замовчуванням – 20000.

order

Встановити порядок фільтрів. Доступні значення від 3 до 20. Значення за замовчуванням 10.

level

Встановити рівень посилення вхідного сигналу. Дозволений діапазон — від 0 до 1. Значення за замовчуванням — 1.

8.57.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

8.58 asuperpass

Застосуйте смуговий фільтр Баттерворта високого порядку.

Фільтр приймає такі параметри:

centerf

Встановіть центральну частоту в Герцах. Дозволений діапазон — від 2 до 999999. Значення за замовчуванням — 1000.

order

Встановити порядок фільтрів. Доступні значення від 4 до 20. Значення за замовчуванням — 4.

qfactor

Встановити Q-фактор. Дозволений діапазон — від 0,01 до 100. Значення за замовчуванням — 1.

level

Встановити рівень посилення вхідного сигналу. Дозволений діапазон — від 0 до 2. Значення за замовчуванням — 1.

8.58.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

8.59 asuperstop

Застосуйте смуговий фільтр Баттерворта високого порядку.

Фільтр приймає такі параметри:

centerf

Встановіть центральну частоту в Герцах. Дозволений діапазон — від 2 до 999999. Значення за замовчуванням — 1000.

order

Встановити порядок фільтрів. Доступні значення від 4 до 20. Значення за замовчуванням — 4.

qfactor

Встановити Q-фактор. Дозволений діапазон — від 0,01 до 100. Значення за замовчуванням — 1.

level

Встановити рівень посилення вхідного сигналу. Дозволений діапазон — від 0 до 2. Значення за замовчуванням — 1.

8.59.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

8.60 atempo

Відрегулюйте темп звуку.

Фільтр приймає тільки один параметр, темп звуку. Якщо не вказано, фільтр припускатиме номінальний темп 1,0. Темп має бути в діапазоні [0,5, 100,0].

Зауважте, що темп більше 2 пропустить деякі семпли, а не змішає їх. Якщо з будь-якої причини це викликає занепокоєння, завжди можна послідовно підключити кілька екземплярів темпу, щоб досягти бажаного темпу продукту.

8.60.1 Examples

  • Уповільнення звуку до 80% темпу:
    atempo=0.8
    
  • Щоб прискорити звук до 300% темпу:
    atempo=3
    
  • Щоб пришвидшити аудіо до 300% темпу шляхом послідовного з’єднання двох примірників темпу:
    atempo=sqrt(3),atempo=sqrt(3)
    

8.60.2 Commands

Цей фільтр підтримує такі команди:

tempo

Змінити коефіцієнт масштабування темпу фільтра. Синтаксис команди: " tempo"

8.61 atilt

Застосувати спектральний фільтр нахилу до аудіопотоку.

Цей фільтр застосовує будь-який нахил спаду спектра в будь-якому заданому діапазоні частот.

Фільтр приймає такі параметри:

freq

Встановіть центральну частоту нахилу в Гц. За замовчуванням 10000 Гц.

slope

Встановіть напрямок нахилу схилу. За замовчуванням 0. Дозволений діапазон від -1 до 1.

width

Встановити ширину нахилу. За замовчуванням 1000. Дозволений діапазон від 100 до 10000.

order

Встановити порядок нахилу фільтра.

level

Встановити рівень вхідної гучності. Дозволений діапазон від 0 до 4. За замовчуванням 1.

8.61.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

8.62 atrim

Обріжте вхідні дані так, щоб вихідні дані містили одну суцільну частину вхідних даних.

Він приймає такі параметри:

start

Мітка часу (у секундах) початку розділу, який потрібно зберегти. Тобто зразок аудіо з міткою часу startбуде першим зразком у виводі.

end

Укажіть час першого зразка аудіо, який буде видалено, тобто зразок аудіо, який безпосередньо передує зразку з міткою часу end, буде останнім зразком у виводі.

start_pts

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

end_pts

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

duration

Максимальна тривалість виведення в секундах.

start_sample

Номер першого зразка, який потрібно вивести.

end_sample

Номер першої проби, яку слід відкинути.

start,end, іdurationвиражаються специфікаціями тривалості часу; див. (ffmpeg-utils) розділ «Тривалість часу» в посібнику ffmpeg-utils(1) .

Зауважте, що перші два набори параметрів початку/завершення таduration дивіться на мітку часу кадру, тоді як параметри _sample просто підраховують вибірки, які проходять через фільтр. Отже, start/end_pts і start/end_sample дадуть різні результати, якщо мітки часу неправильні, неточні або не починаються з нуля. Також зауважте, що цей фільтр не змінює позначки часу. Якщо ви бажаєте, щоб вихідні позначки часу починалися з нуля, вставте фільтр asetpts після фільтра atrim.

Якщо встановлено кілька параметрів початку або кінця, цей фільтр намагається бути жадібним і зберігати всі зразки, які відповідають принаймні одному з указаних обмежень. Щоб зберегти лише ту частину, яка одночасно відповідає всім обмеженням, об’єднайте кілька фільтрів atrim.

За умовчанням зберігаються всі введені дані. Отже, можна встановити, наприклад, лише кінцеві значення, щоб зберегти все до вказаного часу.

приклади:

  • Відкинути все, крім другої хвилини введення:
    ffmpeg -i INPUT -af atrim=60:120
    
  • Зберігайте лише перші 1000 зразків:
    ffmpeg -i INPUT -af atrim=end_sample=1000
    

8.63 axcorrelate

Обчислити нормалізовану віконну крос-кореляцію між двома вхідними аудіопотоками.

Отримані зразки завжди між -1 і 1 включно. Якщо результат дорівнює 1, це означає, що два вхідних зразки сильно корелюють у цьому вибраному сегменті. Результат 0 означає, що вони взагалі не корельовані. Якщо результат дорівнює -1, це означає, що два вхідних зразки не мають фази, що означає, що вони компенсують один одного.

Фільтр приймає такі параметри:

size

Встановіть розмір сегмента, для якого обчислюється взаємна кореляція. За замовчуванням — 256. Дозволений діапазон — від 2 до 131072.

algo

Встановити алгоритм крос-кореляції. Може бути slowабо fast. Типовим є slow. Швидкий алгоритм припускає, що середні значення для будь-якого заданого сегмента завжди дорівнюють нулю, тому для виконання потрібно набагато менше обчислень. Зазвичай це неправда, але це справедливо для типових аудіопотоків.

8.63.1 Examples

  • Розрахувати кореляцію між каналами в стереоаудіопотоці:
    ffmpeg -i stereo.wav -af channelsplit,axcorrelate=size=1024:algo=fast correlation.wav
    

8.64 bandpass

Застосуйте двополюсний смуговий фільтр Баттерворта з центральною частотою frequencyта шириною смуги (3 дБ). Параметр csgвибирає постійне посилення спідниці (пікове посилення = Q) замість стандартного: постійне пікове посилення 0 дБ. Фільтр знижується на 6 дБ на октаву (20 дБ на декаду).

Фільтр приймає такі параметри:

frequency, f

Встановіть центральну частоту фільтра. Типовим є 3000.

csg

Постійний приріст спідниці, якщо встановлено значення 1. За замовчуванням 0.

width_type, t

Встановити метод для визначення пропускної здатності фільтра.

h

Гц

q

Q-фактор

o

октава

s

схил

k

кГц

width, w

Укажіть ширину смуги фільтра в одиницях width_type.

mix, m

Скільки використовувати відфільтрований сигнал на виході. За замовчуванням — 1. Діапазон — від 0 до 1.

channels, c

Вкажіть, які канали фільтрувати, за замовчуванням фільтруються всі доступні.

normalize, n

Нормалізувати біквадратичні коефіцієнти, за замовчуванням вимкнено. Увімкнення нормалізує амплітудну характеристику при постійному струмі до 0 дБ.

transform, a

Встановити тип перетворення IIR-фільтра.

di
dii
tdi
tdii
latt
svf
zdf
precision, r

Встановити точність фільтрації.

auto

Виберіть автоматичний формат семплів залежно від фільтрів об’ємного звуку.

s16

Завжди використовуйте 16-бітний знак.

s32

Завжди використовуйте 32-розрядний знак.

f32

Завжди використовуйте 32-бітове значення з плаваючою точкою.

f64

Завжди використовуйте float 64-bit.

block_size, b

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

Зауважте, що затримка фільтра складатиме саме стільки вибірок, якщо встановлено ненульове значення.

8.64.1 Commands

Цей фільтр підтримує такі команди:

frequency, f

Зміна частоти пропускання. Синтаксис команди: " frequency"

width_type, t

Змінити тип ширини смуги пропускання. Синтаксис команди: " width_type"

width, w

Зміна ширини смуги пропускання. Синтаксис команди: " width"

mix, m

Змінити смуговий мікс. Синтаксис команди: " mix"

8.65 bandreject

Застосуйте двополюсний смуговий фільтр Баттерворта з центральною частотою frequencyта (3 дБ) шириною смугиwidth . Фільтр знижується на 6 дБ на октаву (20 дБ на декаду).

Фільтр приймає такі параметри:

frequency, f

Встановіть центральну частоту фільтра. Типовим є 3000.

width_type, t

Встановити метод для визначення пропускної здатності фільтра.

h

Гц

q

Q-фактор

o

октава

s

схил

k

кГц

width, w

Укажіть ширину смуги фільтра в одиницях width_type.

mix, m

Скільки використовувати відфільтрований сигнал на виході. За замовчуванням — 1. Діапазон — від 0 до 1.

channels, c

Вкажіть, які канали фільтрувати, за замовчуванням фільтруються всі доступні.

normalize, n

Нормалізувати біквадратичні коефіцієнти, за замовчуванням вимкнено. Увімкнення нормалізує амплітудну характеристику при постійному струмі до 0 дБ.

transform, a

Встановити тип перетворення IIR-фільтра.

di
dii
tdi
tdii
latt
svf
zdf
precision, r

Встановити точність фільтрації.

auto

Виберіть автоматичний формат семплів залежно від фільтрів об’ємного звуку.

s16

Завжди використовуйте 16-бітний знак.

s32

Завжди використовуйте 32-розрядний знак.

f32

Завжди використовуйте 32-бітове значення з плаваючою точкою.

f64

Завжди використовуйте float 64-bit.

block_size, b

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

Зауважте, що затримка фільтра складатиме саме стільки вибірок, якщо встановлено ненульове значення.

8.65.1 Commands

Цей фільтр підтримує такі команди:

frequency, f

Змінити частоту відхилення смуги. Синтаксис команди: " frequency"

width_type, t

Змінити bandreject width_type. Синтаксис команди: " width_type"

width, w

Змінити ширину смуги. Синтаксис команди: " width"

mix, m

Змінити мікс bandreject. Синтаксис команди: " mix"

8.66 bass, lowshelf

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

Фільтр приймає такі параметри:

gain, g

Дайте посилення на 0 Гц. Його корисний діапазон становить від -20 (для великого розрізу) до +20 (для великого посилення). Остерігайтеся обрізання під час використання позитивного посилення.

frequency, f

Встановіть центральну частоту фільтра, і її можна використовувати для розширення або зменшення частотного діапазону, який потрібно підвищити або скоротити. Стандартним значенням є 100Гц.

width_type, t

Встановити метод для визначення пропускної здатності фільтра.

h

Гц

q

Q-фактор

o

октава

s

схил

k

кГц

width, w

Визначте, наскільки крутий перехід полиці фільтра.

poles, p

Встановити кількість полюсів. За замовчуванням 2.

mix, m

Скільки використовувати відфільтрований сигнал на виході. За замовчуванням — 1. Діапазон — від 0 до 1.

channels, c

Вкажіть, які канали фільтрувати, за замовчуванням фільтруються всі доступні.

normalize, n

Нормалізувати біквадратичні коефіцієнти, за замовчуванням вимкнено. Увімкнення нормалізує амплітудну характеристику при постійному струмі до 0 дБ.

transform, a

Встановити тип перетворення IIR-фільтра.

di
dii
tdi
tdii
latt
svf
zdf
precision, r

Встановити точність фільтрації.

auto

Виберіть автоматичний формат семплів залежно від фільтрів об’ємного звуку.

s16

Завжди використовуйте 16-бітний знак.

s32

Завжди використовуйте 32-розрядний знак.

f32

Завжди використовуйте 32-бітове значення з плаваючою точкою.

f64

Завжди використовуйте float 64-bit.

block_size, b

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

Зауважте, що затримка фільтра складатиме саме стільки вибірок, якщо встановлено ненульове значення.

8.66.1 Commands

Цей фільтр підтримує такі команди:

frequency, f

Зміна частоти низьких частот. Синтаксис команди: " frequency"

width_type, t

Змінити тип ширини низьких частот. Синтаксис команди: " width_type"

width, w

Змінити ширину низьких частот. Синтаксис команди: " width"

gain, g

Змінити посилення низьких частот. Синтаксис команди: " gain"

mix, m

Змінити басовий мікс. Синтаксис команди: " mix"

8.67 biquad

Застосуйте біквадний ІІХ-фільтр із заданими коефіцієнтами. Де b0, b1, b2та a0, a1, a2 – коефіцієнти чисельника та знаменника відповідно. і вкажіть channels, cякі канали фільтрувати, за замовчуванням фільтруються всі доступні.

8.67.1 Commands

Цей фільтр підтримує такі команди:

a0
a1
a2
b0
b1
b2

Змінити біквадратичний параметр. Синтаксис команди: " value"

mix, m

Скільки використовувати відфільтрований сигнал на виході. За замовчуванням — 1. Діапазон — від 0 до 1.

channels, c

Вкажіть, які канали фільтрувати, за замовчуванням фільтруються всі доступні.

normalize, n

Нормалізувати біквадратичні коефіцієнти, за замовчуванням вимкнено. Увімкнення нормалізує амплітудну характеристику при постійному струмі до 0 дБ.

transform, a

Встановити тип перетворення IIR-фільтра.

di
dii
tdi
tdii
latt
svf
zdf
precision, r

Встановити точність фільтрації.

auto

Виберіть автоматичний формат семплів залежно від фільтрів об’ємного звуку.

s16

Завжди використовуйте 16-бітний знак.

s32

Завжди використовуйте 32-розрядний знак.

f32

Завжди використовуйте 32-бітове значення з плаваючою точкою.

f64

Завжди використовуйте float 64-bit.

block_size, b

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

Зауважте, що затримка фільтра складатиме саме стільки вибірок, якщо встановлено ненульове значення.

8.68 bs2b

Перетворення стереозвуку Bauer у бінауральне, що покращує прослуховування стереозаписів у навушниках.

Щоб увімкнути компіляцію цього фільтра, вам потрібно налаштувати FFmpeg за допомогою --enable-libbs2b.

Він приймає такі параметри:

profile

Попередньо встановлений рівень перехресної подачі.

default

Рівень за замовчуванням (fcut=700, feed=50).

cmoy

Схема Chu Moy (fcut=700, feed=60).

jmeier

Схема Яна Мейера (fcut=650, feed=95).

fcut

Частота зрізу (в Гц).

feed

Рівень подачі (в Гц).

8.69 channelmap

Перепризначте вхідні канали до нових місць.

Він приймає такі параметри:

map

Карта каналів від входу до виходу. Аргументом є розділений '|' список відображень, кожне у формі або . може бути або назвою вхідного каналу (наприклад, FL для переднього лівого боку), або його індексом у макеті вхідного каналу. це ім'я вихідного каналу або його індекс у схемі вихідного каналу. Якщо не задано, це неявно є індексом, який починається з нуля та збільшується на одиницю для кожного відображення. in_channel-out_channelin_channelin_channelout_channelout_channel

channel_layout

Схема каналу вихідного потоку.

Якщо відображення відсутнє, фільтр неявно зіставлятиме вхідні канали з вихідними, зберігаючи індекси.

8.69.1 Examples

  • Наприклад, якщо припустити, що вхідний файл MOV 5.1+зведений,
    ffmpeg -i in.mov -filter 'channelmap=map=DL-FL|DR-FR' out.wav
    

    створить вихідний файл WAV, позначений як стерео з каналів понижувального мікшування вхідного.

  • Щоб виправити 5.1 WAV, неправильно закодований у рідному порядку каналів AAC
    ffmpeg -i in.wav -filter 'channelmap=1|2|0|5|3|4:5.1' out.wav
    

8.70 channelsplit

Розділіть кожен канал із вхідного аудіопотоку на окремий вихідний потік.

Він приймає такі параметри:

channel_layout

Схема каналу вхідного потоку. Типовим є "стерео".

channels

Макет каналу, що описує канали, які потрібно витягти як окремі вихідні потоки, або «всі», щоб витягнути кожен вхідний канал як окремий потік. За умовчанням встановлено "все".

Вибір каналів, відсутніх у макеті каналів у вхідних даних, призведе до помилки.

8.70.1 Examples

  • Наприклад, якщо припустити, що вхідний MP3-файл стерео,
    ffmpeg -i in.mp3 -filter_complex channelsplit out.mkv
    

    створить вихідний файл Matroska з двома аудіопотоками, один з яких містить лише лівий канал, а інший – правий.

  • Розділіть файл WAV 5.1 на файли для кожного каналу:
    ffmpeg -i in.wav -filter_complex
    'channelsplit=channel_layout=5.1[FL][FR][FC][LFE][SL][SR]'
    -map '[FL]' front_left.wav -map '[FR]' front_right.wav -map '[FC]'
    front_center.wav -map '[LFE]' lfe.wav -map '[SL]' side_left.wav -map '[SR]'
    side_right.wav
    
  • Витягніть лише LFE з файлу 5.1 WAV:
    ffmpeg -i in.wav -filter_complex 'channelsplit=channel_layout=5.1:channels=LFE[LFE]'
    -map '[LFE]' lfe.wav
    

8.71 chorus

Додайте до звуку ефект хору.

Може створювати один голосовий звук, як хор, але також може застосовуватися до інструментів.

Хорус нагадує ефект луни з короткою затримкою, але в той час як у луні затримка постійна, у хорусі вона варіюється за допомогою синусоїдальної або трикутної модуляції. Глибина модуляції визначає діапазон відтворення модульованої затримки до або після затримки. Таким чином, затриманий звук звучатиме повільніше або швидше, тобто затриманий звук, налаштований навколо оригінального, як у приспіві, де деякі вокали трохи зміщені.

Він приймає такі параметри:

in_gain

Встановити посилення вхідного сигналу. За замовчуванням 0,4.

out_gain

Встановити вихідний коефіцієнт посилення. За замовчуванням 0,4.

delays

Встановити затримки. Типова затримка становить від 40 до 60 мс.

decays

Набір розпадів.

speeds

Встановити швидкості.

depths

Встановити глибину.

8.71.1 Examples

  • Одна затримка:
    chorus=0.7:0.9:55:0.4:0.25:2
    
  • Дві затримки:
    chorus=0.6:0.9:50|60:0.4|0.32:0.25|0.4:2|1.3
    
  • Повніше звучання хору з трьома затримками:
    chorus=0.5:0.9:50|60|40:0.4|0.32|0.3:0.25|0.4|0.3:2|2.3|1.3
    

8.72 compand

Стискайте або розширюйте динамічний діапазон звуку.

Він приймає такі параметри:

attacks
decays

Список часу в секундах для кожного каналу, за яким усереднюється миттєвий рівень вхідного сигналу для визначення його гучності. attacksстосується збільшення гучності та decaysстосується зменшення гучності. У більшості ситуацій час атаки (реакція на звук, що стає голоснішим) має бути коротшим, ніж час загасання, оскільки людське вухо більш чутливе до раптового гучного звуку, ніж до раптового тихого звуку. Типове значення атаки становить 0,3 секунди, а типове значення розпаду – 0,8 секунди. Якщо вказана кількість атак і розпадів менша за кількість каналів, остання встановлена ​​атака/розпад буде використано для всіх каналів, що залишилися.

points

Список точок для передавальної функції, заданий у дБ відносно максимально можливої ​​амплітуди сигналу. Кожен список ключових точок має бути визначений за допомогою такого синтаксису: x0/y0|x1/y1|x2/y2|....або x0/y0 x1/y1 x2/y2 ....

Вхідні значення повинні бути строго в порядку зростання, але функція передачі не повинна бути монотонно зростаючою. Точка 0/0передбачається, але може бути замінена (на 0/out-dBn). Типовими значеннями функції передачі є -70/-70|-60/-20|1/0.

soft-knee

Встановіть радіус кривої в дБ для всіх з’єднань. За замовчуванням 0,01.

gain

Встановіть додаткове посилення в дБ, яке буде застосовано до всіх точок функції передачі. Це дозволяє легко регулювати загальне посилення. За замовчуванням 0.

volume

Встановіть початкову гучність у дБ для кожного каналу під час початку фільтрації. Це дозволяє користувачеві спочатку задати номінальний рівень, щоб, наприклад, дуже велике посилення не застосовувалося до початкових рівнів сигналу до того, як компандування почне працювати. Типове значення для звуку, який спочатку тихий, становить -90 дБ. За замовчуванням 0.

delay

Встановіть затримку в секундах. Вхідне аудіо аналізується негайно, але аудіо затримується перед подачею на регулятор гучності. Встановлення затримки, яка приблизно дорівнює часу атаки/загасання, дозволяє фільтру ефективно працювати в режимі прогнозування, а не в режимі реагування. За замовчуванням 0.

8.72.1 Examples

  • Створіть музику як з тихими, так і з гучними фрагментами, придатною для прослуховування в галасливому середовищі:
    compand=.3|.3:1|1:-90/-60|-60/-40|-40/-30|-20/-20:6:0:-90:0.2
    

    Інший приклад аудіо з частинами шепоту та вибуху:

    compand=0|0:1|1:-90/-900|-70/-70|-30/-9|0/-3:6:0:0:0
    
  • Шумовий гейт, коли рівень шуму нижчий, ніж сигнал:
    compand=.1|.1:.2|.2:-900/-900|-50.1/-900|-50/-50:.01:0:-90:.1
    
  • Ось ще один шумопоглинач, цього разу для випадків, коли рівень шуму перевищує рівень сигналу (що робить його, певною мірою, схожим на шумоподавлення):
    compand=.1|.1:.1|.1:-45.1/-45.1|-45/-900|0/-900:.01:45:-90:.1
    
  • Стиснення 2:1, починаючи з -6 дБ:
    compand=points=-80/-80|-6/-6|0/-3.8|20/3.5
    
  • Стиснення 2:1, починаючи з -9 дБ:
    compand=points=-80/-80|-9/-9|0/-5.3|20/2.9
    
  • Стиснення 2:1, починаючи з -12 дБ:
    compand=points=-80/-80|-12/-12|0/-6.8|20/1.9
    
  • Стиснення 2:1, починаючи з -18 дБ:
    compand=points=-80/-80|-18/-18|0/-9.8|20/0.7
    
  • Стиснення 3:1, починаючи з -15 дБ:
    compand=points=-80/-80|-15/-15|0/-10.8|20/-5.2
    
  • Компресор/Гейт:
    compand=points=-80/-105|-62/-80|-15.4/-15.4|0/-12|20/-7.6
    
  • Еспандер:
    compand=attacks=0:points=-80/-169|-54/-80|-49.5/-64.6|-41.1/-41.1|-25.8/-15|-10.8/-4.5|0/0|20/8.3
    
  • Жорсткий обмежувач на -6 дБ:
    compand=attacks=0:points=-80/-80|-6/-6|20/-6
    
  • Жорсткий обмежувач на -12 дБ:
    compand=attacks=0:points=-80/-80|-12/-12|20/-12
    
  • Жорсткий шумовий гейт при -35 дБ:
    compand=attacks=0:points=-80/-115|-35.1/-80|-35/-35|20/20
    
  • М'який обмежувач:
    compand=attacks=0:points=-80/-80|-12.4/-12.4|-6/-8|0/-6.8|20/-2.8
    

8.73 compensationdelay

Лінія затримки компенсації — це затримка на основі метрики для компенсації різних положень мікрофонів або динаміків.

Наприклад, ви записали гітару з двома мікрофонами, розміщеними в різних місцях. Оскільки фронт звукової хвилі має постійну швидкість у звичайних умовах, фазування мікрофонів може змінюватись і залежить від їхнього розташування та розташування. Найкращого звукового міксу можна досягти, коли ці мікрофони знаходяться в фазі (синхронізовані). Зауважте, що відстань ~30 см між мікрофонами змушує один мікрофон захоплювати сигнал у протифазі до іншого мікрофона. Завдяки цьому остаточний мікс звучить примхливо. Цей фільтр допомагає вирішити проблеми фазування, додаючи різні затримки до кожної доріжки мікрофона та роблячи їх синхронізованими.

Найкращого результату можна досягти, якщо взяти одну доріжку за основу і синхронізувати з нею по черзі інші доріжки. Пам’ятайте, що допуск синхронізації/затримки також залежить від частоти дискретизації. Вищі частоти вибірки дадуть більшу толерантність.

Фільтр приймає такі параметри:

mm

Встановіть відстань у міліметрах. Це компенсаційна відстань для точного налаштування. За замовчуванням 0.

cm

Встановити відстань см. Це компенсаційна відстань для налаштування відстані затягування. За замовчуванням 0.

m

Встановити відстань у метрах. Це компенсаційна відстань для встановлення жорсткої відстані. За замовчуванням 0.

dry

Встановіть кількість сухого. Кількість необробленого (сухого) сигналу. За замовчуванням 0.

wet

Встановіть вологу кількість. Кількість обробленого (мокрого) сигналу. За замовчуванням 1.

temp

Встановити температуру в градусах Цельсія. Це температура середовища. За замовчуванням 20.

8.73.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

8.74 crossfeed

Застосувати перехресний фільтр для навушників.

Перехресна подача — це процес змішування лівого та правого каналів запису стереозвуку. Він в основному використовується для зменшення екстремального стереорозділення низьких частот.

Мета полягає в тому, щоб створити для слухача звук, схожий на динамік.

Фільтр приймає такі параметри:

strength

Встановити силу поперечної подачі. За замовчуванням 0,2. Дозволений діапазон від 0 до 1. Це встановлює посилення фільтра нижньої полиці для бічної частини стереозображення. За замовчуванням - -6 дБ. Максимально допустимий рівень становить -30 дБ, якщо для сили встановлено значення 1.

range

Встановити ширину звукової сцени. За замовчуванням 0,5. Дозволений діапазон від 0 до 1. Це встановлює частоту зрізу фільтра низької полиці. За замовчуванням відсікається близько 1550 Гц. З діапазоном, встановленим на 1, частота зрізу встановлена ​​на 2100 Гц.

slope

Встановити нахил кривої фільтра низької полиці. За замовчуванням 0,5. Дозволений діапазон від 0,01 до 1.

level_in

Встановити посилення вхідного сигналу. За замовчуванням 0,9.

level_out

Встановити вихідний коефіцієнт посилення. За замовчуванням 1.

block_size

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

Зауважте, що затримка фільтра складатиме саме стільки вибірок, якщо встановлено ненульове значення.

8.74.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

8.75 crystalizer

Простий алгоритм для підвищення різкості звуку.

Цей фільтр лінійно збільшує відмінності між кожним зразком аудіо.

Фільтр приймає такі параметри:

i

Встановлює інтенсивність ефекту (за замовчуванням: 2,0). Має бути в діапазоні від -10,0 до 0 (без змін звуку) до 10,0 (максимальний ефект). Для зворотної фільтрації використовуйте від’ємне значення.

c

Увімкнути відсікання. За замовчуванням увімкнено.

8.75.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

8.76 dcshift

Застосуйте зміну постійного струму до звуку.

Це може бути корисним для видалення зміщення постійного струму (спричиненого, можливо, апаратною проблемою в ланцюжку запису) зі звуку. Ефект зміщення постійного струму зменшує запас і, отже, гучність. Фільтр astats можна використовувати, щоб визначити, чи має сигнал зміщення постійного струму.

shift

Встановіть зсув постійного струму, допустимий діапазон [-1, 1]. Він вказує на величину зсуву звуку.

limitergain

Додатково. Воно повинно мати значення набагато менше 1 (наприклад, 0,05 або 0,02) і використовується для запобігання відсіканню.

8.77 deesser

Застосуйте деесинг до зразків аудіо.

i

Встановіть інтенсивність для запуску деессування. Дозволений діапазон від 0 до 1. За замовчуванням 0.

m

Встановіть рівень приглушення на високій частині звуку. Дозволений діапазон від 0 до 1. За замовчуванням 0,5.

f

Скільки вмісту вихідної частоти зберегти під час деесингу. Дозволений діапазон від 0 до 1. За замовчуванням 0,5.

s

Встановіть режим виведення.

Він приймає такі значення:

i

Передайте вхід без змін.

o

Перепустку відфільтровано.

e

Передайте тільки ess.

Значення за замовчуванням: o.

8.78 dialoguenhance

Покращте діалог у стереозвуку.

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

Фільтр приймає такі параметри:

original

Встановіть вихідний центральний коефіцієнт, щоб зберегти вихід на передньому центральному каналі. Дозволений діапазон — від 0 до 1. Значення за замовчуванням — 1.

enhance

Встановіть коефіцієнт посилення діалогу для виведення переднього центрального каналу. Дозволений діапазон — від 0 до 3. Значення за замовчуванням — 1.

voice

Встановіть коефіцієнт виявлення голосу. Дозволений діапазон — від 2 до 32. Значення за замовчуванням — 2.

8.78.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

8.79 drmeter

Вимірювання динамічного діапазону звуку.

Значення DR 14 і вище зустрічаються в дуже динамічному матеріалі. DR від 8 до 13 міститься в перехідному матеріалі. А все, що менше 8, має дуже погану динаміку і дуже стиснуте.

Фільтр приймає такі параметри:

length

Установіть довжину вікна в секундах, щоб розділити аудіо на сегменти однакової довжини. За замовчуванням 3 секунди.

8.80 dynaudnorm

Динамічний нормалізатор звуку.

Цей фільтр застосовує певну величину підсилення до вхідного аудіо, щоб привести його пікову величину до цільового рівня (наприклад, 0 dBFS). Однак, на відміну від більш «простих» алгоритмів нормалізації, Dynamic Audio Normalizer *динамічно* повторно регулює коефіцієнт посилення для вхідного аудіо. Це дозволяє застосувати додаткове посилення до «тихих» ділянок аудіо, уникаючи спотворень або відсікання «гучних» ділянок. Іншими словами: Dynamic Audio Normalizer «вирівнює» гучність тихих і гучних секцій, у тому сенсі, що гучність кожної секції буде приведена до одного цільового рівня. Однак зауважте, що Dynamic Audio Normalizer досягає цієї мети *без* застосування «стиснення динамічного діапазону». Він збереже 100% динамічного діапазону *в* кожній частині аудіофайлу.

framelen, f

Встановіть довжину кадру в мілісекундах. У діапазоні від 10 до 8000 мілісекунд. За замовчуванням 500 мілісекунд. Dynamic Audio Normalizer обробляє вхідне аудіо невеликими фрагментами, які називаються кадрами. Це необхідно, оскільки пікова величина не має значення лише для одного значення вибірки. Замість цього нам потрібно визначити пікову величину для безперервної послідовності значень вибірки. У той час як «стандартний» нормалізатор просто використовує пікову величину всього файлу, Dynamic Audio Normalizer визначає пікову величину окремо для кожного кадру. Довжина кадру вказується в мілісекундах. За замовчуванням Dynamic Audio Normalizer використовує довжину кадру 500 мілісекунд, що дає хороші результати для більшості файлів. Зверніть увагу, що точна довжина кадру в кількості зразків буде визначена автоматично,

gausssize, g

Встановіть розмір вікна фільтра Гауса. У діапазоні від 3 до 301 має бути непарне число. За замовчуванням — 31. Мабуть, найважливішим параметром Dynamic Audio Normalizer є window sizeфільтра згладжування Гауса. Розмір вікна фільтра вказується у кадрах з центром навколо поточного кадру. Для простоти це має бути непарне число. Отже, значення за замовчуванням 31 враховує поточний кадр, а також 15 попередніх кадрів і 15 наступних кадрів. Використання більшого вікна призводить до сильнішого ефекту згладжування і, отже, до меншої варіації посилення, тобто повільнішої адаптації посилення. І навпаки, використання меншого вікна призводить до слабшого ефекту згладжування і, отже, до більшої варіації посилення, тобто швидшої адаптації посилення. Іншими словами, чим більше ви збільшуєте це значення, тим більше Dynamic Audio Normalizer поводитиметься як «традиційний» фільтр нормалізації. Навпаки, чим більше ви зменшуєте це значення, тим більше Dynamic Audio Normalizer поводитиметься як компресор динамічного діапазону.

peak, p

Встановіть цільове пікове значення. Це визначає найвищий допустимий рівень величини для нормалізованого аудіовхідного сигналу. Цей фільтр намагатиметься наблизитися до цільової пікової величини якомога ближче, але в той же час він також гарантує, що нормалізований сигнал ніколи не перевищуватиме пікову величину. Максимальний локальний коефіцієнт підсилення кадру залежить безпосередньо від цільової пікової величини. Значення за замовчуванням становить 0,95 і, таким чином, залишає запас у 5%*. Не рекомендується перевищувати це значення.

maxgain, m

Встановіть максимальний коефіцієнт посилення. В діапазоні від 1,0 до 100,0. За замовчуванням 10.0. Dynamic Audio Normalizer визначає максимально можливий (локальний) коефіцієнт підсилення для кожного вхідного кадру, тобто максимальний коефіцієнт підсилення, який не призводить до обрізання чи спотворення. Максимальний коефіцієнт підсилення визначається вибіркою найвищої величини кадру. Однак Dynamic Audio Normalizer додатково обмежує максимальний коефіцієнт посилення кадру попередньо визначеним (глобальним) максимальним коефіцієнтом посилення. Це робиться для того, щоб уникнути надмірних коефіцієнтів підсилення в «тихих» або майже тихих кадрах. За замовчуванням максимальний коефіцієнт посилення становить 10,0. Для більшості входів значення за замовчуванням має бути достатнім, і зазвичай не рекомендується збільшувати це значення. Однак для вхідного сигналу з надзвичайно низьким загальним рівнем гучності може знадобитися дозволити навіть вищі коефіцієнти посилення. Примітка, однак, що Dynamic Audio Normalizer не просто застосовує «жорстке» порогове значення (тобто відсікає значення вище порогового значення). Замість цього буде застосована «сигмоїдна» порогова функція. Таким чином, коефіцієнти підсилення плавно наближаються до порогового значення, але ніколи не перевищують це значення.

targetrms, r

Встановіть цільову RMS. В діапазоні від 0,0 до 1,0. За замовчуванням 0.0 - вимкнено. За замовчуванням Dynamic Audio Normalizer виконує «пікову» нормалізацію. Це означає, що максимальний локальний коефіцієнт посилення для кожного кадру визначається (тільки) вибіркою найвищої величини кадру. Таким чином, зразки можуть бути максимально посилені без перевищення максимального рівня сигналу, тобто без обрізання. Однак за бажанням Dynamic Audio Normalizer також може враховувати середнє квадратичне значення кадру, скорочено RMS. В електротехніці RMS зазвичай використовується для визначення потужності сигналу, що змінюється в часі. Тому вважається, що RMS є кращим наближенням «сприйнятої гучності», ніж просто дивитися на пікову величину сигналу. Отже, регулюючи всі кадри до постійного середньоквадратичного значення, рівномірний "

coupling, n

Увімкнути зв'язок каналів. За замовчуванням увімкнено. За замовчуванням Dynamic Audio Normalizer підсилює всі канали на однакову величину. Це означає, що до всіх каналів буде застосовано однаковий коефіцієнт посилення, тобто максимально можливий коефіцієнт посилення визначається «найгучнішим» каналом. Однак під час деяких записів може трапитися так, що гучність різних каналів буде нерівномірною, наприклад, один канал може бути «тише», ніж інший(і). У цьому випадку цю опцію можна використати для вимкнення з’єднання каналів. Таким чином, коефіцієнт посилення буде визначено незалежно для кожного каналу, залежно лише від вибірки найвищої величини окремого каналу. Це дозволяє гармонізувати гучність різних каналів.

correctdc, c

Увімкнути корекцію зміщення постійного струму. За замовчуванням вимкнено. Звуковий сигнал (у часовій області) — це послідовність значень вибірки. У Dynamic Audio Normalizer ці зразкові значення представлено в діапазоні від -1,0 до 1,0, незалежно від вихідного формату введення. Зазвичай аудіосигнал або "форма хвилі" має бути зосереджена навколо нульової точки. Це означає, що якщо ми обчислюємо середнє значення всіх зразків у файлі або в одному кадрі, то результат має бути 0,0 або принаймні дуже близьким до цього значення. Проте, якщо є значне відхилення середнього значення від 0,0 у позитивному або негативному напрямку, це називається зміщенням постійного струму або зсувом постійного струму. Оскільки зсув постійного струму явно небажаний, Dynamic Audio Normalizer забезпечує додаткову корекцію зсуву постійного струму. З увімкненою корекцією зміщення постійного струму, Dynamic Audio Normalizer визначатиме середнє значення або зміщення «поправки постійного струму» кожного вхідного кадру та віднімає це значення з усіх значень вибірки кадру, що гарантує, що ці вибірки знову будуть центруватися навколо 0,0. Крім того, щоб уникнути «розривів» на межах кадру, значення зміщення корекції постійного струму будуть плавно інтерполюватись між сусідніми кадрами.

altboundary, b

Увімкнути альтернативний режим меж. За замовчуванням вимкнено. Dynamic Audio Normalizer враховує певне сусідство навколо кожного кадру. Це включає попередні кадри, а також наступні кадри. Однак для «граничних» кадрів, розташованих на самому початку і в самому кінці аудіофайлу, доступні не всі сусідні кадри. Зокрема, для перших кількох кадрів у аудіофайлі попередні кадри невідомі. І, аналогічно, для кількох останніх кадрів у аудіофайлі наступні кадри невідомі. Таким чином, виникає питання, які коефіцієнти підсилення слід прийняти для відсутніх кадрів у «граничній» області. Dynamic Audio Normalizer реалізує два режими для вирішення цієї ситуації. Стандартний граничний режим передбачає коефіцієнт посилення рівний 1,0 для відсутніх кадрів,

compress, s

Встановіть коефіцієнт стиснення. В діапазоні від 0,0 до 30,0. За замовчуванням 0,0. За замовчуванням Dynamic Audio Normalizer не застосовує «традиційне» стиснення. Це означає, що піки сигналу не будуть обрізані, і таким чином повний динамічний діапазон буде збережено в межах кожного локального околиці. Однак у деяких випадках може бути бажаним поєднати алгоритм нормалізації Dynamic Audio Normalizer із більш «традиційним» стисненням. Для цієї мети Dynamic Audio Normalizer забезпечує додаткову функцію стиснення (порогового значення). Якщо (і тільки якщо) функцію стиснення ввімкнено, усі вхідні кадри будуть оброблені функцією порогового визначення м’якого випередження перед фактичним процесом нормалізації. Простіше кажучи, порогова функція збирається відрізати всі зразки, величина яких перевищує певне порогове значення. однак, Dynamic Audio Normalizer не просто застосовує фіксоване порогове значення. Натомість порогове значення буде скориговано для кожного окремого кадру. Загалом менші параметри призводять до сильнішого стиснення, і навпаки. Значення, нижчі за 3,0, не рекомендуються, оскільки можуть виникнути звукові спотворення.

threshold, t

Встановіть цільове порогове значення. Це визначає найнижчий допустимий рівень аудіовходу, який буде нормалізовано. Якщо гучність вхідного кадру перевищує цей кадр значення, буде нормалізовано. Інакше кадр може взагалі не нормалізуватися. Стандартне значення встановлено на 0, що означає, що всі вхідні кадри будуть нормалізовані. Ця опція здебільшого корисна, якщо не потрібно посилювати цифровий шум.

channels, h

Укажіть, які канали фільтрувати, за замовчуванням фільтруються всі доступні канали.

overlap, o

Укажіть перекриття для кадрів. Якщо встановлено значення 0 (за замовчуванням), кадрове накладання не виконується. Використання значень >0 і <1 призведе до менш консервативних коригувань підсилення, наприклад, коли для параметра Framelen встановлено менше значення, якщо значення параметра Framelen компенсується за ненульове перекриття, тоді коригування підсилення буде більш плавним у часі порівняно з випадком нульового перекриття.

8.80.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

8.81 earwax

Зробіть аудіо зручнішим для прослуховування в навушниках.

Цей фільтр додає «підказки» до стереозвуку 44,1 кГц (тобто у форматі аудіо компакт-диска), так що під час прослуховування через навушники стереозображення переміщується з голови (стандартно для навушників) назовні та перед слухачем (стандартно для динаміків). ).

Перенесено з SoX.

8.82 equalizer

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

Для створення складних кривих вирівнювання цей фільтр можна використовувати кілька разів, кожен із різною центральною частотою.

Фільтр приймає такі параметри:

frequency, f

Встановіть центральну частоту фільтра в Гц.

width_type, t

Встановити метод для визначення пропускної здатності фільтра.

h

Гц

q

Q-фактор

o

октава

s

схил

k

кГц

width, w

Укажіть ширину смуги фільтра в одиницях width_type.

gain, g

Встановіть необхідне посилення або ослаблення в дБ. Остерігайтеся обрізання під час використання позитивного посилення.

mix, m

Скільки використовувати відфільтрований сигнал на виході. За замовчуванням — 1. Діапазон — від 0 до 1.

channels, c

Вкажіть, які канали фільтрувати, за замовчуванням фільтруються всі доступні.

normalize, n

Нормалізувати біквадратичні коефіцієнти, за замовчуванням вимкнено. Увімкнення нормалізує амплітудну характеристику при постійному струмі до 0 дБ.

transform, a

Встановити тип перетворення IIR-фільтра.

di
dii
tdi
tdii
latt
svf
zdf
precision, r

Встановити точність фільтрації.

auto

Виберіть автоматичний формат семплів залежно від фільтрів об’ємного звуку.

s16

Завжди використовуйте 16-бітний знак.

s32

Завжди використовуйте 32-розрядний знак.

f32

Завжди використовуйте 32-бітове значення з плаваючою точкою.

f64

Завжди використовуйте float 64-bit.

block_size, b

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

Зауважте, що затримка фільтра складатиме саме стільки вибірок, якщо встановлено ненульове значення.

8.82.1 Examples

  • Послаблення на 10 дБ при 1000 Гц із смугою пропускання 200 Гц:
    equalizer=f=1000:t=h:width=200:g=-10
    
  • Застосуйте посилення 2 дБ на 1000 Гц за допомогою Q 1 і послабте 5 дБ на 100 Гц за допомогою Q 2:
    equalizer=f=1000:t=q:w=1:g=2,equalizer=f=100:t=q:w=2:g=-5
    

8.82.2 Commands

Цей фільтр підтримує такі команди:

frequency, f

Зміна частоти еквалайзера. Синтаксис команди: " frequency"

width_type, t

Змінити тип ширини еквалайзера. Синтаксис команди: " width_type"

width, w

Змінити ширину еквалайзера. Синтаксис команди: " width"

gain, g

Змінити посилення еквалайзера. Синтаксис команди: " gain"

mix, m

Змінити суміш еквалайзера. Синтаксис команди: " mix"

8.83 extrastereo

Лінійно збільшує різницю між лівим і правим каналами, що додає певний ефект «живого» відтворення.

Фільтр приймає такі параметри:

m

Встановлює коефіцієнт різниці (за замовчуванням: 2,5). 0,0 означає монозвук (середнє для обох каналів), при 1,0 звук не зміниться, при -1,0 лівий і правий канали поміняються місцями.

c

Увімкнути відсікання. За замовчуванням увімкнено.

8.83.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

8.84 firequalizer

Застосуйте FIR Equalization, використовуючи довільну частотну характеристику.

Фільтр приймає такі параметри:

gain

Встановіть рівняння кривої посилення (в дБ). Вираз може містити змінні:

f

оцінювана частота

sr

частота дискретизації

ch

номер каналу, встановлений на 0, коли багатоканальне оцінювання вимкнено

chid

ідентифікатор каналу, див. libavutil/channel_layout.h, встановлюється ідентифікатор першого каналу, якщо багатоканальне оцінювання вимкнено

chs

кількість каналів

chlayout

channel_layout див. libavutil/channel_layout.h

і функції:

gain_interpolate(f)

інтерполювати посилення на частоті f на основі gain_entry

cubic_interpolate(f)

те саме, що gain_interpolate, але плавніше

Ця опція також доступна як команда. Типовим є gain_interpolate(f).

gain_entry

Встановіть запис посилення для функції gain_interpolate. Вираз може містити функції:

entry(f, g)

запам'ятати запис підсилення на частоті f зі значенням g

Ця опція також доступна як команда.

delay

Встановіть затримку фільтра в секундах. Чим вище значення, тим точніше. Типовим є 0.01.

accuracy

Встановіть точність фільтра в Гц. Менше значення означає точніше. Типовим є 5.

wfunc

Встановити функцію вікна. Допустимі значення:

rectangular

прямокутне вікно, корисне, коли крива посилення вже гладка

hann

вікно hann (за замовчуванням)

hamming

забивання вікна

blackman

вікно Блекмана

nuttall3

3-членне неперервне 1-е похідне мінімальне вікно

mnuttall3

мінімальне тричленне розривне мінімальне вікно

nuttall

4-термове неперервне 1-е похідне мінімальне вікно

bnuttall

мінімальне 4-членне розривне вікно nuttall (Blackman-nuttall).

bharris

вікно Блекмена-Харріса

tukey

tukey вікно

fixed

Якщо ввімкнено, використовувати фіксовану кількість зразків аудіо. Це покращує швидкість під час фільтрації з великою затримкою. За замовчуванням вимкнено.

multi

Увімкнути багатоканальне оцінювання посилення. За замовчуванням вимкнено.

zero_phase

Увімкніть режим нульової фази, віднявши мітку часу, щоб компенсувати затримку. За замовчуванням вимкнено.

scale

Встановити масштаб, який використовується посиленням. Допустимі значення:

linlin

лінійна частота, лінійне посилення

linlog

лінійна частота, логарифмічне (в дБ) посилення (за замовчуванням)

loglin

логарифмічна (в октавному масштабі, де 20 Гц дорівнює 0) частота, лінійне посилення

loglog

логарифмічна частота, логарифмічний посилення

dumpfile

Встановити файл для дампа, підходить для gnuplot.

dumpscale

Встановити масштаб для файлу дампа. Прийнятні значення такі ж, як і параметр масштабу. Типовим є linlog.

fft2

Увімкніть 2-канальне згортання за допомогою комплексного ШПФ. Це значно покращує швидкість. За замовчуванням вимкнено.

min_phase

Увімкнути мінімальну фазову імпульсну характеристику. За замовчуванням вимкнено.

8.84.1 Examples

  • низькі частоти на 1000 Гц:
    firequalizer=gain='if(lt(f,1000), 0, -INF)'
    
  • низькі частоти на 1000 Гц з gain_entry:
    firequalizer=gain_entry='entry(1000,0); entry(1001, -INF)'
    
  • настроюване вирівнювання:
    firequalizer=gain_entry='entry(100,0); entry(400, -4); entry(1000, -6); entry(2000, 0)'
    
  • більша затримка з нульовою фазою для компенсації затримки:
    firequalizer=delay=0.1:fixed=on:zero_phase=on
    
  • НЧ на лівому каналі, ВЧ на правому каналі:
    firequalizer=gain='if(eq(chid,1), gain_interpolate(f), if(eq(chid,2), gain_interpolate(1e6+f), 0))'
    :gain_entry='entry(1000, 0); entry(1001,-INF); entry(1e6+1000,0)':multi=on
    

8.85 flanger

Застосуйте ефект фленджування до аудіо.

Фільтр приймає такі параметри:

delay

Встановіть базову затримку в мілісекундах. Діапазон від 0 до 30. Значення за замовчуванням 0.

depth

Установіть додаткову затримку розгортки в мілісекундах. Діапазон від 0 до 10. Значення за замовчуванням 2.

regen

Встановити відсоток регенерації (відкладений сигнал зворотного зв'язку). Діапазон від -95 до 95. Значення за замовчуванням 0.

width

Встановити відсоток затримки сигналу, змішаного з вихідним. Діапазон від 0 до 100. Значення за замовчуванням 71.

speed

Встановіть розгортки за секунду (Гц). Діапазон від 0,1 до 10. Значення за замовчуванням 0,5.

shape

Установіть форму розгорнутої хвилі, може бути triangularабо sinusoidal. Значення за замовчуванням: sinusoidal.

phase

Встановити відсотковий зсув розгорнутої хвилі для кількох каналів. Діапазон від 0 до 100. Значення за замовчуванням 25.

interp

Встановіть інтерполяцію лінії затримки linearабо quadratic. Типовим є linear.

8.86 haas

Застосуйте ефект Хааса до звуку.

Зауважте, що це має сенс застосовувати до монофонічних сигналів. За допомогою цього фільтра, застосованого до моносигналів, він надає деяку спрямованість і розтягує стереозображення.

Фільтр приймає такі параметри:

level_in

Встановити вхідний рівень. За замовчуванням це 1, або 0 дБ

level_out

Встановити вихідний рівень. За замовчуванням це 1, або 0 дБ.

side_gain

Встановити підсилення, застосоване до бічної частини сигналу. За замовчуванням це 1.

middle_source

Встановіть тип середнього джерела. Може бути одним із таких:

'left'

Виберіть лівий канал.

'right'

Виберіть правильний канал.

'mid'

Виберіть середню частину сигналу стереозображення.

'side'

Виберіть сигнал бічної частини стереозображення.

middle_phase

Зміна середньої фази. За замовчуванням вимкнено.

left_delay

Встановити затримку лівого каналу. За замовчуванням це 2.05мілісекунди.

left_balance

Встановити баланс лівого каналу. За замовчуванням це -1.

left_gain

Встановити посилення лівого каналу. За замовчуванням це 1.

left_phase

Зміна лівої фази. За замовчуванням вимкнено.

right_delay

Встановити затримку правого каналу. За замовчуванням це 2.12мілісекунди.

right_balance

Встановіть правильний баланс каналу. За замовчуванням це 1.

right_gain

Встановіть посилення правого каналу. За замовчуванням це 1.

right_phase

Змінити праву фазу. За замовчуванням увімкнено.

8.87 hdcd

Декодує цифрові дані високої чіткості (HDCD). 16-бітний потік PCM із вбудованими кодами HDCD розширюється на 20-бітний потік PCM.

Фільтр підтримує функції Peak Extend і Low-level Gain Adjustment HDCD, а також визначає прапор Transient Filter.

ffmpeg -i HDCD16.flac -af hdcd OUT24.flac

У разі використання фільтра з wav зверніть увагу, що стандартним кодуванням для wav є 16 біт, тому отриманий 20-бітний потік буде скорочено назад до 16-бітного. Використовуйте щось на зразок -acodec pcm_s24leпісля фільтра, щоб отримати 24-розрядний вихід PCM.

ffmpeg -i HDCD16.wav -af hdcd OUT16.wav
ffmpeg -i HDCD16.wav -af hdcd -c:a pcm_s24le OUT24.wav

Фільтр приймає такі параметри:

disable_autoconvert

Вимкніть будь-яке автоматичне перетворення формату або повторну вибірку на графіку фільтра.

process_stereo

Спільна обробка стереоканалів. Якщо target_gain не збігається між каналами, вважайте його недійсним і використовуйте останній дійсний target_gain.

cdt_ms

Встановіть період таймера виявлення коду в мс.

force_pe

Завжди розширюйте піки вище -3dBFS, навіть якщо PE не сигналізується.

analyze_mode

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

analyze_mode=pe:force_pe=trueможна використовувати для перегляду всіх зразків вище рівня PE.

Режими:

'0, off'

Вимкнено

'1, lle'

Рівень регулювання посилення для кожного зразка

'2, pe'

Зразки, де спостерігається розширення піку

'3, cdt'

Зразки, у яких активний таймер виявлення коду

'4, tgm'

Зразки, де цільове посилення не збігається між каналами

8.88 headphone

Застосуйте функції передачі, пов’язані з головою (HRTF), щоб створити навколо користувача віртуальні гучномовці для бінаурального прослуховування через навушники. HRIR надаються через додаткові потоки, для кожного каналу потрібен один вхідний стереопотік.

Фільтр приймає такі параметри:

map

Встановити відображення вхідних потоків для згортки. Аргумент — це розділений '|' списком назв каналів у порядку, коли вони надаються як додаткові вхідні дані потоку для фільтра. Це також визначає кількість вхідних потоків. Кількість вхідних потоків має бути не менше кількості каналів у першому потоці плюс один.

gain

Установити посилення, застосоване до звуку. Значення в дБ. За замовчуванням 0.

type

Встановіть тип обробки. Може бути timeабо freq. timeобробляє звук у часовій області, що є повільним. freqобробляє звук у частотній області, що є швидким. Типовим є freq.

lfe

Встановіть спеціальне посилення для каналів LFE. Значення в дБ. За замовчуванням 0.

size

Встановіть розмір кадру в кількості семплів, які будуть оброблятися одночасно. Значення за замовчуванням: 1024. Дозволений діапазон від 1024 до 96000.

hrir

Встановити формат потоку hrir. Значення за замовчуванням: stereo. Альтернативне значення – multich. Якщо встановлено значення stereo, кількість додаткових потоків має бути більшою або дорівнювати кількості вхідних каналів у першому вхідному потоці. Також кожен додатковий потік повинен мати стерео кількість каналів. Якщо встановлено значення multich, кількість додаткових потоків має дорівнювати рівно одному. Також кількість вхідних каналів додаткового потоку повинна бути рівною або більшою, ніж подвоєна кількість каналів першого вхідного потоку.

8.88.1 Examples

  • Повний приклад використання файлів wav як коефіцієнтів із фільтрами amovie для мікшування 7.1, кожен фільтр amovie використовує стереофайл із коефіцієнтами ІЧ як вхідні дані. У файлах наведено коефіцієнти для кожної позиції віртуального гучномовця:
    ffmpeg -i input.wav
    -filter_complex "amovie=azi_270_ele_0_DFC.wav[sr];amovie=azi_90_ele_0_DFC.wav[sl];amovie=azi_225_ele_0_DFC.wav[br];amovie=azi_135_ele_0_DFC.wav[bl];amovie=azi_0_ele_0_DFC.wav,asplit[fc][lfe];amovie=azi_35_ele_0_DFC.wav[fl];amovie=azi_325_ele_0_DFC.wav[fr];[0:a][fl][fr][fc][lfe][bl][br][sl][sr]headphone=FL|FR|FC|LFE|BL|BR|SL|SR"
    output.wav
    
  • Повний приклад використання файлів wav як коефіцієнтів із фільтрами amovie для мікшування 7.1, але тепер у форматі. multich hrir
    ffmpeg -i input.wav -filter_complex "amovie=minp.wav[hrirs];[0:a][hrirs]headphone=map=FL|FR|FC|LFE|BL|BR|SL|SR:hrir=multich"
    output.wav
    

8.89 highpass

Застосуйте фільтр верхніх частот із точковою частотою 3 дБ. Фільтр може бути як однополюсним, так і двополюсним (за замовчуванням). Фільтр знижується на 6 дБ на полюс на октаву (20 дБ на полюс на декаду).

Фільтр приймає такі параметри:

frequency, f

Встановіть частоту в Гц. За замовчуванням 3000.

poles, p

Встановити кількість полюсів. За замовчуванням 2.

width_type, t

Встановити метод для визначення пропускної здатності фільтра.

h

Гц

q

Q-фактор

o

октава

s

схил

k

кГц

width, w

Укажіть ширину смуги фільтра в одиницях width_type. Застосовується лише до двополюсного фільтра. За замовчуванням 0,707q і дає відповідь Баттерворта.

mix, m

Скільки використовувати відфільтрований сигнал на виході. За замовчуванням — 1. Діапазон — від 0 до 1.

channels, c

Вкажіть, які канали фільтрувати, за замовчуванням фільтруються всі доступні.

normalize, n

Нормалізувати біквадратичні коефіцієнти, за замовчуванням вимкнено. Увімкнення нормалізує амплітудну характеристику при постійному струмі до 0 дБ.

transform, a

Встановити тип перетворення IIR-фільтра.

di
dii
tdi
tdii
latt
svf
zdf
precision, r

Встановити точність фільтрації.

auto

Виберіть автоматичний формат семплів залежно від фільтрів об’ємного звуку.

s16

Завжди використовуйте 16-бітний знак.

s32

Завжди використовуйте 32-розрядний знак.

f32

Завжди використовуйте 32-бітове значення з плаваючою точкою.

f64

Завжди використовуйте float 64-bit.

block_size, b

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

Зауважте, що затримка фільтра складатиме саме стільки вибірок, якщо встановлено ненульове значення.

8.89.1 Commands

Цей фільтр підтримує такі команди:

frequency, f

Зміна частоти верхніх частот. Синтаксис команди: " frequency"

width_type, t

Змінити highpass width_type. Синтаксис команди: " width_type"

width, w

Змінити ширину високочастотного діапазону. Синтаксис команди: " width"

mix, m

Змінити суміш високих частот. Синтаксис команди: " mix"

8.90 join

Об’єднайте кілька вхідних потоків в один багатоканальний потік.

Він приймає такі параметри:

inputs

Кількість вхідних потоків. За замовчуванням 2.

channel_layout

Бажане розташування вихідного каналу. За замовчуванням встановлено стерео.

map

Карта каналів від входів до виходу. Аргументом є розділений '|' список відображень, кожне у формі. є нульовим індексом вхідного потоку. може бути або назвою вхідного каналу (наприклад, FL для переднього лівого боку), або його індексом у вказаному вхідному потоці. це назва вихідного каналу. input_idx.in_channel-out_channelinput_idxin_channelout_channel

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

Об'єднайте 3 входи (з правильно встановленими розкладками каналів):

ffmpeg -i INPUT1 -i INPUT2 -i INPUT3 -filter_complex join=inputs=3 OUTPUT

Побудуйте вихід 5.1 із 6 одноканальних потоків:

ffmpeg -i fl -i fr -i fc -i sl -i sr -i lfe -filter_complex
'join=inputs=6:channel_layout=5.1:map=0.0-FL|1.0-FR|2.0-FC|3.0-SL|4.0-SR|5.0-LFE'
out

8.91 ladspa

Завантажте плагін LADSPA (Linux Audio Developer's Simple Plugin API).

Щоб увімкнути компіляцію цього фільтра, вам потрібно налаштувати FFmpeg за допомогою --enable-ladspa.

file, f

Вказує назву бібліотеки плагінів LADSPA для завантаження. Якщо визначено змінну середовища LADSPA_PATH, плагін LADSPA шукається в кожному з каталогів, указаних у списку LADSPA_PATH, розділеному двокрапками, в іншому випадку в стандартних шляхах LADSPA, які розташовані в такому порядку:HOME/.ladspa/lib/,/usr/local/lib/ladspa/, /usr/lib/ladspa/.

plugin, p

Визначає плагін у бібліотеці. Деякі бібліотеки містять лише один плагін, але інші містять їх багато. Якщо цей параметр не встановлено, фільтр покаже список усіх доступних плагінів у вказаній бібліотеці.

controls, c

Встановіть '|' окремий список елементів керування, які є нульовими або більшими значеннями з плаваючою комою, які визначають поведінку завантаженого плагіна (наприклад, затримка, поріг або посилення). Елементи керування потрібно визначити за допомогою такого синтаксису: c0= value0|c1= value1|c2= value2|..., де valuei— значення, встановлене для i-го елемента керування. Крім того, їх також можна визначити за допомогою такого синтаксису: value0| value1| value2|..., де valueiзначення, встановлене на i-му елементі керування. Якщоcontrolsвстановлено значення help, друкуються всі доступні елементи керування та їхні допустимі діапазони.

sample_rate, s

Укажіть частоту дискретизації, за замовчуванням 44100. Використовується, лише якщо плагін має нульові дані.

nb_samples, n

Встановіть кількість зразків на канал для кожного вихідного кадру, за замовчуванням 1024. Використовується, лише якщо плагін має нульові входи.

duration, d

Установіть мінімальну тривалість вихідного аудіо. Перегляньте (ffmpeg-utils) розділ «Тривалість часу» в посібнику ffmpeg-utils(1) , щоб дізнатися про прийнятний синтаксис. Зауважте, що кінцева тривалість може бути більшою за вказану тривалість, оскільки згенероване аудіо завжди обрізається в кінці повного кадру. Якщо не вказано або виражена тривалість від’ємна, аудіо має генеруватися назавжди. Використовується, лише якщо плагін має нуль входів.

latency, l

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

8.91.1 Examples

  • Перелічіть усі доступні плагіни в бібліотеці amp (приклад плагіна LADSPA):
    ladspa=file=amp
    
  • Перелічіть усі доступні елементи керування та їх допустимі діапазони для vcf_notch плагіна з VCFбібліотеки:
    ladspa=f=vcf:p=vcf_notch:c=help
    
  • Імітуйте аудіообладнання низької якості за допомогою Computer Music Toolkitбібліотеки плагінів (CMT):
    ladspa=file=cmt:plugin=lofi:controls=c0=22|c1=12|c2=12
    
  • Додайте реверберацію до аудіо за допомогою TAP-плагінів (плагінів Tom's Audio Processing):
    ladspa=file=tap_reverb:tap_reverb
    
  • Генерувати білий шум з амплітудою 0,2:
    ladspa=file=cmt:noise_source_white:c=c0=.2
    
  • Згенеруйте клацання зі швидкістю 20 ударів на хвилину за допомогою плагіна C* Click - Metronomeз C* Audio Plugin Suiteбібліотеки (CAPS):
    ladspa=file=caps:Click:c=c1=20'
    
  • Застосувати C* Eq10X2 - Stereo 10-band equaliserефект:
    ladspa=caps:Eq10X2:c=c0=-48|c9=-24|c3=12|c4=2
    
  • Збільште гучність на 20 дБ за допомогою обмежувача швидкого перегляду з SWH Pluginsколекції Steve Harris:
    ladspa=fast_lookahead_limiter_1913:fastLookaheadLimiter:20|0|2
    
  • Послабте низькі частоти за допомогою багатосмугового еквалайзера з SWH Pluginsколекції Steve Harris:
    ladspa=mbeq_1197:mbeq:-24|-24|-24|0|0|0|0|0|0|0|0|0|0|0|0
    
  • Зменшити стереозображення за допомогою Narrowerбібліотеки C* Audio Plugin Suite (CAPS):
    ladspa=caps:Narrower
    
  • Ще один білий шум, який тепер використовує C* Audio Plugin Suiteбібліотеку (CAPS):
    ladspa=caps:White:.2
    
  • Трохи фрактального шуму з використанням C* Audio Plugin Suiteбібліотеки (CAPS):
    ladspa=caps:Fractal:c=c1=1
    
  • Динамічна нормалізація гучності за допомогою VLevelплагіна:
    ladspa=vlevel-ladspa:vlevel_mono
    

8.91.2 Commands

Цей фільтр підтримує такі команди:

cN

Змінити N-е контрольне значення.

Якщо вказане значення недійсне, воно ігнорується, а попереднє зберігається.

8.92 loudnorm

Нормалізація гучності EBU R128. Включає як динамічний, так і лінійний режими нормалізації. Підтримка як однопрохідного режиму (прямі трансляції, файли), так і подвійного проходу (файли). Цей алгоритм може націлюватися на IL, LRA та максимальний справжній пік. У динамічному режимі для точного виявлення справжніх піків аудіопотік буде підвищено до 192 кГц. Використовуйте -arопцію або aresampleфільтр, щоб явно встановити вихідну частоту дискретизації.

Фільтр приймає такі параметри:

I, i

Встановіть інтегровану цільову гучність. Діапазон -70,0 - -5,0. Значення за замовчуванням -24,0.

LRA, lra

Встановіть цільовий діапазон гучності. Діапазон 1,0 - 50,0. Значення за замовчуванням 7,0.

TP, tp

Встановіть максимальний справжній пік. Діапазон -9,0 - +0,0. Значення за замовчуванням: -2,0.

measured_I, measured_i

Виміряний IL вхідного файлу. Діапазон -99,0 - +0,0.

measured_LRA, measured_lra

Виміряний LRA вхідного файлу. Діапазон 0,0 - 99,0.

measured_TP, measured_tp

Виміряний справжній пік вхідного файлу. Діапазон -99,0 - +99,0.

measured_thresh

Виміряний поріг вхідного файлу. Діапазон -99,0 - +0,0.

offset

Встановити посилення зсуву. Посилення застосовується перед обмежувачем справжнього піку. Діапазон -99,0 - +99,0. За замовчуванням +0,0.

linear

Нормалізація шляхом лінійного масштабування вихідного звуку. measured_I, measured_LRA, measured_TP, і measured_threshвсі мають бути вказані. Цільовий LRA не повинен бути нижчим за вихідний LRA, а зміна інтегрованої гучності не повинна призводити до справжнього піку, який перевищує цільовий TP. Якщо жодна з цих умов не виконується, режим нормалізації повернеться до dynamic. Варіанти trueабо false. Типовим є true.

dual_mono

Розглядати монофонічні вхідні файли як "подвійні монофонічні". Якщо монофонічний файл призначений для відтворення на стереосистемі, його вимірювання EBU R128 буде неправильним для сприйняття. Якщо встановлено значення true, цей параметр компенсує цей ефект. Ця опція не впливає на багатоканальні вхідні файли. Варіанти істинні або невірні. За замовчуванням false.

print_format

Встановити формат друку для статистики. Варіанти: резюме, json або жодного. Значення за замовчуванням - немає.

8.93 lowpass

Застосуйте фільтр низьких частот з точковою частотою 3 дБ. Фільтр може бути однополюсним або двополюсним (за замовчуванням). Фільтр знижується на 6 дБ на полюс на октаву (20 дБ на полюс на декаду).

Фільтр приймає такі параметри:

frequency, f

Встановіть частоту в Гц. За замовчуванням 500.

poles, p

Встановити кількість полюсів. За замовчуванням 2.

width_type, t

Встановити метод для визначення пропускної здатності фільтра.

h

Гц

q

Q-фактор

o

октава

s

схил

k

кГц

width, w

Укажіть ширину смуги фільтра в одиницях width_type. Застосовується лише до двополюсного фільтра. За замовчуванням 0,707q і дає відповідь Баттерворта.

mix, m

Скільки використовувати відфільтрований сигнал на виході. За замовчуванням — 1. Діапазон — від 0 до 1.

channels, c

Вкажіть, які канали фільтрувати, за замовчуванням фільтруються всі доступні.

normalize, n

Нормалізувати біквадратичні коефіцієнти, за замовчуванням вимкнено. Увімкнення нормалізує амплітудну характеристику при постійному струмі до 0 дБ.

transform, a

Встановити тип перетворення IIR-фільтра.

di
dii
tdi
tdii
latt
svf
zdf
precision, r

Встановити точність фільтрації.

auto

Виберіть автоматичний формат семплів залежно від фільтрів об’ємного звуку.

s16

Завжди використовуйте 16-бітний знак.

s32

Завжди використовуйте 32-розрядний знак.

f32

Завжди використовуйте 32-бітове значення з плаваючою точкою.

f64

Завжди використовуйте float 64-bit.

block_size, b

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

Зауважте, що затримка фільтра складатиме саме стільки вибірок, якщо встановлено ненульове значення.

8.93.1 Examples

  • Низькочастотний лише канал LFE, його LFE немає, він нічого не робить:
    lowpass=c=LFE
    

8.93.2 Commands

Цей фільтр підтримує такі команди:

frequency, f

Зміна частоти низьких частот. Синтаксис команди: " frequency"

width_type, t

Змінити lowpass width_type. Синтаксис команди: " width_type"

width, w

Змінити ширину низьких частот. Синтаксис команди: " width"

mix, m

Змінити суміш низьких частот. Синтаксис команди: " mix"

8.94 lv2

Завантажте плагін LV2 (LADSPA версії 2).

Щоб увімкнути компіляцію цього фільтра, вам потрібно налаштувати FFmpeg за допомогою --enable-lv2.

plugin, p

Визначає URI плагіна. Можливо, вам знадобиться екранувати ':'.

controls, c

Встановіть '|' окремий список елементів керування, які є нульовими або більшими значеннями з плаваючою комою, які визначають поведінку завантаженого плагіна (наприклад, затримка, поріг або посилення). Якщоcontrolsвстановлено значення help, друкуються всі доступні елементи керування та їхні допустимі діапазони.

sample_rate, s

Укажіть частоту дискретизації, за замовчуванням 44100. Використовується, лише якщо плагін має нульові дані.

nb_samples, n

Встановіть кількість зразків на канал для кожного вихідного кадру, за замовчуванням 1024. Використовується, лише якщо плагін має нульові входи.

duration, d

Установіть мінімальну тривалість вихідного аудіо. Перегляньте (ffmpeg-utils) розділ «Тривалість часу» в посібнику ffmpeg-utils(1) , щоб дізнатися про прийнятний синтаксис. Зауважте, що кінцева тривалість може бути більшою за вказану тривалість, оскільки згенероване аудіо завжди обрізається в кінці повного кадру. Якщо не вказано або виражена тривалість від’ємна, аудіо має генеруватися назавжди. Використовується, лише якщо плагін має нуль входів.

8.94.1 Examples

  • Застосуйте плагін підсилення басів від Calf:
    lv2=p=http\\\\://calf.sourceforge.net/plugins/BassEnhancer:c=amount=2
    
  • Застосувати вініловий плагін від Calf:
    lv2=p=http\\\\://calf.sourceforge.net/plugins/Vinyl:c=drone=0.2|aging=0.5
    
  • Застосуйте плагін bit crusher від ArtyFX:
    lv2=p=http\\\\://www.openavproductions.com/artyfx#bitta:c=crush=0.3
    

8.94.2 Commands

Цей фільтр підтримує всі параметри, експортовані плагіном як команди.

8.95 mcompand

Багатосмугове стиснення або розширення динамічного діапазону звуку.

Вхідний звук розділений на смуги за допомогою IIR Лінквіца-Райлі 4-го порядку. Це схоже на кросовер гучномовця та призводить до рівної частотної характеристики за відсутності дії компандера.

Він приймає такі параметри:

args

Синтаксис цього параметра такий: атака, затухання, [атака, затухання..] м’які точки перехресної_частоти [затримка [початковий_об’єм [посилення]]] | атака, розпад ... Пояснення щодо кожного елемента див. у документації до фільтрів.

8.96 pan

Змішуйте канали з певними рівнями посилення. Фільтр приймає макет вихідного каналу, а потім набір визначень каналів.

Цей фільтр також призначений для ефективного переналаштування каналів аудіопотоку.

Фільтр приймає параметри виду: " l| outdef| outdef|..."

l

розташування вихідного каналу або кількість каналів

outdef

специфікація вихідного каналу у формі: " out_name=[ gain*] in_name[(+-)[ gain*] in_name...]"

out_name

вихідний канал для визначення назви каналу (FL, FR тощо) або номера каналу (c0, c1 тощо)

gain

мультиплікативний коефіцієнт для каналу, 1 залишаючи гучність незмінною

in_name

вхідний канал для використання, подробиці див. out_name; не можна змішувати іменовані та пронумеровані вхідні канали

Якщо «=» у специфікації каналу замінено на «<», тоді посилення для цієї специфікації буде перенормовано так, щоб загальна сума дорівнювала 1, таким чином уникаючи шуму відсікання.

8.96.1 Mixing examples

Наприклад, якщо ви хочете мікшувати зі стерео на моно, але з більшим коефіцієнтом для лівого каналу:

pan=1c|c0=0.9*c0+0.1*c1

Індивідуальне мікшування до стерео, яке автоматично працює для 3-, 4-, 5- та 7-канального об’ємного звуку:

pan=stereo| FL < FL + 0.5*FC + 0.6*BL + 0.6*SL | FR < FR + 0.5*FC + 0.6*BR + 0.6*SR

Зауважте, що ffmpegінтегровано систему понижуючого (і посилюючого) мікшування за замовчуванням, якій слід віддати перевагу (див. опцію «-ac»), якщо у вас немає дуже особливих потреб.

8.96.2 Remapping examples

Перепризначення каналу буде ефективним тоді і тільки якщо:

  • коефіцієнти посилення дорівнюють нулю або одиниці,
  • лише один вхід на вихід каналу,

Якщо всі ці умови задовольняються, фільтр сповістить користувача («Виявлено чисте відображення каналів») і використає оптимізований метод без втрат для перевідображення.

Наприклад, якщо у вас є джерело 5.1 і ви бажаєте отримати стереоаудіопотік, видаливши додаткові канали:

pan="stereo| c0=FL | c1=FR"

Враховуючи те саме джерело, ви також можете перемикати передній лівий і передній правий канали та зберігати макет вхідного каналу:

pan="5.1| c0=c1 | c1=c0 | c2=c2 | c3=c3 | c4=c4 | c5=c5"

Якщо вхід є стереофонічним аудіопотоком, ви можете вимкнути звук переднього лівого каналу (і зберегти макет стереоканалу) за допомогою:

pan="stereo|c1=c1"

Зі стереофонічного входу аудіопотоку ви можете скопіювати правий канал як у передній лівий, так і в правий кут:

pan="stereo| c0=FR | c1=FR"

8.97 replaygain

Фільтр сканера ReplayGain. Цей фільтр приймає аудіопотік як вхід і виводить його без змін. Після завершення фільтрування відображається track_gainта track_peak.

8.98 resample

Перетворення формату зразка аудіо, частоти дискретизації та макета каналу. Він не призначений для безпосереднього використання.

8.99 rubberband

Застосуйте розтягування часу та висоту звуку за допомогою librubberband.

Щоб увімкнути компіляцію цього фільтра, вам потрібно налаштувати FFmpeg за допомогою --enable-librubberband.

Фільтр приймає такі параметри:

tempo

Встановити масштабний коефіцієнт темпу.

pitch

Встановити масштабний коефіцієнт кроку.

transients

Встановити детектор перехідних процесів. Можливі значення:

crisp
mixed
smooth
detector

Встановити детектор. Можливі значення:

compound
percussive
soft
phase

Встановити фазу. Можливі значення:

laminar
independent
window

Встановити розмір вікна обробки. Можливі значення:

standard
short
long
smoothing

Встановити згладжування. Можливі значення:

off
on
formant

Увімкнути збереження форманти під час зміни тону. Можливі значення:

shifted
preserved
pitchq

Встановити якість висоти. Можливі значення:

quality
speed
consistency
channels

Встановити канали. Можливі значення:

apart
together

8.99.1 Commands

Цей фільтр підтримує такі команди:

tempo

Змінити коефіцієнт масштабування темпу фільтра. Синтаксис команди: " tempo"

pitch

Змінити масштабний коефіцієнт кроку фільтра. Синтаксис команди: " pitch"

8.100 sidechaincompress

Цей фільтр діє як звичайний компресор, але має можливість стискати виявлений сигнал за допомогою другого вхідного сигналу. Він потребує двох вхідних потоків і повертає один вихідний потік. Перший вхідний потік буде оброблений залежно від сигналу другого потоку. Потім відфільтрований сигнал можна відфільтрувати за допомогою інших фільтрів на наступних етапах обробки. Дивіться фільтр каструлі та чаші .

Фільтр приймає такі параметри:

level_in

Встановити посилення вхідного сигналу. За замовчуванням — 1. Діапазон — від 0,015625 до 64.

mode

Встановити режим роботи компресора. Може бути upwardабо downward. Типовим є downward.

threshold

Якщо сигнал другого потоку піднімається вище цього рівня, це вплине на зменшення посилення першого потоку. За замовчуванням 0,125. Діапазон між 0,00097563 і 1.

ratio

Встановіть коефіцієнт, при якому сигнал буде зменшуватися. 1:2 означає, що якщо рівень піднявся на 4 дБ вище порогового значення, після зниження він буде вище лише на 2 дБ. За замовчуванням — 2. Діапазон — від 1 до 20.

attack

Кількість мілісекунд, протягом якої сигнал повинен перевищити порогове значення, перш ніж почнеться зменшення посилення. За замовчуванням — 20. Діапазон — від 0,01 до 2000.

release

Кількість мілісекунд, протягом якої сигнал має впасти нижче порогового значення, перш ніж зменшення знову зменшиться. За замовчуванням — 250. Діапазон — від 0,01 до 9000.

makeup

Встановіть величину, наскільки сигнал буде посилено після обробки. За замовчуванням 1. Діапазон від 1 до 64.

knee

Зігніть гостре коліно навколо порогу, щоб увійти до зменшення посилення більш м’яко. За замовчуванням 2,82843. Діапазон від 1 до 8.

link

Виберіть, чи впливає на зниження averageрівень між усіма каналами потоку сайд-чейн або більш гучний ( maximum) канал потоку сайд-чейн. Типовим є average.

detection

Чи слід брати точний сигнал у разі peakчи середньоквадратичний у разі rms. За замовчуванням в rmsосновному плавніше.

level_sc

Встановити посилення бічного ланцюга. За замовчуванням — 1. Діапазон — від 0,015625 до 64.

mix

Скільки використовувати стислий сигнал на виході. За замовчуванням — 1. Діапазон — від 0 до 1.

8.100.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

8.100.2 Examples

  • Повний приклад ffmpeg із використанням 2 аудіовходів, 1-й вхід буде стиснутий залежно від сигналу 2-го входу, а пізніше стиснутий сигнал буде об’єднано з 2-м входом:
    ffmpeg -i main.flac -i sidechain.flac -filter_complex "[1:a]asplit=2[sc][mix];[0:a][sc]sidechaincompress[compr];[compr][mix]amerge"
    

8.101 sidechaingate

Ворота бічного ланцюга діють як звичайні (широкосмугові) ворота, але мають можливість фільтрувати виявлений сигнал перед тим, як відправити його на етап зменшення посилення. Зазвичай гейт використовує сигнал повного діапазону, щоб виявити рівень вище порогу. Наприклад: якщо ви вирізаєте всі нижчі частоти зі свого сигналу сайдчейну, гейт зменшить гучність вашого треку, лише якщо з’явиться недостатньо високих. За допомогою цієї техніки ви можете зменшити резонанс природного барабана або усунути «гурчання» приглушених штрихів сильно спотвореної гітари. Він потребує двох вхідних потоків і повертає один вихідний потік. Перший вхідний потік буде оброблений залежно від сигналу другого потоку.

Фільтр приймає такі параметри:

level_in

Встановіть вхідний рівень перед фільтрацією. За замовчуванням — 1. Дозволений діапазон — від 0,015625 до 64.

mode

Встановити режим роботи. Може бути upwardабо downward. Типовим є downward. Якщо встановлено upwardрежим, більш високі частини сигналу будуть посилені, розширюючи динамічний діапазон у напрямку вгору. Інакше у випадку downwardнижніх частин сигнал буде знижений.

range

Встановіть рівень зменшення посилення, коли сигнал нижче порогу. За замовчуванням 0,06125. Дозволений діапазон — від 0 до 1. Встановлення цього значення на 0 вимикає зменшення, а потім фільтр поводиться як розширювач.

threshold

Якщо сигнал піднімається вище цього рівня, зниження посилення відключається. За замовчуванням 0,125. Дозволений діапазон від 0 до 1.

ratio

Встановіть коефіцієнт, при якому сигнал буде зменшуватися. За замовчуванням — 2. Дозволений діапазон — від 1 до 9000.

attack

Кількість мілісекунд, протягом якої сигнал має піднятися вище порогового значення, перш ніж зменшення посилення припиниться. За замовчуванням 20 мілісекунд. Дозволений діапазон від 0,01 до 9000.

release

Кількість мілісекунд, протягом якої сигнал має впасти нижче порогового значення, перш ніж зниження знову збільшиться. За замовчуванням 250 мілісекунд. Дозволений діапазон від 0,01 до 9000.

makeup

Встановити величину посилення сигналу після обробки. За замовчуванням 1. Дозволений діапазон від 1 до 64.

knee

Зігніть гостре коліно навколо порогу, щоб увійти до зменшення посилення більш м’яко. За замовчуванням 2,828427125. Дозволений діапазон від 1 до 8.

detection

Виберіть, чи слід брати для виявлення точний сигнал чи схожий на RMS. За замовчуванням встановлено середньоквадратичне значення. Може бути піковим або середньоквадратичним.

link

Виберіть, чи впливатиме на зниження середній рівень між усіма каналами чи гучніший канал. За замовчуванням середній. Може бути середнім або максимальним.

level_sc

Встановити посилення бічного ланцюга. За замовчуванням 1. Діапазон від 0,015625 до 64.

8.101.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

8.102 silencedetect

Виявлення тиші в аудіопотоці.

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

Надрукований час і тривалість виражені в секундах. Ключ метаданих lavfi.silence_startабо lavfi.silence_start.Xвстановлюється на першому кадрі, часова позначка якого дорівнює або перевищує тривалість виявлення, і містить позначку часу першого кадру мовчання.

Ключі метаданих lavfi.silence_durationабо lavfi.silence_duration.X та lavfi.silence_endабо lavfi.silence_end.Xвстановлюються на першому кадрі після мовчання. Якщоmonoувімкнено, і кожен канал оцінюється окремо, використовуються .X ключі з суфіксами та Xвідповідають номеру каналу.

Фільтр приймає такі параметри:

noise, n

Встановити стійкість до шуму. Може вказуватися в дБ (якщо до вказаного значення додається «дБ») або у співвідношенні амплітуд. За замовчуванням - -60 дБ, або 0,001.

duration, d

Встановіть тривалість мовчання до сповіщення (за замовчуванням 2 секунди). Перегляньте (ffmpeg-utils) розділ «Тривалість часу» в посібнику ffmpeg-utils(1) , щоб дізнатися про прийнятний синтаксис.

mono, m

Обробляйте кожен канал окремо, а не разом. За замовчуванням вимкнено.

8.102.1 Examples

  • Виявлення 5 секунд тиші з толерантністю до шуму -50 дБ:
    silencedetect=n=-50dB:d=5
    
  • Повний приклад із ffmpegвизначенням тиші з толерантністю до шуму 0,0001silence.mp3:
    ffmpeg -i silence.mp3 -af silencedetect=noise=0.0001 -f null -
    

8.103 silenceremove

Видалити тишу на початку, в середині або в кінці аудіо.

Фільтр приймає такі параметри:

start_periods

Це значення використовується для вказівки, чи потрібно обрізати аудіо на початку аудіо. Значення нуль вказує на те, що мовчання не слід обрізати з самого початку. Якщо вказати ненульове значення, він обрізає аудіо, доки не знайде безмовність. Зазвичай під час обрізання тиші від початку аудіо start_periodsбуде, 1але його можна збільшити до вищих значень, щоб обрізати весь аудіо до певної кількості періодів без тиші. Значення за замовчуванням: 0.

start_duration

Укажіть проміжок часу, протягом якого має бути виявлено відсутність тиші, перш ніж припиниться обрізання звуку. Збільшуючи тривалість, сплески шумів можна розглядати як тишу та вимикати. Значення за замовчуванням: 0.

start_threshold

Це вказує, яке значення вибірки слід розглядати як мовчання. Для цифрового аудіо значення 0може підійти, але для аудіо, записаного з аналогового, ви можете збільшити значення, щоб врахувати фоновий шум. Може вказуватися в дБ (якщо до вказаного значення додається «дБ») або у співвідношенні амплітуд. Значення за замовчуванням: 0.

start_silence

Укажіть максимальну тривалість тиші на початку, яка зберігатиметься після обрізання. За замовчуванням 0, що дорівнює обрізанню всіх семплів, визначених як тиша.

start_mode

Вкажіть режим визначення кінця тиші на початку багатоканального аудіо. Може бути anyабо all. Типовим є any. За допомогою anyбудь-який зразок, який виявлено як немовчазний, призведе до зупинки обрізання мовчання. За допомогою all, тільки якщо всі канали виявлені як без тиші, призведе до зупинки обрізання тиші.

stop_periods

Встановіть відлік для обрізання тиші з кінця аудіо. Щоб видалити мовчання з середини файлу, укажіть stop_periods негативне значення. Потім це значення розглядається як позитивне значення та використовується для вказівки, що ефект має перезапустити обробку, як зазначено в start_periods, що робить його придатним для видалення періодів тиші в середині аудіо. Значення за замовчуванням: 0.

stop_duration

Укажіть тривалість мовчання, яка має існувати, перш ніж звук більше не копіюватиметься. Якщо вказати більшу тривалість, у аудіо можна залишити потрібну тишу. Значення за замовчуванням: 0.

stop_threshold

Це те саме, щоstart_thresholdале для обрізання тиші в кінці аудіо. Може вказуватися в дБ (якщо до вказаного значення додається «дБ») або у співвідношенні амплітуд. Значення за замовчуванням: 0.

stop_silence

Укажіть максимальну тривалість мовчання в кінці, яка зберігатиметься після обрізання. За замовчуванням 0, що дорівнює обрізанню всіх семплів, визначених як тиша.

stop_mode

Вкажіть режим визначення початку тиші в кінці багатоканального звуку. Може бути anyабо all. Типовим є any. За допомогою anyбудь-який зразок, який виявлено як немовчазний, призведе до зупинки обрізання мовчання. За допомогою all, тільки якщо всі канали виявлені як без тиші, призведе до зупинки обрізання тиші.

detection

Встановіть спосіб визначення тиші. Може бути rmsабо peak. Секунда є швидшою та краще працює з цифровою тишею, яка дорівнює точно 0. Значення за замовчуванням – rms.

window

Установіть тривалість у секундах, яка використовується для обчислення розміру вікна у кількості зразків для виявлення тиші. Значення за замовчуванням: 0.02. Дозволений діапазон від 0до 10.

8.103.1 Examples

  • У наступному прикладі показано, як цей фільтр можна використовувати для початку запису, який не містить затримки на початку, яка зазвичай виникає між натисканням кнопки запису та початком виконання:
    silenceremove=start_periods=1:start_duration=5:start_threshold=0.02
    
  • Обрізати всю тишу від початку до кінця, якщо в аудіо є більше 1 секунди тиші:
    silenceremove=stop_periods=-1:stop_duration=1:stop_threshold=-90dB
    
  • Обріжте всі зразки цифрового мовчання за допомогою виявлення піків від початку до кінця, якщо в аудіо є більше 0 зразків цифрового мовчання, а цифрове мовчання виявляється в усіх каналах на однакових позиціях у потоці:
    silenceremove=window=0:detection=peak:stop_mode=all:start_mode=all:stop_periods=-1:stop_threshold=0
    

8.104 sofalizer

SOFAlizer використовує пов’язані з головою функції передачі (HRTF) для створення віртуальних гучномовців навколо користувача для бінаурального прослуховування через навушники (підтримуються аудіоформати до 9 каналів). HRTF зберігаються у файлах SOFA (базу даних див. http://www.sofacoustics.org/ ). SOFAlizer розроблено в Науково-дослідному інституті акустики (ARI) Австрійської академії наук.

Щоб увімкнути компіляцію цього фільтра, вам потрібно налаштувати FFmpeg за допомогою --enable-libmysofa.

Фільтр приймає такі параметри:

sofa

Встановіть файл SOFA, який використовується для візуалізації.

gain

Установити посилення, застосоване до звуку. Значення в дБ. За замовчуванням 0.

rotation

Встановити обертання віртуальних динаміків у градусах. За замовчуванням 0.

elevation

Установити висоту віртуальних динаміків у градусах. За замовчуванням 0.

radius

Встановіть відстань у метрах між гучномовцями та слухачем за допомогою HRTF ближнього поля. За замовчуванням 1.

type

Встановіть тип обробки. Може бути timeабо freq. timeобробляє звук у часовій області, що є повільним. freqобробляє звук у частотній області, що є швидким. Типовим є freq.

speakers

Встановіть власні позиції віртуальних гучномовців. Синтаксис цього параметра: <CH> <AZIM> <ELEV>[|<CH> <AZIM> <ELEV>|...]. Кожен віртуальний гучномовець описується короткою назвою каналу, за якою вказується азимут і висота в градусах. Опис кожного віртуального гучномовця відокремлюється знаком «|». Наприклад, щоб змінити положення переднього лівого та правого каналів, використовуйте: 'speakers=FL 45 15|FR 345 15'. Описи з нерозпізнаними назвами каналів ігноруються.

lfegain

Встановіть спеціальне посилення для каналів LFE. Значення в дБ. За замовчуванням 0.

framesize

Встановіть нестандартний розмір кадру в кількості зразків. За замовчуванням — 1024. Дозволений діапазон — від 1024 до 96000. Використовується, лише якщо параметр 'type' має значення freq.

normalize

Чи слід нормалізувати всі IR після імпортування файлу SOFA. За замовчуванням увімкнено.

interpolate

Чи слід інтерполювати найближчі IR із сусідніми IR, якщо точна позиція не збігається. За замовчуванням вимкнено.

minphase

Мінфазувати всі IR після завантаження файлу SOFA. За замовчуванням вимкнено.

anglestep

Встановити крок кута пошуку сусідів. Використовується, лише якщо параметр interpolateувімкнено.

radstep

Встановити крок радіуса пошуку сусідів. Використовується, лише якщо параметр interpolateувімкнено.

8.104.1 Examples

  • Використання файлу дивана ClubFritz6:
    sofalizer=sofa=/path/to/ClubFritz6.sofa:type=freq:radius=1
    
  • Використовуючи файл для дивана ClubFritz12 і більший радіус з невеликим обертанням:
    sofalizer=sofa=/path/to/ClubFritz12.sofa:type=freq:radius=2:rotation=5
    
  • Подібно до вищезазначеного, але з користувацькими положеннями динаміків для переднього лівого, переднього правого, заднього лівого та заднього правого, а також із спеціальним посиленням:
    "sofalizer=sofa=/path/to/ClubFritz6.sofa:type=freq:radius=2:speakers=FL 45|FR 315|BL 135|BR 225:gain=28"
    

8.105 speechnorm

Нормалізатор мови.

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

Фільтр приймає такі параметри:

peak, p

Встановіть цільове пікове значення розширення. Це визначає найвищий допустимий абсолютний рівень амплітуди для нормалізованого аудіовхідного сигналу. Значення за замовчуванням 0,95. Дозволений діапазон від 0,0 до 1,0.

expansion, e

Встановіть максимальний коефіцієнт розширення. Дозволений діапазон від 1,0 до 50,0. Значення за замовчуванням 2,0. Ця опція контролює максимальний локальний напівцикл розширення зразків. Максимальне розширення буде таким, щоб локальне пікове значення досягало цільового пікового значення, але ніколи не перевищувало його, і щоб співвідношення між новим і попереднім піковим значенням не перевищувало це значення опції.

compression, c

Встановіть максимальний коефіцієнт стиснення. Дозволений діапазон від 1,0 до 50,0. Значення за замовчуванням 2,0. Цей параметр контролює максимальний локальний півцикл стиснення семплів. Цей параметр використовується тільки в тому випадку, якщоthresholdпараметр встановлено на значення більше 0,0, тоді в таких випадках, коли локальний пік нижчий або такий самий, як значення, встановленеthresholdусі зразки, що належать до напівциклу цього піку, будуть стиснуті поточним коефіцієнтом стиснення.

threshold, t

Встановіть порогове значення. Значення за замовчуванням 0,0. Дозволений діапазон від 0,0 до 1,0. Цей параметр визначає, які напівцикли семплів будуть стиснені, а які розгорнуті. Будь-які зразки напівциклу з локальним піковим значенням, нижчим або таким же, як значення цього параметра, будуть стиснені поточним коефіцієнтом стиснення, інакше, якщо значення перевищує порогове значення, вони будуть розширені за допомогою коефіцієнта розширення, щоб він міг досягти максимального цільового значення, але ніколи не перевершити це.

raise, r

Встановіть величину збільшення розширення для кожного півциклу зразків. Значення за замовчуванням 0,001. Дозволений діапазон від 0,0 до 1,0. Це контролює швидкість збільшення коефіцієнта розширення для кожного нового напівциклу, доки він не досягнеexpansionзначення. Занадто високі параметри можуть призвести до спотворень.

fall, f

Встановіть ступінь підвищення компресії для кожного півциклу зразків. Значення за замовчуванням 0,001. Дозволений діапазон від 0,0 до 1,0. Це контролює швидкість підвищення коефіцієнта стиснення для кожного нового напівциклу, доки він не досягнеcompressionзначення.

channels, h

Укажіть, які канали фільтрувати, за замовчуванням фільтруються всі доступні канали.

invert, i

Увімкнути інвертовану фільтрацію, за замовчуванням вимкнено. Це інвертує інтерпретаціюthreshold варіант. Якщо ввімкнено, будь-який напівцикл зразків із локальним піковим значенням нижче або таким самим thresholdпараметр буде розгорнутий, інакше він буде стиснутий.

link, l

Пов’язувати канали під час розрахунку посилення, застосованого до кожної відфільтрованої вибірки каналу, за замовчуванням вимкнено. Якщо вимкнено, обчислення підсилення кожного відфільтрованого каналу є незалежним, інакше, коли цей параметр увімкнено, використовується мінімальне з усіх можливих підсилень для кожного відфільтрованого каналу.

8.105.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

8.106 stereotools

Цей фільтр містить кілька зручних утиліт для керування стереосигналами, для перетворення M/S стереозаписів у L/R сигнал, одночасно контролюючи параметри або розповсюджуючи стереозображення майстер-треку.

Фільтр приймає такі параметри:

level_in

Встановіть вхідний рівень перед фільтрацією для обох каналів. За замовчуванням — 1. Дозволений діапазон — від 0,015625 до 64.

level_out

Встановіть вихідний рівень після фільтрації для обох каналів. За замовчуванням — 1. Дозволений діапазон — від 0,015625 до 64.

balance_in

Встановіть вхідний баланс між обома каналами. За замовчуванням 0. Дозволений діапазон від -1 до 1.

balance_out

Встановіть вихідний баланс між обома каналами. За замовчуванням 0. Дозволений діапазон від -1 до 1.

softclip

Увімкнути softclipping. Результатом є аналогове спотворення замість різкого цифрового відсікання 0 дБ. Вимкнено за замовчуванням.

mutel

Вимкніть лівий канал. Вимкнено за замовчуванням.

muter

Вимкніть правий канал. Вимкнено за замовчуванням.

phasel

Зміна фази лівого каналу. Вимкнено за замовчуванням.

phaser

Змініть фазу правого каналу. Вимкнено за замовчуванням.

mode

Встановити стерео режим. Доступні значення:

'lr>lr'

Зліва/справа наліво/праворуч, це стандартно.

'lr>ms'

Зліва/справа до середини/збоку.

'ms>lr'

Посередині/збоку вліво/вправо.

'lr>ll'

Ліворуч/справа наліво/ліворуч.

'lr>rr'

Зліва/справа направо/направо.

'lr>l+r'

Зліва/справа наліво + направо.

'lr>rl'

Ліворуч/справа направо/ліворуч.

'ms>ll'

Посередині/збоку вліво/вліво.

'ms>rr'

Посередині/збоку справа/праворуч.

'ms>rl'

Посередині/збоку праворуч/ліворуч.

'lr>l-r'

Зліва/справа наліво - направо.

slev

Встановити рівень бічного сигналу. За замовчуванням — 1. Дозволений діапазон — від 0,015625 до 64.

sbal

Встановити баланс бічного сигналу. За замовчуванням 0. Дозволений діапазон від -1 до 1.

mlev

Встановити рівень середнього сигналу. За замовчуванням — 1. Дозволений діапазон — від 0,015625 до 64.

mpan

Встановіть центральну сигнальну панораму. За замовчуванням 0. Дозволений діапазон від -1 до 1.

base

Встановіть стереобазу між моно та інверсними каналами. За замовчуванням 0. Дозволений діапазон від -1 до 1.

delay

Встановіть затримку в мілісекундах, скільки затримувати ліворуч від правого каналу і навпаки. За замовчуванням 0. Дозволений діапазон від -20 до 20.

sclevel

Встановіть рівень S/C. За замовчуванням 1. Дозволений діапазон від 1 до 100.

phase

Встановіть стереофазу в градусах. За замовчуванням 0. Дозволений діапазон від 0 до 360.

bmode_in, bmode_out

Встановити режим балансу для параметра balance_in/balance_out.

Може бути одним із таких:

'balance'

Класичний режим балансу. Приглушуйте по одному каналу. Приріст підвищується до 1.

'amplitude'

Подібно до класичного режиму вище, але посилення збільшено до 2.

'power'

Рівномірний розподіл потужності, діапазон від -6 дБ до +6 дБ.

8.106.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

8.106.2 Examples

  • Застосувати ефект караоке:
    stereotools=mlev=0.015625
    
  • Перетворення сигналу M/S на L/R:
    "stereotools=mode=ms>lr"
    

8.107 stereowiden

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

Фільтр приймає такі параметри:

delay

Час у мілісекундах затримки лівого сигналу в правий і навпаки. За замовчуванням 20 мілісекунд.

feedback

Величина посилення затриманого сигналу вправо і навпаки. Дає ефект затримки лівого сигналу на правому виході і навпаки, що дає ефект розширення. За замовчуванням 0,3.

crossfeed

Перехресна подача зліва направо з інвертованою фазою. Це допомагає придушити моно. Якщо значення дорівнює 1, воно скасовує весь сигнал, спільний для обох каналів. За замовчуванням 0,3.

drymix

Встановити рівень вхідного сигналу оригінального каналу. За замовчуванням 0,8.

8.107.1 Commands

Цей фільтр підтримує всі наведені вище параметри, delayокрім команд .

8.108 superequalizer

Застосуйте 18-смуговий еквалайзер.

Фільтр приймає такі параметри:

1b

Встановіть посилення діапазону 65 Гц.

2b

Встановіть посилення діапазону 92 Гц.

3b

Встановіть посилення діапазону 131 Гц.

4b

Встановіть посилення діапазону 185 Гц.

5b

Встановіть посилення діапазону 262 Гц.

6b

Встановіть посилення діапазону 370 Гц.

7b

Встановіть посилення діапазону 523 Гц.

8b

Встановіть посилення діапазону 740 Гц.

9b

Встановіть посилення діапазону 1047 Гц.

10b

Встановіть посилення діапазону 1480 Гц.

11b

Встановіть посилення діапазону 2093 Гц.

12b

Встановіть посилення діапазону 2960 Гц.

13b

Встановіть посилення діапазону 4186 Гц.

14b

Встановіть посилення діапазону 5920 Гц.

15b

Встановіть посилення діапазону 8372 Гц.

16b

Встановіть посилення діапазону 11840 Гц.

17b

Встановіть посилення діапазону 16744 Гц.

18b

Встановіть посилення діапазону 20000 Гц.

8.109 surround

Застосувати фільтр підвищення об’ємного звуку.

Цей фільтр дозволяє створювати багатоканальний вихід із аудіопотоку.

Фільтр приймає такі параметри:

chl_out

Встановити схему вихідного каналу. За замовчуванням це 5.1.

Перегляньте (ffmpeg-utils)розділ «Макет каналу» в посібнику ffmpeg-utils(1) , щоб дізнатися про необхідний синтаксис.

chl_in

Встановити структуру вхідного каналу. За замовчуванням це stereo.

Перегляньте (ffmpeg-utils)розділ «Макет каналу» в посібнику ffmpeg-utils(1) , щоб дізнатися про необхідний синтаксис.

level_in

Встановити рівень вхідної гучності. За замовчуванням це 1.

level_out

Встановити вихідний рівень гучності. За замовчуванням це 1.

lfe

Увімкніть вихід каналу LFE, якщо це передбачено макетом вихідного каналу. За замовчуванням це ввімкнено.

lfe_low

Встановіть низьку частоту зрізу LFE. За замовчуванням це 128Гц.

lfe_high

Встановіть високу частоту зрізу LFE. За замовчуванням це 256Гц.

lfe_mode

Встановіть режим LFE, можна addабо sub. Типовим є add. У addрежимі канал LFE створюється з вхідного аудіо та додається до вихідного. У subрежимі канал LFE створюється з вхідного аудіо та додається до вихідного, але також усі вихідні канали без LFE віднімаються з вихідним каналом LFE.

angle

Встановіть кут трансформації об’ємного стереозвучання, дозволений діапазон від 0до 360. Типовим є 90.

fc_in

Встановити вхідну гучність переднього центру. За замовчуванням це 1.

fc_out

Встановити гучність переднього центрального виходу. За замовчуванням це 1.

fl_in

Встановіть передню ліву вхідну гучність. За замовчуванням це 1.

fl_out

Встановити передню ліву вихідну гучність. За замовчуванням це 1.

fr_in

Встановити передню праву вхідну гучність. За замовчуванням це 1.

fr_out

Встановити передню праву вихідну гучність. За замовчуванням це 1.

sl_in

Встановити вхідну гучність зліва. За замовчуванням це 1.

sl_out

Встановити гучність бічного лівого виходу. За замовчуванням це 1.

sr_in

Встановити вхідну гучність справа. За замовчуванням це 1.

sr_out

Встановіть гучність бічного правого виходу. За замовчуванням це 1.

bl_in

Відновити гучність лівого входу. За замовчуванням це 1.

bl_out

Відновити ліву вихідну гучність. За замовчуванням це 1.

br_in

Відновити гучність правого входу. За замовчуванням це 1.

br_out

Відновити праву вихідну гучність. За замовчуванням це 1.

bc_in

Відновити центральну вхідну гучність. За замовчуванням це 1.

bc_out

Відновити гучність центрального виходу. За замовчуванням це 1.

lfe_in

Встановити вхідну гучність LFE. За замовчуванням це 1.

lfe_out

Встановити гучність виходу LFE. За замовчуванням це 1.

allx

Встановіть розподіл стереозображення по осі X для всіх каналів. Дозволений діапазон від -1до 15. За замовчуванням це значення від’ємне -1, тому не використовується.

ally

Встановіть розподіл стереозображення по осі Y для всіх каналів. Дозволений діапазон від -1до 15. За замовчуванням це значення від’ємне -1, тому не використовується.

fcx, flx, frx, blx, brx, slx, srx, bcx

Встановіть розподіл стереозображення по осі X для кожного каналу. Дозволений діапазон від 0.06до 15. За замовчуванням це значення 0.5.

fcy, fly, fry, bly, bry, sly, sry, bcy

Встановіть розподіл стереозображення по осі Y для кожного каналу. Дозволений діапазон від 0.06до 15. За замовчуванням це значення 0.5.

win_size

Встановити розмір вікна. Дозволений діапазон від 1024до 65536. Типовий розмір: 4096.

win_func

Встановити функцію вікна.

Він приймає такі значення:

'rect'
'bartlett'
'hann, hanning'
'hamming'
'blackman'
'welch'
'flattop'
'bharris'
'bnuttall'
'bhann'
'sine'
'nuttall'
'lanczos'
'gauss'
'tukey'
'dolph'
'cauchy'
'parzen'
'poisson'
'bohman'

Типовим є hann.

overlap

Встановити перекриття вікон. Якщо встановлено значення 1, буде вибрано рекомендоване перекриття для вибраної функції вікна. Типовим є 0.5.

8.110 tiltshelf

Підвищуйте або обрізайте нижчі частоти та обрізайте чи підсилюйте вищі частоти аудіо за допомогою двополюсного поличного фільтра з відгуком, подібним до стандартного регулятора тембру Hi-Fi. Це також відомо як вирівнювання полиць (EQ).

Фільтр приймає такі параметри:

gain, g

Дайте посилення на 0 Гц. Його корисний діапазон становить від -20 (для великого розрізу) до +20 (для великого посилення). Остерігайтеся обрізання під час використання позитивного посилення.

frequency, f

Встановіть центральну частоту фільтра, і її можна використовувати для розширення або зменшення частотного діапазону, який потрібно підвищити або скоротити. Стандартним значенням є 3000Гц.

width_type, t

Встановити метод для визначення пропускної здатності фільтра.

h

Гц

q

Q-фактор

o

октава

s

схил

k

кГц

width, w

Визначте, наскільки крутий перехід полиці фільтра.

poles, p

Встановити кількість полюсів. За замовчуванням 2.

mix, m

Скільки використовувати відфільтрований сигнал на виході. За замовчуванням — 1. Діапазон — від 0 до 1.

channels, c

Вкажіть, які канали фільтрувати, за замовчуванням фільтруються всі доступні.

normalize, n

Нормалізувати біквадратичні коефіцієнти, за замовчуванням вимкнено. Увімкнення нормалізує амплітудну характеристику при постійному струмі до 0 дБ.

transform, a

Встановити тип перетворення IIR-фільтра.

di
dii
tdi
tdii
latt
svf
zdf
precision, r

Встановити точність фільтрації.

auto

Виберіть автоматичний формат семплів залежно від фільтрів об’ємного звуку.

s16

Завжди використовуйте 16-бітний знак.

s32

Завжди використовуйте 32-розрядний знак.

f32

Завжди використовуйте 32-бітове значення з плаваючою точкою.

f64

Завжди використовуйте float 64-bit.

block_size, b

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

Зауважте, що затримка фільтра складатиме саме стільки вибірок, якщо встановлено ненульове значення.

8.110.1 Commands

Цей фільтр підтримує деякі параметри як команди .

8.111 treble, highshelf

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

Фільтр приймає такі параметри:

gain, g

Укажіть коефіцієнт підсилення за нижчим із ~22 кГц і частоти Найквіста. Його корисний діапазон становить від -20 (для великого розрізу) до +20 (для великого посилення). Остерігайтеся обрізання під час використання позитивного посилення.

frequency, f

Встановіть центральну частоту фільтра, і її можна використовувати для розширення або зменшення частотного діапазону, який потрібно підвищити або скоротити. Стандартним значенням є 3000Гц.

width_type, t

Встановити метод для визначення пропускної здатності фільтра.

h

Гц

q

Q-фактор

o

октава

s

схил

k

кГц

width, w

Визначте, наскільки крутий перехід полиці фільтра.

poles, p

Встановити кількість полюсів. За замовчуванням 2.

mix, m

Скільки використовувати відфільтрований сигнал на виході. За замовчуванням — 1. Діапазон — від 0 до 1.

channels, c

Вкажіть, які канали фільтрувати, за замовчуванням фільтруються всі доступні.

normalize, n

Нормалізувати біквадратичні коефіцієнти, за замовчуванням вимкнено. Увімкнення нормалізує амплітудну характеристику при постійному струмі до 0 дБ.

transform, a

Встановити тип перетворення IIR-фільтра.

di
dii
tdi
tdii
latt
svf
zdf
precision, r

Встановити точність фільтрації.

auto

Виберіть автоматичний формат семплів залежно від фільтрів об’ємного звуку.

s16

Завжди використовуйте 16-бітний знак.

s32

Завжди використовуйте 32-розрядний знак.

f32

Завжди використовуйте 32-бітове значення з плаваючою точкою.

f64

Завжди використовуйте float 64-bit.

block_size, b

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

Зауважте, що затримка фільтра складатиме саме стільки вибірок, якщо встановлено ненульове значення.

8.111.1 Commands

Цей фільтр підтримує такі команди:

frequency, f

Зміна частоти високих частот. Синтаксис команди: " frequency"

width_type, t

Змінити тип ширини високих частот. Синтаксис команди: " width_type"

width, w

Змінити ширину високих частот. Синтаксис команди: " width"

gain, g

Зміна посилення високих частот. Синтаксис команди: " gain"

mix, m

Змінити мікс високих частот. Синтаксис команди: " mix"

8.112 tremolo

Синусоїдальна амплітудна модуляція.

Фільтр приймає такі параметри:

f

Частота модуляції в Герцах. Частоти модуляції в субгармонічному діапазоні (20 Гц або нижче) призведуть до ефекту тремоло. Цей фільтр також можна використовувати як кільцевий модулятор, вказавши частоту модуляції вище 20 Гц. Діапазон 0,1 - 20000,0. Значення за замовчуванням 5,0 Гц.

d

Глибина модуляції у відсотках. Діапазон 0,0 - 1,0. Значення за замовчуванням 0,5.

8.113 vibrato

Синусоїдальна фазова модуляція.

Фільтр приймає такі параметри:

f

Частота модуляції в Герцах. Діапазон 0,1 - 20000,0. Значення за замовчуванням 5,0 Гц.

d

Глибина модуляції у відсотках. Діапазон 0,0 - 1,0. Значення за замовчуванням 0,5.

8.114 virtualbass

Застосувати фільтр віртуальних низьких частот.

Цей фільтр приймає стерео вхід і створює стерео з виходом каналів LFE (2.1). Нещодавно створений канал LFE має покращені віртуальні баси, спочатку отримані з обох стереоканалів. Цей фільтр виводить передній лівий і передній правий канали без змін, доступні для входу стерео.

Фільтр приймає такі параметри:

cutoff

Встановіть віртуальну частоту зрізу басів. Стандартне значення становить 250 Гц. Дозволений діапазон від 100 до 500 Гц.

strength

Встановіть силу віртуального басу. Дозволений діапазон — від 0,5 до 3. Значення за замовчуванням — 3.

8.115 volume

Відрегулюйте гучність вхідного аудіо.

Він приймає такі параметри:

volume

Встановити вираз гучності звуку.

Вихідні значення обрізаються до максимального значення.

Гучність вихідного звуку визначається співвідношенням:

output_volume = volume * input_volume

Значення за замовчуванням volume— «1,0».

precision

Цей параметр представляє математичну точність.

Він визначає, які формати вхідних зразків будуть дозволені, що впливає на точність масштабування гучності.

fixed

8-розрядний з фіксованою комою; це обмежує формат вхідного зразка U8, S16 і S32.

float

32-розрядний з плаваючою комою; це обмежує формат вхідного зразка FLT. (за умовчанням)

double

64-розрядний з плаваючою комою; це обмежує формат вхідного зразка DBL.

replaygain

Виберіть поведінку під час зустрічі зі сторонніми даними ReplayGain у вхідних кадрах.

drop

Видалити бічні дані ReplayGain, ігноруючи їх вміст (за замовчуванням).

ignore

Ігноруйте бічні дані ReplayGain, але залиште їх у кадрі.

track

Віддати перевагу посиленню доріжки, якщо воно є.

album

Віддайте перевагу посиленню альбому, якщо воно є.

replaygain_preamp

Підсилення попереднього підсилення в дБ для застосування до вибраного підсилення відтворення.

Значення за замовчуванням replaygain_preampстановить 0,0.

replaygain_noclip

Запобігайте обрізанню, обмеживши застосоване посилення.

Значення за замовчуванням replaygain_noclip— 1.

eval

Встановлює, коли обчислюється вираз обсягу.

Він приймає такі значення:

'once'

обчислювати вираз лише один раз під час ініціалізації фільтра або коли 'volume' надіслано команду

'frame'

оцінити вираз для кожного вхідного кадру

Значення за замовчуванням: 'once'.

Вираз обсягу може містити такі параметри.

n

номер кадру (починаючи з нуля)

nb_channels

кількість каналів

nb_consumed_samples

кількість проб, спожитих фільтром

nb_samples

кількість вибірок у поточному кадрі

pos

оригінальне положення кадру у файлі

pts

каркас ПТС

sample_rate

частота дискретизації

startpts

PTS на початку потоку

startt

час на початку потоку

t

час кадру

tb

timestamp timebase

volume

останнє встановлене значення гучності

Зверніть увагу, колиevalвстановлено на 'once' доступні лише змінні sample_rateта tb, усі інші змінні оцінюватимуться як NAN.

8.115.1 Commands

Цей фільтр підтримує такі команди:

volume

Змініть вираз гучності. Команда приймає той самий синтаксис відповідного параметра.

Якщо вказаний вираз недійсний, його поточне значення зберігається.

8.115.2 Examples

  • Зменшіть гучність вхідного звуку вдвічі:
    volume=volume=0.5
    volume=volume=1/2
    volume=volume=-6.0206dB
    

    У всіх наведених вище прикладах іменований ключ дляvolumeможна опустити, наприклад, як у:

    volume=0.5
    
  • Збільште потужність вхідного звуку на 6 децибел за допомогою точності з фіксованою точкою:
    volume=volume=6dB:precision=fixed
    
  • Згасання гучності після часу 10 з періодом анігіляції 5 секунд:
    volume='if(lt(t,10),1,max(1-(t-10)/5,0))':eval=frame
    

8.116 volumedetect

Визначити гучність вхідного відео.

Фільтр не має параметрів. Він підтримує лише 16-розрядні зразки цілих чисел зі знаком, тому вхідні дані будуть перетворені за потреби. Статистика обсягу буде надрукована в журналі, коли буде досягнуто кінця вхідного потоку.

Зокрема, він покаже середній об’єм (середньоквадратичний), максимальний об’єм (на основі кожного зразка) і початок гістограми зареєстрованих значень об’єму (від максимального значення до сукупної 1/1000 зразків). ).

Усі гучності вказано в децибелах відносно максимального значення PCM.

8.116.1 Examples

Ось уривок результату:

[Parsed_volumedetect_0  0xa23120] mean_volume: -27 dB
[Parsed_volumedetect_0  0xa23120] max_volume: -4 dB
[Parsed_volumedetect_0  0xa23120] histogram_4db: 6
[Parsed_volumedetect_0  0xa23120] histogram_5db: 62
[Parsed_volumedetect_0  0xa23120] histogram_6db: 286
[Parsed_volumedetect_0  0xa23120] histogram_7db: 1042
[Parsed_volumedetect_0  0xa23120] histogram_8db: 2551
[Parsed_volumedetect_0  0xa23120] histogram_9db: 4609
[Parsed_volumedetect_0  0xa23120] histogram_10db: 8409

Це означає, що:

  • Середня квадратична енергія становить приблизно -27 дБ, або 10^-2,7.
  • Найбільша вибірка знаходиться на -4 дБ, точніше між -4 дБ і -5 дБ.
  • Є 6 зразків при -4 дБ, 62 при -5 дБ, 286 при -6 дБ тощо.

Іншими словами, збільшення гучності на +4 дБ не викликає відсікання, підвищення на +5 дБ викликає відсікання для 6 семплів тощо.

9 Audio Sources

Нижче наведено опис доступних на даний момент джерел звуку.

9.1 abuffer

Буферизуйте аудіокадри та зробіть їх доступними для ланцюжка фільтрів.

Це джерело в основному призначене для програмного використання, зокрема через інтерфейс, визначений уlibavfilter/buffersrc.h.

Він приймає такі параметри:

time_base

База часу, яка використовуватиметься для позначок часу надісланих кадрів. Це має бути число з плаваючою комою або у формі numerator/ denominator.

sample_rate

Частота дискретизації вхідних звукових буферів.

sample_fmt

Зразок формату вхідних звукових буферів. Ім'я формату зразка або відповідне ціле число з переліку AVSampleFormat уlibavutil/samplefmt.h

channel_layout

Схема каналу буферів вхідного аудіо. Або назва макета каналу з channel_layout_map в libavutil/channel_layout.cабо його відповідне ціле представлення з макросу AV_CH_LAYOUT_* вlibavutil/channel_layout.h

channels

Кількість каналів вхідних звукових буферів. Якщо вказано обидва channelsі , то вони мають бути узгодженими.channel_layout

9.1.1 Examples

abuffer=sample_rate=44100:sample_fmt=s16p:channel_layout=stereo

вказує джерелу приймати планарне 16-бітове стерео зі знаком на 44100 Гц. Оскільки формат зразка з назвою "s16p" відповідає числу 6, а розкладка "стерео" каналу відповідає значенню 0x3, це еквівалентно:

abuffer=sample_rate=44100:sample_fmt=6:channel_layout=0x3

9.2 aevalsrc

Згенерувати звуковий сигнал, заданий виразом.

Це джерело приймає на вхід один або більше виразів (по одному для кожного каналу), які обчислюються та використовуються для генерації відповідного звукового сигналу.

Це джерело приймає такі варіанти:

exprs

Встановіть список виразів, розділених '|', для кожного окремого каналу. У випадку, якщо channel_layoutпараметр не вказано, вибраний макет каналу залежить від кількості наданих виразів. В іншому випадку останній вказаний вираз буде застосовано до решти вихідних каналів.

channel_layout, c

Налаштуйте макет каналу. Кількість каналів у вказаному макеті має дорівнювати кількості вказаних виразів.

duration, d

Установіть мінімальну тривалість вихідного аудіо. Перегляньте (ffmpeg-utils) розділ «Тривалість часу» в посібнику ffmpeg-utils(1) , щоб дізнатися про прийнятний синтаксис. Зауважте, що кінцева тривалість може бути більшою за вказану тривалість, оскільки згенероване аудіо завжди обрізається в кінці повного кадру.

Якщо не вказано або виражена тривалість від’ємна, аудіо має генеруватися назавжди.

nb_samples, n

Встановіть кількість зразків на канал для кожного вихідного кадру, за замовчуванням 1024.

sample_rate, s

Укажіть частоту дискретизації, за замовчуванням 44100.

Кожен вираз у exprsможе містити такі константи:

n

номер оцінюваного зразка, починаючи з 0

t

час оцінюваного зразка, виражений у секундах, починаючи з 0

s

частота дискретизації

9.2.1 Examples

  • Створити тишу:
    aevalsrc=0
    
  • Згенерувати син сигнал з частотою 440 Гц, встановити частоту дискретизації 8000 Гц:
    aevalsrc="sin(440*2*PI*t):s=8000"
    
  • Згенеруйте двоканальний сигнал, чітко вкажіть розташування каналу (передній центр + задній центр):
    aevalsrc="sin(420*2*PI*t)|cos(430*2*PI*t):c=FC|BC"
    
  • Створення білого шуму:
    aevalsrc="-2+random(0)"
    
  • Згенеруйте амплітудно-модульований сигнал:
    aevalsrc="sin(10*2*PI*t)*sin(880*2*PI*t)"
    
  • Генеруйте бінауральні ритми 2,5 Гц на несучій частоті 360 Гц:
    aevalsrc="0.1*sin(2*PI*(360-2.5/2)*t) | 0.1*sin(2*PI*(360+2.5/2)*t)"
    

9.3 afirsrc

Створіть коефіцієнти FIR за допомогою методу частотної дискретизації.

Отриманий потік може бути використаний з фільтром afir для фільтрації звукового сигналу.

Фільтр приймає такі параметри:

taps, t

Встановити кількість коефіцієнтів фільтра у вихідному аудіопотоці. Значення за замовчуванням 1025.

frequency, f

Встановіть точки частоти, звідки встановлюються величина та фаза. Це має бути в порядку не спадання, і перший елемент має бути 0, тоді як останній елемент має бути 1. Елементи розділені пробілами.

magnitude, m

Встановіть значення амплітуди для кожної частотної точки, встановленої за допомогоюfrequency. Кількість значень має збігатися з кількістю точок частоти. Значення розділені пробілами.

phase, p

Встановіть значення фази для кожної частотної точки, встановленої за допомогоюfrequency. Кількість значень має збігатися з кількістю точок частоти. Значення розділені пробілами.

sample_rate, r

Встановіть частоту дискретизації, за замовчуванням 44100.

nb_samples, n

Встановіть кількість зразків для кожного кадру. За замовчуванням 1024.

win_func, w

Встановити функцію вікна. Типовим є blackman.

9.4 anullsrc

Нульове джерело аудіо, повертає необроблені аудіокадри. Це в основному корисно як шаблон і для використання в інструментах аналізу/налагодження або як джерело для фільтрів, які ігнорують вхідні дані (наприклад, фільтр синтезатора sox).

Це джерело приймає такі варіанти:

channel_layout, cl

Визначає макет каналу та може бути цілим числом або рядком, що представляє макет каналу. Стандартним значенням channel_layout є "стерео".

Перевірте визначення channel_layout_map у libavutil/channel_layout.cдля відображення між рядками та значеннями макета каналу.

sample_rate, r

Визначає частоту дискретизації та за замовчуванням 44100.

nb_samples, n

Встановіть кількість зразків на запитуваний кадр.

duration, d

Встановіть тривалість вихідного аудіо. Перегляньте (ffmpeg-utils) розділ «Тривалість часу» в посібнику ffmpeg-utils(1) , щоб дізнатися про прийнятний синтаксис.

Якщо не вказано або виражена тривалість від’ємна, аудіо має генеруватися назавжди.

9.4.1 Examples

  • Встановіть частоту дискретизації на 48000 Гц і розкладку каналу на AV_CH_LAYOUT_MONO.
    anullsrc=r=48000:cl=4
    
  • Виконайте ту саму операцію з більш очевидним синтаксисом:
    anullsrc=r=48000:cl=mono
    

Усі параметри мають бути чітко визначені.

9.5 flite

Синтезуйте голосове висловлювання за допомогою бібліотеки libflite.

Щоб увімкнути компіляцію цього фільтра, вам потрібно налаштувати FFmpeg за допомогою --enable-libflite.

Зауважте, що версії бібліотеки flite до 2.0 не є потокобезпечними.

Фільтр приймає такі параметри:

list_voices

Якщо встановлено значення 1, перелічіть назви доступних голосів і негайно вийдіть. Значення за замовчуванням 0.

nb_samples, n

Встановіть максимальну кількість вибірок на кадр. Значення за замовчуванням – 512.

textfile

Встановіть назву файлу, що містить текст для озвучення.

text

Встановіть текст для озвучення.

voice, v

Встановіть голос для синтезу мовлення. Значення за замовчуванням: kal. Дивіться також list_voicesваріант.

9.5.1 Examples

  • Читати з файлуspeech.txtі синтезуйте текст за допомогою стандартного голосу flite:
    flite=textfile=speech.txt
    
  • Прочитайте вказаний текст, вибираючи sltголос:
    flite=text='So fare thee well, poor devil of a Sub-Sub, whose commentator I am':voice=slt
    
  • Введіть текст у ffmpeg:
    ffmpeg -f lavfi -i flite=text='So fare thee well, poor devil of a Sub-Sub, whose commentator I am':voice=slt
    
  • зробитиffplayпромовте вказаний текст, використовуючи fliteі lavfiпристрій:
    ffplay -f lavfi flite=text='No more be grieved for which that thou hast done.'
    

Для отримання додаткової інформації про libflite відвідайте: http://www.festvox.org/flite/

9.6 anoisesrc

Створення шумового звукового сигналу.

Фільтр приймає такі параметри:

sample_rate, r

Вкажіть частоту дискретизації. Значення за замовчуванням 48000 Гц.

amplitude, a

Вкажіть амплітуду (0,0 - 1,0) згенерованого аудіопотоку. Значення за замовчуванням 1,0.

duration, d

Вкажіть тривалість згенерованого аудіопотоку. Невказівка ​​цього параметра призводить до шуму нескінченної довжини.

color, colour, c

Укажіть колір шуму. Доступні кольори шуму: білий, рожевий, коричневий, синій, фіолетовий і оксамитовий. За замовчуванням колір білий.

seed, s

Укажіть значення, яке використовується для заповнення PRNG.

nb_samples, n

Встановіть кількість зразків для кожного вихідного кадру, за замовчуванням 1024.

9.6.1 Examples

  • Згенеруйте 60 секунд рожевого шуму з частотою дискретизації 44,1 кГц і амплітудою 0,5:
    anoisesrc=d=60:c=pink:r=44100:a=0.5
    

9.7 hilbert

Генеруйте коефіцієнти FIR-перетворення Гільберта з непарним відведенням.

Отриманий потік можна використовувати з afir -фільтром для фазового зсуву сигналу на 90 градусів.

Це використовується в багатьох схемах матричного кодування та для генерації аналітичного сигналу. Процес часто записують як множення на i (або j), уявну одиницю.

Фільтр приймає такі параметри:

sample_rate, s

Встановіть частоту дискретизації, за замовчуванням 44100.

taps, t

Встановіть довжину FIR-фільтра, за замовчуванням 22051.

nb_samples, n

Встановіть кількість зразків для кожного кадру.

win_func, w

Встановити функцію вікна, яка буде використовуватися під час генерації коефіцієнтів FIR.

9.8 sinc

Створюйте коефіцієнти КІХ низьких частот, високих частот, смугового пропускання або відхилення смуги.

Отриманий потік може бути використаний з фільтром afir для фільтрації звукового сигналу.

Фільтр приймає такі параметри:

sample_rate, r

Встановіть частоту дискретизації, за замовчуванням 44100.

nb_samples, n

Встановіть кількість зразків для кожного кадру. За замовчуванням 1024.

hp

Встановити частоту високих частот. За замовчуванням 0.

lp

Встановіть частоту низьких частот. За замовчуванням дорівнює 0. Якщо частота високих частот нижча за частоту низьких частот, а частота низьких частот вища за 0, тоді фільтр створить коефіцієнти смугового фільтра, інакше коефіцієнти смугового фільтра.

phase

Встановіть фазову характеристику фільтра. За замовчуванням 50. Дозволений діапазон від 0 до 100.

beta

Встановити бета-версію вікна Kaiser.

att

Встановити затухання в смузі зупинки. За замовчуванням 120 дБ, дозволений діапазон від 40 до 180 дБ.

round

Увімкнути округлення, за замовчуванням вимкнено.

hptaps

Встановіть кількість кранів для фільтра високих частот.

lptaps

Встановіть кількість кранів для фільтра низьких частот.

9.9 sine

Згенеруйте звуковий сигнал із синусоїди з амплітудою 1/8.

Аудіосигнал є бітовим.

Фільтр приймає такі параметри:

frequency, f

Встановіть несучу частоту. За замовчуванням 440 Гц.

beep_factor, b

Увімкніть періодичний звуковий сигнал щосекунди з частотою beep_factor, помноженою на несучу частоту. За замовчуванням 0, тобто звуковий сигнал вимкнено.

sample_rate, r

Укажіть частоту дискретизації, за замовчуванням 44100.

duration, d

Вкажіть тривалість згенерованого аудіопотоку.

samples_per_frame

Встановіть кількість вибірок на вихідний кадр.

Вираз може містити такі константи:

n

(Послідовний) номер вихідного аудіокадру, починаючи з 0.

pts

PTS (TimeStamp презентації) вихідного аудіокадру, виражений в TBодиницях.

t

PTS вихідного аудіокадру, виражений у секундах.

TB

Часова розгортка вихідних аудіокадрів.

Типовим є 1024.

9.9.1 Examples

  • Згенеруйте просту синусоїду 440 Гц:
    sine
    
  • Створіть синусоїду 220 Гц із звуковим сигналом 880 Гц щосекунди протягом 5 секунд:
    sine=220:4:d=5
    sine=f=220:b=4:d=5
    sine=frequency=220:beep_factor=4:duration=5
    
  • Створіть синусоїду 1 кГц за 1602,1601,1602,1601,1602шаблоном NTSC:
    sine=1000:samples_per_frame='st(0,mod(n,5)); 1602-not(not(eq(ld(0),1)+eq(ld(0),3)))'
    

10 Audio Sinks

Нижче наведено опис доступних на даний момент аудіоприймачів.

10.1 abuffersink

Буферизуйте аудіокадри та зробіть їх доступними для кінця ланцюжка фільтрів.

Цей приймач в основному призначений для програмного використання, зокрема через інтерфейс, визначений уlibavfilter/buffersink.h або система опцій.

Він приймає вказівник на структуру AVABufferSinkContext, яка визначає формати вхідних буферів, який передається як непрозорий параметр avfilter_init_filterдля ініціалізації.

10.2 anullsink

Нульовий аудіоприймач; абсолютно нічого не робити з вхідним аудіо. Це в основному корисно як шаблон і для використання в інструментах аналізу/налагодження.

11 Video Filters

Коли ви налаштовуєте збірку FFmpeg, ви можете вимкнути будь-який із наявних фільтрів за допомогою --disable-filters. Вихід конфігурації покаже відеофільтри, включені у вашу збірку.

Нижче наведено опис доступних на даний момент відеофільтрів.

11.1 addroi

Позначте область інтересу у кадрі відео.

Дані кадру передаються без змін, але метадані додаються до кадру, що вказує на цікаві області, які можуть вплинути на поведінку подальшого кодування. Кілька регіонів можна позначити, застосовуючи фільтр кілька разів.

x

Відстань області в пікселях від лівого краю кадру.

y

Відстань області в пікселях від верхнього краю кадру.

w

Ширина області в пікселях.

h

Висота області в пікселях.

Параметри x, y, wі hє виразами та можуть містити такі змінні:

iw

Ширина вхідного кадру.

ih

Висота вхідної рамки.

qoffset

Зсув квантування для застосування в межах регіону.

Це має бути реальне значення в діапазоні від -1 до +1. Нульове значення означає відсутність зміни якості. Від’ємне значення вимагає кращої якості (менше квантування), тоді як позитивне значення вимагає гіршої якості (більше квантування).

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

Наприклад, у 10-бітному H.264 параметр квантування коливається від -12 до 51. Типове значення qoffset -1/10, отже, вказує на те, що ця область повинна бути закодована з QP приблизно на одну десяту повного діапазону краще, ніж решта кадру. Отже, якби більшу частину кадру було закодовано з QP приблизно 30, ця область отримає QP приблизно 24 (зміщення приблизно -1/10 * (51 - -12) = -6,3). Екстремальне значення -1 вказуватиме на те, що цю область слід кодувати з найкращою можливою якістю незалежно від обробки решти кадру, тобто її слід кодувати з QP -12.

clear

Якщо встановлено значення true, видаліть усі існуючі цікаві області, позначені на кадрі, перш ніж додати нову.

11.1.1 Examples

  • Позначте центральну чверть кадру як цікаву.
    addroi=iw/4:ih/4:iw/2:ih/2:-1/10
    
  • Позначте область шириною 100 пікселів на лівому краю кадру як дуже нецікаву (що має бути закодована з набагато нижчою якістю, ніж решта кадру).
    addroi=0:0:100:ih:+1/5
    

11.2 alphaextract

Витягніть альфа-компонент із вхідних даних як відео у відтінках сірого. Це особливо корисно з alphamergeфільтром.

11.3 alphamerge

Додайте або замініть альфа-компонент основного введення на значення градацій сірого другого введення. Це призначено для використання з alphaextractдозволом передачі або зберігання послідовностей кадрів, які мають альфа-версію, у форматі, який не підтримує альфа-канал.

Наприклад, щоб реконструювати повні кадри зі звичайного відео, закодованого за допомогою YUV, і окремого відео, створеного за допомогою alphaextract, ви можете використати:

movie=in_alpha.mkv [alpha]; [in][alpha] alphamerge [out]

11.4 amplify

Посилення відмінностей між поточним пікселем і пікселями сусідніх кадрів у тому самому місці пікселя.

Цей фільтр приймає такі параметри:

radius

Встановити радіус рамки. За замовчуванням — 2. Дозволений діапазон — від 1 до 63. Наприклад, радіус 3 накаже фільтру обчислити середнє значення 7 кадрів.

factor

Установіть коефіцієнт для посилення різниці. За замовчуванням — 2. Дозволений діапазон — від 0 до 65535.

threshold

Встановіть поріг для посилення різниці. Будь-яка різниця більше або дорівнює цьому значенню не змінить вихідний піксель. За замовчуванням — 10. Дозволений діапазон — від 0 до 65535.

tolerance

Встановіть допуск для посилення різниці. Будь-яка різниця нижче цього значення не змінить вихідний піксель. За замовчуванням 0. Дозволений діапазон від 0 до 65535.

low

Встановіть нижню межу для зміни вихідного пікселя. За замовчуванням — 65535. Дозволений діапазон — від 0 до 65535. Цей параметр керує максимально можливим значенням, яке зменшить значення вихідного пікселя.

high

Встановіть верхнє обмеження для зміни вихідного пікселя. За замовчуванням — 65535. Дозволений діапазон — від 0 до 65535. Цей параметр контролює максимально можливе значення, яке збільшить значення вихідного пікселя.

planes

Встановіть, які площини фільтрувати. За замовчуванням це все. Дозволений діапазон від 0 до 15.

11.4.1 Commands

Цей фільтр підтримує такі команди , які відповідають опції з такою ж назвою:

factor
threshold
tolerance
low
high
planes

11.5 ass

Те саме, що й фільтр субтитрів , за винятком того, що для його роботи не потрібні libavcodec і libavformat. З іншого боку, він обмежений файлами субтитрів ASS (Advanced Substation Alpha).

Цей фільтр приймає такі параметри на додаток до загальних параметрів із фільтра субтитрів :

shaping

Встановіть механізм формування

Доступні значення:

'auto'

Типовий механізм формування libass, який є найкращим із доступних.

'simple'

Швидкий формувальник шрифтів, який може виконувати лише заміни

'complex'

Повільніший формувач із використанням OpenType для замін і позиціонування

Типовим є auto.

11.6 atadenoise

Застосуйте адаптивне тимчасове усереднення шуму до відеовходу.

Фільтр приймає такі параметри:

0a

Встановіть поріг A для 1-ї площини. За замовчуванням 0,02. Допустимий діапазон – від 0 до 0,3.

0b

Встановіть поріг B для 1-ї площини. За замовчуванням 0,04. Дійсний діапазон від 0 до 5.

1a

Встановіть поріг A для 2-ї площини. За замовчуванням 0,02. Допустимий діапазон – від 0 до 0,3.

1b

Встановіть поріг B для 2-ї площини. За замовчуванням 0,04. Дійсний діапазон від 0 до 5.

2a

Встановіть поріг A для 3-ї площини. За замовчуванням 0,02. Допустимий діапазон – від 0 до 0,3.

2b

Встановіть поріг B для 3-ї площини. За замовчуванням 0,04. Дійсний діапазон від 0 до 5.

Поріг A призначений для реакції на різкі зміни вхідного сигналу, а поріг B призначений для реагування на безперервні зміни вхідного сигналу.

s

Встановіть кількість кадрів, які фільтр використовуватиме для усереднення. За замовчуванням 9. Має бути непарне число в діапазоні [5, 129].

p

Встановіть, які площини рамкового фільтра використовуватимуться для усереднення. За замовчуванням це все.

a

Встановіть, який варіант алгоритму фільтр буде використовувати для усереднення. За замовчуванням pпаралельно. Крім того, можна встановити sсерійний номер.

Паралельний може бути швидшим, ніж послідовний, тоді як навпаки ніколи не вірно. Паралельний переривається раніше, якщо перша зміна буде більшою за порогове значення, тоді як послідовний продовжить обробку іншої сторони кадрів, якщо вони рівні або нижчі за порогові значення.

0s
1s
2s

Встановіть сигму для 1-ї площини, 2-ї площини або 3-ї площини. За замовчуванням — 32767. Діапазон — від 0 до 32767. Цей параметр керує вагою для кожного пікселя в радіусі, визначеному розміром. Значення за замовчуванням означає, що кожен піксель має однакову вагу. Встановлення цього параметра на 0 фактично вимикає фільтрацію.

11.6.1 Commands

Цей фільтр підтримує ті самі команди , що й параметри, крім параметра s. Команда приймає той самий синтаксис відповідного параметра.

11.7 avgblur

Застосуйте фільтр середнього розмиття.

Фільтр приймає такі параметри:

sizeX

Встановити розмір горизонтального радіуса.

planes

Встановіть, які площини фільтрувати. За замовчуванням усі площини фільтруються.

sizeY

Встановіть розмір вертикального радіуса, якщо нуль, він буде таким самим, як sizeX. Типовим є 0.

11.7.1 Commands

Цей фільтр підтримує ті самі команди, що й параметри. Команда приймає той самий синтаксис відповідного параметра.

Якщо вказаний вираз недійсний, його поточне значення зберігається.

11.8 bbox

Обчисліть обмежувальну рамку для нечорних пікселів у площині яскравості вхідного кадру.

Цей фільтр обчислює обмежувальну рамку, що містить усі пікселі зі значенням яскравості, що перевищує мінімально допустиме значення. Параметри, що описують обмежувальну рамку, друкуються в журналі фільтра.

Фільтр приймає такі параметри:

min_val

Встановіть мінімальне значення яскравості. Типовим є 16.

11.8.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

11.9 bilateral

Застосувати двосторонній фільтр, просторове згладжування зі збереженням країв.

Фільтр приймає такі параметри:

sigmaS

Установіть сигму функції Гауса для обчислення просторової ваги. Дозволений діапазон від 0 до 512. За замовчуванням 0,1.

sigmaR

Установіть сигму функції Гауса для обчислення ваги діапазону. Дозволений діапазон від 0 до 1. За замовчуванням 0,1.

planes

Встановити площини для фільтрації. За замовчуванням лише перший.

11.9.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

11.10 bitplanenoise

Показати та виміряти бітовий шум.

Фільтр приймає такі параметри:

bitplane

Визначте площину для аналізу. Типовим є 1.

filter

Відфільтруйте шумні пікселі з bitplaneнабору вище. За замовчуванням вимкнено.

11.11 blackdetect

Виявляти інтервали відео, які (майже) повністю чорні. Може бути корисним для виявлення переходів між розділами, реклами чи недійсних записів.

Фільтр виводить свій аналіз виявлення як у журнал, так і в метадані кадру. Якщо знайдено чорний сегмент принаймні зазначеної мінімальної тривалості, рядок із мітками часу початку та кінця, а також тривалістю друкується в журналі з рівнем info. Крім того, рядок журналу з рівнем debugдрукується для кожного кадру, показуючи кількість чорного, виявлену для цього кадру.

Фільтр також додає метадані до першого кадру чорного сегмента з ключем lavfi.black_startі до першого кадру після того, як чорний сегмент закінчується ключем lavfi.black_end. Значенням є позначка часу кадру. Ці метадані додаються незалежно від зазначеної мінімальної тривалості.

Фільтр приймає такі параметри:

black_min_duration, d

Встановіть мінімальну тривалість виявленого чорного, виражену в секундах. Це має бути невід’ємне число з плаваючою комою.

Значення за замовчуванням 2,0.

picture_black_ratio_th, pic_th

Встановіть поріг для того, щоб вважати картину «чорною». Виразіть мінімальне значення відношення:

nb_black_pixels / nb_pixels

для яких зображення вважається чорним. Значення за замовчуванням 0,98.

pixel_black_th, pix_th

Встановіть поріг для того, щоб вважати піксель «чорним».

Поріг виражає максимальне значення яскравості пікселя, для якого піксель вважається «чорним». Надане значення масштабується за таким рівнянням:

absolute_threshold = luminance_minimum_value + pixel_black_th * luminance_range_size

luminance_range_sizeі luminance_minimum_valueзалежно від формату вхідного відео, діапазон [0-255] для повнодіапазонних форматів YUV і [16-235] для неповнодіапазонних форматів YUV.

Значення за замовчуванням 0,10.

У наведеному нижче прикладі встановлюється максимальний поріг пікселів на мінімальне значення та виявляються лише чорні інтервали довжиною 2 або більше секунд:

blackdetect=d=2:pix_th=0.00

11.12 blackframe

Виявляти кадри, які (майже) повністю чорні. Може бути корисним для виявлення переходів між розділами або рекламними роликами. Рядки виводу містять номер кадру виявленого кадру, відсоток чорноти, позицію у файлі, якщо вона відома, або -1 і позначку часу в секундах.

Для відображення вихідних рядків вам потрібно встановити рівень журналу принаймні до значення AV_LOG_INFO.

Цей фільтр експортує метадані кадру lavfi.blackframe.pblack. Значення представляє відсоток пікселів у зображенні, які нижчі за порогове значення.

Він приймає такі параметри:

amount

Відсоток пікселів, які мають бути нижчими за порогове значення; за замовчуванням 98.

threshold, thresh

Поріг, нижче якого значення пікселя вважається чорним; за замовчуванням 32.

11.13 blend

Змішайте два відеокадри один з одним.

Фільтр blendприймає два вхідних потоки та виводить один потік, перший вхід є «верхнім» шаром, а другий вхід — «нижнім». За замовчуванням вихід завершується, коли завершується найдовший вхід.

Фільтр tblend(змішування за часом) бере два послідовних кадри з одного потоку та виводить результат, отриманий шляхом змішування нового кадру поверх старого кадру.

Нижче наведено опис прийнятих варіантів.

c0_mode
c1_mode
c2_mode
c3_mode
all_mode

Установіть режим змішування для певного піксельного компонента або всіх піксельних компонентів у випадку all_mode. Значення за замовчуванням: normal.

Доступні значення для режимів компонентів:

'addition'
'and'
'average'
'bleach'
'burn'
'darken'
'difference'
'divide'
'dodge'
'exclusion'
'extremity'
'freeze'
'geometric'
'glow'
'grainextract'
'grainmerge'
'hardlight'
'hardmix'
'hardoverlay'
'harmonic'
'heat'
'interpolate'
'lighten'
'linearlight'
'multiply'
'multiply128'
'negation'
'normal'
'or'
'overlay'
'phoenix'
'pinlight'
'reflect'
'screen'
'softdifference'
'softlight'
'stain'
'subtract'
'vividlight'
'xor'
c0_opacity
c1_opacity
c2_opacity
c3_opacity
all_opacity

Установіть непрозорість змішування для певного піксельного компонента або всіх піксельних компонентів у випадку all_opacity. Використовується лише в поєднанні з режимами змішування піксельних компонентів.

c0_expr
c1_expr
c2_expr
c3_expr
all_expr

Установіть вираз змішування для певного піксельного компонента або всіх піксельних компонентів у випадку all_expr. Зауважте, що пов’язані параметри режиму ігноруватимуться, якщо вони встановлені.

Вирази можуть використовувати такі змінні:

N

Порядковий номер відфільтрованого кадру, починаючи з 0.

X
Y

координати поточної вибірки

W
H

ширина та висота поточної відфільтрованої площини

SW
SH

Шкала ширини та висоти площини, що фільтрується. Це відношення між розмірами поточної площини до площини яскравості, наприклад, для yuv420pкадру значення наведені 1,1для площини яскравості та 0.5,0.5для площин кольоровості.

T

Час поточного кадру, виражений у секундах.

TOP, A

Значення компонента пікселя в поточному місці для першого кадру відео (верхній шар).

BOTTOM, B

Значення компонента пікселя в поточному місці для другого кадру відео (нижній шар).

Фільтр blendтакож підтримує параметри синхронізації кадрів .

11.13.1 Examples

  • Застосуйте перехід від нижнього шару до верхнього за перші 10 секунд:
    blend=all_expr='A*(if(gte(T,10),1,T/10))+B*(1-(if(gte(T,10),1,T/10)))'
    
  • Застосуйте лінійний горизонтальний перехід від верхнього шару до нижнього:
    blend=all_expr='A*(X/W)+B*(1-X/W)'
    
  • Застосувати ефект шахової дошки 1x1:
    blend=all_expr='if(eq(mod(X,2),mod(Y,2)),A,B)'
    
  • Застосувати ефект розкриття ліворуч:
    blend=all_expr='if(gte(N*SW+X,W),A,B)'
    
  • Застосувати ефект розкриття пуху:
    blend=all_expr='if(gte(Y-N*SH,0),A,B)'
    
  • Застосувати ефект розкриття вгору-ліворуч:
    blend=all_expr='if(gte(T*SH*40+Y,H)*gte((T*40*SW+X)*W/H,W),A,B)'
    
  • Розділіть відео по діагоналі та відобразіть верхній і нижній шари з кожного боку:
    blend=all_expr='if(gt(X,Y*(W/H)),A,B)'
    
  • Показати відмінності між поточним і попереднім кадром:
    tblend=all_mode=grainextract
    

11.13.2 Commands

Цей фільтр підтримує ті самі команди , що й параметри.

11.14 blockdetect

Визначає блочність кадрів без зміни вхідних кадрів.

На основі Ремко Муіджа та Ігоря Кіренка: «Засіб блокування артефактів без посилань для адаптивної обробки відео». 2005 13-та Європейська конференція з обробки сигналів.

Фільтр приймає такі параметри:

period_min
period_max

Встановіть мінімальне та максимальне значення для визначення піксельних сіток (періодів). Значення за замовчуванням [3,24].

planes

Встановити площини для фільтрації. За замовчуванням лише перший.

11.14.1 Examples

  • Визначити блочність для першої площини та знайти періоди в межах [8,32]:
    blockdetect=period_min=8:period_max=32:planes=1
    

11.15 blurdetect

Визначає розмитість кадрів без зміни вхідних кадрів.

На основі Marziliano, Pina та ін. «Метрика перцептивного розмиття без посилання». Дозволяє блочне скорочення.

Фільтр приймає такі параметри:

low
high

Встановіть низькі та високі порогові значення, які використовуються алгоритмом порогового значення Canny.

Високий поріг вибирає «сильні» крайові пікселі, які потім з’єднуються через 8-з’єднання зі «слабкими» крайовими пікселями, вибраними низьким порогом.

lowі highпорогові значення повинні бути обрані в діапазоні [0,1] і lowповинні бути меншими або дорівнювати high.

Значення за замовчуванням для low, 20/255а значення за замовчуванням high для 50/255.

radius

Визначте радіус для пошуку локальних максимумів навколо крайового пікселя.

block_pct

Визначити розмитість лише для найбільш значущих блоків, заданих у відсотках.

block_width

Визначити розмиття для блоків шириною block_width. Якщо встановлено будь-яке значення, менше 1, блоки не використовуються, і все зображення обробляється як одне, незалежно від block_height.

block_height

Визначити розмитість для блоків висоти block_height. Якщо встановлено будь-яке значення, менше 1, блоки не використовуються, і все зображення обробляється як одне, незалежно від block_width.

planes

Встановити площини для фільтрації. За замовчуванням лише перший.

11.15.1 Examples

  • Визначте розмиття для 80% найбільш значущих блоків 32x32:
    blurdetect=block_width=32:block_height=32:block_pct=80
    

11.16 bm3d

Усунення шуму кадрів за допомогою алгоритму Block-Matching 3D.

Фільтр приймає такі параметри.

sigma

Встановити силу шумозаглушення. Значення за замовчуванням — 1. Дозволений діапазон — від 0 до 999,9. Алгоритм усунення шумів дуже чутливий до сигми, тому налаштуйте його відповідно до джерела.

block

Встановити локальний розмір латки. Це встановлює розміри у 2D.

bstep

Встановити крок ковзання для обробки блоків. Значення за замовчуванням — 4. Дозволений діапазон — від 1 до 64. Менші значення дозволяють обробляти більше контрольних блоків і працюють повільніше.

group

Встановіть максимальну кількість подібних блоків для 3-го виміру. Значення за замовчуванням — 1. Якщо встановлено значення 1, зіставлення блоків не виконується. Більші значення дозволяють використовувати більше блоків в одній групі. Дозволений діапазон від 1 до 256.

range

Встановіть радіус для відповідності блоку пошуку. За замовчуванням — 9. Дозволений діапазон — від 1 до INT32_MAX.

mstep

Установіть крок між двома місцями пошуку для відповідності блоку. За замовчуванням 1. Дозволений діапазон від 1 до 64. Менший – повільніший.

thmse

Встановіть поріг середньої квадратичної помилки для відповідності блоків. Дійсний діапазон: від 0 до INT32_MAX.

hdthr

Встановіть пороговий параметр для жорсткого порогового значення в 3D-трансформованому домені. Більші значення призводять до сильнішої жорсткої порогової фільтрації в частотній області.

estim

Встановити режим оцінки фільтрації. Може бути basicабо final. Типовим є basic.

ref

Якщо ввімкнено, фільтр використовуватиме 2-й потік для відповідності блоків. За замовчуванням вимкнено для basicзначення estimопції та завжди ввімкнено, якщо значення estimдорівнює final.

planes

Встановити площини для фільтрації. За замовчуванням доступні всі, крім альфа-версії.

11.16.1 Examples

  • Базова фільтрація з bm3d:
    bm3d=sigma=3:block=4:bstep=2:group=1:estim=basic
    
  • Те саме, що й вище, але фільтрується лише яскравість:
    bm3d=sigma=3:block=4:bstep=2:group=1:estim=basic:planes=1
    
  • Те саме, що й вище, але з обома режимами оцінки:
    split[a][b],[a]bm3d=sigma=3:block=4:bstep=2:group=1:estim=basic[a],[b][a]bm3d=sigma=3:block=4:bstep=2:group=16:estim=final:ref=1
    
  • Те саме, що й вище, але попередній фільтр із фільтром nlmeans замість цього:
    split[a][b],[a]nlmeans=s=3:r=7:p=3[a],[b][a]bm3d=sigma=3:block=4:bstep=2:group=16:estim=final:ref=1
    

11.17 boxblur

Застосуйте алгоритм boxblur до вхідного відео.

Він приймає такі параметри:

luma_radius, lr
luma_power, lp
chroma_radius, cr
chroma_power, cp
alpha_radius, ar
alpha_power, ap

Нижче наведено опис прийнятих варіантів.

luma_radius, lr
chroma_radius, cr
alpha_radius, ar

Встановіть вираз для радіуса рамки в пікселях, який використовується для розмивання відповідної вхідної площини.

Значення радіуса має бути невід’ємним числом і не повинно перевищувати значення виразу min(w,h)/2для площин яскравості та альфа, а також min(cw,ch)/2для площин кольоровості.

Значення за умовчанням дляluma_radiusце "2". Якщо не зазначено, chroma_radiusіalpha_radiusза замовчуванням встановлено відповідне значенняluma_radius.

Вирази можуть містити такі константи:

w
h

Ширина та висота введення в пікселях.

cw
ch

Ширина та висота вхідного кольорового зображення в пікселях.

hsub
vsub

Значення підвибірки кольоровості по горизонталі та вертикалі. Наприклад, для піксельного формату "yuv422p" hsubдорівнює 2 і vsubдорівнює 1.

luma_power, lp
chroma_power, cp
alpha_power, ap

Укажіть, скільки разів фільтр boxblur застосовується до відповідної площини.

Значення за умовчанням дляluma_powerдорівнює 2. Якщо не вказано, chroma_powerіalpha_powerза замовчуванням встановлено відповідне значенняluma_power.

Значення 0 вимкне ефект.

11.17.1 Examples

  • Застосуйте фільтр BoxBlur із радіусами яскравості, кольоровості та альфа-каналу, встановленими на 2:
    boxblur=luma_radius=2:luma_power=1
    boxblur=2:1
    
  • Встановіть радіус яскравості на 2, а радіус альфа- і кольоровості на 0:
    boxblur=2:1:cr=0:ar=0
    
  • Встановіть радіуси яскравості та кольоровості на частку розміру відео:
    boxblur=luma_radius=min(h\,w)/10:luma_power=1:chroma_radius=min(cw\,ch)/10:chroma_power=1
    

11.18 bwdif

Деінтерлейсування вхідного відео ("bwdif" означає "фільтр деінтерлейсінг Боба Вівера").

Адаптивне деінтерлейсінг до руху на основі yadif з використанням алгоритмів w3fdif і кубічної інтерполяції. Він приймає такі параметри:

mode

Режим переплетення, який потрібно прийняти. Він приймає одне з таких значень:

0, send_frame

Виведіть один кадр для кожного кадру.

1, send_field

Виведіть один кадр для кожного поля.

Значення за замовчуванням — send_field.

parity

Парність поля зображення передбачається для вхідного черезрядкового відео. Він приймає одне з таких значень:

0, tff

Припустимо, що верхнє поле є першим.

1, bff

Припустимо, що нижнє поле є першим.

-1, auto

Увімкнути автоматичне визначення парності поля.

Значення за замовчуванням — auto. Якщо чергування невідоме або декодер не експортує цю інформацію, першим буде вважатися верхнє поле.

deint

Укажіть, які кадри потрібно деінтерлейсувати. Приймає одне з таких значень:

0, all

Деінтерлейс усіх кадрів.

1, interlaced

Усунути черезрядкову розгортку лише кадри, позначені як черезрядкові.

Значення за замовчуванням — all.

11.19 cas

Застосуйте фільтр Adaptive Sharpen Contrast до відеопотоку.

Фільтр приймає такі параметри:

strength

Встановити силу заточування. Значення за замовчуванням 0.

planes

Встановити площини для фільтрації. Значення за замовчуванням — фільтрувати всі площини, крім альфа-площини.

11.19.1 Commands

Цей фільтр підтримує ті самі команди , що й параметри.

11.20 chromahold

Видалити всю інформацію про колір для всіх кольорів, крім певного.

Фільтр приймає такі параметри:

color

Колір, який не буде замінено нейтральною кольоровістю.

similarity

Відсоток схожості з вищевказаним кольором. 0,01 відповідає лише точному кольору ключа, тоді як 1,0 відповідає всьому.

blend

Відсоток суміші. 0.0 робить пікселі або повністю сірими, або зовсім не сірими. Вищі значення призводять до кращого збереження кольору.

yuv

Сигналізує, що переданий колір уже знаходиться в YUV замість RGB.

Дослівні кольори, як-от «зелений» або «червоний», більше не мають сенсу, коли це ввімкнено. Це можна використовувати для передачі точних значень YUV як шістнадцяткових чисел.

11.20.1 Commands

Цей фільтр підтримує ті самі команди , що й параметри. Команда приймає той самий синтаксис відповідного параметра.

Якщо вказаний вираз недійсний, його поточне значення зберігається.

11.21 chromakey

Колірний простір YUV.

Фільтр приймає такі параметри:

color

Колір, який буде замінено на прозорість.

similarity

Відсоток схожості з ключовим кольором.

0,01 відповідає лише точному кольору ключа, тоді як 1,0 відповідає всьому.

blend

Відсоток суміші.

0.0 робить пікселі або повністю прозорими, або взагалі непрозорими.

Вищі значення призводять до напівпрозорих пікселів, а з вищою прозорістю колір пікселів схожіший на основний колір.

yuv

Сигналізує, що переданий колір уже знаходиться в YUV замість RGB.

Дослівні кольори, як-от «зелений» або «червоний», більше не мають сенсу, коли це ввімкнено. Це можна використовувати для передачі точних значень YUV як шістнадцяткових чисел.

11.21.1 Commands

Цей фільтр підтримує ті самі команди , що й параметри. Команда приймає той самий синтаксис відповідного параметра.

Якщо вказаний вираз недійсний, його поточне значення зберігається.

11.21.2 Examples

  • Зробіть кожен зелений піксель у вхідному зображенні прозорим:
    ffmpeg -i input.png -vf chromakey=green out.png
    
  • Накладіть зелене відео на статичний чорний фон.
    ffmpeg -f lavfi -i color=c=black:s=1280x720 -i video.mp4 -shortest -filter_complex "[1:v]chromakey=0x70de77:0.1:0.2[ckout];[0:v][ckout]overlay[out]" -map "[out]" output.mkv
    

11.22 chromakey_cuda

CUDA прискорює колірну/кольорову маніпуляцію YUV.

Цей фільтр працює як звичайний фільтр хромакей, але працює з кадрами CUDA. для більш детальної інформації та параметрів дивіться chromakey .

11.22.1 Examples

  • Зробіть усі зелені пікселі у вхідному відео прозорими та використовуйте їх як накладання для іншого відео:
    ./ffmpeg \
        -hwaccel cuda -hwaccel_output_format cuda -i input_green.mp4  \
        -hwaccel cuda -hwaccel_output_format cuda -i base_video.mp4 \
        -init_hw_device cuda \
        -filter_complex \
        " \
            [0:v]chromakey_cuda=0x25302D:0.1:0.12:1[overlay_video]; \
            [1:v]scale_cuda=format=yuv420p[base]; \
            [base][overlay_video]overlay_cuda" \
        -an -sn -c:v h264_nvenc -cq 20 output.mp4
    
  • Обробити два джерела програмного забезпечення, явно завантаживши кадри:
    ./ffmpeg -init_hw_device cuda=cuda -filter_hw_device cuda \
        -f lavfi -i color=size=800x600:color=white,format=yuv420p \
        -f lavfi -i yuvtestsrc=size=200x200,format=yuv420p \
        -filter_complex \
        " \
            [0]hwupload[under]; \
            [1]hwupload,chromakey_cuda=green:0.1:0.12[over]; \
            [under][over]overlay_cuda" \
        -c:v hevc_nvenc -cq 18 -preset slow output.mp4
    

11.23 chromanr

Зменшити шум кольоровості.

Фільтр приймає такі параметри:

thres

Встановіть поріг для усереднення значень кольоровості. Сума абсолютної різниці піксельних компонентів Y, U та V поточного пікселя та сусідніх пікселів, нижчих за цей поріг, буде використано для усереднення. Компонент Luma залишається без змін і копіюється на вихід. Значення за замовчуванням — 30. Дозволений діапазон — від 1 до 200.

sizew

Встановіть горизонтальний радіус прямокутника, який використовується для усереднення. Дозволений діапазон — від 1 до 100. Значення за замовчуванням — 5.

sizeh

Встановіть вертикальний радіус прямокутника, який використовується для усереднення. Дозволений діапазон — від 1 до 100. Значення за замовчуванням — 5.

stepw

Встановіть горизонтальний крок при усередненні. Значення за замовчуванням — 1. Дозволений діапазон — від 1 до 50. Здебільшого корисний для прискорення фільтрації.

steph

Встановіть вертикальний крок при усередненні. Значення за замовчуванням — 1. Дозволений діапазон — від 1 до 50. Здебільшого корисний для прискорення фільтрації.

threy

Встановіть порогове значення Y для усереднення значень кольоровості. Встановіть точніший контроль для максимально допустимої різниці між компонентами Y поточного пікселя та сусідніх пікселів. Значення за замовчуванням — 200. Дозволений діапазон — від 1 до 200.

threu

Встановіть порогове значення U для усереднення значень кольоровості. Встановіть точніший контроль для максимально допустимої різниці між компонентами U поточного пікселя та сусідніх пікселів. Значення за замовчуванням — 200. Дозволений діапазон — від 1 до 200.

threv

Встановіть порогове значення V для усереднення значень кольоровості. Встановіть точніший контроль для максимально допустимої різниці між компонентами V поточного пікселя та сусідніх пікселів. Значення за замовчуванням — 200. Дозволений діапазон — від 1 до 200.

distance

Установіть тип відстані, що використовується в обчисленнях.

'manhattan'

Абсолютна різниця.

'euclidean'

Різниця в квадраті.

Тип відстані за замовчуванням – manhattan.

11.23.1 Commands

Цей фільтр підтримує ті самі команди , що й параметри. Команда приймає той самий синтаксис відповідного параметра.

11.24 chromashift

Зсув кольорових пікселів по горизонталі та/або вертикалі.

Фільтр приймає такі параметри:

cbh

Встановіть величину зсуву хроматично-синього кольору по горизонталі.

cbv

Встановіть величину вертикального зсуву кольорового синього.

crh

Встановіть величину зсуву хроматично-червоного по горизонталі.

crv

Встановіть величину вертикального зсуву хроматично-червоного.

edge

Встановити режим краю, може бути smear, за замовчуванням або warp.

11.24.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

11.25 ciescope

Відображення кольорової діаграми CIE з пікселями, накладеними на неї.

Фільтр приймає такі параметри:

system

Встановити систему кольорів.

'ntsc, 470m'
'ebu, 470bg'
'smpte'
'240m'
'apple'
'widergb'
'cie1931'
'rec709, hdtv'
'uhdtv, rec2020'
'dcip3'
cie

Встановити систему CIE.

'xyy'
'ucs'
'luv'
gamuts

Встановіть, які гами малювати.

systemДоступні значення див .

size, s

Встановіть розмір ciescope, за замовчуванням встановлено 512.

intensity, i

Установіть інтенсивність, яка використовується для відображення значень вхідних пікселів на діаграмі CIE.

contrast

Встановіть контраст, який використовується для малювання кольорів язика, які виходять за межі гами активної системи кольорів.

corrgamma

Правильна гамма, що відображається на осці, за замовчуванням увімкнено.

showwhite

Показувати білу точку на діаграмі CIE, за замовчуванням вимкнено.

gamma

Встановити вхідну гамму. Використовується лише з вхідним простором кольорів XYZ.

fill

Заповніть кольорами CIE. За замовчуванням увімкнено.

11.26 codecview

Візуалізуйте інформацію, експортовану деякими кодеками.

Деякі кодеки можуть експортувати інформацію через кадри за допомогою побічних даних або іншими засобами. Наприклад, деякі кодеки на основі MPEG експортують вектори руху через export_mvsпрапор у кодекуflags2варіант.

Фільтр приймає такі параметри:

block

Відображення структури розділу блоку за допомогою площини яскравості.

mv

Встановіть вектори руху для візуалізації.

Доступні прапорці для mv:

'pf'

передбачувані MV P-кадрів

'bf'

передбачувані MV B-кадрів

'bb'

зворотні прогнози MV B-кадрів

qp

Відображення параметрів квантування за допомогою площин кольоровості.

mv_type, mvt

Встановіть тип векторів руху для візуалізації. Включає MV з усіх кадрів, якщо не вказано frame_typeпараметром.

Доступні прапорці для mv_type:

'fp'

передбачувані MV

'bp'

зворотні прогнози MVs

frame_type, ft

Установіть тип кадру для візуалізації векторів руху.

Доступні прапорці для frame_type:

'if'

внутрішньокодовані кадри (I-кадри)

'pf'

передбачені кадри (P-кадри)

'bf'

двонаправлено передбачені кадри (B-кадри)

11.26.1 Examples

  • Візуалізуйте передбачувані MV усіх кадрів за допомогою ffplay:
    ffplay -flags2 +export_mvs input.mp4 -vf codecview=mv_type=fp
    
  • Візуалізуйте багатонаправлені MV P і B-кадрів за допомогою ffplay:
    ffplay -flags2 +export_mvs input.mp4 -vf codecview=mv=pf+bf+bb
    

11.27 colorbalance

Змінити інтенсивність основних кольорів (червоного, зеленого та синього) вхідних кадрів.

Фільтр дозволяє регулювати вхідний кадр у тінях, середніх тонах або світлих областях для балансу червоно-блакитного, зелено-пурпурового або синьо-жовтого.

Позитивне значення коригування зміщує баланс до основного кольору, а від’ємне значення – до додаткового кольору.

Фільтр приймає такі параметри:

rs
gs
bs

Налаштуйте червоні, зелені та сині тіні (найтемніші пікселі).

rm
gm
bm

Налаштуйте червоні, зелені та сині півтони (середні пікселі).

rh
gh
bh

Відрегулюйте червоні, зелені та сині відтінки (найяскравіші пікселі).

Дозволені діапазони для параметрів: [-1.0, 1.0]. За замовчуванням: 0.

pl

Зберігайте легкість при зміні колірного балансу. За замовчуванням вимкнено.

11.27.1 Examples

  • Додайте червоний відтінок тіням:
    colorbalance=rs=.3
    

11.27.2 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

11.28 colorcontrast

Налаштуйте контраст кольорів між компонентами RGB.

Фільтр приймає такі параметри:

rc

Встановіть червоно-блакитний контраст. За замовчуванням 0,0. Дозволений діапазон від -1,0 до 1,0.

gm

Встановіть зелено-пурпуровий контраст. За замовчуванням 0,0. Дозволений діапазон від -1,0 до 1,0.

by

Встановити синьо-жовтий контраст. За замовчуванням 0,0. Дозволений діапазон від -1,0 до 1,0.

rcw
gmw
byw

Встановіть вагу кожного значення параметра rc, gm, by. Значення за замовчуванням 0,0. Дозволений діапазон від 0,0 до 1,0. Якщо всі ваги дорівнюють 0,0, фільтрування вимкнено.

pl

Встановіть ступінь збереження світлості. Значення за замовчуванням 0,0. Дозволений діапазон від 0,0 до 1,0.

11.28.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

11.29 colorcorrect

Налаштуйте колірний баланс білого вибірково для чорного та білого кольорів. Цей фільтр працює в колірному просторі YUV.

Фільтр приймає такі параметри:

rl

Встановіть червону пляму тіні. Дозволений діапазон від -1,0 до 1,0. Значення за замовчуванням 0.

bl

Встановіть синю пляму тіні. Дозволений діапазон від -1,0 до 1,0. Значення за замовчуванням 0.

rh

Встановіть червону точку виділення. Дозволений діапазон від -1,0 до 1,0. Значення за замовчуванням 0.

bh

Встановіть червону точку виділення. Дозволений діапазон від -1,0 до 1,0. Значення за замовчуванням 0.

saturation

Встановіть ступінь насичення. Дозволений діапазон від -3,0 до 3,0. Значення за замовчуванням 1.

analyze

Якщо встановити будь-яке інше значення, manualвін аналізуватиме кожен кадр і використовуватиме похідні параметри для фільтрації вихідного кадру.

Можливі значення:

'manual'
'average'
'minmax'
'median'

Значення за замовчуванням: manual.

11.29.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

11.30 colorchannelmixer

Налаштуйте вхідні кадри відео шляхом повторного змішування каналів кольорів.

Цей фільтр змінює колірний канал, додаючи значення, пов’язані з іншими каналами тих самих пікселів. Наприклад, якщо значення, яке потрібно змінити, червоне, вихідне значення буде таким:

red=red*rr + blue*rb + green*rg + alpha*ra

Фільтр приймає такі параметри:

rr
rg
rb
ra

Налаштуйте внесок вхідних червоного, зеленого, синього та альфа-каналів для вихідного червоного каналу. За замовчуванням 1для rr, і 0для rg, rbі ra.

gr
gg
gb
ga

Відрегулюйте внесок вхідних червоного, зеленого, синього та альфа-каналів для вихідного зеленого каналу. За замовчуванням 1для gg, і 0для gr, gbі ga.

br
bg
bb
ba

Відрегулюйте внесок вхідних червоного, зеленого, синього та альфа-каналів для вихідного синього каналу. За замовчуванням 1для bb, і 0для br, bgі ba.

ar
ag
ab
aa

Налаштуйте внесок вхідного червоного, зеленого, синього та альфа-каналів для вихідного альфа-каналу. За замовчуванням 1для aa, і 0для ar, agі ab.

Дозволені діапазони для параметрів: [-2.0, 2.0].

pc

Встановити режим збереження кольору. Допустимі значення:

'none'

Вимкнути збереження кольору, це стандартно.

'lum'

Зберігайте яскравість.

'max'

Зберігати максимальне значення триплету RGB.

'avg'

Зберегти середнє значення триплету RGB.

'sum'

Зберігати сумарне значення триплету RGB.

'nrm'

Збереження нормалізованого значення триплету RGB.

'pwr'

Зберігає значення потужності триплету RGB.

pa

Установіть кількість збереження кольору під час зміни кольорів. Дозволений діапазон від [0.0, 1.0]. За замовчуванням це 0.0, тому вимкнено.

11.30.1 Examples

  • Перетворити джерело в градації сірого:
    colorchannelmixer=.3:.4:.3:0:.3:.4:.3:0:.3:.4:.3
    
  • Імітація тонів сепії:
    colorchannelmixer=.393:.769:.189:0:.349:.686:.168:0:.272:.534:.131
    

11.30.2 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

11.31 colorize

Накладення суцільного кольору на відеопотік.

Фільтр приймає такі параметри:

hue

Встановіть відтінок кольору. Дозволений діапазон — від 0 до 360. Значення за замовчуванням — 0.

saturation

Встановити насиченість кольору. Дозволений діапазон — від 0 до 1. Значення за замовчуванням — 0,5.

lightness

Встановити яскравість кольору. Дозволений діапазон — від 0 до 1. Значення за замовчуванням — 0,5.

mix

Встановіть мікс джерела легкості. За замовчуванням встановлено 1.0. Дозволений діапазон від 0,0 до 1,0.

11.31.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

11.32 colorkey

Колірний простір RGB. Цей фільтр працює з кадрами 8-бітного формату RGB, встановлюючи альфа-компонент кожного пікселя, який потрапляє в радіус подібності ключового кольору, на 0. Значення альфа для пікселів за межами радіуса подібності залежить від значення параметра змішування.

Фільтр приймає такі параметри:

color

Встановіть колір, для якого альфа буде встановлено на 0 (повна прозорість). Див. (ffmpeg-utils) розділ «Колір» у посібнику ffmpeg-utils . Типовим є black.

similarity

Встановіть радіус від основного кольору, у межах якого інші кольори також матимуть повну прозорість. Обчислена відстань пов’язана з одиницею часткової відстані в 3D-просторі між значеннями RGB основного кольору та кольором пікселя. Діапазон від 0,01 до 1,0. 0,01 відповідає в дуже малому радіусі навколо точного кольору ключа, тоді як 1,0 відповідає всьому. Типовим є 0.01.

blend

Встановіть спосіб обчислення значення альфа для пікселів, які виходять за межі радіуса подібності. 0.0 робить пікселі або повністю прозорими, або повністю непрозорими. Вищі значення призводять до напівпрозорих пікселів, а з більшою прозорістю колір пікселя схожіший на основний колір. Діапазон від 0,0 до 1,0. Типовим є 0.0.

11.32.1 Examples

  • Зробіть кожен зелений піксель у вхідному зображенні прозорим:
    ffmpeg -i input.png -vf colorkey=green out.png
    
  • Накладіть зелене відео на статичне фонове зображення.
    ffmpeg -i background.png -i video.mp4 -filter_complex "[1:v]colorkey=0x3BBD1E:0.3:0.2[ckout];[0:v][ckout]overlay[out]" -map "[out]" output.flv
    

11.32.2 Commands

Цей фільтр підтримує ті самі команди , що й параметри. Команда приймає той самий синтаксис відповідного параметра.

Якщо вказаний вираз недійсний, його поточне значення зберігається.

11.33 colorhold

Видалити всю інформацію про колір для всіх кольорів RGB, крім певного.

Фільтр приймає такі параметри:

color

Колір, який не можна замінити на нейтральний сірий.

similarity

Відсоток схожості з вищевказаним кольором. 0,01 відповідає лише точному кольору ключа, тоді як 1,0 відповідає всьому.

blend

Відсоток суміші. 0.0 робить пікселі повністю сірими. Вищі значення призводять до кращого збереження кольору.

11.33.1 Commands

Цей фільтр підтримує ті самі команди , що й параметри. Команда приймає той самий синтаксис відповідного параметра.

Якщо вказаний вираз недійсний, його поточне значення зберігається.

11.34 colorlevels

Налаштуйте кадри вхідного відео за допомогою рівнів.

Фільтр приймає такі параметри:

rimin
gimin
bimin
aimin

Налаштуйте червону, зелену, синю та альфа-вхідну точку чорного. Дозволені діапазони для параметрів: [-1.0, 1.0]. За замовчуванням: 0.

rimax
gimax
bimax
aimax

Налаштуйте червону, зелену, синю та альфа-вхідну білу точку. Дозволені діапазони для параметрів: [-1.0, 1.0]. За замовчуванням: 1.

Вхідні рівні використовуються для освітлення відблисків (яскраві тони), затемнення тіней (темні тони), зміни балансу яскравих і темних тонів.

romin
gomin
bomin
aomin

Налаштуйте червону, зелену, синю та альфа-вихідну точку чорного. Дозволені діапазони для параметрів: [0, 1.0]. За замовчуванням: 0.

romax
gomax
bomax
aomax

Відрегулюйте червону, зелену, синю та альфа-вихідну точку білого. Дозволені діапазони для параметрів: [0, 1.0]. За замовчуванням: 1.

Вихідні рівні дозволяють вручну вибрати обмежений діапазон вихідних рівнів.

preserve

Встановити режим збереження кольору. Допустимі значення:

'none'

Вимкнути збереження кольору, це стандартно.

'lum'

Зберігайте яскравість.

'max'

Зберігати максимальне значення триплету RGB.

'avg'

Зберегти середнє значення триплету RGB.

'sum'

Зберігати сумарне значення триплету RGB.

'nrm'

Збереження нормалізованого значення триплету RGB.

'pwr'

Зберігає значення потужності триплету RGB.

11.34.1 Examples

  • Зробити відеовихід темнішим:
    colorlevels=rimin=0.058:gimin=0.058:bimin=0.058
    
  • Збільшити контраст:
    colorlevels=rimin=0.039:gimin=0.039:bimin=0.039:rimax=0.96:gimax=0.96:bimax=0.96
    
  • Зробіть вихід відео світлішим:
    colorlevels=rimax=0.902:gimax=0.902:bimax=0.902
    
  • Збільшити яскравість:
    colorlevels=romin=0.5:gomin=0.5:bomin=0.5
    

11.34.2 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

11.35 colormap

Застосуйте користувацькі карти кольорів до відеопотоку.

Цей фільтр потребує трьох вхідних відеопотоків. Перший потік – це відеопотік, який буде відфільтровано. Другий і третій відеопотік визначають кольорові плями для вихідного кольору та відображення цільового кольору.

Фільтр приймає такі параметри:

patch_size

Установіть вихідний і цільовий розмір фрагмента відеопотоку в пікселях.

nb_patches

Установіть максимальну кількість використовуваних патчів із вихідного та цільового відеопотоку. Значення за замовчуванням — кількість патчів, доступних у додаткових відеопотоках. Максимальна дозволена кількість патчів становить 64.

type

Установіть налаштування, які використовуються для цільових кольорів. Може бути relativeабо absolute. За замовчуванням: absolute.

kernel

Встановіть ядро, яке використовується для вимірювання відмінностей кольорів між відображеними кольорами.

Допустимі значення:

'euclidean'
'weuclidean'

Типовим є euclidean.

11.36 colormatrix

Перетворення кольорової матриці.

Фільтр приймає такі параметри:

src
dst

Укажіть матрицю кольорів джерела та призначення. Необхідно вказати обидва значення.

Допустимі значення:

'bt709'

BT.709

'fcc'

FCC

'bt601'

BT.601

'bt470'

BT.470

'bt470bg'

BT.470BG

'smpte170m'

СМПТЕ-170М

'smpte240m'

СМПТЕ-240М

'bt2020'

BT.2020

Наприклад, щоб конвертувати з BT.601 на SMPTE-240M, скористайтеся командою:

colormatrix=bt601:smpte240m

11.37 colorspace

Перетворення колірного простору, характеристик передачі або основних кольорів. Вхідне відео має мати рівний розмір.

Фільтр приймає такі параметри:

all

Вкажіть усі властивості кольору одночасно.

Допустимі значення:

'bt470m'

БТ.470М

'bt470bg'

BT.470BG

'bt601-6-525'

BT.601-6 525

'bt601-6-625'

BT.601-6 625

'bt709'

BT.709

'smpte170m'

СМПТЕ-170М

'smpte240m'

СМПТЕ-240М

'bt2020'

BT.2020

space

Укажіть вихідний простір кольорів.

Допустимі значення:

'bt709'

BT.709

'fcc'

FCC

'bt470bg'

BT.470BG або BT.601-6 625

'smpte170m'

СМПТЕ-170М або БТ.601-6 525

'smpte240m'

СМПТЕ-240М

'ycgco'

YCgCo

'bt2020ncl'

BT.2020 з непостійною яскравістю

trc

Вкажіть вихідні характеристики передачі.

Допустимі значення:

'bt709'

BT.709

'bt470m'

БТ.470М

'bt470bg'

BT.470BG

'gamma22'

Постійна гамма 2,2

'gamma28'

Постійна гамма 2,8

'smpte170m'

SMPTE-170M, BT.601-6 625 або BT.601-6 525

'smpte240m'

СМПТЕ-240М

'srgb'

SRGB

'iec61966-2-1'

iec61966-2-1

'iec61966-2-4'

iec61966-2-4

'xvycc'

xvycc

'bt2020-10'

BT.2020 для 10-бітного вмісту

'bt2020-12'

BT.2020 для 12-бітного вмісту

primaries

Укажіть основні кольори виводу.

Допустимі значення:

'bt709'

BT.709

'bt470m'

БТ.470М

'bt470bg'

BT.470BG або BT.601-6 625

'smpte170m'

СМПТЕ-170М або БТ.601-6 525

'smpte240m'

СМПТЕ-240М

'film'

фільм

'smpte431'

СМПТЕ-431

'smpte432'

СМПТЕ-432

'bt2020'

BT.2020

'jedec-p22'

Люмінофори JEDEC P22

range

Вкажіть вихідний діапазон кольорів.

Допустимі значення:

'tv'

Телевізійний (обмежений) діапазон

'mpeg'

Діапазон MPEG (обмежений).

'pc'

ПК (повний) асортимент

'jpeg'

JPEG (повний) діапазон

format

Укажіть формат вихідного кольору.

Допустимі значення:

'yuv420p'

YUV 4:2:0 планарний 8 біт

'yuv420p10'

YUV 4:2:0 планарний 10 біт

'yuv420p12'

Планар YUV 4:2:0 12 біт

'yuv422p'

YUV 4:2:2 планарний 8 біт

'yuv422p10'

YUV 4:2:2 плоский 10 біт

'yuv422p12'

YUV 4:2:2 планарний 12 біт

'yuv444p'

YUV 4:4:4 планарний 8 біт

'yuv444p10'

YUV 4:4:4 плоский 10 біт

'yuv444p12'

Планар YUV 4:4:4 12 біт

fast

Виконайте швидке перетворення, яке пропускає гамма/первинну корекцію. Це займе значно менше ЦП, але буде математично неправильним. Щоб отримати результати, сумісні з результатами фільтра colormatrix, використовуйте fast=1.

dither

Вкажіть режим дизерінгу.

Допустимі значення:

'none'

Без тремтіння

'fsb'

Дизерінг Флойда-Штейнберга

wpadapt

Режим адаптації Whitepoint.

Допустимі значення:

'bradford'

Адаптація білої точки Бредфорда

'vonkries'

von Kries whitepoint адаптація

'identity'

адаптація білої точки ідентифікації (тобто без адаптації білої точки)

iall

Перевизначити всі властивості введення одночасно. Ті самі прийнятні значення, що й усі .

ispace

Перевизначити простір кольорів введення. Ті самі прийнятні значення, що й пробіл .

iprimaries

Перевизначати основні кольори введення. Ті самі прийнятні значення, що й первинні .

itrc

Перевизначати вхідні характеристики передачі. Ті самі прийнятні значення, що й trc .

irange

Перевизначити діапазон кольорів введення. Ті самі прийнятні значення, що й діапазон .

Фільтр перетворює характеристики передачі, колірний простір і первинні кольори на вказані користувачем значення. Якщо вихідне значення не вказано, встановлюється значення за замовчуванням на основі властивості "все". Якщо ця властивість також не вказана, фільтр зареєструє помилку. Діапазон і формат вихідних кольорів за замовчуванням мають те саме значення, що й діапазон і формат вхідних кольорів. Характеристики передачі вхідних даних, колірний простір, первинні кольори та діапазон кольорів повинні бути встановлені на вхідних даних. Якщо будь-який із них відсутній, фільтр зареєструє помилку, і перетворення не відбудеться.

Наприклад, щоб перетворити вхід на SMPTE-240M, скористайтеся командою:

colorspace=smpte240m

11.38 colortemperature

Налаштуйте колірну температуру у відео, щоб імітувати варіації колірної температури навколишнього середовища.

Фільтр приймає такі параметри:

temperature

Встановіть температуру в Кельвінах. Дозволений діапазон – від 1000 до 40000. Значення за замовчуванням – 6500 K.

mix

Встановити змішування з фільтрованим виходом. Дозволений діапазон — від 0 до 1. Значення за замовчуванням — 1.

pl

Встановіть ступінь збереження світлості. Дозволений діапазон — від 0 до 1. Значення за замовчуванням — 0.

11.38.1 Commands

Цей фільтр підтримує ті самі команди , що й параметри.

11.39 convolution

Застосуйте згортку 3x3, 5x5, 7x7 або горизонтальну/вертикальну до 49 елементів.

Фільтр приймає такі параметри:

0m
1m
2m
3m

Задайте матрицю для кожної площини. Матриця — це послідовність із 9, 25 або 49 цілих чисел зі знаком у squareрежимі та від 1 до 49 непарних чисел зі знаком у rowрежимі.

0rdiv
1rdiv
2rdiv
3rdiv

Встановіть множник для розрахункового значення для кожної площини. Якщо не встановлено або 0, це буде сума всіх елементів матриці.

0bias
1bias
2bias
3bias

Встановіть ухил для кожної площини. Це значення додається до результату множення. Корисно, щоб зробити загальне зображення яскравішим або темнішим. За замовчуванням 0,0.

0mode
1mode
2mode
3mode

Встановіть режим матриці для кожної площини. Може бути square, rowабо column. Типовим є square.

11.39.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

11.39.2 Examples

  • Застосувати різкість:
    convolution="0 -1 0 -1 5 -1 0 -1 0:0 -1 0 -1 5 -1 0 -1 0:0 -1 0 -1 5 -1 0 -1 0:0 -1 0 -1 5 -1 0 -1 0"
    
  • Застосувати розмиття:
    convolution="1 1 1 1 1 1 1 1 1:1 1 1 1 1 1 1 1 1:1 1 1 1 1 1 1 1 1:1 1 1 1 1 1 1 1 1:1/9:1/9:1/9:1/9"
    
  • Застосувати покращення країв:
    convolution="0 0 0 -1 1 0 0 0 0:0 0 0 -1 1 0 0 0 0:0 0 0 -1 1 0 0 0 0:0 0 0 -1 1 0 0 0 0:5:1:1:1:0:128:128:128"
    
  • Застосувати визначення країв:
    convolution="0 1 0 1 -4 1 0 1 0:0 1 0 1 -4 1 0 1 0:0 1 0 1 -4 1 0 1 0:0 1 0 1 -4 1 0 1 0:5:5:5:1:0:128:128:128"
    
  • Застосуйте лапласівський детектор країв, який включає діагоналі:
    convolution="1 1 1 1 -8 1 1 1 1:1 1 1 1 -8 1 1 1 1:1 1 1 1 -8 1 1 1 1:1 1 1 1 -8 1 1 1 1:5:5:5:1:0:128:128:0"
    
  • Нанесіть тиснення:
    convolution="-2 -1 0 -1 1 1 0 1 2:-2 -1 0 -1 1 1 0 1 2:-2 -1 0 -1 1 1 0 1 2:-2 -1 0 -1 1 1 0 1 2"
    

11.40 convolve

Застосуйте двовимірну згортку відеопотоку в частотній області, використовуючи другий потік як імпульс.

Фільтр приймає такі параметри:

planes

Визначте, які площини обробляти.

impulse

Встановити, які імпульсні відеокадри будуть оброблятися, можна first або all. Типовим є all.

Фільтр convolveтакож підтримує параметри синхронізації кадрів .

11.41 copy

Скопіюйте джерело вхідного відео без змін на вихід. Це в основному корисно для тестування.

11.42 coreimage

Фільтрація відео на GPU за допомогою Apple CoreImage API на OSX.

Апаратне прискорення базується на контексті OpenGL. Зазвичай це означає, що він обробляється апаратним забезпеченням відео. Однак існують програмні реалізації OpenGL, що означає відсутність гарантії на апаратну обробку. Це залежить від відповідної OSX.

Існує багато фільтрів і генераторів зображень, наданих компанією Apple, які пропонують широкий вибір опцій. Фільтр має мати посилання на його назву разом із параметрами.

Фільтр основного зображення приймає такі параметри:

list_filters

Перелічіть усі доступні фільтри та генератори разом із усіма відповідними параметрами, а також можливі мінімальні та максимальні значення разом із значеннями за замовчуванням.

list_filters=true
filter

Укажіть усі фільтри за їхніми відповідними назвами та параметрами. Використовуйте list_filtersдля визначення всіх дійсних імен і параметрів фільтрів. Числові параметри задаються значенням з плаваючою точкою та автоматично прив’язуються до відповідного діапазону значень. Параметри вектора та кольору мають бути визначені списком значень з плаваючою точкою, розділених пробілами. Має бути зроблено екранування персонажів. defaultДля використання стандартних параметрів для фільтра доступна спеціальна назва параметра.

Необхідно вказати одну defaultабо хоча б одну з опцій фільтра. Усі пропущені параметри використовуються зі значеннями за замовчуванням. Синтаксис рядка фільтра такий:

filter=<NAME>@<OPTION>=<VALUE>[@<OPTION>=<VALUE>][@...][#<NAME>@<OPTION>=<VALUE>[@<OPTION>=<VALUE>][@...]][#...]
output_rect

Укажіть прямокутник, у якому результат ланцюжка фільтрів буде скопійовано у вхідне зображення. Він задається списком значень float, розділених пробілами:

output_rect=x\ y\ width\ height

Якщо не задано, вихідний прямокутник дорівнює розмірам вхідного зображення. Вихідний прямокутник автоматично обрізається на межах вхідного зображення. Від’ємні значення дійсні для кожного компонента.

output_rect=25\ 25\ 100\ 100

Кілька фільтрів можна з’єднати для послідовної обробки без передачі GPU-HOST, що дозволяє швидко обробляти складні ланцюжки фільтрів. Наразі підтримуються лише фільтри з нульовим (генератори) або точно одним (фільтри) вхідним зображенням і одним вихідним зображенням. Крім того, фільтри переходів ще не можна використовувати за призначенням.

Деякі фільтри генерують вихідні зображення з додатковим доповненням залежно від відповідного ядра фільтра. Заповнення автоматично видаляється, щоб гарантувати, що результат фільтра має такий самий розмір, як і вхідне зображення.

Для генераторів зображень розмір вихідного зображення визначається попереднім вихідним зображенням ланцюжка фільтрів або вхідним зображенням усього ланцюжка фільтрів відповідно. Генератори не використовують інформацію про пікселі цього зображення для генерації результату. Однак згенерований вихід змішується з цим зображенням, що призводить до часткового або повного покриття вихідного зображення.

Джерело відео coreimagesrc можна використовувати для створення вхідних зображень, які безпосередньо подаються в ланцюг фільтрів. При його використанні не потрібне надання вхідних зображень з іншого джерела відео або вхідного відео.

11.42.1 Examples

  • Список усіх доступних фільтрів:
    coreimage=list_filters=true
    
  • Використовуйте фільтр CIBoxBlur із параметрами за замовчуванням, щоб розмити зображення:
    coreimage=filter=CIBoxBlur@default
    
  • Використовуйте ланцюжок фільтрів із значеннями за замовчуванням CISepiaTone та CIVignetteEffect із центром 100x100 і радіусом 50 пікселів:
    coreimage=filter=CIBoxBlur@default#CIVignetteEffect@inputCenter=100\ 100@inputRadius=50
    
  • Використовуйте nullsrc і CIQRCodeGenerator, щоб створити QR-код для домашньої сторінки FFmpeg, поданий як повний і екранований командний рядок для стандартної оболонки bash від Apple:
    ffmpeg -f lavfi -i nullsrc=s=100x100,coreimage=filter=CIQRCodeGenerator@inputMessage=https\\\\\://FFmpeg.org/@inputCorrectionLevel=H -frames:v 1 QRCode.png
    

11.43 cover_rect

Накрийте прямокутний предмет

Він приймає такі варіанти:

cover

Шлях до файлу додаткового зображення обкладинки має бути в yuv420.

mode

Встановити режим покриття.

Він приймає такі значення:

'cover'

накрийте його наданим зображенням

'blur'

покрийте його, інтерполюючи навколишні пікселі

Значення за замовчуванням: blur.

11.43.1 Examples

  • Накрийте прямокутний об’єкт наданим зображенням певного відео за допомогою ffmpeg:
    ffmpeg -i file.ts -vf find_rect=newref.pgm,cover_rect=cover.jpg:mode=cover new.mkv
    

11.44 crop

Обрізати вхідне відео до заданих розмірів.

Він приймає такі параметри:

w, out_w

Ширина вихідного відео. За замовчуванням iw. Цей вираз обчислюється лише один раз під час налаштування фільтра або коли 'w'або'out_w' надіслано команду.

h, out_h

Висота вихідного відео. За замовчуванням ih. Цей вираз обчислюється лише один раз під час налаштування фільтра або коли 'h'або'out_h' надіслано команду.

x

Горизонтальне положення лівого краю вихідного відео у вхідному відео. За замовчуванням (in_w-out_w)/2. Цей вираз обчислюється по кадру.

y

Вертикальна позиція у вхідному відео верхнього краю вихідного відео. За замовчуванням (in_h-out_h)/2. Цей вираз обчислюється по кадру.

keep_aspect

Якщо встановлено значення 1, співвідношення сторін вихідного зображення буде таким самим, як і вхідне, змінюючи співвідношення сторін вихідного зразка. За замовчуванням 0.

exact

Увімкнути точне обрізання. Якщо ввімкнено, відео з підвибіркою буде обрізано за точною шириною/висотою/x/y, як зазначено, і не буде округлено до найближчого меншого значення. За замовчуванням 0.

Параметри out_w, out_h, x, y— це вирази, що містять такі константи:

x
y

Обчислені значення для xта y. Вони оцінюються для кожного нового кадру.

in_w
in_h

Ширина та висота введення.

iw
ih

Це те саме, що in_wі in_h.

out_w
out_h

Вихідні (обрізані) ширина та висота.

ow
oh

Це те саме, що out_wі out_h.

a

те саме, що iw/ih

sar

формат вхідного зразка

dar

формат вхідного дисплея, такий самий, як ( iw/ ih) *sar

hsub
vsub

горизонтальні та вертикальні значення кольоровості. Наприклад, для піксельного формату "yuv422p" hsubдорівнює 2 і vsub1.

n

Номер вхідного кадру, починаючи з 0.

pos

позиція у файлі вхідного кадру, NAN, якщо невідома

t

Мітка часу, виражена в секундах. Це NAN, якщо позначка часу введення невідома.

Вираз для out_wможе залежати від значення out_h, а вираз для out_hможе залежати від out_w, але вони не можуть залежати від xі y, оскільки xі yобчислюються після out_wі out_h.

Параметри xand yвизначають вирази для положення верхнього лівого кута вихідної (необрізаної) області. Вони оцінюються для кожного кадру. Якщо оцінене значення недійсне, воно наближається до найближчого дійсного значення.

Вираз для xможе залежати від y, а вираз для yможе залежати від x.

11.44.1 Examples

  • Область обрізання розміром 100x100 у позиції (12,34).
    crop=100:100:12:34
    

    Використовуючи названі параметри, наведений вище приклад виглядає так:

    crop=w=100:h=100:x=12:y=34
    
  • Обріжте центральну область введення розміром 100x100:
    crop=100:100
    
  • Обріжте центральну область введення розміром 2/3 вхідного відео:
    crop=2/3*in_w:2/3*in_h
    
  • Обрізати центральний квадрат вхідного відео:
    crop=out_w=in_h
    crop=in_h
    
  • Обмежте прямокутник верхнім лівим кутом у позиції 100:100, а правий нижній кут відповідає правому нижньому куту вхідного зображення.
    crop=in_w-100:in_h-100:100:100
    
  • Обріжте 10 пікселів від лівої та правої меж, а також 20 пікселів від верхньої та нижньої меж
    crop=in_w-2*10:in_h-2*20
    
  • Зберігайте лише нижню праву чверть вхідного зображення:
    crop=in_w/2:in_h/2:in_w/2:in_h/2
    
  • Висота культури для отримання грецької гармонії:
    crop=in_w:1/PHI*in_w
    
  • Застосувати ефект тремтіння:
    crop=in_w/2:in_h/2:(in_w-out_w)/2+((in_w-out_w)/2)*sin(n/10):(in_h-out_h)/2 +((in_h-out_h)/2)*sin(n/7)
    
  • Застосувати ефект непостійної камери залежно від мітки часу:
    crop=in_w/2:in_h/2:(in_w-out_w)/2+((in_w-out_w)/2)*sin(t*10):(in_h-out_h)/2 +((in_h-out_h)/2)*sin(t*13)"
    
  • Встановити x залежно від значення y:
    crop=in_w/2:in_h/2:y:10+10*sin(n/10)
    

11.44.2 Commands

Цей фільтр підтримує такі команди:

w, out_w
h, out_h
x
y

Встановіть ширину/висоту вихідного відео та положення по горизонталі/вертикалі у вхідному відео. Команда приймає той самий синтаксис відповідного параметра.

Якщо вказаний вираз недійсний, його поточне значення зберігається.

11.45 cropdetect

Автоматичне визначення розміру кадрування.

Він обчислює необхідні параметри кадрування та друкує рекомендовані параметри через систему реєстрації. Виявлені розміри відповідають нечорній області вхідного відео.

Він приймає такі параметри:

limit

Встановіть вищий поріг значення чорного, який можна додатково вказати від нічого (0) до всього (255 для 8-бітних форматів). Значення інтенсивності, що перевищує встановлене значення, вважається нечорним. За замовчуванням воно дорівнює 24. Ви також можете вказати значення від 0,0 до 1,0, яке буде масштабовано залежно від бітової глибини піксельного формату.

round

Значення, на яке має ділитися ширина/висота. За замовчуванням він дорівнює 16. Зсув автоматично регулюється для центрування відео. Використовуйте 2, щоб отримати лише рівні розміри (потрібно для відео 4:2:2). 16 найкращий під час кодування за допомогою більшості відеокодеків.

skip

Встановіть кількість початкових кадрів, для яких оцінка пропускається. За замовчуванням 2. Діапазон від 0 до INT_MAX.

reset_count, reset

Встановіть лічильник, який визначає, через скільки кадрів cropdetect скине раніше виявлену найбільшу область відео та почне спочатку, щоб визначити поточну оптимальну область кадрування. Значення за замовчуванням 0.

Це може бути корисним, коли логотипи каналів спотворюють область відео. 0 вказує на «ніколи не скидати» та повертає найбільшу область під час відтворення.

11.46 cue

Відкласти фільтрацію відео до заданої мітки часу настінного годинника. Спочатку фільтр проходить даліprerollкількість кадрів, то буферизується не більше bufferкількість кадрів і чекає сигналу. Після досягнення сигналу він пересилає буферизовані кадри, а також будь-які наступні кадри, що надходять на його вхід.

Фільтр можна використовувати для синхронізації виведення кількох процесів ffmpeg для пристроїв виведення в реальному часі, таких як decklink. Встановлюючи затримку в ланцюжок фільтрації та попередню буферизацію кадрів, процес може передавати дані на вихід майже одразу після досягнення цільової позначки часу настінного годинника.

Ідеальна точність кадру не може бути гарантована, але результат достатньо хороший для деяких випадків використання.

cue

Позначка часу, виражена в мітці часу UNIX у мікросекундах. За замовчуванням 0.

preroll

Тривалість вмісту, який буде передано напередодні, у секундах. За замовчуванням 0.

buffer

Максимальна тривалість буферизації вмісту перед очікуванням сигналу, виражена в секундах. За замовчуванням 0.

11.47 curves

Застосуйте коригування кольору за допомогою кривих.

Цей фільтр подібний до інструментів кривих Adobe Photoshop і GIMP. Кожен компонент (червоний, зелений і синій) має свої значення, визначені Nключовими точками, пов’язаними одна з одною за допомогою плавної кривої. На осі х відображаються значення пікселів із вхідного кадру, а на осі ординат – нові значення пікселів, які потрібно встановити для вихідного кадру.

За замовчуванням компонентна крива визначається двома точками (0;0)і (1;1). Це створює пряму лінію, де кожне початкове значення пікселя «підлаштовується» під своє значення, що означає відсутність змін у зображенні.

Фільтр дозволяє перевизначати ці дві точки та додавати ще деякі. Буде визначено нову криву (з використанням інтерполяції природного кубічного сплайну), яка плавно проходитиме через усі ці нові координати. Нові визначені точки повинні суворо зростати по осі абсцис, а їх xзначення yмають бути в [0;1]інтервалі. Якщо обчислені криві вийшли за межі векторних просторів, значення будуть обрізані відповідно.

Фільтр приймає такі параметри:

preset

Виберіть один із доступних кольорів. Цю опцію можна використовувати додатково доr,g,bпараметри; у цьому випадку пізніші параметри мають пріоритет над попередньо встановленими значеннями. Доступні попередні налаштування:

'none'
'color_negative'
'cross_process'
'darker'
'increase_contrast'
'lighter'
'linear_contrast'
'medium_contrast'
'negative'
'strong_contrast'
'vintage'

Типовим є none.

master, m

Встановіть основні ключові точки. Ці точки визначатимуть відображення другого проходу. Його іноді називають відображенням «яскравості» або «значення». Його можна використовувати з r,g,bабоallоскільки він діє як LUT після обробки.

red, r

Встановіть ключові точки для червоного компонента.

green, g

Встановіть ключові точки для зеленої складової.

blue, b

Встановіть ключові точки для синього компонента.

all

Встановіть ключові точки для всіх компонентів (окрім основного). Може використовуватися на додаток до інших параметрів компонентів ключових точок. У цьому випадку невстановлений компонент(и) буде використано це allналаштування.

psfile

Укажіть файл кривих Photoshop ( .acv), з якого потрібно імпортувати налаштування.

plot

Збережіть сценарій Gnuplot кривих у вказаному файлі.

Щоб уникнути деяких конфліктів синтаксису filtergraph, кожен список ключових точок потрібно визначити за допомогою такого синтаксису: x0/y0 x1/y1 x2/y2 ....

11.47.1 Commands

Цей фільтр підтримує ті самі команди , що й параметри.

11.47.2 Examples

  • Трохи збільшити середній рівень синього:
    curves=blue='0/0 0.5/0.58 1/1'
    
  • Вінтажний ефект:
    curves=r='0/0.11 .42/.51 1/0.95':g='0/0 0.50/0.48 1/1':b='0/0.22 .49/.44 1/0.8'
    

    Тут ми отримуємо такі координати для кожного компонента:

    red

    (0;0.11) (0.42;0.51) (1;0.95)

    green

    (0;0) (0.50;0.48) (1;1)

    blue

    (0;0.22) (0.49;0.44) (1;0.80)

  • Попередній приклад також можна досягти за допомогою відповідного вбудованого стилю:
    curves=preset=vintage
    
  • Або просто:
    curves=vintage
    
  • Використовуйте стиль Photoshop і перевизначте точки зеленого компонента:
    curves=psfile='MyCurvesPresets/purple.acv':green='0/0 0.45/0.53 1/1'
    
  • Перевірте криві cross_processпрофілю за допомогою ffmpeg і gnuplot:
    ffmpeg -f lavfi -i color -vf curves=cross_process:plot=/tmp/curves.plt -frames:v 1 -f null -
    gnuplot -p /tmp/curves.plt
    

11.48 datascope

Фільтр аналізу відеоданих.

Цей фільтр показує шістнадцяткові значення пікселів частини відео.

Фільтр приймає такі параметри:

size, s

Встановити розмір вихідного відео.

x

Встановіть зміщення x від місця вибору пікселів.

y

Встановіть зміщення y від місця вибору пікселів.

mode

Установити режим області може бути одним із таких:

'mono'

Намалюйте шістнадцяткові значення пікселів білим кольором на чорному тлі.

'color'

Намалюйте шістнадцяткові значення пікселів кольором пікселів вхідного відео на чорному тлі.

'color2'

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

axis

Намалюйте номери рядків і стовпців ліворуч і вгорі відео.

opacity

Встановити непрозорість фону.

format

Встановити формат відображення числа. Може бути hex, або dec. Типовим є hex.

components

Встановити піксельні компоненти для відображення. За замовчуванням відображаються всі компоненти пікселів.

11.48.1 Commands

Цей фільтр підтримує ті самі команди , що й опції, що виключають sizeопцію.

11.49 dblur

Застосуйте фільтр спрямованого розмиття.

Фільтр приймає такі параметри:

angle

Встановити кут спрямованого розмиття. Типовим є 45.

radius

Встановити радіус спрямованого розмиття. Типовим є 5.

planes

Встановіть, які площини фільтрувати. За замовчуванням усі площини фільтруються.

11.49.1 Commands

Цей фільтр підтримує ті самі команди , що й параметри. Команда приймає той самий синтаксис відповідного параметра.

Якщо вказаний вираз недійсний, його поточне значення зберігається.

11.50 dctdnoiz

Усунення шумів кадрів за допомогою 2D DCT (фільтрація в частотній області).

Цей фільтр не призначений для реального часу.

Фільтр приймає такі параметри:

sigma, s

Встановіть сигма-константу шуму.

Це sigmaвизначає жорсткий поріг 3 * sigma; кожен коефіцієнт DCT (абсолютне значення) нижче цього порогу буде відкинутий.

Якщо вам потрібна більш розширена фільтрація, дивexpr.

Типовим є 0.

overlap

Встановіть кількість пікселів, що перекриваються, для кожного блоку. Оскільки фільтр може працювати повільно, ви можете зменшити це значення ціною менш ефективного фільтра та ризику різноманітних артефактів.

Якщо значення, що перекривається, не дозволяє обробити всю ширину або висоту введення, буде відображено попередження, а відповідні межі не буде припинено.

Значення за замовчуванням - blocksize-1, що є найкращим можливим параметром.

expr, e

Встановіть вираз множника коефіцієнта.

Для кожного коефіцієнта блоку DCT цей вираз буде оцінено як значення множника для коефіцієнта.

Якщо цей параметр встановлено,sigmaпараметр буде проігноровано.

Абсолютне значення коефіцієнта можна отримати через c змінну.

n

Встановіть за blocksizeдопомогою кількості бітів. визначає , що є шириною та висотою оброблених блоків. 1<<nblocksize

Значення за замовчуванням 3(8x8) і може бути збільшено до 416x16 blocksize. Зауважте, що зміна цього параметра має значні наслідки для швидкості обробки. Крім того, більший розмір блоку не обов’язково означає кращу шумозаглушення.

11.50.1 Examples

Застосувати шумопоглинання за допомогою asigmaз 4.5:

dctdnoiz=4.5

Тієї ж операції можна виконати за допомогою системи виразів:

dctdnoiz=e='gte(c, 4.5*3)'

Сильне усунення шуму з використанням розміру блоку 16x16:

dctdnoiz=15:n=4

11.51 deband

Видаліть артефакти смуг із вхідного відео. Він працює шляхом заміни смугових пікселів середнім значенням посилальних пікселів.

Фільтр приймає такі параметри:

1thr
2thr
3thr
4thr

Встановіть поріг виявлення смуг для кожної площини. За замовчуванням 0,02. Допустимий діапазон: від 0,00003 до 0,5. Якщо різниця між поточним пікселем і еталонним пікселем менша за порогове значення, вона вважатиметься смугою.

range, r

Діапазон виявлення смуг у пікселях. За замовчуванням 16. Якщо додатне значення, буде використано випадкове число в діапазоні 0 для встановлення значення. Якщо від’ємне значення, використовуватиметься точне абсолютне значення. Діапазон визначає квадрат із чотирьох пікселів навколо поточного пікселя.

direction, d

Встановіть напрямок у радіанах, з якого будуть порівнюватися чотири пікселі. Якщо позитивний, буде вибрано випадковий напрямок від 0 до встановленого напрямку. Якщо від’ємне, буде вибрано точне абсолютне значення. Наприклад, напрямок 0, -PI або -2*PI радіан вибере лише пікселі в тому самому рядку, а -PI/2 вибере лише пікселі в тому самому стовпці.

blur, b

Якщо ввімкнено, поточний піксель порівнюється із середнім значенням усіх чотирьох навколишніх пікселів. За замовчуванням увімкнено. Якщо вимкнено, поточний піксель порівнюється з усіма чотирма оточуючими пікселями. Піксель вважається смуговим, якщо лише всі чотири відмінності з оточуючими пікселями менші за порогове значення.

coupling, c

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

11.51.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

11.52 deblock

Видаліть артефакти блокування вхідного відео.

Фільтр приймає такі параметри:

filter

Встановіть тип фільтра, може бути weakабо strong. Типовим є strong. Це визначає, який тип деблокування застосовується.

block

Встановіть розмір блоку, допустимий діапазон від 4 до 512. За замовчуванням 8.

alpha
beta
gamma
delta

Встановіть пороги виявлення блокування. Дозволений діапазон від 0 до 1. За замовчуванням: 0.098для alphaта 0.05для решти. Використання вищого порогу дає більшу силу деблокування. Налаштування alphaкерує виявленням порогу на точному краю блоку. Решта параметрів контролює виявлення порогу біля краю. Кожне знизу/вгорі або ліворуч/праворуч. Встановлення будь-якого з них на 0вимикає деблокування.

planes

Встановити площини для фільтрації. За замовчуванням фільтруються всі доступні літаки.

11.52.1 Examples

  • Деблокуйте за допомогою слабкого фільтра та розміру блоку 4 пікселі.
    deblock=filter=weak:block=4
    
  • Усунення блокування за допомогою сильного фільтра, розміру блоку 4 пікселі та спеціальних порогових значень для деблокування більшої кількості країв.
    deblock=filter=strong:block=4:alpha=0.12:beta=0.07:gamma=0.06:delta=0.05
    
  • Подібно до вищезазначеного, але фільтруйте лише першу площину.
    deblock=filter=strong:block=4:alpha=0.12:beta=0.07:gamma=0.06:delta=0.05:planes=1
    
  • Подібно до описаного вище, але фільтруйте лише другу та третю площину.
    deblock=filter=strong:block=4:alpha=0.12:beta=0.07:gamma=0.06:delta=0.05:planes=6
    

11.52.2 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

11.53 decimate

Видаляйте повторювані кадри через рівні проміжки часу.

Фільтр приймає такі параметри:

cycle

Встановіть кількість кадрів, з яких буде видалено один. Встановлення цього значення Nозначає, що один кадр із кожної групи Nкадрів буде видалено. Типовим є 5.

dupthresh

Встановіть поріг для виявлення дублікатів. Якщо показник різниці для кадру менший або дорівнює цьому значенню, він оголошується як дублікат. За замовчуванням1.1

scthresh

Встановити поріг зміни сцени. Типовим є 15.

blockx
blocky

Установіть розмір блоків осей x і y, які використовуються під час метричних обчислень. Великі блоки забезпечують краще придушення шуму, але також гірше розпізнають невеликі рухи. Має бути ступінь двійки. Типовим є 32.

ppsrc

Позначте основний вхід як попередньо оброблений і активуйте чистий вихідний вхідний потік. Це дозволяє попередньо обробляти вхідні дані різними фільтрами, щоб допомогти обчислити показники, зберігаючи вибір кадру без втрат. Якщо встановлено значення 1, перший потік призначений для попередньо оброблених вхідних даних, а другий потік є чистим джерелом, з якого вибираються збережені кадри. Типовим є 0.

chroma

Встановіть, чи враховуватиметься кольоровість у метричних обчисленнях. Типовим є 1.

11.54 deconvolve

Застосуйте двовимірну деконволюцію відеопотоку в частотній області, використовуючи другий потік як імпульс.

Фільтр приймає такі параметри:

planes

Визначте, які площини обробляти.

impulse

Встановити, які імпульсні відеокадри будуть оброблятися, можна first або all. Типовим є all.

noise

Встановіть шум при виконанні поділок. Типовим є 0.0000001. Корисно, коли ширина та висота не однакові та не мають ступеня 2 або якщо потік до згортання мав шум.

Фільтр deconvolveтакож підтримує параметри синхронізації кадрів .

11.55 dedot

Зменште перехресну яскравість (розповзання крапок) і перехресні кольори (веселка) у відео.

Він приймає такі варіанти:

m

Встановити режим роботи. Може бути комбінацією dotcrawlдля зменшення яскравості та/або rainbowsзменшення кольору.

lt

Встановити поріг просторової яскравості. Менші значення збільшують зменшення перехресної яскравості.

tl

Встановіть допуск для тимчасового освітлення. Вищі значення зменшують перехресну яскравість.

tc

Встановіть допуск для часових коливань кольоровості. Вищі значення зменшують перехресне забарвлення.

ct

Встановити часовий поріг кольоровості. Менші значення збільшують зменшення перехресного кольору.

11.56 deflate

Застосуйте до відео ефект здуття.

Цей фільтр замінює піксель локальним (3x3) середнім, враховуючи лише значення, нижчі за піксель.

Він приймає такі варіанти:

threshold0
threshold1
threshold2
threshold3

Обмежте максимальну зміну для кожної площини, за замовчуванням 65535. Якщо 0, площина залишиться незмінною.

11.56.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

11.57 deflicker

Видаліть зміни яскравості тимчасового кадру.

Він приймає такі варіанти:

size, s

Встановити розмір фільтра ковзного середнього в кадрах. За замовчуванням 5. Дозволений діапазон 2–129.

mode, m

Встановіть режим усереднення для згладжування часових коливань яскравості.

Доступні значення:

'am'

Середнє арифметичне

'gm'

Середнє геометричне

'hm'

Середнє гармонійне

'qm'

Середнє квадратичне

'cm'

Середнє кубічне

'pm'

Потужність означає

'median'

Медіана

bypass

Фактично не змінюйте кадр. Корисно, коли потрібні лише метадані.

11.58 dejudder

Усуньте тремтіння, спричинене частково черезрядковим телекіноконтентом.

Дрібку можна ввести, наприклад, за допомогою підтягуючого фільтра. Якщо вихідним джерелом був частково телекіноконтент, вихід pullup,dejudder матиме змінну частоту кадрів. Може змінювати записану частоту кадрів контейнера. Окрім цієї зміни, цей фільтр не впливатиме на постійну частоту кадрів відео.

У цьому фільтрі доступна така опція:

cycle

Укажіть довжину вікна, протягом якого тремтіння повторюється.

Приймає будь-яке ціле число, більше 1. Корисні значення:

'4'

Якщо оригінал було знято на телекіно від 24 до 30 кадрів в секунду (від плівки до NTSC).

'5'

Якщо оригінал було телекіно з 25 до 30 кадрів/с (PAL до NTSC).

'20'

Якщо суміш двох.

Типовим є '4'.

11.59 delogo

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

Він приймає такі параметри:

x
y

Вкажіть координати верхнього лівого кута логотипу. Їх необхідно вказати.

w
h

Укажіть ширину та висоту логотипу, який потрібно очистити. Їх необхідно вказати.

show

Якщо встановлено значення 1, на екрані з’являється зелений прямокутник, щоб спростити пошук потрібних параметрів x, y, wі h. Значення за замовчуванням 0.

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

11.59.1 Examples

  • Встановіть прямокутник, що покриває область з координатами верхнього лівого кута 0,0 і розміром 100x77:
    delogo=x=0:y=0:w=100:h=77
    

11.60 derain

Видаліть дощ у вхідному зображенні/відео, застосувавши методи деренірації на основі згорткових нейронних мереж. Підтримувані моделі:

Навчання, а також сценарії створення моделі надаються в репозиторії за адресою https://github.com/XueweiMeng/derain_filter.git .

Файли рідної моделі (.model) можна створити з файлів моделі TensorFlow (.pb) за допомогою tools/python/convert.py

Фільтр приймає такі параметри:

filter_type

Вкажіть, який фільтр використовувати. Цей параметр приймає такі значення:

'derain'

Зливний фільтр. Щоб провести дренажний фільтр, потрібно використовувати модель дренажу.

'dehaze'

Осушувальний фільтр. Щоб провести фільтр деталізації, потрібно використовувати модель деталі.

Значення за замовчуванням: 'derain'.

dnn_backend

Укажіть, який сервер DNN використовувати для завантаження та виконання моделі. Цей параметр приймає такі значення:

'native'

Рідна реалізація завантаження та виконання DNN.

'tensorflow'

Сервер TensorFlow. Щоб увімкнути цей бекенд, вам потрібно встановити бібліотеку TensorFlow для C (див. https://www.tensorflow.org/install/lang_c ) і налаштувати FFmpeg за допомогою --enable-libtensorflow

Значення за замовчуванням: 'native'.

model

Встановіть шлях до файлу моделі із зазначенням архітектури мережі та її параметрів. Зверніть увагу, що різні серверні програми використовують різні формати файлів. TensorFlow і нативний сервер можуть завантажувати файли лише для свого формату.

Щоб отримати повну функціональність (наприклад, асинхронне виконання), використовуйте фільтр dnn_processing .

11.61 deshake

Спробуйте виправити невеликі зміни горизонтального та/або вертикального зсуву. Цей фільтр допомагає усунути тремтіння камери внаслідок тримання камери в руках, зіткнення зі штативом, пересування транспортним засобом тощо.

Фільтр приймає такі параметри:

x
y
w
h

Укажіть прямокутну область, де обмежити пошук векторів руху. За бажанням пошук векторів руху можна обмежити прямокутною областю кадру, визначеною його верхнім лівим кутом, шириною та висотою. Ці параметри мають те саме значення, що й фільтр Drawbox, який можна використовувати для візуалізації положення обмежувальної рамки.

Це корисно, коли пошук вектора руху може сплутати одночасний рух об’єктів у кадрі з рухом камери.

Якщо для будь-якого або всіх параметрів x, y, wі hвстановлено значення -1, використовується повний кадр. Це дозволяє встановлювати пізніші параметри без визначення обмежувальної рамки для пошуку вектора руху.

За замовчуванням - пошук по всьому кадру.

rx
ry

Укажіть максимальний ступінь руху в напрямках x і y в діапазоні 0-64 пікселів. За замовчуванням 16.

edge

Укажіть, як генерувати пікселі для заповнення прогалин на краю кадру. Доступні значення:

'blank, 0'

Заповніть нулі на порожніх місцях

'original, 1'

Оригінальне зображення на пустих місцях

'clamp, 2'

Значення екструдованого краю в порожніх місцях

'mirror, 3'

Дзеркальний край у порожніх місцях

Значення за замовчуванням: 'mirror'.

blocksize

Укажіть розмір блоку для пошуку руху. Діапазон 4-128 пікселів, за замовчуванням 8.

contrast

Вкажіть поріг контрастності для блоків. Розглядатимуться лише блоки з більшою ніж указана контрастність (різниця між найтемнішими та найсвітлішими пікселями). Діапазон 1-255, за замовчуванням 125.

search

Вкажіть стратегію пошуку. Доступні значення:

'exhaustive, 0'

Встановити вичерпний пошук

'less, 1'

Встановіть менш вичерпний пошук.

Значення за замовчуванням: 'exhaustive'.

filename

Якщо встановлено, детальний журнал пошуку руху записується у вказаний файл.

11.62 despill

Видаліть небажане забруднення кольорів переднього плану, викликане відбитим кольором зеленого або синього екрана.

Цей фільтр приймає такі параметри:

type

Встановіть тип дренажу для використання.

mix

Встановіть, як буде створено карту розливу.

expand

Встановіть, скільки потрібно позбутися залишків розливу.

red

Контролює кількість червоного в області розливу.

green

Контролює кількість зелені в зоні розливу. Має бути -1 для зеленого екрана.

blue

Контролює кількість синього в області розливу. Має бути -1 для синього екрана.

brightness

Контролює яскравість області розливу, зберігаючи кольори.

alpha

Змінити альфа-версію зі згенерованої карти розливу.

11.62.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

11.63 detelecine

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

Цей фільтр приймає такі параметри:

first_field
'top, t'

спочатку верхнє поле

'bottom, b'

нижнє поле спочатку Значення за замовчуванням — top.

pattern

Рядок чисел, що представляє розкривний шаблон, який ви бажаєте застосувати. Значення за замовчуванням — 23.

start_frame

Число, що представляє положення першого кадру відносно телекіно-шаблону. Це потрібно використовувати, якщо потік перерізано. Значення за замовчуванням — 0.

11.64 dilation

Застосуйте ефект розширення до відео.

Цей фільтр замінює піксель локальним (3x3) максимумом.

Він приймає такі варіанти:

threshold0
threshold1
threshold2
threshold3

Обмежте максимальну зміну для кожної площини, за замовчуванням 65535. Якщо 0, площина залишиться незмінною.

coordinates

Прапорець, який визначає піксель, на який потрібно посилатися. За замовчуванням 255, тобто використовуються всі вісім пікселів.

Прапори для локальних карт координат 3x3, як це:

1 2 3 4 5 6 7 8

11.64.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

11.65 displace

Зміщення пікселів, як зазначено другим і третім вхідним потоком.

Він приймає три вхідні потоки та виводить один потік, перший вхід є джерелом, а другий і третій вхідні дані є картами переміщення.

Другий вхід визначає, наскільки зміщувати пікселі вздовж осі x, а третій вказує, наскільки зміщувати пікселі вздовж осі y. Якщо один із потоків карти зміщення завершується, буде використано останній кадр із цієї карти зміщення.

Зауважте, що після створення карти переміщень можна використовувати знову і знову.

Нижче наведено опис прийнятих варіантів.

edge

Встановіть поведінку зміщення для пікселів, які виходять за межі діапазону.

Доступні значення:

'blank'

Відсутні пікселі замінюються чорними пікселями.

'smear'

Сусідні пікселі розсуватимуться, щоб замінити відсутні пікселі.

'wrap'

Пікселі поза межами діапазону обернуті таким чином, щоб вони вказували на пікселі з іншого боку.

'mirror'

Пікселі поза діапазоном буде замінено дзеркальними пікселями.

Типовим є 'smear'.

11.65.1 Examples

  • Додайте ефект хвилі до входу rgb розміру відео hd720:
    ffmpeg -i INPUT -f lavfi -i nullsrc=s=hd720,lutrgb=128:128:128 -f lavfi -i nullsrc=s=hd720,geq='r=128+30*sin(2*PI*X/400+T):g=128+30*sin(2*PI*X/400+T):b=128+30*sin(2*PI*X/400+T)' -lavfi '[0][1][2]displace' OUTPUT
    
  • Додайте ефект хвилі до входу rgb розміру відео hd720:
    ffmpeg -i INPUT -f lavfi -i nullsrc=hd720,geq='r=128+80*(sin(sqrt((X-W/2)*(X-W/2)+(Y-H/2)*(Y-H/2))/220*2*PI+T)):g=128+80*(sin(sqrt((X-W/2)*(X-W/2)+(Y-H/2)*(Y-H/2))/220*2*PI+T)):b=128+80*(sin(sqrt((X-W/2)*(X-W/2)+(Y-H/2)*(Y-H/2))/220*2*PI+T))' -lavfi '[1]split[x][y],[0][x][y]displace' OUTPUT
    

11.66 dnn_classify

Виконайте класифікацію за допомогою глибоких нейронних мереж на основі обмежувальних рамок.

Фільтр приймає такі параметри:

dnn_backend

Укажіть, який сервер DNN використовувати для завантаження та виконання моделі. Ця опція тепер підтримує лише openvino, буде додано бекенд tensorflow.

model

Встановіть шлях до файлу моделі із зазначенням архітектури мережі та її параметрів. Зверніть увагу, що різні серверні програми використовують різні формати файлів.

input

Встановіть вхідну назву мережі dnn.

output

Встановіть вихідну назву мережі dnn.

confidence

Встановіть поріг достовірності (за замовчуванням: 0,5).

labels

Установіть шлях до файлу мітки, вказавши відповідність між ідентифікатором мітки та назвою. Кожна назва мітки записується в один рядок, пропуски та порожні рядки пропускаються. Перший рядок – це ім’я мітки з ідентифікатором 0, а другий рядок – ім’я мітки з ідентифікатором 1 тощо. Ідентифікатор мітки вважається назвою, якщо файл мітки не надано.

backend_configs

Встановіть конфігурації для передачі в серверну частину

Для бекенда tensorflow ви можете встановити його конфігурації за допомогоюsess_configпараметри, використовуйте tools/python/tf_sess_config.py, щоб отримати конфігурації для вашої системи.

11.67 dnn_detect

Виконуйте виявлення об’єктів за допомогою глибоких нейронних мереж.

Фільтр приймає такі параметри:

dnn_backend

Укажіть, який сервер DNN використовувати для завантаження та виконання моделі. Ця опція тепер підтримує лише openvino, буде додано бекенд tensorflow.

model

Встановіть шлях до файлу моделі із зазначенням архітектури мережі та її параметрів. Зверніть увагу, що різні серверні програми використовують різні формати файлів.

input

Встановіть вхідну назву мережі dnn.

output

Встановіть вихідну назву мережі dnn.

confidence

Встановіть поріг достовірності (за замовчуванням: 0,5).

labels

Установіть шлях до файлу мітки, вказавши відповідність між ідентифікатором мітки та назвою. Кожна назва мітки записується в один рядок, пропуски та порожні рядки пропускаються. Перший рядок — це ім’я мітки з ідентифікатором 0 (зазвичай це «фон»), а другий рядок — ім’я мітки з ідентифікатором 1 тощо. Ідентифікатор мітки вважається назвою, якщо файл мітки не надано.

backend_configs

Встановіть конфігурації для передачі в серверну частину. Щоб використовувати асинхронне виконання, установіть async (за замовчуванням: встановлено). Відкат до виконання синхронізації, якщо серверна частина не підтримує асинхронізацію.

11.68 dnn_processing

Обробляйте зображення за допомогою глибоких нейронних мереж. Він працює разом з іншим фільтром, який перетворює піксельний формат кадру на той, який вимагає мережа dnn.

Фільтр приймає такі параметри:

dnn_backend

Укажіть, який сервер DNN використовувати для завантаження та виконання моделі. Цей параметр приймає такі значення:

'native'

Рідна реалізація завантаження та виконання DNN.

'tensorflow'

Сервер TensorFlow. Щоб увімкнути цей бекенд, вам потрібно встановити бібліотеку TensorFlow для C (див. https://www.tensorflow.org/install/lang_c ) і налаштувати FFmpeg за допомогою --enable-libtensorflow

'openvino'

Сервер OpenVINO. Щоб увімкнути цей бекенд, вам потрібно створити та встановити бібліотеку OpenVINO для C (див. https://github.com/openvinotoolkit/openvino/blob/master/build-instruction.md ) і налаштувати FFmpeg за допомогою --enable-libopenvino(–extra-cflags=- I... –extra-ldflags=-L... може знадобитися, якщо файли заголовків і бібліотеки не інстальовано в системний шлях)

Значення за замовчуванням: 'native'.

model

Встановіть шлях до файлу моделі із зазначенням архітектури мережі та її параметрів. Зверніть увагу, що різні серверні програми використовують різні формати файлів. TensorFlow, OpenVINO та нативний бекенд можуть завантажувати файли лише для свого формату.

Файл рідної моделі (.model) можна створити з файлу моделі TensorFlow (.pb) за допомогою tools/python/convert.py

input

Встановіть вхідну назву мережі dnn.

output

Встановіть вихідну назву мережі dnn.

backend_configs

Встановіть конфігурації для передачі в серверну частину. Щоб використовувати асинхронне виконання, установіть async (за замовчуванням: встановлено). Відкат до виконання синхронізації, якщо серверна частина не підтримує асинхронізацію.

Для бекенда tensorflow ви можете встановити його конфігурації за допомогоюsess_configпараметри, використовуйте tools/python/tf_sess_config.py, щоб отримати конфігурації бекенда TensorFlow для вашої системи.

11.68.1 Examples

  • Видалити дощ у кадрі rgb24 за допомогою can.pb (див . фільтр видалення ):
    ./ffmpeg -i rain.jpg -vf format=rgb24,dnn_processing=dnn_backend=tensorflow:model=can.pb:input=x:output=y derain.jpg
    
  • Зменште вдвічі піксельне значення кадру з форматом gray32f:
    ffmpeg -i input.jpg -vf format=grayf32,dnn_processing=model=halve_gray_float.model:input=dnn_in:output=dnn_out:dnn_backend=native -y out.native.png
    
  • Обробка каналу Y за допомогою srcnn.pb (див. фільтр sr ) для кадру з yuv420p (підтримуються планарні формати YUV):
    ./ffmpeg -i 480p.jpg -vf format=yuv420p,scale=w=iw*2:h=ih*2,dnn_processing=dnn_backend=tensorflow:model=srcnn.pb:input=x:output=y -y srcnn.jpg
    
  • Обробляйте канал Y за допомогою espcn.pb (див. фільтр sr ), який змінює розмір кадру, для формату yuv420p (підтримуються планарні формати YUV), скористайтеся tools/python/tf_sess_config.py, щоб отримати конфігурації серверної частини TensorFlow для вашої системи.
    ./ffmpeg -i 480p.jpg -vf format=yuv420p,dnn_processing=dnn_backend=tensorflow:model=espcn.pb:input=x:output=y:backend_configs=sess_config=0x10022805320e09cdccccccccccec3f20012a01303801 -y tmp.espcn.jpg
    

11.69 drawbox

Намалюйте кольорову рамку на вхідному зображенні.

Він приймає такі параметри:

x
y

Вирази, які визначають координати верхнього лівого кута прямокутника. За замовчуванням 0.

width, w
height, h

Вирази, які визначають ширину та висоту коробки; якщо 0, вони інтерпретуються як вхідні ширина та висота. За замовчуванням 0.

color, c

Вкажіть колір поля для запису. Щоб отримати загальний синтаксис цього параметра, перевірте розділ (ffmpeg-utils)"Колір" у посібнику ffmpeg-utils . Якщо використовується спеціальне значення invert, колір краю рамки такий самий, як і відео з перевернутою яскравістю.

thickness, t

Вираз, який задає товщину краю поля. Значення fillстворить заповнений квадрат. Значення за замовчуванням: 3.

Нижче наведено список прийнятних констант.

replace

Застосовується, якщо вхід має альфа-версію. Зі значенням 1пікселі намальованого поля перезапишуть колір відео та альфа-пікселі. За замовчуванням встановлено 0, що поєднує рамку з вхідними даними, залишаючи альфа-версію відео без змін.

Параметри для x, y, wі hє tвиразами, що містять такі константи:

dar

Співвідношення сторін вхідного дисплея таке ж, як ( w/ h) * sar.

hsub
vsub

горизонтальні та вертикальні значення кольоровості. Наприклад, для піксельного формату "yuv422p" hsubдорівнює 2 і vsub1.

in_h, ih
in_w, iw

Ширина та висота введення.

sar

Співвідношення сторін вхідного зразка.

x
y

Координати зміщення x і y, де намальовано рамку.

w
h

Ширина і висота намальованої коробки.

box_source

Джерело блоку можна встановити як side_data_detection_bboxes, якщо ви хочете використовувати дані ящика в блоках виявлення бічних даних.

Якщо box_sourceвстановлено, елементи x, y, widthта heightігноруватимуться, а дані поля все ще використовуватимуться в полях виявлення бічних даних. Тому, будь ласка, не використовуйте цей параметр, якщо ви не впевнені щодо джерела коробки.

t

Товщина витягнутої коробки.

Ці константи дозволяють виразам , , і xпосилатися yодин wна одного, тому ви можете, наприклад, вказати або . hty=x/darh=w/dar

11.69.1 Examples

  • Намалюйте чорну рамку навколо краю вхідного зображення:
    drawbox
    
  • Намалюйте квадрат червоним кольором і непрозорістю 50%:
    drawbox=10:20:200:60:red@0.5
    

    Попередній приклад можна визначити так:

    drawbox=x=10:y=20:w=200:h=60:color=red@0.5
    
  • Заповніть поле рожевим кольором:
    drawbox=x=10:y=10:w=100:h=100:color=pink@0.5:t=fill
    
  • Намалюйте 2-піксельну червону маску 2,40:1:
    drawbox=x=-t:y=0.5*(ih-iw/2.4)-t:w=iw+t*2:h=iw/2.4+t*2:t=2:c=red
    

11.69.2 Commands

Цей фільтр підтримує ті самі команди, що й параметри. Команда приймає той самий синтаксис відповідного параметра.

Якщо вказаний вираз недійсний, його поточне значення зберігається.

11.70 drawgraph

Намалюйте графік, використовуючи метадані вхідного відео.

Він приймає такі параметри:

m1

Установіть ключ метаданих 1-го кадру, значення метаданих якого використовуватимуться для малювання графіка.

fg1

Установіть 1-й вираз кольору переднього плану.

m2

Встановіть ключ метаданих 2-го кадру, значення метаданих яких використовуватимуться для малювання графіка.

fg2

Установіть 2-й вираз кольору переднього плану.

m3

Встановіть ключ метаданих 3-го кадру, значення метаданих якого використовуватимуться для малювання графіка.

fg3

Встановити 3-й вираз кольору переднього плану.

m4

Встановіть ключ метаданих 4-го кадру, значення метаданих якого використовуватимуться для малювання графіка.

fg4

Встановіть 4-й вираз кольору переднього плану.

min

Установіть мінімальне значення значення метаданих.

max

Встановіть максимальне значення значення метаданих.

bg

Установити колір фону графіка. За замовчуванням білий.

mode

Встановити режим графіка.

Доступні значення для режиму:

'bar'
'dot'
'line'

Типовим є line.

slide

Встановити режим слайдів.

Доступні значення для слайда:

'frame'

Намалюйте нову рамку, коли досягнуто правої межі.

'replace'

Замініть старі колонки на нові.

'scroll'

Прокрутіть справа наліво.

'rscroll'

Прокрутіть зліва направо.

'picture'

Намалюйте одну картинку.

Типовим є frame.

size

Встановити розмір графічного відео. Щоб дізнатися про синтаксис цього параметра, перевірте розділ (ffmpeg-utils) «Розмір відео» в посібнику ffmpeg-utils . Значення за замовчуванням — 900x256.

rate, r

Встановіть вихідну частоту кадрів. Значення за замовчуванням: 25.

Вирази кольору переднього плану можуть використовувати такі змінні:

MIN

Мінімальне значення значення метаданих.

MAX

Максимальне значення значення метаданих.

VAL

Поточне значення ключа метаданих.

Колір визначається як 0xAABBGGRR.

Приклад використання метаданих із фільтра signalstats :

signalstats,drawgraph=lavfi.signalstats.YAVG:min=0:max=255

Приклад використання метаданих із фільтра ebur128 :

ebur128=metadata=1,adrawgraph=lavfi.r128.M:min=-120:max=5

11.71 drawgrid

Намалюйте сітку на вхідному зображенні.

Він приймає такі параметри:

x
y

Вирази, які вказують координати деякої точки перетину сітки (призначені для налаштування зсуву). Обидва за замовчуванням 0.

width, w
height, h

Вирази, які вказують ширину та висоту клітинки сітки, якщо 0, вони інтерпретуються як ширина та висота вхідних даних, відповідно, мінус thickness, тому зображення отримує рамку. За замовчуванням 0.

color, c

Вкажіть колір сітки. Щоб отримати загальний синтаксис цього параметра, перевірте розділ (ffmpeg-utils)"Колір" у посібнику ffmpeg-utils . Якщо використовується спеціальне значення invert, колір сітки такий самий, як і відео з перевернутою яскравістю.

thickness, t

Вираз, який задає товщину лінії сітки. Значення за замовчуванням: 1.

Нижче наведено список прийнятних констант.

replace

Застосовується, якщо вхід має альфа-версію. За 1допомогою пікселів намальованої сітки буде перезаписано колір відео та альфа-пікселі. За замовчуванням встановлено 0, що поєднує сітку у вхідні дані, залишаючи альфа-версію відео без змін.

Параметри для x, y, wі hє tвиразами, що містять такі константи:

dar

Співвідношення сторін вхідного дисплея таке ж, як ( w/ h) * sar.

hsub
vsub

горизонтальні та вертикальні значення кольоровості. Наприклад, для піксельного формату "yuv422p" hsubдорівнює 2 і vsub1.

in_h, ih
in_w, iw

Ширина і висота комірки вхідної сітки.

sar

Співвідношення сторін вхідного зразка.

x
y

Координати x і y деякої точки перетину сітки (для налаштування зсуву).

w
h

Ширина і висота намальованої комірки.

t

Товщина намальованої комірки.

Ці константи дозволяють виразам , , і xпосилатися yодин wна одного, тому ви можете, наприклад, вказати або . hty=x/darh=w/dar

11.71.1 Examples

  • Намалюйте сітку з осередками 100x100 пікселів, товщиною 2 пікселі, червоним кольором і непрозорістю 50%:
    drawgrid=width=100:height=100:thickness=2:color=red@0.5
    
  • Намалюйте білу сітку 3x3 з непрозорістю 50%:
    drawgrid=w=iw/3:h=ih/3:t=2:c=white@0.5
    

11.71.2 Commands

Цей фільтр підтримує ті самі команди, що й параметри. Команда приймає той самий синтаксис відповідного параметра.

Якщо вказаний вираз недійсний, його поточне значення зберігається.

11.72 drawtext

Намалюйте текстовий рядок або текст із зазначеного файлу поверх відео за допомогою бібліотеки libfreetype.

Щоб увімкнути компіляцію цього фільтра, вам потрібно налаштувати FFmpeg за допомогою --enable-libfreetype. Щоб увімкнути резервний шрифт за замовчуванням і fontопцію, потрібно налаштувати FFmpeg за допомогою --enable-libfontconfig. Щоб увімкнути text_shapingопцію, вам потрібно налаштувати FFmpeg за допомогою --enable-libfribidi.

11.72.1 Syntax

Він приймає такі параметри:

box

Використовується для малювання рамки навколо тексту за допомогою кольору фону. Значення має бути 1 (увімкнено) або 0 (вимкнено). Значення за умовчанням boxдорівнює 0.

boxborderw

Встановіть ширину рамки, яка буде намальована навколо коробки, за допомогою boxcolor. Значення за умовчанням boxborderwдорівнює 0.

boxcolor

Колір, який використовуватиметься для малювання поля навколо тексту. Щоб дізнатися про синтаксис цього параметра, перевірте розділ (ffmpeg-utils)"Колір" у посібнику ffmpeg-utils .

Значенням за замовчуванням boxcolorє "білий".

line_spacing

Встановіть міжрядковий інтервал у пікселях межі, яка буде намальована навколо поля, за допомогою box. Значення за умовчанням line_spacingдорівнює 0.

borderw

Встановіть ширину рамки, яка буде намальована навколо тексту, за допомогою bordercolor. Значення за умовчанням borderwдорівнює 0.

bordercolor

Установіть колір, який використовуватиметься для малювання рамки навколо тексту. Щоб дізнатися про синтаксис цього параметра, перевірте розділ (ffmpeg-utils)"Колір" у посібнику ffmpeg-utils .

Значенням за замовчуванням bordercolorє "чорний".

expansion

Виберіть спосіб textрозгортання. Може бути none, strftime(застаріле) або normal(за замовчуванням). Додаткову інформацію див . у розділі « Розширення тексту» нижче.

basetime

Встановіть час початку підрахунку. Значення в мікросекундах. Застосовується лише в застарілому режимі розширення strftime. Для емуляції у звичайному режимі розширення використовуйте ptsфункцію, надаючи час початку (у секундах) як другий аргумент.

fix_bounds

Якщо істина, перевірте та виправте текстові координати, щоб уникнути вирізання.

fontcolor

Колір, який буде використовуватися для малювання шрифтів. Щоб дізнатися про синтаксис цього параметра, перевірте розділ (ffmpeg-utils)"Колір" у посібнику ffmpeg-utils .

Значенням за замовчуванням fontcolorє "чорний".

fontcolor_expr

Рядок, який розгортається так само, як textдля отримання динамічного fontcolorзначення. За замовчуванням цей параметр має порожнє значення та не обробляється. Якщо цей параметр установлено, він перекриває fontcolorпараметр.

font

Сімейство шрифтів для малювання тексту. За замовчуванням Sans.

fontfile

Файл шрифту, який буде використовуватися для малювання тексту. Шлях повинен бути включений. Цей параметр є обов’язковим, якщо підтримку fontconfig вимкнено.

alpha

Намалюйте текст, застосовуючи альфа-змішування. Значення може бути числом від 0,0 до 1,0. Вираз також приймає ті самі змінні x, y. Значення за замовчуванням – 1. Див fontcolor_expr.

fontsize

Розмір шрифту, який буде використовуватися для малювання тексту. Стандартне значення fontsize— 16.

text_shaping

Якщо встановлено значення 1, спробуйте сформувати текст (наприклад, змінити порядок тексту справа наліво та з’єднати арабські символи), перш ніж малювати його. В іншому випадку просто намалюйте текст точно так, як задано. За замовчуванням 1 (якщо підтримується).

ft_load_flags

Прапорці, які будуть використовуватися для завантаження шрифтів.

Прапори відображають відповідні прапори, які підтримує libfreetype, і є комбінацією таких значень:

default
no_scale
no_hinting
render
no_bitmap
vertical_layout
force_autohint
crop_bitmap
pedantic
ignore_global_advance_width
no_recurse
ignore_transform
monochrome
linear_design
no_autohint

Значення за замовчуванням - "default".

Для отримання додаткової інформації зверніться до документації для прапорів FT_LOAD_* libfreetype.

shadowcolor

Колір, який використовуватиметься для малювання тіні за намальованим текстом. Щоб дізнатися про синтаксис цього параметра, перевірте розділ (ffmpeg-utils)"Колір" у посібнику ffmpeg-utils .

Значенням за замовчуванням shadowcolorє "чорний".

shadowx
shadowy

Зміщення x і y для положення тіні тексту відносно положення тексту. Вони можуть бути як позитивними, так і негативними значеннями. Значенням за замовчуванням для обох є "0".

start_number

Початковий номер кадру для змінної n/frame_num. Значення за замовчуванням - "0".

tabsize

Розмір у кількості пробілів для відтворення вкладки. Значення за замовчуванням – 4.

timecode

Встановіть початкове подання часового коду у форматі «гг:хх:сс[:;.]фф». Його можна використовувати з текстовим параметром або без нього. timecode_rate необхідно вказати параметр.

timecode_rate, rate, r

Встановіть частоту кадрів тайм-коду (лише тайм-код). Значення буде округлено до найближчого цілого числа. Мінімальне значення - "1". Часовий код із пропуском кадрів підтримується для частот 30 і 60 кадрів.

tc24hmax

Якщо встановлено значення 1, вихід параметра тайм-коду буде змінено на 24 години. За замовчуванням 0 (вимкнено).

text

Текстовий рядок, який буде намальовано. Текст має бути послідовністю символів у кодуванні UTF-8. Цей параметр є обов’язковим, якщо файл не вказано з параметром textfile.

textfile

Текстовий файл, що містить текст для малювання. Текст має бути послідовністю символів у кодуванні UTF-8.

Цей параметр є обов’язковим, якщо з параметром не вказано текстовий рядок text.

Якщо вказано обидва textі textfile, видається помилка.

text_source

Джерело тексту має бути встановлено як side_data_detection_bboxes, якщо ви хочете використовувати текстові дані в bboxах виявлення бічних даних.

Якщо встановлено джерело тексту, textвін textfileігноруватиметься та використовуватиме текстові дані в полях виявлення бічних даних. Тому, будь ласка, не використовуйте цей параметр, якщо ви не впевнені щодо джерела тексту.

reload

Буде textfileперезавантажено через вказаний інтервал кадрів. Обов’язково оновлюйте textfileатомарно, інакше воно може бути прочитано частково або навіть не вийде. Діапазон від 0 до INT_MAX. За замовчуванням 0.

x
y

Вирази, які вказують зсуви, де текст буде намальовано у відеокадрі. Вони відносяться до верхньої/лівої межі вихідного зображення.

Значення за замовчуванням xі yдорівнює "0".

Нижче наведено список прийнятних констант і функцій.

Параметри для xта yє виразами, що містять такі константи та функції:

dar

формат вхідного дисплея, такий самий, як ( w/ h) *sar

hsub
vsub

горизонтальні та вертикальні значення кольоровості. Наприклад, для піксельного формату "yuv422p" hsubдорівнює 2 і vsub1.

line_h, lh

висота кожного рядка тексту

main_h, h, H

висота входу

main_w, w, W

ширина входу

max_glyph_a, ascent

максимальна відстань від базової лінії до найвищої/верхньої координати сітки, яка використовується для розміщення точки контуру гліфа, для всіх відтворених гліфів. Це додатне значення через орієнтацію сітки віссю Y вгору.

max_glyph_d, descent

максимальна відстань від базової лінії до найнижчої координати сітки, яка використовується для розміщення точки контуру гліфа, для всіх відтворених гліфів. Це від’ємне значення через орієнтацію сітки з віссю Y вгору.

max_glyph_h

максимальна висота гліфа, тобто максимальна висота всіх гліфів, що містяться у відтвореному тексті, еквівалентна ascent- descent.

max_glyph_w

максимальна ширина гліфа, тобто максимальна ширина для всіх гліфів, які містяться у відтвореному тексті

n

номер вхідного кадру, починаючи з 0

rand(min, max)

повертає випадкове число між minіmax

sar

Співвідношення сторін вхідного зразка.

t

позначка часу, виражена в секундах, NAN, якщо позначка часу введення невідома

text_h, th

висота відтвореного тексту

text_w, tw

ширина відтвореного тексту

x
y

координати зміщення x і y, де намальовано текст.

Ці параметри дозволяють виразам xі yпосилатися один на одного, тому ви можете, наприклад, вказати y=x/dar.

pict_type

Односимвольний опис типу зображення поточного кадру.

pkt_pos

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

pkt_duration

Тривалість поточного пакета в секундах.

pkt_size

Розмір поточного пакета (у байтах).

11.72.2 Text expansion

Якщоexpansionвстановлено значення strftime, фільтр розпізнає послідовності strftime() у наданому тексті та розгортає їх відповідно. Перевірте документацію strftime(). Ця функція застаріла.

Якщоexpansionвстановлено значення none, текст друкується дослівно.

Якщоexpansionмає значення normal(за замовчуванням), використовується наступний механізм розширення.

Символ зворотної косої риски '\', після якого йде будь-який символ, завжди розширюється до другого символу.

Послідовності форми %{...}розгорнуті. Текст у фігурних дужках — це ім’я функції, за яким, можливо, слідують аргументи, розділені знаком «:». Якщо аргументи містять спеціальні символи або розділювачі (':' або '}'), їх слід екранувати.

Зверніть увагу, що вони, ймовірно, також повинні бути екрановані як значення для textпараметр у рядку аргументу фільтра та як аргумент фільтра в описі filtergraph, і, можливо, також для оболонки, що забезпечує до чотирьох рівнів екранування; використання текстового файлу дозволяє уникнути цих проблем.

Доступні такі функції:

expr, e

Результат обчислення виразу.

Він повинен приймати один аргумент, що вказує вираз для обчислення, який приймає ті самі константи та функції, що xй yзначення та. Зауважте, що не всі константи слід використовувати, наприклад, розмір тексту невідомий під час обчислення виразу, тому константи text_wта text_hматимуть невизначене значення.

expr_int_format, eif

Оцінити значення виразу та вивести як форматоване ціле число.

Перший аргумент — це вираз, який потрібно обчислити, як і для exprфункції. Другий аргумент визначає вихідний формат. Дозволені значення: 'x', 'X', 'd'і'u'. Вони обробляються точно так само, як у printfфункції. Третій параметр є необов'язковим і встановлює кількість позицій, які займає вихід. Його можна використовувати для додавання доповнення нулями зліва.

gmtime

Час роботи фільтра, виражений у UTC. Він може приймати аргумент: рядок формату strftime(). Рядок формату розширено, щоб підтримувати змінну, %[1-6]N яка друкує частки секунди з необов’язково вказаною кількістю цифр.

localtime

Час, коли працює фільтр, виражений у місцевому часовому поясі. Він може приймати аргумент: рядок формату strftime(). Рядок формату розширено, щоб підтримувати змінну, %[1-6]N яка друкує частки секунди з необов’язково вказаною кількістю цифр.

metadata

Метадані кадру. Приймає один-два аргументи.

Перший аргумент є обов’язковим і визначає ключ метаданих.

Другий аргумент є необов’язковим і визначає значення за умовчанням, яке використовується, коли ключ метаданих не знайдено або порожній.

Доступні метадані можна визначити, перевіряючи записи, що починаються з TAG, включені в кожен розділ кадру, надрукований за допомогою запуску ffprobe -show_frames.

Також доступні метадані рядка, згенеровані у фільтрах, що ведуть до фільтра малювання тексту.

n, frame_num

Номер кадру, починаючи з 0.

pict_type

Односимвольний опис поточного типу зображення.

pts

Позначка часу поточного кадру. Він може приймати до трьох аргументів.

Перший аргумент — це формат позначки часу; за замовчуванням flt для секунд як десяткове число з мікросекундною точністю; hmsозначає відформатовану [-]HH:MM:SS.mmmпозначку часу з точністю до мілісекунд. gmtimeпозначає мітку часу кадру, відформатовану як час UTC; localtimeозначає мітку часу кадру, відформатовану як час місцевого часового поясу.

Другий аргумент — це зміщення, додане до мітки часу.

Якщо для формату встановлено значення hms, можна надати третій аргумент 24HH, щоб представити годинну частину відформатованої позначки часу у 24-годинному форматі (00-23).

Якщо формат встановлено на localtimeабо gmtime, можна надати третій аргумент: рядок формату strftime(). За замовчуванням використовуватиметься YYYY-MM-DD HH:MM:SSформат.

11.72.3 Commands

Цей фільтр підтримує зміну параметрів за допомогою команд:

reinit

Змінити існуючі параметри фільтра.

Синтаксис для аргументу такий самий, як і для виклику фільтра, наприклад

fontsize=56:fontcolor=green:text='Hello World'

Повний виклик фільтра за допомогою sendcmd виглядатиме так:

sendcmd=c='56.0 drawtext reinit fontsize=56\:fontcolor=green\:text=Hello\\ World'

Якщо весь аргумент не можна проаналізувати або застосувати як дійсні значення, тоді фільтр продовжить роботу з наявними параметрами.

11.72.4 Examples

  • Намалюйте «Тестовий текст» шрифтом FreeSerif, використовуючи значення за замовчуванням для додаткових параметрів.
    drawtext="fontfile=/usr/share/fonts/truetype/freefont/FreeSerif.ttf: text='Test Text'"
    
  • Намалюйте «Тестовий текст» шрифтом FreeSerif розміром 24 у позиції x=100 і y=50 (рахуючи від верхнього лівого кута екрана), текст жовтого кольору з червоною рамкою навколо нього. І текст, і поле мають непрозорість 20%.
    drawtext="fontfile=/usr/share/fonts/truetype/freefont/FreeSerif.ttf: text='Test Text':\
              x=100: y=50: fontsize=24: fontcolor=yellow@0.2: box=1: boxcolor=red@0.2"
    

    Зауважте, що подвійні лапки не потрібні, якщо в списку параметрів не використовуються пробіли.

  • Показати текст у центрі кадру відео:
    drawtext="fontsize=30:fontfile=FreeSerif.ttf:text='hello world':x=(w-text_w)/2:y=(h-text_h)/2"
    
  • Показувати текст у випадковому місці, перемикаючись на нове положення кожні 30 секунд:
    drawtext="fontsize=30:fontfile=FreeSerif.ttf:text='hello world':x=if(eq(mod(t\,30)\,0)\,rand(0\,(w-text_w))\,x):y=if(eq(mod(t\,30)\,0)\,rand(0\,(h-text_h))\,y)"
    
  • Показати рядок тексту, який ковзає справа наліво в останньому рядку відеокадру. ФайлLONG_LINEпередбачається, що містить один рядок без нових рядків.
    drawtext="fontsize=15:fontfile=FreeSerif.ttf:text=LONG_LINE:y=h-line_h:x=-50*t"
    
  • Показати вміст файлуCREDITSвід нижньої частини кадру та прокрутіть вгору.
    drawtext="fontsize=20:fontfile=FreeSerif.ttf:textfile=CREDITS:y=h-20*t"
    
  • Намалюйте одну зелену літеру "g" у центрі вхідного відео. Базова лінія гліфа розміщується на половині висоти екрана.
    drawtext="fontsize=60:fontfile=FreeSerif.ttf:fontcolor=green:text=g:x=(w-max_glyph_w)/2:y=h/2-ascent"
    
  • Показувати текст на 1 секунду кожні 3 секунди:
    drawtext="fontfile=FreeSerif.ttf:fontcolor=white:x=100:y=x/dar:enable=lt(mod(t\,3)\,1):text='blink'"
    
  • Використовуйте fontconfig, щоб встановити шрифт. Зауважте, що двокрапки потрібно екранувати.
    drawtext='fontfile=Linux Libertine O-40\:style=Semibold:text=FFmpeg'
    
  • Намалюйте «Тестовий текст», розмір шрифту якого залежить від висоти відео.
    drawtext="text='Test Text': fontsize=h/30: x=(w-text_w)/2: y=(h-text_h*2)"
    
  • Вивести дату кодування в реальному часі (див. strftime(3)):
    drawtext='fontfile=FreeSans.ttf:text=%{localtime\:%a %b %d %Y}'
    
  • Показати текст, який зникає та з’являється (з’являється/зникає):
    #!/bin/sh
    DS=1.0 # display start
    DE=10.0 # display end
    FID=1.5 # fade in duration
    FOD=5 # fade out duration
    ffplay -f lavfi "color,drawtext=text=TEST:fontsize=50:fontfile=FreeSerif.ttf:fontcolor_expr=ff0000%{eif\\\\: clip(255*(1*between(t\\, $DS + $FID\\, $DE - $FOD) + ((t - $DS)/$FID)*between(t\\, $DS\\, $DS + $FID) + (-(t - $DE)/$FOD)*between(t\\, $DE - $FOD\\, $DE) )\\, 0\\, 255) \\\\: x\\\\: 2 }"
    
  • Вирівнювання кількох окремих текстів по горизонталі. Зауважте, щоmax_glyph_a іfontsizeзначення включені вyзсув.
    drawtext=fontfile=FreeSans.ttf:text=DOG:fontsize=24:x=10:y=20+24-max_glyph_a,
    drawtext=fontfile=FreeSans.ttf:text=cow:fontsize=24:x=80:y=20+24-max_glyph_a
    
  • Нанесіть спеціальні lavf.image2dec.source_basenameметадані на кожен кадр, якщо такі метадані існують. В іншому випадку накресліть рядок "NA". Зауважте, що демультиплексор image2 повинен мати опцію-export_path_metadata 1щоб спеціальні поля метаданих були доступні для фільтрів.
    drawtext="fontsize=20:fontcolor=white:fontfile=FreeSans.ttf:text='%{metadata\:lavf.image2dec.source_basename\:NA}':x=10:y=10"
    

Для отримання додаткової інформації про libfreetype відвідайте: http://www.freetype.org/ .

Для отримання додаткової інформації про fontconfig перегляньте: http://freedesktop.org/software/fontconfig/fontconfig-user.html .

Для отримання додаткової інформації про libfribidi відвідайте: http://fribidi.org/ .

11.73 edgedetect

Виявлення та малювання країв. Фільтр використовує алгоритм Canny Edge Detection.

Фільтр приймає такі параметри:

low
high

Встановіть низькі та високі порогові значення, які використовуються алгоритмом порогового значення Canny.

Високий поріг вибирає «сильні» крайові пікселі, які потім з’єднуються через 8-з’єднання зі «слабкими» крайовими пікселями, вибраними низьким порогом.

lowі highпорогові значення повинні бути обрані в діапазоні [0,1] і lowповинні бути меншими або дорівнювати high.

Значення за замовчуванням для low, 20/255а значення за замовчуванням high для 50/255.

mode

Визначте режим малювання.

'wires'

Намалюйте білі/сірі дроти на чорному тлі.

'colormix'

Змішайте кольори, щоб створити ефект фарби/мультфільму.

'canny'

Застосуйте детектор країв Canny на всіх вибраних площинах.

Значення за замовчуванням: wires.

planes

Виберіть площини для фільтрації. За замовчуванням усі доступні площини фільтруються.

11.73.1 Examples

  • Стандартне визначення краю з настроюваними значеннями для порогового значення гістерезису:
    edgedetect=low=0.1:high=0.4
    
  • Ефект малювання без порогів:
    edgedetect=mode=colormix:high=0
    

11.74 elbg

Застосуйте ефект постеризації за допомогою алгоритму ELBG (Enhanced LBG).

Для кожного вхідного зображення фільтр обчислить оптимальне відображення від входу до виходу з урахуванням довжини кодової книги, тобто кількості різних вихідних кольорів.

Цей фільтр приймає такі параметри.

codebook_length, l

Встановити довжину книги кодів. Значення має бути додатним цілим числом і представляти кількість різних вихідних кольорів. Значення за замовчуванням – 256.

nb_steps, n

Установіть максимальну кількість ітерацій для обчислення оптимального відображення. Чим вище значення, тим кращий результат і довший час обчислення. Значення за замовчуванням 1.

seed, s

Встановіть випадкове початкове число, має бути ціле число від 0 до UINT32_MAX. Якщо не вказано або явно встановлено значення -1, фільтр намагатиметься використовувати хороше випадкове початкове число на основі найкращих зусиль.

pal8

Встановити вихідний формат пікселів pal8. Цей параметр не працює, якщо довжина кодової книги перевищує 256. За замовчуванням вимкнено.

use_alpha

Включіть значення альфа в обчислення квантування. Дозволяє створювати палітровані вихідні зображення (наприклад, PNG8) із множинним альфа-плавним змішуванням.

11.75 entropy

Виміряйте ентропію рівня сірого на гістограмі кольорових каналів відеокадрів.

Він приймає такі параметри:

mode

Може бути або normalабо diff. Типовим є normal.

diffрежим вимірює ентропію дельта-значень гістограми, абсолютні різниці між сусідніми значеннями гістограми.

11.76 epx

Застосуйте фільтр збільшення EPX, призначений для піксельного мистецтва.

Він приймає наступний варіант:

n

Встановити розмірність масштабування: 2для 2xEPX, 3для 3xEPX. Типовим є 3.

11.77 eq

Встановіть яскравість, контрастність, насиченість і приблизне налаштування гами.

Фільтр приймає такі параметри:

contrast

Установіть вираз контрасту. Значення має бути значенням із плаваючою точкою в діапазоні -1000.0до 1000.0. Значення за замовчуванням - "1".

brightness

Встановіть вираз яскравості. Значення має бути значенням із плаваючою точкою в діапазоні -1.0до 1.0. Значення за замовчуванням - "0".

saturation

Установіть вираз насиченості. Значення має бути числом з плаваючою речовиною в діапазоні 0.0до 3.0. Значення за замовчуванням - "1".

gamma

Установіть гамма-вираз. Значення має бути числом з плаваючою речовиною в діапазоні 0.1до 10.0. Значення за замовчуванням - "1".

gamma_r

Встановіть гамма-вираз для червоного. Значення має бути числом з плаваючою речовиною в діапазоні 0.1до 10.0. Значення за замовчуванням - "1".

gamma_g

Встановіть гамма-вираз для зеленого. Значення має бути числом з плаваючою речовиною в діапазоні 0.1до 10.0. Значення за замовчуванням - "1".

gamma_b

Встановіть гамма-вираз для синього. Значення має бути числом з плаваючою речовиною в діапазоні 0.1до 10.0. Значення за замовчуванням - "1".

gamma_weight

Встановіть вираз гамма-ваги. Його можна використовувати, щоб зменшити вплив високого значення гами на яскраві ділянки зображення, наприклад, щоб вони не були надмірно посиленими та просто білими. Значення має бути числом з плаваючою речовиною в діапазоні 0.0до 1.0. Значення 0.0повністю зменшує гамма-корекцію, 1.0залишаючи її на повній потужності. За замовчуванням "1".

eval

Встановлюється, коли обчислюються вирази яскравості, контрастності, насиченості та гами.

Він приймає такі значення:

'init'

обчислювати вирази лише один раз під час ініціалізації фільтра або під час обробки команди

'frame'

оцінити вирази для кожного вхідного кадру

Значення за замовчуванням: 'init'.

Вирази приймають такі параметри:

n

кількість кадрів вхідного кадру, починаючи з 0

pos

байтова позиція відповідного пакета у вхідному файлі, NAN, якщо не вказано

r

частота кадрів вхідного відео, NAN, якщо частота кадрів вхідного сигналу невідома

t

позначка часу, виражена в секундах, NAN, якщо позначка часу введення невідома

11.77.1 Commands

Фільтр підтримує такі команди:

contrast

Установіть вираз контрасту.

brightness

Встановіть вираз яскравості.

saturation

Установіть вираз насиченості.

gamma

Установіть гамма-вираз.

gamma_r

Установіть вираз gamma_r.

gamma_g

Установіть вираз gamma_g.

gamma_b

Встановити вираз gamma_b.

gamma_weight

Встановити вираз gamma_weight.

Команда приймає той самий синтаксис відповідного параметра.

Якщо вказаний вираз недійсний, його поточне значення зберігається.

11.78 erosion

Застосуйте ефект ерозії до відео.

Цей фільтр замінює піксель локальним (3x3) мінімумом.

Він приймає такі варіанти:

threshold0
threshold1
threshold2
threshold3

Обмежте максимальну зміну для кожної площини, за замовчуванням 65535. Якщо 0, площина залишиться незмінною.

coordinates

Прапорець, який визначає піксель, на який потрібно посилатися. За замовчуванням 255, тобто використовуються всі вісім пікселів.

Прапори для локальних карт координат 3x3, як це:

1 2 3 4 5 6 7 8

11.78.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

11.79 estdif

Деінтерлейсування вхідного відео ("estdif" означає "Edge Slope Tracing Deinterlacing Filter").

Просторовий фільтр, який використовує алгоритм трасування нахилу країв для інтерполяції відсутніх ліній. Він приймає такі параметри:

mode

Режим переплетення, який потрібно прийняти. Він приймає одне з таких значень:

frame

Виведіть один кадр для кожного кадру.

field

Виведіть один кадр для кожного поля.

Значення за замовчуванням — field.

parity

Парність поля зображення передбачається для вхідного черезрядкового відео. Він приймає одне з таких значень:

tff

Припустимо, що верхнє поле є першим.

bff

Припустимо, що нижнє поле є першим.

auto

Увімкнути автоматичне визначення парності поля.

Значення за замовчуванням — auto. Якщо чергування невідоме або декодер не експортує цю інформацію, першим буде вважатися верхнє поле.

deint

Укажіть, які кадри потрібно деінтерлейсувати. Приймає одне з таких значень:

all

Деінтерлейс усіх кадрів.

interlaced

Усунути черезрядкову розгортку лише кадри, позначені як черезрядкові.

Значення за замовчуванням — all.

rslope

Вкажіть радіус пошуку для трасування схилу краю. Значення за замовчуванням — 1. Дозволений діапазон — від 1 до 15.

redge

Укажіть радіус пошуку для найкращого збігу країв. Значення за замовчуванням — 2. Дозволений діапазон — від 0 до 15.

ecost

Укажіть вартість ребер для узгодження країв. Значення за замовчуванням 1,0. Дозволений діапазон від 0 до 9.

mcost

Вкажіть середню вартість для збігу країв. Значення за замовчуванням 0,5. Дозволений діапазон від 0 до 1.

dcost

Укажіть вартість відстані для узгодження країв. Значення за замовчуванням 0,5. Дозволений діапазон від 0 до 1.

interp

Вкажіть використану інтерполяцію. За замовчуванням використовується 4-точкова інтерполяція. Він приймає одне з таких значень:

2p

Двоточкова інтерполяція.

4p

Чотирьохточкова інтерполяція.

6p

Шеститочкова інтерполяція.

11.79.1 Commands

Цей фільтр підтримує ті самі команди , що й параметри.

11.80 exposure

Відрегулюйте експозицію відеопотоку.

Фільтр приймає такі параметри:

exposure

Встановіть корекцію експозиції в EV. Дозволений діапазон – від -3,0 до 3,0 EV Значення за замовчуванням – 0 EV.

black

Встановіть корекцію рівня чорного. Дозволений діапазон від -1,0 до 1,0. Значення за замовчуванням 0.

11.80.1 Commands

Цей фільтр підтримує ті самі команди , що й параметри.

11.81 extractplanes

Вилучайте компоненти кольорового каналу з вхідного відеопотоку в окремі відеопотоки у відтінках сірого.

Фільтр приймає такі параметри:

planes

Встановіть площину(и) для вилучення.

Доступні значення для площин:

'y'
'u'
'v'
'a'
'r'
'g'
'b'

Вибір площин, недоступних у вхідних даних, призведе до помилки. Це означає, що ви не можете вибирати площини r, g, bразом із площинами y, u, vодночасно.

11.81.1 Examples

  • Вилучити компоненти колірного каналу яскравості, u і v із вхідного відеокадру в 3 виходи у відтінках сірого:
    ffmpeg -i video.avi -filter_complex 'extractplanes=y+u+v[y][u][v]' -map '[y]' y.avi -map '[u]' u.avi -map '[v]' v.avi
    

11.82 fade

Застосуйте ефект поступового згасання до вхідного відео.

Він приймає такі параметри:

type, t

Тип ефекту може бути або "in" для поступового наближення, або "out" для ефекту поступового зменшення. Типовим є in.

start_frame, s

Укажіть номер кадру для початку застосування ефекту згасання. За замовчуванням 0.

nb_frames, n

Кількість кадрів, протягом яких діє ефект згасання. Наприкінці ефекту поступового затухання вихідне відео матиме таку ж інтенсивність, як і вхідне відео. У кінці переходу згасання вихідне відео буде заповнено вибранимcolor. За замовчуванням 25.

alpha

Якщо встановлено значення 1, затухає лише альфа-канал, якщо він існує на вході. Значення за замовчуванням 0.

start_time, st

Укажіть мітку часу (у секундах) кадру, щоб розпочати застосування ефекту згасання. Якщо вказано як start_frame, так і start_time, затухання почнеться в залежності від того, що наступить останнім. За замовчуванням 0.

duration, d

Кількість секунд, протягом яких має тривати ефект згасання. Наприкінці ефекту затухання вихідне відео матиме таку ж інтенсивність, як і вхідне відео, наприкінці переходу згасання вихідне відео буде заповнено вибранимcolor. Якщо вказано і тривалість, і nb_frames, використовується тривалість. За замовчуванням 0 (nb_frames використовується за замовчуванням).

color, c

Вкажіть колір вицвітання. За замовчуванням "чорний".

11.82.1 Examples

  • Зникнення в перших 30 кадрах відео:
    fade=in:0:30
    

    Наведена вище команда еквівалентна:

    fade=t=in:s=0:n=30
    
  • Згасання останніх 45 кадрів 200-кадрового відео:
    fade=out:155:45
    fade=type=out:start_frame=155:nb_frames=45
    
  • Зміна перших 25 кадрів і згасання останніх 25 кадрів 1000-кадрового відео:
    fade=in:0:25, fade=out:975:25
    
  • Зробіть перші 5 кадрів жовтими, а потім плавні від кадрів 5-24:
    fade=in:5:20:color=yellow
    
  • Альфа-версія перших 25 кадрів відео:
    fade=in:0:25:alpha=1
    
  • Зробіть перші 5,5 секунди чорними, потім згасайте на 0,5 секунди:
    fade=t=in:st=5.5:d=0.5
    

11.83 feedback

Застосувати фільтр відео відгуків.

Цей фільтр передає обрізані вхідні кадри на 2-й вихід. Звідти його можна фільтрувати за допомогою інших відеофільтрів. Після того як фільтр отримує кадр із 2-го входу, цей кадр об’єднується поверх оригінального кадру з 1-го входу та передається на 1-й вихід.

Типове використання – фільтрувати лише частину кадру.

Фільтр приймає такі параметри:

x
y

Установіть верхню ліву позицію кадрування.

w
h

Встановіть розмір кадрування.

11.83.1 Examples

  • Розмийте лише верхню ліву прямокутну частину відеокадру розміром 100x100 за допомогою фільтра gblur.
    [in][blurin]feedback=x=0:y=0:w=100:h=100[out][blurout];[blurout]gblur=8[blurin]
    
  • Намалюйте чорну рамку у верхній лівій частині відеокадру розміром 100x100 за допомогою фільтра Drawbox.
    [in][blurin]feedback=x=0:y=0:w=100:h=100[out][blurout];[blurout]drawbox=x=0:y=0:w=100:h=100:t=100[blurin]
    

11.84 fftdnoiz

Усунення шумів у кадрах за допомогою 3D ШПФ (фільтрація в частотній області).

Фільтр приймає такі параметри:

sigma

Встановіть сигма-константу шуму. Це встановлює силу шумозаглушення. Значення за замовчуванням — 1. Дозволений діапазон — від 0 до 30. Використання дуже високої сигми з низьким перекриттям може спричинити артефакти блокування.

amount

Встановити рівень шумозаглушення. За замовчуванням усі виявлені шуми зменшуються. Значення за замовчуванням — 1. Дозволений діапазон — від 0 до 1.

block

Встановіть розмір блоку в пікселях, за замовчуванням 32, може бути від 8 до 256.

overlap

Встановити перекриття блоків. За замовчуванням 0,5. Допустимий діапазон від 0,2 до 0,8.

method

Встановити метод шумозаглушення. Типовим є wiener, також може бути hard.

prev

Встановіть кількість попередніх кадрів для усунення шумів. За замовчуванням встановлено 0.

next

Встановіть кількість наступних кадрів для усунення шумів. За замовчуванням встановлено 0.

planes

Встановіть площини, які будуть відфільтровані, за замовчуванням всі доступні відфільтровані, крім альфа-версії.

11.85 fftfilt

Застосуйте довільні вирази до зразків у частотній області

dc_Y

Налаштуйте значення постійного струму (посилення) площини яскравості зображення. Фільтр приймає ціле значення в діапазоні 0до 1000. За замовчуванням встановлено значення 0.

dc_U

Відрегулюйте значення постійного струму (посилення) 1-ї площини кольоровості зображення. Фільтр приймає ціле значення в діапазоні 0до 1000. За замовчуванням встановлено значення 0.

dc_V

Відрегулюйте значення постійного струму (посилення) 2-ї площини кольоровості зображення. Фільтр приймає ціле значення в діапазоні 0до 1000. За замовчуванням встановлено значення 0.

weight_Y

Встановіть ваговий вираз частотної області для площини яскравості.

weight_U

Встановіть ваговий вираз частотної області для 1-ї кольорової площини.

weight_V

Встановіть ваговий вираз частотної області для 2-ї кольорової площини.

eval

Встановіть, коли обчислюються вирази.

Він приймає такі значення:

'init'

Обчислюйте вирази лише один раз під час ініціалізації фільтра.

'frame'

Оцініть вирази для кожного вхідного кадру.

Значення за замовчуванням: 'init'.

Фільтр приймає такі змінні:

X
Y

Координати поточної вибірки.

W
H

Ширина і висота зображення.

N

Номер вхідного кадру, починаючи з 0.

WS
HS

Розмір масиву ШПФ для горизонтальної та вертикальної обробки.

11.85.1 Examples

  • Високих частот:
    fftfilt=dc_Y=128:weight_Y='squish(1-(Y+X)/100)'
    
  • Низький прохід:
    fftfilt=dc_Y=0:weight_Y='squish((Y+X)/100-1)'
    
  • Різкість:
    fftfilt=dc_Y=0:weight_Y='1+squish(1-(Y+X)/100)'
    
  • Розмиття:
    fftfilt=dc_Y=0:weight_Y='exp(-4 * ((Y+X)/(W+H)))'
    

11.86 field

Витягніть одне поле з зображення через розгортку, використовуючи арифметику кроків, щоб уникнути зайвої витрати процесора. Вихідні кадри позначені як нечерезрядкові.

Фільтр приймає такі параметри:

type

Укажіть, чи вилучати верхнє (якщо значення 0або top) чи нижнє поле (якщо значення 1або bottom).

11.87 fieldhint

Створіть нові кадри, скопіювавши верхнє та нижнє поля з навколишніх кадрів, наданих як числа у файлі підказок.

hint

Установити файл, що містить підказки: абсолютні/відносні номери кадрів.

Для кожного кадру кліпу має бути один рядок. Кожен рядок має містити два числа, розділених комою, за якими слідує -або +. Числа, які надаються в кожному рядку файлу, не можуть виходити за межі [N-1,N+1], де N — номер поточного кадру для absoluteрежиму, або за межі діапазону [-1, 1] для relativeрежиму. Перше число вказує, з якого кадру вибрати верхнє поле, а друге число вказує, з якого кадру вибрати нижнє поле.

Якщо необов’язково супроводжується +вихідним кадром, він буде позначений як черезрядковий, інакше, якщо слідує -вихідний кадр, буде позначений як прогресивний, інакше він буде позначений як вхідний кадр. Якщо необов’язково супроводжується tкадром виводу, використовуватиметься лише верхнє поле, або у випадку bвикористання лише нижнє поле. Якщо рядок починається з #або ;цей рядок пропускається.

mode

Може бути елемент absoluteабо relativeабо pattern. Типовим є absolute. Режим patternтакий самий, як і relativeрежим, за винятком останнього введення файлу, якщо потрібно обробити більше кадрів, ніж hintфайл повертається до початку.

Приклад перших кількох рядків hintфайлу для relativeрежиму:

0,0 - # first frame
1,0 - # second frame, use third's frame top field and second's frame bottom field
1,0 - # third frame, use fourth's frame top field and third's frame bottom field
1,0 -
0,0 -
0,0 -
1,0 -
1,0 -
1,0 -
0,0 -
0,0 -
1,0 -
1,0 -
1,0 -
0,0 -

11.88 fieldmatch

Фільтр узгодження поля для зворотного телекіно. Він призначений для реконструкції прогресивних кадрів із телекінопотоку. Фільтр не видаляє дубльовані кадри, тому для досягнення повного інверсного телекіно fieldmatchпотрібно застосувати фільтр децимації, наприклад децимацію на фільтрі.

Розділення узгодження полів і проріджування мотивується, зокрема, можливістю вставити резервний фільтр депереплетіння між ними. Якщо в джерелі є змішаний телекіно та реальний черезрядковий вміст, fieldmatchне вдасться знайти відповідні поля для черезрядкових частин. Але ці гребінчасті кадри, що залишилися, будуть позначені як черезрядкові, і, отже, можуть бути де-чересстрочні за допомогою наступного фільтра, такого як yadif , перед проріджуванням.

На додаток до різних параметрів конфігурації, fieldmatchможна приймати додатковий другий потік, активований черезppsrcваріант. Якщо ввімкнено, реконструкція кадрів базуватиметься на полях і кадрах із цього другого потоку. Це дозволяє попередньо обробити перший вхідний сигнал, щоб допомогти різним алгоритмам фільтра, зберігаючи вихід без втрат (припускаючи, що поля правильно зіставлено). Як правило, можуть допомогти дешузер з урахуванням поля або налаштування яскравості/контрастності.

Зауважте, що цей фільтр використовує ті самі алгоритми, що й TIVTC/TFM (проект AviSynth) і VIVTC/VFM (проект VapourSynth). Останній є легким клоном TFM fieldmatch, на основі якого. Хоча семантика та використання дуже близькі, деякі назви поведінки та параметрів можуть відрізнятися.

Децимаційний фільтр наразі працює лише для постійної частоти кадрів. Якщо ваш вхід містить змішаний телекіно (30 кадрів/с) і прогресивний вміст із нижчою частотою кадрів, як-от 24 кадри/с, використовуйте такий ланцюжок фільтрів, щоб отримати необхідний потік cfr: dejudder,fps=30000/1001,fieldmatch,decimate.

Фільтр приймає такі параметри:

order

Укажіть передбачуваний порядок полів вхідного потоку. Доступні значення:

'auto'

Автоматичне визначення парності (використовуйте внутрішнє значення парності FFmpeg).

'bff'

Спершу припустимо нижнє поле.

'tff'

Припустимо, спочатку верхнє поле.

Зауважте, що іноді рекомендується не довіряти паритету, оголошеному потоком.

Значення за замовчуванням: auto.

mode

Встановіть відповідний режим або стратегію для використання.pcРежим є найбезпечнішим у тому сенсі, що він не ризикує створити ривки через повторювані кадри, коли це можливо, але якщо є погані редагування або змішані поля, він закінчиться виведенням гребінчастих кадрів, коли хороший збіг дійсно може існувати. З іншої сторони,pcn_ubрежим є найбільш ризикованим з точки зору створення ривків, але майже завжди знайде хорошу рамку, якщо вона є. Усі інші значення знаходяться десь посерединіpcіpcn_ubз точки зору ризику ривків і створення дублікатів кадрів проти пошуку хороших збігів у розділах із поганими редагуваннями, загубленими полями, змішаними полями тощо.

Додаткову інформацію про p/c/n/u/b можна знайти в розділі значення p/c/n/u/b .

Доступні значення:

'pc'

2-стороння відповідність (p/c)

'pc_n'

2-сторонній збіг і спроба 3-го збігу, якщо все ще розчісується (p/c + n)

'pc_u'

2-сторонній збіг і спроба 3-го збігу (той же порядок), якщо все ще розчісується (p/c + u)

'pc_n_ub'

2-сторонній збіг, спроба 3-го збігу, якщо все ще розчісується, і спроба 4-го/5-го збігів, якщо все ще розчісується (p/c + n + u/b)

'pcn'

3-стороння відповідність (p/c/n)

'pcn_ub'

3-стороннє зіставлення та спроба 4-го/5-го збігів, якщо всі 3 вихідних збіги виявлено як скомбіновані (p/c/n + u/b)

Дужки в кінці вказують на збіги, які будуть використані для цього режимуorder= tfffieldна autoабо top).

З точки зору швидкостіpcрежим на сьогоднішній день найшвидший іpcn_ubє найповільнішим.

Значення за замовчуванням: pc_n.

ppsrc

Позначте основний вхідний потік як попередньо оброблений вхід і ввімкніть допоміжний вхідний потік як чисте джерело для вибору полів. Додаткову інформацію див. у вступі до фільтра. Це схоже наclip2функцію від VFM/TFM.

Значення за замовчуванням 0(вимкнено).

field

Установіть поле для відповідності. Рекомендовано встановити таке саме значення, як orderякщо ви не зіткнетеся з помилками відповідності з цим параметром. За певних обставин зміна поля, яке використовується для зіставлення, може мати великий вплив на ефективність зіставлення. Доступні значення:

'auto'

Автоматично (те саме значення, що йorder).

'bottom'

Зіставте з нижнього поля.

'top'

Збіг із верхнього поля.

Значення за замовчуванням: auto.

mchroma

Встановіть, чи включатиметься кольоровість під час порівняння відповідності. У більшості випадків рекомендується залишити цю функцію увімкненою. Ви повинні встановити це значення, 0 лише якщо ваш кліп має погані проблеми кольоровості, такі як сильна райдуга або інші артефакти. Встановлення цього значення 0також може бути використано для прискорення роботи ціною певної точності.

Значення за замовчуванням: 1.

y0
y1

Вони визначають смугу виключення, яка виключає лінії між нимиy0і y1від включення до рішення про відповідність полів. Смугу виключення можна використовувати для ігнорування субтитрів, логотипу чи інших речей, які можуть заважати збігу.y0встановлює початковий рядок сканування та y1встановлює кінцеву лінію; усі лінії між нимиy0і y1(в тому числіy0іy1) буде проігноровано. Налаштування y0іy1до того самого значення вимкне функцію. y0іy1за замовчуванням 0.

scthresh

Встановіть поріг виявлення зміни сцени як відсоток від максимальної зміни на площині яскравості. Хороші значення знаходяться в [8.0, 14.0]діапазоні. Виявлення зміни сцени актуально лише у випадкуcombmatch= sc. Діапазон для scthreshце [0.0, 100.0].

Значення за замовчуванням: 12.0.

combmatch

Колиcombatchне є none, fieldmatchвізьме до уваги скомбіновані результати матчів, коли вирішуватиме, який матч використовувати як фінальний матч. Доступні значення:

'none'

Немає остаточного зіставлення на основі комбінованих балів.

'sc'

Комбіновані оцінки використовуються лише тоді, коли виявляється зміна сцени.

'full'

Використовуйте зачесані бали весь час.

Типовим є sc.

combdbg

Примусово fieldmatchобчислювати комбіновані показники для певних збігів і друкувати їх. Цей параметр відомий якmicoutу словнику TFM/VFM. Доступні значення:

'none'

Без примусового розрахунку.

'pcn'

Силові п/к/н розрахунки.

'pcnub'

Примусові обчислення p/c/n/u/b.

Значення за замовчуванням: none.

cthresh

Це порогове значення зони комбінування, яке використовується для виявлення комбінованого кадру. Це, по суті, контролює, наскільки «сильним» або «видимим» має бути розчісування, щоб його було виявлено. Більші значення означають, що розчісування має бути більш помітним, а менші значення означають, що розчісування може бути менш помітним або сильним і все одно може бути виявлено. Дійсні параметри від -1(кожен піксель буде виявлено як розчесаний) до 255(жоден піксель не буде виявлено як розчесаний). В основному це значення різниці в пікселях. Хорошим діапазоном є [8, 12].

Значення за замовчуванням: 9.

chroma

Встановлює, чи враховується кольоровість у рішенні комбінованого кадру. Вимкніть це, лише якщо ваше джерело має проблеми кольоровості (веселка тощо), які спричиняють проблеми з розпізнаванням комбінованого кадру з увімкненою кольоровістю. Власне, використовуючиchroma= 0зазвичай є більш надійним, за винятком випадку, коли в джерелі є лише розчісування кольоровості.

Значення за замовчуванням: 0.

blockx
blocky

Відповідно встановіть розмір вікна, яке використовується під час виявлення комбінованого кадру, по осі x і осі y. Це пов’язано з розміром території, на якій combpelпікселі повинні бути виявлені як розчесані, щоб кадр було оголошено розчесаним. Дивcombpelопис параметра для отримання додаткової інформації. Можливими значеннями є будь-яке число, яке є степенем 2, починаючи з 4 і закінчуючи 512.

Значення за замовчуванням: 16.

combpel

Кількість скомбінованих пікселів усередині будь-якого зblockyза blockxблоки розміру на рамі, щоб рама була виявлена ​​як гребінчаста. Покиcthreshконтролює, наскільки «видимим» має бути розчісування, цей параметр контролює, «скільки» має бути розчісування в будь-якій локалізованій області (вікно, визначенеblockxіblockyналаштування) на рамі. Мінімальне значення – це, 0а максимальне – blocky x blockx(тоді кадри ніколи не будуть виявлені як скомбіновані). Цей параметр відомий якMIу словнику TFM/VFM.

Значення за замовчуванням: 80.

11.88.1 p/c/n/u/b meaning

11.88.1.1 п/к/н

Ми припускаємо наступний телекінопотік:

Top fields:     1 2 2 3 4
Bottom fields:  1 2 3 4 4

Цифри відповідають прогресивному кадру, до якого відносяться поля. Тут перші два кадри прогресивні, 3-й і 4-й — гребінчасті і так далі.

Коли fieldmatchналаштовано на запуск відповідності знизу (field= bottom) ось як цей вхідний потік трансформується:

Input stream:
                T     1 2 2 3 4
                B     1 2 3 4 4   <-- matching reference

Matches:              c c n n c

Output stream:
                T     1 2 3 4 4
                B     1 2 3 4 4

У результаті зіставлення полів ми бачимо, що деякі кадри дублюються. Щоб виконати повний зворотний телекіно, після цієї операції вам потрібно покладатися на децимаційний фільтр. Дивіться, наприклад, децимований фільтр.

Така сама операція тепер відповідає верхнім полям (field= top) виглядає так:

Input stream:
                T     1 2 2 3 4   <-- matching reference
                B     1 2 3 4 4

Matches:              c c p p c

Output stream:
                T     1 2 2 3 4
                B     1 2 2 3 4

У цих прикладах ми можемо побачити, що означає p, cі ; nв основному вони стосуються кадру та поля протилежної парності:

  • pзбігається з полем протилежної парності в попередньому кадрі
  • cвідповідає полю протилежної парності в поточному кадрі
  • nзбігається з полем протилежної парності в наступному кадрі

11.88.1.2 у/б

І зіставлення uє bдещо особливим у тому сенсі, що вони збігаються з протилежним прапором парності. У наведених нижче прикладах ми припускаємо, що ми зараз зіставляємо 2-й кадр (верх:2, низ:2). Відповідно до відповідності, «x» ставиться над і під кожним зіставленим полем.

З нижньою відповідністю (field= bottom):

Match:           c         p           n          b          u

                 x       x               x        x          x
  Top          1 2 2     1 2 2       1 2 2      1 2 2      1 2 2
  Bottom       1 2 3     1 2 3       1 2 3      1 2 3      1 2 3
                 x         x           x        x              x

Output frames:
                 2          1          2          2          2
                 2          2          2          1          3

З найбільшою відповідністю (field= top):

Match:           c         p           n          b          u

                 x         x           x        x              x
  Top          1 2 2     1 2 2       1 2 2      1 2 2      1 2 2
  Bottom       1 2 3     1 2 3       1 2 3      1 2 3      1 2 3
                 x       x               x        x          x

Output frames:
                 2          2          2          1          2
                 2          1          3          2          2

11.88.2 Examples

Простий IVTC першого телекінопотоку верхнього поля:

fieldmatch=order=tff:combmatch=none, decimate

Удосконалений IVTC із резервним користуванням yadif для нерухомих кадрів:

fieldmatch=order=tff:combmatch=full, yadif=deint=interlaced, decimate

11.89 fieldorder

Перетворення порядку полів вхідного відео.

Він приймає такі параметри:

order

Порядок полів виводу. Дійсні значення tffдля верхнього поля спочатку або bff для нижнього поля спочатку.

Значення за замовчуванням 'tff'.

Трансформація виконується шляхом зміщення вмісту зображення вгору або вниз на один рядок і заповнення рядка, що залишився, відповідним вмістом зображення. Цей метод сумісний з більшістю перетворювачів порядку полів трансляції.

Якщо вхідне відео не позначено як таке, що є черезрядковою розгорткою, або воно вже позначено як таке, що має необхідний порядок вихідних полів, тоді цей фільтр не змінює вхідне відео.

Це дуже корисно під час перетворення на або з матеріалу PAL DV, який є нижнім полем першим.

Наприклад:

ffmpeg -i in.vob -vf "fieldorder=bff" out.dv

11.90 fifo, afifo

Буферизуйте вхідні зображення та надсилайте їх за запитом.

Це в основному корисно, коли автоматично вставляється фреймворком libavfilter.

Він не приймає параметрів.

11.91 fillborders

Заповнити межі вхідного відео, не змінюючи розмірів відеопотоку. Іноді відео може мати сміття по чотирьох краях, і ви можете не захотіти обрізати вхідне відео, щоб зберегти розмір, кратний певному числу.

Цей фільтр приймає такі параметри:

left

Кількість пікселів для заповнення від лівої межі.

right

Кількість пікселів для заповнення від правої межі.

top

Кількість пікселів для заповнення від верхньої межі.

bottom

Кількість пікселів для заповнення від нижньої межі.

mode

Встановити режим заповнення.

Він приймає такі значення:

'smear'

заповнити пікселі, використовуючи крайні пікселі

'mirror'

пікселі заповнення за допомогою дзеркального відображення (симетричний напівзразок)

'fixed'

заповнити пікселі постійним значенням

'reflect'

заповнити пікселі за допомогою відображення (весь зразок симетричний)

'wrap'

заповнити пікселі за допомогою обтікання

'fade'

зникають пікселі до постійного значення

'margins'

заповнити пікселі вгорі та внизу зваженими середніми пікселями біля меж

Типовим є smear.

color

Установіть колір для пікселів у фіксованому режимі або режимі зникнення. Типовим є black.

11.91.1 Commands

Цей фільтр підтримує ті самі команди , що й параметри. Команда приймає той самий синтаксис відповідного параметра.

Якщо вказаний вираз недійсний, його поточне значення зберігається.

11.92 find_rect

Знайдіть прямокутний предмет

Він приймає такі варіанти:

object

Шлях до файлу зображення об’єкта має бути сірим8.

threshold

Поріг виявлення, за замовчуванням 0,5.

mipmaps

Кількість MIP-карт, за замовчуванням 3.

xmin, ymin, xmax, ymax

Визначає прямокутник, у якому шукати.

discard

Відкинути кадри, у яких об’єкт не виявлено. За замовчуванням вимкнено.

11.92.1 Examples

  • Накрийте прямокутний об’єкт наданим зображенням певного відео за допомогою ffmpeg:
    ffmpeg -i file.ts -vf find_rect=newref.pgm,cover_rect=cover.jpg:mode=cover new.mkv
    

11.93 floodfill

Область затоплення зі значеннями однакових піксельних компонентів іншими значеннями.

Він приймає такі варіанти:

x

Установіть піксельну координату x.

y

Установіть піксельну координату y.

s0

Установити значення компонента джерела №0.

s1

Установити значення компонента джерела №1.

s2

Установіть значення компонента джерела №2.

s3

Установіть значення компонента джерела №3.

d0

Установіть значення компонента призначення №0.

d1

Установіть значення компонента призначення №1.

d2

Установіть значення компонента призначення №2.

d3

Установіть значення компонента призначення №3.

11.94 format

Перетворіть вхідне відео в один із указаних піксельних форматів. Libavfilter спробує вибрати той, який підходить як вхідні дані для наступного фільтра.

Він приймає такі параметри:

pix_fmts

Список назв форматів пікселів, розділених '|', наприклад "pix_fmts=yuv420p|monow|rgb24".

11.94.1 Examples

  • Перетворіть вхідне відео у yuv420pформат
    format=pix_fmts=yuv420p
    

    Перетворіть вхідне відео в будь-який із форматів у списку

    format=pix_fmts=yuv420p|yuv444p|yuv410p
    

11.95 fps

Перетворюйте відео на задану постійну частоту кадрів, дублюючи або пропускаючи кадри за потреби.

Він приймає такі параметри:

fps

Бажана вихідна частота кадрів. Він приймає вирази, що містять такі константи:

'source_fps'

Частота кадрів вхідного сигналу

'ntsc'

Частота кадрів NTSC30000/1001

'pal'

Частота кадрів PAL25.0

'film'

Частота кадрів фільму24.0

'ntsc_film'

Частота кадрів NTSC-фільму24000/1001

Типовим є 25.

start_time

Припустимо, що перший PTS має бути заданим значенням у секундах. Це дозволяє додавати/обрізати на початку потоку. За замовчуванням не робиться жодних припущень щодо очікуваного PTS першого кадру, тому доповнення чи обрізання не виконується. Наприклад, це можна встановити на 0, щоб доповнити початок дублікатами першого кадру, якщо відеопотік починається після аудіопотоку, або обрізати будь-які кадри з від’ємним PTS.

round

Метод округлення часових позначок (PTS).

Можливі значення:

zero

округліть до 0

inf

округлити від 0

down

круглий у бік -нескінченності

up

округлення до +нескінченності

near

округлити до найближчого

Типовим є near.

eof_action

Дія, що виконується під час читання останнього кадру.

Можливі значення:

round

Використовуйте той самий метод округлення часових позначок, що й для інших кадрів.

pass

Перехід через останній кадр, якщо введена тривалість ще не досягнута.

Типовим є round.

Крім того, параметри можна вказати як плоский рядок: fps[: start_time[: round]].

Дивіться також фільтр setpts .

11.95.1 Examples

  • Типове використання для встановлення частоти кадрів на секунду на 25:
    fps=fps=25
    
  • Встановлює кадр/с на 24, використовуючи скорочення та метод округлення для округлення до найближчого:
    fps=fps=film:round=near
    

11.96 framepack

Упакуйте два різні відеопотоки в стереоскопічне відео, встановивши належні метадані на підтримуваних кодеках. Два перегляди повинні мати однаковий розмір і частоту кадрів, а обробка припиниться, коли коротше відео закінчиться. Зверніть увагу, що ви можете зручно налаштувати властивості перегляду за допомогою фільтрів масштабу та кадрів в секунду.

Він приймає такі параметри:

format

Бажаний формат упаковки. Підтримувані значення:

sbs

Види розташовані поруч (за замовчуванням).

tab

Види розташовані один на одному.

lines

Перегляди упаковані по рядках.

columns

Перегляди упаковані по стовпцях.

frameseq

Види тимчасово перемежовуються.

Деякі приклади:

# Convert left and right views into a frame-sequential video
ffmpeg -i LEFT -i RIGHT -filter_complex framepack=frameseq OUTPUT

# Convert views into a side-by-side video with the same output resolution as the input
ffmpeg -i LEFT -i RIGHT -filter_complex [0:v]scale=w=iw/2[left],[1:v]scale=w=iw/2[right],[left][right]framepack=sbs OUTPUT

11.97 framerate

Змінюйте частоту кадрів, інтерполюючи нові відеовихідні кадри з вихідних кадрів.

Цей фільтр не призначений для належної роботи з черезрядковим медіа. Якщо ви бажаєте змінити частоту кадрів мультимедійних даних із черезрядковою розгорткою, вам потрібно виконати деінтерлейс перед цим фільтром і повторно черезчергувати після цього фільтра.

Нижче наведено опис прийнятих варіантів.

fps

Вкажіть вихідну кількість кадрів за секунду. Цей параметр також можна вказати окремо як значення. Типовим є 50.

interp_start

Укажіть початок діапазону, де буде створено вихідний кадр як лінійну інтерполяцію двох кадрів. Діапазон [ 0- 255], за замовчуванням — 15.

interp_end

Укажіть кінець діапазону, де буде створено вихідний кадр як лінійну інтерполяцію двох кадрів. Діапазон [ 0- 255], за замовчуванням — 240.

scene

Укажіть рівень, на якому виявляється зміна сцени, як значення від 0 до 100, щоб вказати нову сцену; низьке значення відображає низьку ймовірність того, що поточний кадр представить нову сцену, тоді як вище значення означає, що поточний кадр, швидше за все, буде таким. Типовим є 8.2.

flags

Вкажіть позначки, що впливають на процес фільтрації.

Доступне значення для flags:

scene_change_detect, scd

Увімкніть виявлення зміни сцени за допомогою значення параметра scene. Цей прапорець увімкнено за замовчуванням.

11.98 framestep

Вибирайте один кадр на кожному N-му кадрі.

Цей фільтр приймає такі параметри:

step

Виберіть кадр після кожного stepкадру. Дозволеними значеннями є натуральні числа, вищі за 0. Значення за замовчуванням: 1.

11.99 freezedetect

Виявлення замороженого відео.

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

Надрукований час і тривалість виражені в секундах. Ключ lavfi.freezedetect.freeze_startметаданих встановлюється на першому кадрі, часова позначка якого дорівнює або перевищує тривалість виявлення, і містить мітку часу першого кадру зупинки. Ключі метаданих lavfi.freezedetect.freeze_durationі lavfi.freezedetect.freeze_endвстановлюються на першому кадрі після закріплення.

Фільтр приймає такі параметри:

noise, n

Встановити стійкість до шуму. Можна вказати в дБ (якщо до вказаного значення додається «дБ») або як співвідношення різниці між 0 і 1. За замовчуванням — -60 дБ або 0,001.

duration, d

Встановіть тривалість зависання до сповіщення (за замовчуванням 2 секунди).

11.100 freezeframes

Стоп-кадри відео.

Цей фільтр фіксує кадри відео, використовуючи кадр із 2-го входу.

Фільтр приймає такі параметри:

first

Встановіть номер першого кадру, з якого розпочнеться стоп-кадр.

last

Встановіть номер останнього кадру, з якого завершується стоп-кадр.

replace

Встановіть номер кадру з 2-го входу, який буде використовуватися замість замінених кадрів.

11.101 frei0r

Застосуйте ефект frei0r до вхідного відео.

Щоб увімкнути компіляцію цього фільтра, вам потрібно встановити заголовок frei0r і налаштувати FFmpeg за допомогою --enable-frei0r.

Він приймає такі параметри:

filter_name

Назва ефекту frei0r для завантаження. Якщо визначено змінну середовища FREI0R_PATH, ефект frei0r шукається в кожному з каталогів, указаних у списку, розділеному двокрапками, у FREI0R_PATH. В іншому випадку шукаються стандартні шляхи frei0r у такому порядку: HOME/.frei0r-1/lib/,/usr/local/lib/frei0r-1/, /usr/lib/frei0r-1/.

filter_params

Розділений '|' список параметрів для передачі ефекту frei0r.

Параметр ефекту frei0r може бути логічним (його значенням є "y" або "n"), подвійним значенням, кольором (зазначеним як R/ G/ B, де R, Gі Bє числами з плаваючою комою від 0,0 до 1,0 включно) або опис кольору, як зазначено в розділі (ffmpeg-utils)"Колір" у посібнику ffmpeg-utils , позиція (зазначена як X/ Y, де Xта Yє числами з плаваючою комою) та/або рядок.

Кількість і типи параметрів залежать від завантаженого ефекту. Якщо параметр ефекту не вказано, встановлюється значення за замовчуванням.

11.101.1 Examples

  • Застосуйте ефект distort0r, встановивши перші два подвійних параметра:
    frei0r=filter_name=distort0r:filter_params=0.5|0.01
    
  • Застосуйте ефект колірної відстані, взявши колір як перший параметр:
    frei0r=colordistance:0.2/0.3/0.4
    frei0r=colordistance:violet
    frei0r=colordistance:0x112233
    
  • Застосуйте ефект перспективи, вказавши верхню ліву та верхню праву позиції зображення:
    frei0r=perspective:0.2/0.2|0.8/0.2
    

Для отримання додаткової інформації див. http://frei0r.dyne.org

11.101.2 Commands

Цей фільтр підтримуєfilter_paramsпараметр як команди .

11.102 fspp

Застосуйте швидку та просту постобробку. Це швидша версія spp .

Він розділяє (I)DCT на горизонтальні/вертикальні проходи. На відміну від простого фільтра постобробки, один із них виконується один раз на блок, а не на піксель. Це дозволяє досягти набагато вищої швидкості.

Фільтр приймає такі параметри:

quality

Встановити якість. Цей параметр визначає кількість рівнів для усереднення. Він приймає ціле число в діапазоні 4-5. Значення за замовчуванням: 4.

qp

Примусово встановити постійний параметр квантування. Він приймає ціле число в діапазоні 0-63. Якщо не встановлено, фільтр використовуватиме QP із відеопотоку (якщо доступний).

strength

Встановити силу фільтра. Він приймає ціле число в діапазоні від -15 до 32. Менші значення означають більше деталей, але також більше артефактів, тоді як вищі значення роблять зображення більш гладким, але також розмитим. Значення за замовчуванням 0− PSNR optimal.

use_bframe_qp

Увімкніть використання QP з B-Frames, якщо встановлено 1. Використання цього параметра може спричинити мерехтіння, оскільки B-кадри часто мають більший QP. За замовчуванням 0(не ввімкнено).

11.103 gblur

Застосуйте фільтр розмиття Гауса.

Фільтр приймає такі параметри:

sigma

Установіть горизонтальну сигму, стандартне відхилення розмиття за Гаусом. Типовим є 0.5.

steps

Встановіть кількість кроків для апроксимації Гауса. Типовим є 1.

planes

Встановіть, які площини фільтрувати. За замовчуванням усі площини фільтруються.

sigmaV

Встановіть вертикальну сигму, якщо від’ємна, вона буде такою самою, як sigma. Типовим є -1.

11.103.1 Commands

Цей фільтр підтримує ті самі команди, що й параметри. Команда приймає той самий синтаксис відповідного параметра.

Якщо вказаний вираз недійсний, його поточне значення зберігається.

11.104 geq

Застосуйте загальне рівняння до кожного пікселя.

Фільтр приймає такі параметри:

lum_expr, lum

Встановіть вираз яскравості.

cb_expr, cb

Встановіть вираз колірності синього.

cr_expr, cr

Встановіть червоний вираз колірності.

alpha_expr, a

Установіть альфа-вираз.

red_expr, r

Встановіть червоний вираз.

green_expr, g

Встановіть зелений вираз.

blue_expr, b

Встановіть синій вираз.

Колірний простір вибирається відповідно до вказаних параметрів. Якщо один ізlum_expr,cb_expr, абоcr_expr параметри, фільтр автоматично вибере простір кольорів YCbCr. Якщо один ізred_expr,green_expr, або blue_exprякщо вказати параметри, він вибере простір кольорів RGB.

Якщо одне з виразів кольоровості не визначено, воно повертається до іншого. Якщо альфа-вираз не вказано, він оцінюватиме непрозоре значення. Якщо жоден із виразів кольоровості не вказано, вони оцінюватимуться як вираз яскравості.

Вирази можуть використовувати такі змінні та функції:

N

Порядковий номер відфільтрованого кадру, починаючи з 0.

X
Y

Координати поточної вибірки.

W
H

Ширина і висота зображення.

SW
SH

Масштаб ширини та висоти залежно від поточної відфільтрованої площини. Це співвідношення між відповідною кількістю пікселів площини яскравості та кількістю пікселів поточної площини. Наприклад, для YUV4:2:0 значення є 1,1для площини яскравості та 0.5,0.5для площин кольоровості.

T

Час поточного кадру, виражений у секундах.

p(x, y)

Повертає значення пікселя в місці ( x, y) поточної площини.

lum(x, y)

Повертає значення пікселя в місці ( x, y) площини яскравості.

cb(x, y)

Повертає значення пікселя в місці ( x, y) площини кольоровості різниці синього. Повертає 0, якщо такої площини немає.

cr(x, y)

Повертає значення пікселя в місці ( x, y) червоно-різницевої площини кольоровості. Повертає 0, якщо такої площини немає.

r(x, y)
g(x, y)
b(x, y)

Повертає значення пікселя в місці ( x, y) червоного/зеленого/синього компонента. Повертає 0, якщо такого компонента немає.

alpha(x, y)

Повертає значення пікселя в місці ( x, y) альфа-площини. Повертає 0, якщо такої площини немає.

psum(x,y), lumsum(x, y), cbsum(x,y), crsum(x,y), rsum(x,y), gsum(x,y), bsum(x,y), alphasum(x,y)

Сума значень вибірки в прямокутнику від (0,0) до (x,y), це дозволяє отримати суми вибірок всередині прямокутника. Перегляньте функції без постфікса суми.

interpolation

Встановіть один із методів інтерполяції:

nearest, n
bilinear, b

За замовчуванням білінійний.

Для функцій, якщо xі yзнаходяться за межами області, значення буде автоматично обрізано до ближчого краю.

Будь ласка, зверніть увагу, що цей фільтр може використовувати кілька потоків, у цьому випадку кожен фрагмент матиме власний стан виразу. Якщо ви хочете використовувати лише один стан виразу, оскільки ваші вирази залежать від попереднього стану, вам слід обмежити кількість потоків фільтра до 1.

11.104.1 Examples

  • Переверніть зображення по горизонталі:
    geq=p(W-X\,Y)
    
  • Згенеруйте двовимірну синусоїду з кутом PI/3і довжиною хвилі 100 пікселів:
    geq=128 + 100*sin(2*(PI/100)*(cos(PI/3)*(X-50*T) + sin(PI/3)*Y)):128:128
    
  • Створіть фантастичне таємниче рухоме світло:
    nullsrc=s=256x256,geq=random(1)/hypot(X-cos(N*0.07)*W/2-W/2\,Y-sin(N*0.09)*H/2-H/2)^2*1000000*sin(N*0.02):128:128
    
  • Створіть швидкий ефект тиснення:
    format=gray,geq=lum_expr='(p(X,Y)+(256-p(X-4,Y-4)))/2'
    
  • Змініть компоненти RGB залежно від позиції пікселя:
    geq=r='X/W*r(X,Y)':g='(1-X/W)*g(X,Y)':b='(H-Y)/H*b(X,Y)'
    
  • Створіть радіальний градієнт того самого розміру, що й вхід (також див. фільтр віньєтки ):
    geq=lum=255*gauss((X/W-0.5)*3)*gauss((Y/H-0.5)*3)/gauss(0)/gauss(0),format=gray
    

11.105 gradfun

Виправте артефакти смуг, які іноді з’являються в майже плоских областях шляхом скорочення до 8-бітної глибини кольору. Інтерполюйте градієнти, які повинні проходити там, де є смуги, і згладжуйте їх.

Він призначений лише для відтворення. Не використовуйте його перед стисненням із втратами, оскільки стиснення має тенденцію втрачати тремтіння та повертати смуги.

Він приймає такі параметри:

strength

Максимальна величина, на яку фільтр змінить один піксель. Це також поріг для виявлення майже плоских областей. Прийнятні значення коливаються від 0,51 до 64; значення за умовчанням 1,2. Значення, що виходять за межі діапазону, будуть обрізані до допустимого діапазону.

radius

Околиці, до яких потрібно підібрати градієнт. Більший радіус забезпечує більш плавні градієнти, але також запобігає зміні фільтром пікселів поблизу детальних областей. Допустимі значення 8-32; значення за замовчуванням — 16. Значення, що виходять за межі діапазону, будуть обрізані до допустимого діапазону.

Крім того, параметри можна вказати як плоский рядок: strength[: radius]

11.105.1 Examples

  • Застосуйте фільтр з 3.5міцністю та радіусом 8:
    gradfun=3.5:8
    
  • Укажіть радіус, опустивши міцність (що повернеться до значення за замовчуванням):
    gradfun=radius=8
    

11.106 graphmonitor

Показати різноманітну статистику фільтрів.

За допомогою цього фільтра можна налагодити повний фільтр. Особливо проблеми із заповненням посилань фреймами в черзі.

Фільтр приймає такі параметри:

size, s

Встановити розмір вихідного відео. Типовим є hd720.

opacity, o

Встановити непрозорість відео. Типовим є 0.9. Дозволений діапазон від 0до 1.

mode, m

Встановіть режим виведення, можна fulllабо compact. У compactрежимі лише фільтри з деякими кадрами в черзі відображають статистику.

flags, f

Установіть прапорці, які вказують, яка статистика відображатиметься у відео.

Доступні значення для прапорів:

'queue'

Відображення кількості кадрів у черзі в кожному посиланні.

'frame_count_in'

Відображення кількості кадрів, взятих із фільтра.

'frame_count_out'

Відображення кількості кадрів, виданих фільтром.

'frame_count_delta'

Відображати дельта-кількість кадрів між двома вищезазначеними значеннями.

'pts'

Показати поточні відфільтровані кадри.

'pts_delta'

Відображення дельти між поточним і попереднім кадром.

'time'

Відображення поточного відфільтрованого часу кадру.

'time_delta'

Відображення різниці часу між поточним і попереднім кадром.

'timebase'

Відображення часової бази для посилання на фільтр.

'format'

Відображення використовуваного формату для посилання на фільтр.

'size'

Відображення розміру відео або кількості аудіоканалів у випадку, якщо аудіо використовується за посиланням фільтра.

'rate'

Показувати частоту кадрів відео або частоту дискретизації, якщо аудіо використовується за допомогою фільтра.

'eof'

Показати вихідний статус посилання.

'sample_count_in'

Відображення кількості зразків, взятих із фільтра.

'sample_count_out'

Відображення кількості зразків, виданих із фільтра.

'sample_count_delta'

Відображати дельта-кількість зразків між двома вищезазначеними значеннями.

rate, r

Встановіть верхню межу швидкості відео вихідного потоку, значення за замовчуванням 25. Це гарантує, що вихідна частота кадрів відео не буде вищою за це значення.

11.107 grayworld

Фільтр сталості кольору, який застосовує корекцію кольору на основі припущення сірого світу

Див.: https://www.researchgate.net/publication/275213614_A_New_Color_Correction_Method_for_Underwater_Imaging

Алгоритм використовує лінійне світло, тому вхідні дані слід попередньо лінеаризувати (і, можливо, правильно позначити).

ffmpeg -i INPUT -vf zscale=transfer=linear,grayworld,zscale=transfer=bt709,format=yuv420p OUTPUT

11.108 greyedge

Фільтр варіації сталості кольору, який оцінює освітлення сцени за допомогою алгоритму сірих країв і відповідно коригує кольори сцени.

Див.: https://staff.science.uva.nl/th.gevers/pub/GeversTIP07.pdf

Фільтр приймає такі параметри:

difford

Порядок диференціації, який буде застосовано на місці події. Потрібно вибрати в діапазоні [0,2], а значення за замовчуванням дорівнює 1.

minknorm

Параметр Мінковського для розрахунку відстані Мінковського. Потрібно вибрати в діапазоні [0,20], а значення за замовчуванням — 1. Встановіть значення 0, щоб отримати максимальне значення замість обчислення відстані Мінковського.

sigma

Стандартне відхилення розмиття за Гаусом, яке буде застосовано до сцени. Має бути обрано в діапазоні [0,1024.0] і значення за замовчуванням = 1. floor( sigma* break_off_sigma(3)) не може дорівнювати 0, якщо diffordбільше за 0.

11.108.1 Examples

  • сірий край:
    greyedge=difford=1:minknorm=5:sigma=2
    
  • Максимальний край:
    greyedge=difford=1:minknorm=0:sigma=2
    

11.109 guided

Застосуйте керований фільтр для згладжування зі збереженням країв, видалення затемнення тощо.

Фільтр приймає такі параметри:

radius

Встановіть радіус рамки в пікселях. Дозволений діапазон від 1 до 20. За замовчуванням 3.

eps

Встановіть параметр регуляризації (з квадратом). Дозволений діапазон від 0 до 1. За замовчуванням 0,01.

mode

Встановити режим фільтра. Може бути basicабо fast. Типовим є basic.

sub

Встановити коефіцієнт субдискретизації для fastрежиму. Діапазон — від 2 до 64. За замовчуванням — 4. У basicрежимі субдискретизація не відбувається.

guidance

Встановити режим наведення. Може бути offабо on. Типовим є off. Якщо off, потрібен один вхід. Якщо on, потрібні два входи з однаковою роздільною здатністю та форматом пікселів. Другий вхід служить керівництвом.

planes

Встановити площини для фільтрації. За замовчуванням лише перший.

11.109.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

11.109.2 Examples

  • Згладжування із збереженням країв за допомогою керованого фільтра:
    ffmpeg -i in.png -vf guided out.png
    
  • Усунення затуманювання, фільтрація з перенесенням структури, покращення деталей за допомогою керованого фільтра. Щоб створити керівне зображення, зверніться до статті "Керована фільтрація зображень". Див.: http://kaiminghe.com/publications/pami12guidedfilter.pdf .
    ffmpeg -i in.png -i guidance.png -filter_complex guided=guidance=on out.png
    

11.110 haldclut

Застосуйте Hald CLUT до відеопотоку.

Перший вхід – це відеопотік для обробки, а другий – Hald CLUT. Вхідним сигналом Hald CLUT може бути просте зображення або повний відеопотік.

Фільтр приймає такі параметри:

clut

Встановіть, які відеокадри CLUT будуть оброблені з другого вхідного потоку, можна firstабо all. Типовим є all.

shortest

Примусове завершення, коли завершується найкоротший вхід. Типовим є 0.

repeatlast

Продовжуйте застосовувати останній CLUT після закінчення потоку. Значення 0вимкнення фільтра після досягнення останнього кадру CLUT. Типовим є 1.

haldclutтакож має ті самі параметри інтерполяції, що й lut3d (обидва фільтри мають однакові внутрішні функції).

Цей фільтр також підтримує параметри синхронізації кадрів .

Більше інформації про Hald CLUT можна знайти на веб-сайті Eskil Steenberg (автор Hald CLUT) за адресою http://www.quelsolaar.com/technology/clut.html .

11.110.1 Commands

Цей фільтр підтримує interpопцію як команди .

11.110.2 Workflow examples

11.110.2.1 Зупинити відеопотік CLUT

Створіть ідентичність Hald CLUT потік, змінений різними ефектами:

ffmpeg -f lavfi -i haldclutsrc=8 -vf "hue=H=2*PI*t:s=sin(2*PI*t)+1, curves=cross_process" -t 10 -c:v ffv1 clut.nut

Примітка: переконайтеся, що ви використовуєте кодек без втрат.

Потім використовуйте його з haldclut, щоб застосувати його до якогось випадкового потоку:

ffmpeg -f lavfi -i mandelbrot -i clut.nut -filter_complex '[0][1] haldclut' -t 20 mandelclut.mkv

Hald CLUT буде застосовано до 10 перших секунд (тривалість clut.nut), тоді останнє зображення цього потоку CLUT буде застосовано до решти кадрів mandelbrotпотоку.

11.110.2.2 Затримати CLUT із попереднім переглядом

Hald CLUT має бути зображенням у квадраті розміром Level*Level*Levelпікселів Level*Level*Level. Для заданого Hald CLUT FFmpeg вибере найбільший можливий квадрат, починаючи з верхнього лівого кута зображення. Інші пікселі відступу (знизу чи справа) ігноруватимуться. Цю область можна використовувати для попереднього перегляду Hald CLUT.

Як правило, наступний згенерований Hald CLUT підтримуватиметься haldclutфільтром:

ffmpeg -f lavfi -i haldclutsrc=8 -vf "
   pad=iw+320 [padded_clut];
   smptebars=s=320x256, split [a][b];
   [padded_clut][a] overlay=W-320:h, curves=color_negative [main];
   [main][b] overlay=W-320" -frames:v 1 clut.png

Він містить оригінал і попередній перегляд ефекту CLUT: кольорові смуги SMPTE відображаються праворуч угорі та під тими самими кольоровими смугами, обробленими змінами кольору.

Тоді ефект цього Hald CLUT можна візуалізувати за допомогою:

ffplay input.mkv -vf "movie=clut.png, [in] haldclut"

11.111 hflip

Переверніть вхідне відео горизонтально.

Наприклад, щоб горизонтально перевернути вхідне відео за допомогою ffmpeg:

ffmpeg -i in.avi -vf "hflip" out.avi

11.112 histeq

Цей фільтр застосовує глобальне вирівнювання колірної гістограми для кожного кадру.

Його можна використовувати для корекції відео, яке має стиснутий діапазон інтенсивності пікселів. Фільтр перерозподіляє інтенсивність пікселів, щоб вирівняти їх розподіл у діапазоні інтенсивності. Його можна розглядати як "контрастний фільтр, що автоматично регулюється". Цей фільтр корисний лише для виправлення погіршеного або погано захопленого вихідного відео.

Фільтр приймає такі параметри:

strength

Визначте ступінь вирівнювання, яке буде застосовано. У міру зменшення інтенсивності розподіл інтенсивності пікселів дедалі більше наближається до розподілу інтенсивності вхідного кадру. Значення має бути числом із плаваючою точкою в діапазоні [0,1] і за умовчанням дорівнює 0,200.

intensity

Встановіть максимальну інтенсивність, яку можна створити, і відповідним чином масштабуйте вихідні значення. Міцність слід встановити за бажанням, а потім інтенсивність можна обмежити, якщо необхідно, щоб уникнути вимивання. Значення має бути числом із плаваючою точкою в діапазоні [0,1] і за умовчанням дорівнює 0,210.

antibanding

Встановіть рівень антисмуги. Якщо ввімкнено, фільтр буде випадковим чином змінювати яскравість вихідних пікселів на невелику величину, щоб уникнути смуг на гістограмі. Можливі значення none: weakабо strong. За замовчуванням none.

11.113 histogram

Обчисліть і намалюйте гістограму розподілу кольорів для вхідного відео.

Обчислена гістограма є представленням розподілу компонентів кольору в зображенні.

Стандартна гістограма відображає розподіл колірних компонентів на зображенні. Відображає графік кольорів для кожного компонента кольору. Показує розподіл компонентів Y, U, V, A або R, G, B, залежно від формату введення, у поточному кадрі. Під кожним графіком показано вимірювач шкали компонентів кольору.

Фільтр приймає такі параметри:

level_height

Встановити висоту рівня. Значення за замовчуванням: 200. Дозволений діапазон [50, 2048].

scale_height

Встановити висоту колірної гами. Значення за замовчуванням: 12. Дозволений діапазон [0, 40].

display_mode

Встановити режим відображення. Він приймає такі значення:

'stack'

Графіки компонентів кольору розташовані один під одним.

'parade'

Графіки компонентів кольору розташовані поруч.

'overlay'

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

Типовим є stack.

levels_mode

Встановити режим. Може бути або linear, або logarithmic. Типовим є linear.

components

Встановіть колір компонентів для відображення. Типовим є 7.

fgopacity

Встановити непрозорість переднього плану. Типовим є 0.7.

bgopacity

Встановити непрозорість фону. Типовим є 0.5.

colors_mode

Встановити колірний режим. Він приймає такі значення:

'whiteonblack'
'blackonwhite'
'whiteongray'
'blackongray'
'coloronblack'
'coloronwhite'
'colorongray'
'blackoncolor'
'whiteoncolor'
'grayoncolor'

Типовим є whiteonblack.

11.113.1 Examples

  • Обчислити та намалювати гістограму:
    ffplay -i input -vf histogram
    

11.114 hqdn3d

Це високоточний/якісний тривимірний шумозаглушувальний фільтр. Він спрямований на зменшення шуму зображення, створюючи плавні зображення та роблячи нерухомі зображення дійсно нерухомими. Це повинно підвищити стисливість.

Він приймає наступні додаткові параметри:

luma_spatial

Невід’ємне число з плаваючою комою, яке визначає силу просторового освітлення. За умовчанням встановлено 4.0.

chroma_spatial

Невід’ємне число з плаваючою комою, яке визначає інтенсивність просторової кольоровості. За замовчуванням 3.0* luma_spatial/4.0.

luma_tmp

Число з плаваючою комою, яке визначає часову силу яскравості. За замовчуванням 6.0* luma_spatial/4.0.

chroma_tmp

Число з плаваючою комою, яке визначає часову інтенсивність кольоровості. За замовчуванням встановлено luma_tmp* chroma_spatial/ luma_spatial.

11.114.1 Commands

Цей фільтр підтримує ті самі команди , що й параметри. Команда приймає той самий синтаксис відповідного параметра.

Якщо вказаний вираз недійсний, його поточне значення зберігається.

11.115 hwdownload

Завантажте апаратні кадри в пам'ять системи.

Вхідні дані мають бути в апаратних кадрах, а вихідні – у неапаратному форматі. Не всі формати будуть підтримуватися на виході - можливо, доведеться вставити додатковийformatфільтрувати відразу після графіка, щоб отримати вивід у підтримуваному форматі.

11.116 hwmap

Зіставте апаратні кадри в системну пам'ять або інший пристрій.

Цей фільтр має кілька різних режимів роботи; який із них використовується, залежить від форматів введення та виведення:

  • Апаратний кадровий вхід, нормальний кадровий вихід

    Зіставте вхідні кадри в системну пам'ять і передайте їх на вихід. Якщо пізніше знадобиться вихідний апаратний каркас (наприклад, після накладання чогось іншого на його частину), тоhwmapфільтр можна використовувати знову в наступному режимі, щоб отримати його.

  • Звичайний кадровий вхід, апаратний кадровий вихід

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

    В іншому випадку необхідно надати пристрій. Створіть нові апаратні поверхні на цьому пристрої для виведення, а потім зіставте їх назад у формат програмного забезпечення на вході та надайте ці кадри попередньому фільтру. Тоді це діятиме як hwuploadфільтр, але можна уникнути додаткової копії, коли вхідні дані вже є у сумісному форматі.

  • Апаратний вхід і вихід кадру

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

    Якщо вхідні кадри були спочатку створені на пристрої виводу, скасуйте зіставлення, щоб отримати вихідні кадри.

    В іншому випадку зіставте кадри з пристроєм виводу - створіть нові апаратні кадри на виході, що відповідають кадрам на вході.

Приймаються наступні додаткові параметри:

mode

Встановіть режим відображення кадрів. Деякі комбінації:

read

Відображений кадр має бути читабельним.

write

Відображений фрейм має бути доступним для запису.

overwrite

Відображення завжди перезаписує весь кадр.

У деяких випадках це може підвищити продуктивність, оскільки оригінальний вміст фрейму не потрібно завантажувати.

direct

Відображення не повинно передбачати жодного копіювання.

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

За замовчуванням, read+writeякщо не вказано.

derive_device type

Замість використання пристрою, наданого під час ініціалізації, створіть новий пристрій типу typeз пристрою, на якому існують вхідні кадри.

reverse

У апаратно-апаратному відображенні відображайте навпаки – створюйте кадри в приймачі та відображайте їх назад до джерела. Це може знадобитися в деяких випадках, коли потрібне відображення в одному напрямку, але використовувані пристрої підтримують лише протилежний напрямок.

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

11.117 hwupload

Завантажте кадри системної пам'яті на апаратні поверхні.

Під час ініціалізації фільтра необхідно вказати пристрій для завантаження. Якщо використовується ffmpeg, виберіть відповідний пристрій за допомогою-filter_hw_device варіант або зderive_deviceваріант. Пристрої введення та виведення мають бути різних типів і сумісними – точне значення цього залежить від системи, але зазвичай це означає, що вони мають посилатися на той самий основний апаратний контекст (наприклад, посилатися на ту саму графічну карту).

Приймаються наступні додаткові параметри:

derive_device type

Замість використання пристрою, наданого під час ініціалізації, створіть новий пристрій типу typeз пристрою, на якому існують вхідні кадри.

11.118 hwupload_cuda

Завантажте кадри системної пам’яті на пристрій CUDA.

Він приймає наступні додаткові параметри:

device

Номер пристрою CUDA для використання

11.119 hqx

Застосуйте високоякісний фільтр збільшення, розроблений для піксельного мистецтва. Цей фільтр спочатку створив Максим Стьопін.

Він приймає наступний варіант:

n

Встановіть розмір масштабування: 2для hq2x, 3для hq3xі 4для hq4x. Типовим є 3.

11.120 hstack

Розмістіть вхідні відео горизонтально.

Усі потоки мають мати однаковий піксельний формат і однакову висоту.

Зауважте, що цей фільтр є швидшим, ніж використання накладання та фільтра накладки для створення того самого результату.

Фільтр приймає такі параметри:

inputs

Встановити кількість вхідних потоків. За замовчуванням 2.

shortest

Якщо встановлено значення 1, примусове завершення виведення, коли завершується найкоротший вхід. Значення за замовчуванням 0.

11.121 hsvhold

Перетворює певний діапазон HSV на сірі значення.

Цей фільтр вимірює різницю кольорів між встановленим кольором HSV у параметрах і кольором, виміряним у відеопотоці. Залежно від параметрів вихідні кольори можуть бути сірими чи ні.

Фільтр приймає такі параметри:

hue

Встановіть значення відтінку, яке використовуватиметься для обчислення різниці кольорів. Дозволений діапазон — від -360 до 360. Значення за замовчуванням — 0.

sat

Встановіть значення насиченості, яке використовуватиметься для розрахунку різниці кольорів. Дозволений діапазон від -1 до 1. Значення за замовчуванням 0.

val

Встановіть значення, яке використовуватиметься для розрахунку різниці кольорів. Дозволений діапазон від -1 до 1. Значення за замовчуванням 0.

similarity

Встановіть відсоток схожості з ключовим кольором. Дозволений діапазон — від 0 до 1. Значення за замовчуванням — 0,01.

0,00001 відповідає лише точному кольору ключа, тоді як 1,0 відповідає всьому.

blend

Відсоток суміші. Дозволений діапазон — від 0 до 1. Значення за замовчуванням — 0.

0.0 робить пікселі або повністю сірими, або зовсім не сірими.

Вищі значення призводять до більшої кількості сірих пікселів, а з вищим сірим пікселем колір пікселів більш подібний до основного кольору.

11.122 hsvkey

Перетворює певний діапазон HSV на прозорий.

Цей фільтр вимірює різницю кольорів між встановленим кольором HSV у параметрах і кольором, виміряним у відеопотоці. Залежно від параметрів, вихідні кольори можна змінити на прозорі, додавши альфа-канал.

Фільтр приймає такі параметри:

hue

Встановіть значення відтінку, яке використовуватиметься для обчислення різниці кольорів. Дозволений діапазон — від -360 до 360. Значення за замовчуванням — 0.

sat

Встановіть значення насиченості, яке використовуватиметься для розрахунку різниці кольорів. Дозволений діапазон від -1 до 1. Значення за замовчуванням 0.

val

Встановіть значення, яке використовуватиметься для розрахунку різниці кольорів. Дозволений діапазон від -1 до 1. Значення за замовчуванням 0.

similarity

Встановіть відсоток схожості з ключовим кольором. Дозволений діапазон — від 0 до 1. Значення за замовчуванням — 0,01.

0,00001 відповідає лише точному кольору ключа, тоді як 1,0 відповідає всьому.

blend

Відсоток суміші. Дозволений діапазон — від 0 до 1. Значення за замовчуванням — 0.

0.0 робить пікселі або повністю прозорими, або взагалі непрозорими.

Вищі значення призводять до напівпрозорих пікселів, а з вищою прозорістю колір пікселів схожіший на основний колір.

11.123 hue

Змініть відтінок і/або насиченість вхідних даних.

Він приймає такі параметри:

h

Укажіть кут відтінку в градусах. Він приймає вираз і за умовчанням має значення "0".

s

Вкажіть насиченість у діапазоні [-10,10]. Він приймає вираз і за умовчанням має значення "1".

H

Укажіть кут відтінку в радіанах. Він приймає вираз і за умовчанням має значення "0".

b

Вкажіть яскравість у діапазоні [-10,10]. Він приймає вираз і за умовчанням має значення "0".

hіHє взаємовиключними та не можуть бути визначені одночасно.

Theb,h,HіsЗначення параметрів - це вирази, що містять такі константи:

n

кількість кадрів вхідного кадру, починаючи з 0

pts

відмітка часу представлення вхідного кадру, виражена в одиницях основного часу

r

частота кадрів вхідного відео, NAN, якщо частота кадрів вхідного сигналу невідома

t

позначка часу, виражена в секундах, NAN, якщо позначка часу введення невідома

tb

часова база вхідного відео

11.123.1 Examples

  • Встановіть відтінок 90 градусів і насиченість 1,0:
    hue=h=90:s=1
    
  • Та сама команда, але виражає відтінок у радіанах:
    hue=H=PI/2:s=1
    
  • Обертайте відтінок і змінюйте насиченість між 0 і 2 протягом 1 секунди:
    hue="H=2*PI*t: s=sin(2*PI*t)+1"
    
  • Застосуйте 3-секундний ефект поступового згасання насиченості, починаючи з 0:
    hue="s=min(t/3\,1)"
    

    Загальний вираз поступового затухання можна записати так:

    hue="s=min(0\, max((t-START)/DURATION\, 1))"
    
  • Застосуйте 3-секундний ефект згасання насиченості, починаючи з 5 секунди:
    hue="s=max(0\, min(1\, (8-t)/3))"
    

    Загальний вираз затухання можна записати так:

    hue="s=max(0\, min(1\, (START+DURATION-t)/DURATION))"
    

11.123.2 Commands

Цей фільтр підтримує такі команди:

b
s
h
H

Змініть відтінок і/або насиченість та/або яскравість вхідного відео. Команда приймає той самий синтаксис відповідного параметра.

Якщо вказаний вираз недійсний, його поточне значення зберігається.

11.124 huesaturation

Застосуйте коригування відтінку, насиченості та інтенсивності до вхідного відеопотоку.

Цей фільтр працює в колірному просторі RGB.

Цей фільтр приймає такі параметри:

hue

Встановіть зміну відтінку в градусах, щоб застосувати її. За замовчуванням 0. Дозволений діапазон від -180 до 180.

saturation

Встановіть зсув насиченості. За замовчуванням 0. Дозволений діапазон від -1 до 1.

intensity

Встановіть зміщення інтенсивності. За замовчуванням 0. Дозволений діапазон від -1 до 1.

colors

Встановіть, які основні та додаткові кольори буде скориговано. Ці параметри встановлюються шляхом надання одного або кількох значень. Це може вибрати кілька кольорів одночасно. За замовчуванням вибрано всі кольори.

'r'

Відрегулюйте червоні.

'y'

Налаштуйте жовті.

'g'

Відрегулюйте зелень.

'c'

Налаштувати блакитні.

'b'

Налаштувати блюз.

'm'

Відрегулюйте пурпурні кольори.

'a'

Налаштуйте всі кольори.

strength

Встановити силу фільтрації. Дозволений діапазон — від 0 до 100. Значення за замовчуванням — 1.

rw, gw, bw

Встановіть вагу для кожного компонента RGB. Дозволений діапазон від 0 до 1. За замовчуванням встановлено значення 0,333, 0,334, 0,333. Ці параметри використовуються в обробці насиченості та полегшення.

lightness

Встановіть збереження яскравості, за замовчуванням вимкнено. Налаштування відтінків може змінити яскравість від оригінального триплету RGB, коли цей параметр увімкнено, яскравість зберігається на тому самому рівні.

11.125 hysteresis

Переростіть перший потік у другий, з’єднавши компоненти. Це дає змогу створювати більш надійні крайові маски.

Цей фільтр приймає такі параметри:

planes

Встановіть, які площини будуть оброблені як растрові, необроблені площини будуть скопійовані з першого потоку. За замовчуванням значення 0xf буде оброблено всі площини.

threshold

Встановіть поріг, який використовується для фільтрації. Якщо значення компонента пікселя вище цього значення, активується алгоритм фільтрації для з’єднання компонентів. За замовчуванням значення 0.

Фільтр hysteresisтакож підтримує параметри синхронізації кадрів .

11.126 iccdetect

Визначте простір кольорів із вбудованого профілю ICC (якщо він є) і відповідно оновіть теги кадру.

Цей фільтр приймає такі параметри:

force

Якщо значення true, існуючі теги колірного простору фрейму завжди замінюватимуться значеннями, виявленими з профілю ICC. Інакше вони будуть призначені, лише якщо містять unknown. Увімкнено за замовчуванням.

11.127 iccgen

Створіть профілі ICC і прикріпіть їх до рам.

Цей фільтр приймає такі параметри:

color_primaries
color_trc

Налаштуйте простір кольорів, для якого буде створено профіль ICC. Значення за замовчуванням autoвиводить значення з метаданих вхідного кадру, за замовчуванням BT.709/sRGB відповідно.

Перегляньте список можливих значень у фільтрі setparamsunknown , але зауважте, що значення для цього фільтра недійсні.

force

Якщо встановлено значення true, профіль ICC буде створено, навіть якщо він перезапише вже існуючий профіль ICC. Вимкнено за замовчуванням.

11.128 identity

Отримайте оцінку ідентичності між двома вхідними відео.

Цей фільтр приймає два вхідних відео.

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

Отриманий за компонентом, середній, мінімальний і максимальний бал ідентичності друкується через систему реєстрації.

Фільтр зберігає розраховані оцінки ідентичності кожного кадру в метаданих кадру.

У наведеному нижче прикладі вхідний файлmain.mpgобробляється порівнюється з еталонним файломref.mpg.

ffmpeg -i main.mpg -i ref.mpg -lavfi identity -f null -

11.129 idet

Визначити тип переплетення відео.

Цей фільтр намагається визначити, чи є вхідні кадри черезрядковими, прогресивними, верхнім чи нижнім полем. Він також намагатиметься виявити поля, які повторюються між сусідніми кадрами (ознака телекіно).

Виявлення одного кадру враховує лише найближчі кадри під час класифікації кожного кадру. Виявлення кількох кадрів включає історію класифікації попередніх кадрів.

Фільтр реєструватиме ці значення метаданих:

single.current_frame

Виявлений тип поточного кадру за допомогою виявлення одного кадру. Один із: «tff» (спочатку верхнє поле), «bff» (спочатку нижнє поле), «прогресивний» або «невизначений»

single.tff

Сукупна кількість кадрів, виявлених у верхньому полі спочатку за допомогою виявлення одного кадру.

multiple.tff

Сукупна кількість кадрів, визначених у верхньому полі першим за допомогою виявлення кількох кадрів.

single.bff

Сукупна кількість кадрів, виявлених у нижньому полі спочатку за допомогою виявлення одного кадру.

multiple.current_frame

Виявлений тип поточного кадру за допомогою виявлення кількох кадрів. Один із: «tff» (спочатку верхнє поле), «bff» (спочатку нижнє поле), «прогресивний» або «невизначений»

multiple.bff

Сукупна кількість кадрів, виявлених у нижньому полі спочатку за допомогою виявлення кількох кадрів.

single.progressive

Сукупна кількість кадрів, визначених як прогресивні за допомогою виявлення одного кадру.

multiple.progressive

Сукупна кількість кадрів, визначених як прогресивні за допомогою виявлення кількох кадрів.

single.undetermined

Сукупна кількість кадрів, які не вдалося класифікувати за допомогою виявлення одного кадру.

multiple.undetermined

Сукупна кількість кадрів, які не вдалося класифікувати за допомогою виявлення кількох кадрів.

repeated.current_frame

Яке поле в поточному кадрі повторюється з останнього. Одне з «ні», «зверху» або «знизу».

repeated.neither

Сукупна кількість кадрів без повторюваного поля.

repeated.top

Сукупна кількість кадрів із верхнім полем, повтореним із верхнього поля попереднього кадру.

repeated.bottom

Сукупна кількість кадрів із нижнім полем, що повторюється з нижнього поля попереднього кадру.

Фільтр приймає такі параметри:

intl_thres

Встановіть поріг переплетення.

prog_thres

Встановіть прогресивний поріг.

rep_thres

Поріг для повторного виявлення поля.

half_life

Кількість кадрів, після яких внесок даного кадру в статистику зменшується вдвічі (тобто він робить лише 0,5 внеску в свою класифікацію). Значення за замовчуванням 0 означає, що всім кадрам назавжди надається повна вага 1,0.

analyze_interlaced_flag

Якщо це значення не дорівнює 0, idet використовуватиме вказану кількість кадрів, щоб визначити, чи правильний прапор черезрядкової розгортки, він не рахуватиме невизначені кадри. Якщо прапор виявиться точним, він використовуватиметься без будь-яких подальших обчислень, якщо він буде визнаний неточним, його буде очищено без будь-яких додаткових обчислень. Це дозволяє вставити фільтр idet як низький обчислювальний метод для очищення черезрядкової позначки

11.130 il

Поля деперемежування або чергування.

Цей фільтр дозволяє обробляти поля зображень із черезрядковою розгорткою без їх депереплетення. Деперемежування розбиває вхідний кадр на 2 поля (так звані половинні зображення). Непарні рядки переміщуються у верхню половину вихідного зображення, а парні — у нижню. Ви можете обробляти (фільтрувати) їх незалежно, а потім повторно чергувати.

Фільтр приймає такі параметри:

luma_mode, l
chroma_mode, c
alpha_mode, a

Доступні значення для luma_modeта : chroma_modealpha_mode

'none'

Нічого не робити.

'deinterleave, d'

Деперемежувати поля, розташовуючи одне над одним.

'interleave, i'

Поля чергування. Зворотний ефект деперемежування.

Значення за замовчуванням: none.

luma_swap, ls
chroma_swap, cs
alpha_swap, as

Поміняти місцями поля яскравості/кольору/альфа. Обмін парними та непарними рядками. Значення за замовчуванням: 0.

11.130.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

11.131 inflate

Застосуйте ефект збільшення до відео.

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

Він приймає такі варіанти:

threshold0
threshold1
threshold2
threshold3

Обмежте максимальну зміну для кожної площини, за замовчуванням 65535. Якщо 0, площина залишиться незмінною.

11.131.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

11.132 interlace

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

   Original        Original             New Frame
   Frame 'j'      Frame 'j+1'             (tff)
  ==========      ===========       ==================
    Line 0  -------------------->    Frame 'j' Line 0
    Line 1          Line 1  ---->   Frame 'j+1' Line 1
    Line 2 --------------------->    Frame 'j' Line 2
    Line 3          Line 3  ---->   Frame 'j+1' Line 3
     ...             ...                   ...
New Frame + 1 will be generated by Frame 'j+2' and Frame 'j+3' and so on

Він приймає наступні додаткові параметри:

scan

Це визначає, чи береться кадр через розгортку з парних (tff - за замовчуванням) чи непарних (bff) рядків прогресивного кадру.

lowpass

Вертикальний фільтр низьких частот, щоб уникнути переплетення твітерів і зменшити муар.

'0, off'

Вимкніть вертикальний фільтр низьких частот

'1, linear'

Увімкнути лінійний фільтр (за замовчуванням)

'2, complex'

Увімкнути комплексний фільтр. Це дещо зменшить щебет і муар, але краще збереже враження від деталей і суб’єктивної різкості.

11.133 kerndeint

Деінтерлейс вхідного відео за допомогою адаптивного деінтерлінгу ядра Donald Graft. Працюйте над переплетеними частинами відео, щоб створити прогресивні кадри.

Нижче наведено опис прийнятих параметрів.

thresh

Встановіть порогове значення, яке впливає на допуск фільтра під час визначення того, чи потрібно обробити піксельну лінію. Це має бути ціле число в діапазоні [0,255] і за умовчанням дорівнює 10. Значення 0 призведе до застосування процесу до кожного пікселя.

map

Зафарбовувати пікселі, що перевищують порогове значення, білим, якщо встановлено значення 1. За замовчуванням 0.

order

Встановіть порядок полів. Поміняти місцями поля, якщо встановлено значення 1, залиште поля без змін, якщо значення 0. За замовчуванням 0.

sharp

Увімкнути додаткове підвищення різкості, якщо встановлено значення 1. За замовчуванням 0.

twoway

Увімкнути двосторонню різкість, якщо встановлено значення 1. За замовчуванням 0.

11.133.1 Examples

  • Застосувати значення за замовчуванням:
    kerndeint=thresh=10:map=0:order=0:sharp=0:twoway=0
    
  • Увімкнути додаткову різкість:
    kerndeint=sharp=1
    
  • Зафарбуйте оброблені пікселі в білий колір:
    kerndeint=map=1
    

11.134 kirsch

Застосуйте оператор Кірша до вхідного відеопотоку.

Фільтр приймає такі параметри:

planes

Встановіть, які площини будуть оброблені, необроблені площини будуть скопійовані. За замовчуванням значення 0xf буде оброблено всі площини.

scale

Встановіть значення, яке буде помножено на відфільтрований результат.

delta

Встановіть значення, яке буде додано до відфільтрованого результату.

11.134.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

11.135 lagfun

Повільно оновлюйте темніші пікселі.

Цей фільтр робить короткі спалахи світла довшими. Цей фільтр приймає такі параметри:

decay

Встановити коефіцієнт розпаду. За замовчуванням .95. Дозволений діапазон від 0 до 1.

planes

Встановіть, які площини фільтрувати. За замовчуванням це все. Дозволений діапазон від 0 до 15.

11.135.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

11.136 lenscorrection

Виправлення радіальної дисторсії лінзи

Цей фільтр можна використовувати для корекції радіальних спотворень, які можуть виникнути в результаті використання ширококутних лінз, і таким чином повторно виправити зображення. Щоб знайти потрібні параметри, можна скористатися інструментами, доступними, наприклад, як частина opencv або просто методом проб і помилок. Щоб використовувати opencv, скористайтеся зразком калібрування (у розділі samples/cpp) із джерел opencv і витягніть коефіцієнти k1 і k2 з результуючої матриці.

Зауважте, що фактично той самий фільтр доступний у інструментах із відкритим кодом Krita та Digikam із проекту KDE.

На відміну від фільтра віньєтки , який також можна використовувати для компенсації помилок об’єктива, цей фільтр виправляє викривлення зображення, тоді як віньєтування виправляє розподіл яскравості, тому в деяких випадках ви можете використовувати обидва фільтри разом, хоча вам доведеться подбати про порядок, тобто про те, чи слід застосовувати віньєтування до або після корекції лінз.

11.136.1 Options

Фільтр приймає такі параметри:

cx

Відносна x-координата фокальної точки зображення, а отже, і центр спотворення. Це значення має діапазон [0,1] і виражається у частках ширини зображення. За замовчуванням 0,5.

cy

Відносна y-координата фокусної точки зображення, а отже, і центр спотворення. Це значення має діапазон [0,1] і виражається у частках висоти зображення. За замовчуванням 0,5.

k1

Коефіцієнт квадратичної поправки. Це значення має діапазон [-1,1]. 0 означає відсутність виправлення. За замовчуванням 0.

k2

Коефіцієнт подвійної квадратичної поправки. Це значення має діапазон [-1,1]. 0 означає відсутність виправлення. За замовчуванням 0.

i

Встановити тип інтерполяції. Може бути nearestабо bilinear. Типовим є nearest.

fc

Укажіть колір невідображених пікселів. Щоб дізнатися про синтаксис цього параметра, перевірте розділ (ffmpeg-utils)"Колір" у посібнику ffmpeg-utils . Типовий колір: black@0.

Формула, яка генерує виправлення:

r_src= r_tgt* (1 + k1* ( r_tgt/ r_0)^2 + k2* ( r_tgt/ r_0)^4)

де r_0– половина діагоналі зображення, а r_srcта r_tgt– відстані від фокусної точки на вихідному та цільовому зображеннях відповідно.

11.136.2 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

11.137 lensfun

Застосуйте корекцію лінзи за допомогою бібліотеки lensfun ( http://lensfun.sourceforge.net/ ).

Фільтр lensfunпотребує виробника камери, моделі камери та моделі об’єктива для застосування корекції об’єктива. Фільтр завантажить базу даних lensfun і запитає її, щоб знайти відповідні записи камери та об’єктива в базі даних. Поки ці записи можна знайти за допомогою заданих параметрів, фільтр може виконувати виправлення кадрів. Зауважте, що неповні рядки призведуть до того, що фільтр вибере найкращу відповідність наведеним параметрам, і фільтр виведе вибрані моделі камери та об’єктива (зареєстровано з рівнем «інформація»). Ви повинні вказати марку, модель камери та модель об’єктива, якщо вони потрібні.

Щоб отримати список доступних марок і моделей, пропустіть один або обидва варіанти makeі model. Фільтр надішле повний список до журналу з рівнем INFO. Перший стовпець – марка, а другий – модель. Щоб отримати список доступних об’єктивів, встановіть будь-які значення для марки та моделі та залиште цю lens_modelопцію. Фільтр надішле повний список лінз у журналі з рівнем INFO. Інструмент ffmpeg завершить роботу після друку списку.

Фільтр приймає такі параметри:

make

Марка фотоапарата (наприклад, «Canon»). Ця опція обов’язкова.

model

Модель фотоапарата (наприклад, «Canon EOS 100D»). Ця опція обов’язкова.

lens_model

Модель об’єктива (наприклад, «Canon EF-S 18-55mm f/3.5-5.6 IS STM»). Ця опція обов’язкова.

db_path

Повний шлях до папки бази даних об’єктивів. Якщо не встановлено, фільтр намагатиметься завантажити базу даних зі шляху інсталяції під час створення бібліотеки. За замовчуванням не встановлено.

mode

Тип корекції, який потрібно застосувати. Наступні значення є допустимими варіантами:

'vignetting'

Дозволяє фіксувати віньєтування об’єктива.

'geometry'

Дозволяє фіксувати геометрію лінзи. Це значення за умовчанням.

'subpixel'

Дозволяє виправити хроматичні аберації.

'vig_geo'

Дозволяє фіксувати віньєтування об’єктива та геометрію об’єктива.

'vig_subpixel'

Дозволяє фіксувати віньєтування об’єктива та хроматичні аберації.

'distortion'

Дозволяє фіксувати як геометрію лінзи, так і хроматичні аберації.

'all'

Дозволяє всі можливі виправлення.

focal_length

Фокусна відстань зображення/відео (масштаб; очікувана константа для відео). Наприклад, об’єктив 18–55 мм має діапазон фокусних відстаней [18–55], тому під час використання цього об’єктива слід вибрати значення в цьому діапазоні. За замовчуванням 18.

aperture

Діафрагма зображення/відео (очікувана константа для відео). Зауважте, що діафрагма використовується лише для корекції віньєтування. За замовчуванням 3.5.

focus_distance

Фокусна відстань зображення/відео (очікувана константа для відео). Зауважте, що фокусна відстань використовується лише для віньєтування та лише незначно впливає на процес корекції віньєтування. Якщо невідомо, залиште значення за замовчуванням (це 1000).

scale

Масштабний коефіцієнт, який застосовується після перетворення. Після виправлення відео більше не обов’язково буде прямокутним. Цей параметр визначає, яка частина отриманого зображення буде видимою. Значення 0 означає, що значення буде вибрано автоматично таким чином, що у вихідному зображенні буде мало або взагалі не буде невідображеної області. 1.0 означає, що додаткове масштабування не виконується. Нижчі значення можуть призвести до того, що буде видно більше виправленого зображення, тоді як вищі значення можуть уникнути непозначених областей на виході.

target_geometry

Цільова геометрія вихідного зображення/відео. Наступні значення є допустимими варіантами:

'rectilinear (default)'
'fisheye'
'panoramic'
'equirectangular'
'fisheye_orthographic'
'fisheye_stereographic'
'fisheye_equisolid'
'fisheye_thoby'
reverse

Застосуйте зворотну корекцію зображення (замість виправлення спотворення, застосуйте її).

interpolation

Тип інтерполяції, що використовується для виправлення спотворень. Наступні значення є допустимими варіантами:

'nearest'
'linear (default)'
'lanczos'

11.137.1 Examples

  • Застосовуйте корекцію об’єктивів марки «Canon», моделі фотоапарата «Canon EOS 100D» і моделі об’єктива «Canon EF-S 18-55mm f/3.5-5.6 IS STM» з фокусною відстанню «18» і діафрагмою «8.0».
    ffmpeg -i input.mov -vf lensfun=make=Canon:model="Canon EOS 100D":lens_model="Canon EF-S 18-55mm f/3.5-5.6 IS STM":focal_length=18:aperture=8 -c:v h264 -b:v 8000k output.mov
    
  • Застосовуйте те саме, що й раніше, але лише для перших 5 секунд відео.
    ffmpeg -i input.mov -vf lensfun=make=Canon:model="Canon EOS 100D":lens_model="Canon EF-S 18-55mm f/3.5-5.6 IS STM":focal_length=18:aperture=8:enable='lte(t\,5)' -c:v h264 -b:v 8000k output.mov
    

11.138 libplacebo

Гнучкий фільтр обробки з прискоренням GPU на основі libplacebo ( https://code.videolan.org/videolan/libplacebo ). Зауважте, що цей фільтр наразі приймає лише вхідні кадри Vulkan.

11.138.1 Options

Параметри цього фільтра розділені на такі розділи:

11.138.1.1 Режим виведення

Ці параметри керують загальним режимом виведення. За замовчуванням libplacebo намагатиметься якомога найкраще зберегти вихідну колориметрію та розмір, але застосовуватиме будь-яку вбудовану зернистість плівки, метадані dolby vision або анаморфотний SAR, присутні у вихідних кадрах.

w
h

Установіть вираз розмірності вихідного відео. Значенням за замовчуванням є вхідний розмір.

Допускає ті самі вирази, що й масштабний фільтр.

format

Встановіть заміну вихідного формату. Якщо не встановлено (за замовчуванням), кадри виводитимуться у тому самому форматі, що й відповідні вхідні кадри. В іншому випадку буде виконано перетворення формату.

force_original_aspect_ratio
force_divisible_by

Працюють так само, як ідентичні параметри масштабного фільтра.

normalize_sar

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

pad_crop_ratio

Визначає співвідношення (між 0.0і 1.0) між відступом і обрізанням, якщо вхідне співвідношення сторін не збігається з вихідним співвідношенням сторін і normalize_sarдіє. За умовчанням вміст 0.0завжди обрізається чорними рамками, тоді як значення 1.0завжди обрізає частини вмісту. Можливі проміжні значення, що призводить до поєднання двох підходів.

colorspace
color_primaries
color_trc
range

Налаштуйте колірний простір, у якому відображатимуться вихідні кадри. Значення за замовчуванням autoвиводить кадри в тому самому форматі, що й вхідні кадри, без змін. Для будь-якого іншого значення буде виконано перетворення.

Перегляньте список можливих значень у фільтрі setparams .

apply_filmgrain

Застосуйте зернистість плівки (наприклад, AV1 або H.274), якщо вона є у вихідних кадрах, і видаліть її з виводу. Увімкнено за замовчуванням.

apply_dolbyvision

Застосуйте метадані Dolby Vision RPU, якщо вони присутні у вихідних кадрах, і видаліть їх із виводу. Увімкнено за замовчуванням. Зауважте, що Dolby Vision завжди виводитиме BT.2020+PQ, замінюючи звичайні метадані вхідного кадру. Вони також будуть вибрані як значення autoдля відповідних параметрів виводу кадру.

11.138.1.2 Масштабування

Параметри в цьому розділі керують тим, як libplacebo виконує збільшення та (за потреби) зменшення масштабу. Зауважте, що libplacebo завжди внутрішньо працюватиме з вмістом 4:4:4, тому будь-які формати кольоровості з субдискретизацією, такі як yuv420p, обов’язково підвищуватимуться та зменшуватимуться як частина процесу візуалізації. Це означає, що масштабування може діяти, навіть якщо роздільна здатність джерела та призначення однакова.

upscaler
downscaler

Налаштуйте ядро ​​фільтра, яке використовується для збільшення та зменшення масштабу. Відповідними значеннями за замовчуванням є spline36та mitchell. Щоб отримати повний список можливих значень, перейдіть helpдо цих параметрів. Найважливіші цінності:

'none'

Примусово використовує вбудовану вибірку текстур GPU (зазвичай білінійну). Надзвичайно швидко, але поганої якості, особливо при зменшенні масштабу.

'bilinear'

Білінійна інтерполяція. Як правило, це можна зробити безкоштовно на графічних процесорах, за винятком випадків, коли це призведе до псевдонімів. Швидко і неякісно.

'nearest'

Інтерполяція найближчого сусіда. Різкий, але дуже згладжений.

'oversample'

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

'lanczos'

Стандартне ядро ​​інтерполяції sinc-sinc.

'spline36'

Кубічна сплайн-апроксимація Ланцоша. Жодної різниці в продуктивності, але дзвінок трохи менше.

'ewa_lanczos'

Еліптично зважена середня версія lanczos на основі ядра jinc-sinc. Це також у народі називають просто «масштабуванням Jinc». Повільно, але дуже якісно.

'gaussian'

Ядро Гауса. Має певні ідеальні математичні властивості, але суб’єктивно дуже розмиті.

'mitchell'

Кубічний сплайн BC з параметрами, рекомендованими Мітчеллом і Нетравалі. Дуже мало дзвонить.

lut_entries

Налаштовує розмір LUT масштабувальника в діапазоні від 1до 256. За замовчуванням 0буде вибрано внутрішнє типове значення libplacebo, зазвичай 64.

antiringing

Вмикає блокування дзвінків (для фільтрів без EWA). Значення (між 0.0та 1.0) налаштовує потужність алгоритму запобігання дзвінку. Може збільшити псевдонім, якщо встановлено занадто високе значення. Вимкнено за замовчуванням.

sigmoid

Увімкнути сигмоподібне стиснення під час масштабування. Трохи зменшує дзвін. Увімкнено за замовчуванням.

11.138.1.3 Дебандування

Libplacebo постачається з вбудованим фільтром дебандингу, який добре протидіє багатьом поширеним джерелам смуг і блокувань. Настійно рекомендується вмикати це, коли потрібна якість.

deband

Увімкнути (швидкий) алгоритм розблокування. Вимкнено за замовчуванням.

deband_iterations

Кількість ітерацій дебандування алгоритму дебандування. Кожна ітерація виконується з поступово збільшеним радіусом (і зменшеним порогом). Рекомендовані значення знаходяться в діапазоні 1до 4. За замовчуванням 1.

deband_threshold

Зниження міцності фільтра. Вищі цифри призводять до більш агресивного розпаду. За замовчуванням 4.0.

deband_radius

Радіус фільтра дебандування. Більший радіус кращий для повільних схилів, тоді як менший радіус – для крутих схилів. За замовчуванням 16.0.

deband_grain

Кількість додаткового вихідного зерна для додавання. Допомагає приховати недоліки. За замовчуванням 6.0.

11.138.1.4 Регулювання кольору

Набір суб’єктивних елементів керування кольором. Не дуже строгий, тому точний ефект дещо відрізнятиметься залежно від первинних вхідних даних і простору кольорів.

brightness

Підвищення яскравості між -1.0та 1.0. За замовчуванням 0.0.

contrast

Посилення контрасту між 0.0та 16.0. За замовчуванням 1.0.

saturation

Посилення насиченості між 0.0та 16.0. За замовчуванням 1.0.

hue

Зсув відтінку в радіанах між -3.14та 3.14. За замовчуванням 0.0. Це обертатиме УФ-підвектор, за замовчуванням коефіцієнти BT.709 для входів RGB.

gamma

Регулювання гами, між 0.0та 16.0. За замовчуванням 1.0.

cones

Модель конуса, яка використовується для моделювання дальтонізму. Приймає будь-яку комбінацію l, mі s. Ось кілька прикладів:

'm'

Дейтераномалія / дейтеранопія (вражає 3%-4% населення)

'l'

Протаномалія / протанопія (вражає 1%-2% населення)

'l+m'

Монохромність (дуже рідко)

'l+m+s'

Ахроматопсія (повна втрата денного зору, вкрай рідко)

cone-strength

Коефіцієнт підсилення для конусів cones, визначених між 0.0і 10.0. Значення не 1.0призводить до зміни кольорового зору. Значення 0.0(за замовчуванням) імітує повну втрату цих конусів. Наведені вище значення 1.0призводять до перебільшення відмінностей між колбочками, що може допомогти компенсувати погіршення кольорового зору.

11.138.1.5 Пікове виявлення

Щоб допомогти впоратися з джерелами, які мають лише статичні метадані HDR10 (або взагалі не мають тегів), libplacebo використовує власний внутрішній обчислювальний шейдер аналізу кадрів для аналізу вихідних кадрів і адаптації функції відображення тонів у реальному часі. Якщо це надто повільно або якщо потрібні точно відтворювані ідеальні результати кадру, рекомендується вимкнути цю функцію.

peak_detect

Увімкнути виявлення піку HDR. Ігнорує статичні значення MaxCLL/MaxFALL на користь динамічного виявлення на вхідних даних. Зауважте, що виявлені значення не записуються назад у вихідні кадри, вони лише керують процесом внутрішнього тонального відображення. Увімкнено за замовчуванням.

smoothing_period

Період згладжування виявлення піку між 0.0та 1000.0. Вищі значення призводять до того, що виявлення піків стає менш чутливим до змін у вхідному сигналі. За замовчуванням 100.0.

minimum_peak

Нижня межа виявленого піку (відносно білого SDR), між 0.0 та 100.0. За замовчуванням 1.0.

scene_threshold_low
scene_threshold_high

Нижній і верхній пороги для виявлення зміни сцени. Виражається в логарифмічній шкалі між 0.0та 100.0. За умовчанням 5.5 і 10.0, відповідно. Встановлення будь-якого значення від’ємного значення вимикає цю функцію.

overshoot

Границя перевищення пікового згладжування, між 0.0та 1.0. Забезпечує запас безпеки для запобігання зрізанням у результаті згладжування піків. За замовчуванням 0.05, що відповідає маржі 5%.

11.138.1.6 Тонове відображення

Параметри в цьому розділі керують тим, як libplacebo виконує відображення тонів і відображення гами, коли має справу з невідповідностями між широкою гамою та вмістом HDR. Загалом libplacebo покладається на точне тегування джерела та опанування інформації про колірну гамму дисплея, щоб отримати найкращі результати.

intent

Спосіб відтворення для використання під час адаптації між різними основними колірними гамами (після відображення тонів).

'perceptual'

Перцептивне відображення гами. В даний час еквівалентний відносному колориметричному.

'relative'

Відносний колориметричний. Це значення за умовчанням.

'absolute'

Абсолютний колориметричний.

'saturation'

Картування насиченості. Примусово розтягує вихідну гаму до цільової.

gamut_mode

Як працювати з кольорами, що виходять за межі палітри, які можуть виникнути в результаті колориметричного відображення палітри.

'clip'

Нічого не робіть, просто виріжте кольори, що виходять за межі діапазону, до гучності RGB. Це значення за умовчанням.

'warn'

Виділіть пікселі, що виходять за межі палітри (розфарбувавши їх рожевим кольором).

'darken'

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

'desaturate'

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

tonemapping

Алгоритм тонального відображення для використання. Доступні значення:

'auto'

Автоматичний вибір на основі внутрішньої евристики. Це значення за умовчанням.

'clip'

Не виконує відображення тонів, лише відсікає кольори, що виходять за межі діапазону. Зберігає ідеальну точність кольору для кольорів у діапазоні, але повністю знищує інформацію поза діапазоном. Не виконує жодної адаптації чорної точки. Не налаштовується.

'bt.2390'

EETF зі звіту ITU-R BT.2390, згортання ермітового сплайну з лінійним сегментом. Зміщення точки коліна можна налаштувати. Зауважте, що цей параметр за умовчанням має значення 1.0, а не значення 0.5зі специфікації ITU-R.

'bt.2446a'

EETF зі звіту ITU-R BT.2446, метод A. Розроблено для добре освоєних джерел HDR. Можна використовувати як для прямого, так і для зворотного тонального відображення. Не налаштовується.

'spline'

Простий сплайн, що складається з двох поліномів, об’єднаних однією точкою опори. Параметр дає точку опори (у просторі PQ), за замовчуванням 0.30. Можна використовувати як для прямого, так і для зворотного тонального відображення.

'reinhard'

Простий нелінійний глобальний алгоритм тонального відображення. Параметр визначає локальний коефіцієнт контрастності на піку дисплея. По суті, параметр 0.5означає, що еталонний білий буде приблизно вдвічі яскравішим, ніж під час відсікання. За замовчуванням 0.5, що призводить до найпростішого формулювання цієї функції.

'mobius'

Узагальнення алгоритму тонального відображення Рейнхарда для підтримки додаткового лінійного нахилу поблизу чорного. Параметр тонального відображення вказує на компроміс між лінійною ділянкою та нелінійною ділянкою. По суті, для заданого параметра xкожне значення кольору нижче xбуде відображено лінійно, тоді як вищі значення отримають нелінійне відображення тонів. Значення поблизу 1.0змушують цю криву поводитися як clip, тоді як значення поблизу 0.0змушують цю криву поводитися як reinhard. Значення за замовчуванням — це 0.3, яке забезпечує хороший баланс між колориметричною точністю та збереженням деталей поза палітрою.

'hable'

Алгоритм тонального відображення фрагментів, розроблений Джоном Хейблом для використання в Uncharted 2, натхненний аналогічним алгоритмом тонального відображення, який використовує Kodak. Популяризувався завдяки використанню у відеоіграх із рендерингом HDR. Дуже добре зберігає як темні, так і яскраві деталі, але має недолік, пов’язаний із досить значною зміною середньої яскравості. Це начебто схоже на reinhardз параметром 0.24.

'gamma'

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

'linear'

Лінійно розтягує вхідний діапазон до вихідного діапазону в просторі PQ. Це точно збереже всі деталі, але призведе до суттєво іншої середньої яскравості. Може використовуватися для інверсного тонального відображення на додаток до звичайного тонального відображення. Параметр можна використовувати як додатковий лінійний коефіцієнт посилення (за замовчуванням 1.0).

tonemapping_param

Для регульованих функцій тонального відображення цей параметр можна використовувати для точного налаштування поведінки кривої. Зверніться до документації tonemapping. Значення за замовчуванням 0.0замінюється бажаним параметром за замовчуванням кривої.

tonemapping_mode

Цей параметр визначає, як функція тонального відображення, визначена за допомогою tonemapping, застосовується до кольорів у сцені. Можливі значення:

'auto'

Автоматичний вибір на основі внутрішньої евристики. Це значення за умовчанням.

'rgb'

Застосуйте функцію для кожного каналу в просторі кольорів RGB. Поканальне відображення тонів у RGB. Гарантує відсутність обрізання та значне зменшення насиченості результату, але досить суттєво спотворює кольори. Дуже схожий на «голлівудський» вигляд і відчуття.

'max'

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

'hybrid'

Тонова карта на канал для світлих ділянок і лінійно (на основі яскравості) для півтонів/тіней на основі фіксованої 2.4кривої коефіцієнта гами.

'luma'

Налаштуйте лінійну карту тонів на компонент яскравості (CIE Y) і налаштуйте (зменште насиченість) кольоровість для компенсації за допомогою простого постійного коефіцієнта. По суті, це режим, який використовується в методі A ITU-R BT.2446.

inverse_tonemapping

Якщо ввімкнено, цей фільтр також намагатиметься розтягнути сигнали SDR, щоб заповнити об’єми вихідних кольорів HDR. Вимкнено за замовчуванням.

tonemapping_crosstalk

Додатковий коефіцієнт перехресних перешкод тонального відображення між 0.0та 0.3. Це може допомогти зменшити проблеми тонального відображення певних яскравих спектральних кольорів. За замовчуванням 0.04.

tonemapping_lut_size

Розмір LUT тонального відображення між 2та 1024. За замовчуванням 256. Зауважте, що ця цифра зведена в квадрат у поєднанні з peak_detect.

11.138.1.7 Дизерінг

За замовчуванням libplacebo за потреби змішуватиметься, що включає відтворення в будь-якому цілочисельному форматі з точністю нижче 16 біт. Рекомендовано завжди залишати цю функцію увімкненою, оскільки в іншому випадку на виході можуть з’явитися видимі смуги, навіть якщо debandingфільтр увімкнено. Якщо потрібна максимальна продуктивність, скористайтеся ordered_fixedзамість вимкнення дизерінгу.

dithering

Використовувати метод дизерінгу. Приймає такі значення:

'none'

Повністю вимикає дизерінг. Може призвести до видимих ​​смуг.

'blue'

Змішування з псевдосинім шумом. Це значення за умовчанням.

'ordered'

Настроювана впорядкована схема дизерінгу.

'ordered_fixed'

Швидше впорядковане тремтіння з фіксованим розміром 6. Без текстур.

'white'

Змішування з білим шумом. Без текстур.

dither_lut_size

Розмір LUT, як log base2 між 1і 8. За замовчуванням 6, що відповідає розміру LUT 64x64.

dither_temporal

Вмикає тимчасове сповільнення. Вимкнено за замовчуванням.

11.138.1.8 Користувацькі шейдери

libplacebo підтримує низку власних шейдерів на основі синтаксису mpv .hook GLSL. Збірку таких шейдерів можна знайти тут: https://github.com/mpv-player/mpv/wiki/User-Scripts#user-shaders

Повний опис формату шейдера mpv виходить за рамки цього розділу, але короткий опис можна знайти тут: https://mpv.io/manual/master/#options-glsl-shader

custom_shader_path

Вказує шлях до спеціального файлу шейдера для завантаження під час виконання.

custom_shader_bin

Визначає повний настроюваний шейдер як необроблений рядок.

11.138.1.9 Налагодження / продуктивність

Усі параметри в цьому розділі за умовчанням вимкнено. Вони можуть бути корисними, коли намагаєтеся отримати максимальну продуктивність ціною якості.

skip_aa

Вимкніть згладжування під час зменшення масштабу.

polar_cutoff

Усічені полярні (EWA) ядра скалера нижче цієї абсолютної величини, між 0.0та 1.0.

disable_linear

Вимкнути лінійне масштабування світла.

disable_builtin

Вимкнути вбудовану вибірку GPU (примусово вмикає LUT).

force_icc_lut

Примусово використовувати повний ICC 3DLUT для відображення гами.

disable_fbos

Примусово вимкніть FBO, що призведе до втрати майже всіх функцій, але запропонує максимально можливу швидкість.

11.138.2 Commands

Цей фільтр підтримує майже всі наведені вище параметри як команди .

11.138.3 Examples

  • Повний приклад того, як ініціалізувати пристрій Vulkan, завантажити кадри в графічний процесор, виконати перетворення фільтра в yuv420p і завантажити кадри назад у центральний процесор для виведення. Зауважте, що в окремих випадках ви можете уникнути необхідності виконувати перетворення формату, вказавши правильний formatпараметр фільтра, що відповідає вхідним кадрам.
    ffmpeg -i $INPUT -init_hw_device vulkan -vf hwupload,libplacebo=format=yuv420p,hwdownload,format=yuv420p $OUTPUT
    
  • Вхід тональної карти на вихід стандартної гами BT.709:
    libplacebo=colorspace=bt709:color_primaries=bt709:color_trc=bt709:range=tv
    
  • Перемасштабуйте вхідні дані, щоб відповідати стандарту 1080p, із високоякісним масштабуванням:
    libplacebo=w=1920:h=1080:force_original_aspect_ratio=decrease:normalize_sar=true:upscaler=ewa_lanczos:downscaler=ewa_lanczos
    
  • Перетворення вхідних даних у стандартний sRGB JPEG:
    libplacebo=format=yuv420p:colorspace=bt470bg:color_primaries=bt709:color_trc=iec61966-2-1:range=pc
    
  • Використовуйте параметри дебандування вищої якості:
    libplacebo=deband=true:deband_iterations=3:deband_radius=8:deband_threshold=6
    
  • Запустіть цей фільтр на ЦП у системах із встановленою Mesa (і з вимкненими найдорожчими опціями):
    ffmpeg ... -init_hw_device vulkan:llvmpipe ... -vf libplacebo=upscaler=none:downscaler=none:peak_detect=false
    
  • Пригнічуйте програму зернистості плівки AV1/H.274 на основі процесора в декодері на користь цього фільтра. Зауважте, що це виграш лише в тому випадку, якщо кадри вже знаходяться на графічному процесорі, або якщо ви використовуєте libplacebo для інших цілей, оскільки в іншому випадку зворотне проходження VRAM з лишком компенсує будь-яке очікуване прискорення.
    ffmpeg -export_side_data +film_grain ... -vf libplacebo=apply_filmgrain=true
    

11.139 libvmaf

Обчисліть оцінку VMAF (Video Multi-Method Assessment Fusion) для опорної/спотвореної пари вхідних відео.

Перший вхід – це спотворене відео, а другий вхід – еталонне відео.

Отримана оцінка VMAF друкується через систему реєстрації.

Для цього потрібна бібліотека Netflix vmaf (libvmaf) як передумова. Після встановлення бібліотеки її можна активувати за допомогою: ./configure --enable-libvmaf.

Фільтр має такі параметри:

model

"|" розділений список моделей vmaf. Кожну модель можна налаштувати за допомогою кількох параметрів. Значення за замовчуванням:"version=vmaf_v0.6.1"

model_path

Застаріле, використовуйте model='path=...'.

enable_transform

Застаріле, використовуйте model='enable_transform=true'.

phone_model

Застаріле, використовуйте model='enable_transform=true'.

enable_conf_interval

Застаріле, використовуйте model='enable_conf_interval=true'.

feature

"|" розділений список функцій. Кожну функцію можна налаштувати за допомогою кількох параметрів.

psnr

Застаріле, використовуйте feature='name=psnr'.

ssim

Застаріле, використовуйте feature='name=ssim'.

ms_ssim

Застаріле, використовуйте feature='name=ms_ssim'.

log_path

Встановіть шлях до файлу, який буде використовуватися для зберігання файлів журналу.

log_fmt

Установіть формат файлу журналу (xml, json, csv або sub).

n_threads

Встановити кількість потоків, які будуть використовуватися під час ініціалізації libvmaf. Значення за замовчуванням: 0, потоків немає.

n_subsample

Встановіть інтервал піддискретизації кадру, який буде використовуватися.

Цей фільтр також підтримує параметри синхронізації кадрів .

11.139.1 Examples

  • У наведених нижче прикладах спотворене відеоdistorted.mpgпорівнюється з еталонним файломreference.mpg.
  • Основне використання:
    ffmpeg -i distorted.mpg -i reference.mpg -lavfi libvmaf=log_path=output.xml -f null -
    
  • Приклад із кількома моделями:
    ffmpeg -i distorted.mpg -i reference.mpg -lavfi libvmaf='model=version=vmaf_v0.6.1\\:name=vmaf|version=vmaf_v0.6.1neg\\:name=vmaf_neg' -f null -
    
  • Приклад із кількома додатковими функціями:
    ffmpeg -i distorted.mpg -i reference.mpg -lavfi libvmaf='feature=name=psnr|name=ciede' -f null -
    
  • Приклад із опціями та різними контейнерами:
    ffmpeg -i distorted.mpg -i reference.mkv -lavfi "[0:v]settb=AVTB,setpts=PTS-STARTPTS[main];[1:v]settb=AVTB,setpts=PTS-STARTPTS[ref];[main][ref]libvmaf=log_fmt=json:log_path=output.json" -f null -
    

11.140 limitdiff

Застосуйте фільтр обмеженої різниці, використовуючи другий і за бажанням третій відеопотік.

Фільтр приймає такі параметри:

threshold

Встановіть порогове значення, яке використовуватиметься, коли дозволятимуться певні відмінності між відеопотоками. Будь-яке абсолютне значення різниці, нижче або точніше за це порогове значення, вибере піксельні компоненти з першого відеопотоку.

elasticity

Встановіть еластичність м'якого порогу під час обробки відеопотоків. Це значення, помножене на перше, встановлює другий поріг. Будь-яке значення абсолютної різниці, що перевищує або точніше друге порогове значення, вибиратиме піксельні компоненти з другого відеопотоку. Для значень між цими двома пороговими значеннями буде використана лінійна інтерполяція між першим і другим відеопотоком.

reference

Увімкнути обробку еталонного (третього) відеопотоку. За замовчуванням вимкнено. Якщо встановлено, цей відеопотік використовуватиметься для обчислення абсолютної різниці з першим відеопотоком.

planes

Вкажіть, які площини будуть оброблені. За замовчуванням усі доступні.

11.140.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди , крім параметра 'reference'.

11.141 limiter

Обмежує значення піксельних компонентів вказаним діапазоном [min, max].

Фільтр приймає такі параметри:

min

Нижня межа. За замовчуванням встановлено найнижче дозволене значення для введення.

max

Верхня межа. За умовчанням встановлено найвище дозволене значення для введення.

planes

Вкажіть, які площини будуть оброблені. За замовчуванням усі доступні.

11.141.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

11.142 loop

Цикл відео кадрів.

Фільтр приймає такі параметри:

loop

Встановіть кількість петель. Встановлення цього значення на -1 призведе до нескінченних циклів. За замовчуванням 0.

size

Встановіть максимальний розмір у кількості кадрів. За замовчуванням 0.

start

Установіть перший кадр циклу. За замовчуванням 0.

11.142.1 Examples

  • Нескінченне повторення одного першого кадру:
    loop=loop=-1:size=1:start=0
    
  • Повторіть один перший кадр 10 разів:
    loop=loop=10:size=1:start=0
    
  • Повторіть 10 перших кадрів 5 разів:
    loop=loop=5:size=10:start=0
    

11.143 lut1d

Застосуйте 1D LUT до вхідного відео.

Фільтр приймає такі параметри:

file

Встановіть назву файлу 1D LUT.

Наразі підтримувані формати:

'cube'

Іриди

'csp'

cineSpace

interp

Виберіть режим інтерполяції.

Доступні значення:

'nearest'

Використовуйте значення з найближчої визначеної точки.

'linear'

Інтерполюйте значення за допомогою лінійної інтерполяції.

'cosine'

Інтерполяція значень за допомогою косинусної інтерполяції.

'cubic'

Інтерполюйте значення за допомогою кубічної інтерполяції.

'spline'

Інтерполюйте значення за допомогою сплайн-інтерполяції.

11.143.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

11.144 lut3d

Застосуйте 3D LUT до вхідного відео.

Фільтр приймає такі параметри:

file

Встановіть назву файлу 3D LUT.

Наразі підтримувані формати:

'3dl'

Після ефектів

'cube'

Іриди

'dat'

Da Vinci

'm3d'

Пандора

'csp'

cineSpace

interp

Виберіть режим інтерполяції.

Доступні значення:

'nearest'

Використовуйте значення з найближчої визначеної точки.

'trilinear'

Інтерполюйте значення, використовуючи 8 точок, що визначають куб.

'tetrahedral'

Інтерполюйте значення за допомогою тетраедра.

'pyramid'

Інтерполяція значень за допомогою піраміди.

'prism'

Інтерполюйте значення за допомогою призми.

11.144.1 Commands

Цей фільтр підтримує interpопцію як команди .

11.145 lumakey

Перетворення певних значень яскравості на прозорість.

Фільтр приймає такі параметри:

threshold

Встановіть яскравість, яка використовуватиметься як основа для прозорості. Значення за замовчуванням: 0.

tolerance

Встановіть діапазон значень яскравості, які потрібно вивести. Значення за замовчуванням: 0.01.

softness

Встановити діапазон м'якості. Значення за замовчуванням: 0. Використовуйте це, щоб керувати поступовим переходом від нуля до повної прозорості.

11.145.1 Commands

Цей фільтр підтримує ті самі команди , що й параметри. Команда приймає той самий синтаксис відповідного параметра.

Якщо вказаний вираз недійсний, його поточне значення зберігається.

11.146 lut, lutrgb, lutyuv

Обчисліть таблицю пошуку для прив’язки кожного вхідного значення компонента пікселя до вихідного значення та застосуйте її до вхідного відео.

lutyuvзастосовує таблицю пошуку до вхідного відео YUV, lutrgb до вхідного відео RGB.

Ці фільтри приймають такі параметри:

c0

встановити перший компонент піксельного виразу

c1

встановити другий компонент піксельного виразу

c2

встановити вираз компонента третього пікселя

c3

встановіть четвертий піксельний компонент виразу, що відповідає альфа-компоненту

r

встановити червоний складовий вираз

g

встановити вираз зеленого компонента

b

встановити вираз синього компонента

a

вираз альфа-компонента

y

встановити вираз компонента Y/яскравості

u

встановити вираз компонента U/Cb

v

встановити складовий вираз V/Cr

Кожен із них визначає вираз, який слід використовувати для обчислення таблиці пошуку для відповідних значень піксельних компонентів.

Точний компонент, пов’язаний з кожним із c*параметрів, залежить від формату вхідних даних.

Фільтр lutпотребує піксельних форматів YUV або RGB на вході, lutrgbRGB піксельних форматів на вході та lutyuvYUV.

Вирази можуть містити такі константи та функції:

w
h

Ширина та висота введення.

val

Вхідне значення для компонента пікселя.

clipval

Вхідне значення, обрізане до діапазону minval- .maxval

maxval

Максимальне значення для компонента пікселя.

minval

Мінімальне значення для компонента пікселя.

negval

Об’єднане значення для значення компонента пікселя, обрізане до діапазону minval- ; maxvalце відповідає виразу "maxval-clipval+minval".

clip(val)

Обчислене значення в val, обрізане до діапазону minval- .maxval

gammaval(gamma)

Обчислене значення гамма-корекції значення компонента пікселя, обрізане до діапазону minval- . maxvalЦе відповідає виразу "pow((clipval-minval)/(maxval-minval)\, gamma)*(maxval-minval)+minval"

Усі вирази за умовчанням мають значення "clipval".

11.146.1 Commands

Цей фільтр підтримує ті самі команди , що й параметри.

11.146.2 Examples

  • Скасувати вхідне відео:
    lutrgb="r=maxval+minval-val:g=maxval+minval-val:b=maxval+minval-val"
    lutyuv="y=maxval+minval-val:u=maxval+minval-val:v=maxval+minval-val"
    

    Наведене вище те саме, що:

    lutrgb="r=negval:g=negval:b=negval"
    lutyuv="y=negval:u=negval:v=negval"
    
  • Негативне освітлення:
    lutyuv=y=negval
    
  • Видаліть кольорові компоненти, перетворивши відео на сіре зображення:
    lutyuv="u=128:v=128"
    
  • Застосуйте ефект спалювання люми:
    lutyuv="y=2*val"
    
  • Видаліть зелений і синій компоненти:
    lutrgb="g=0:b=0"
    
  • Встановіть постійне значення альфа-каналу на вхідних даних:
    format=rgba,lutrgb=a="maxval-minval/2"
    
  • Правильна гамма яскравості з коефіцієнтом 0,5:
    lutyuv=y=gammaval(0.5)
    
  • Відкинути найменш значущі біти яскравості:
    lutyuv=y='bitand(val, 128+64+32)'
    
  • Технічний ефект:
    lutyuv=u='(val-maxval/2)*2+maxval/2':v='(val-maxval/2)*2+maxval/2'
    

11.147 lut2, tlut2

Фільтр lut2приймає два вхідних потоки і виводить один потік.

Фільтр tlut2(час lut2) приймає два послідовних кадри з одного потоку.

Цей фільтр приймає такі параметри:

c0

встановити перший компонент піксельного виразу

c1

встановити другий компонент піксельного виразу

c2

встановити вираз компонента третього пікселя

c3

встановіть четвертий піксельний компонент виразу, що відповідає альфа-компоненту

d

встановити вихідну бітову глибину, доступну лише для lut2фільтра. За замовчуванням 0, що означає, що бітова глибина автоматично вибирається з першого вхідного формату.

Фільтр lut2також підтримує параметри синхронізації кадрів .

Кожен із них визначає вираз, який слід використовувати для обчислення таблиці пошуку для відповідних значень піксельних компонентів.

Точний компонент, пов’язаний з кожним із c*параметрів, залежить від формату вхідних даних.

Вирази можуть містити такі константи:

w
h

Ширина та висота введення.

x

Перше вхідне значення для компонента пікселя.

y

Друге вхідне значення для компонента пікселя.

bdx

Розрядність першого вхідного відео.

bdy

Бітова глибина другого вхідного відео.

Усі вирази за умовчанням мають значення "x".

11.147.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди , крім параметра d.

11.147.2 Examples

  • Виділіть відмінності між двома відеопотоками RGB:
    lut2='ifnot(x-y,0,pow(2,bdx)-1):ifnot(x-y,0,pow(2,bdx)-1):ifnot(x-y,0,pow(2,bdx)-1)'
    
  • Виділіть відмінності між двома відеопотоками YUV:
    lut2='ifnot(x-y,0,pow(2,bdx)-1):ifnot(x-y,pow(2,bdx-1),pow(2,bdx)-1):ifnot(x-y,pow(2,bdx-1),pow(2,bdx)-1)'
    
  • Показати максимальну різницю між двома відеопотоками:
    lut2='if(lt(x,y),0,if(gt(x,y),pow(2,bdx)-1,pow(2,bdx-1))):if(lt(x,y),0,if(gt(x,y),pow(2,bdx)-1,pow(2,bdx-1))):if(lt(x,y),0,if(gt(x,y),pow(2,bdx)-1,pow(2,bdx-1)))'
    

11.148 maskedclamp

Затисніть перший вхідний потік другим вхідним і третім вхідним потоком.

Повертає значення першого потоку між другим вхідним потоком - undershootі третім вхідним потоком + overshoot.

Цей фільтр приймає такі параметри:

undershoot

Значення за замовчуванням: 0.

overshoot

Значення за замовчуванням: 0.

planes

Встановіть, які площини будуть оброблені як растрові, необроблені площини будуть скопійовані з першого потоку. За замовчуванням значення 0xf буде оброблено всі площини.

11.148.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

11.149 maskedmax

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

Цей фільтр приймає такі параметри:

planes

Встановіть, які площини будуть оброблені як растрові, необроблені площини будуть скопійовані з першого потоку. За замовчуванням значення 0xf буде оброблено всі площини.

11.149.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

11.150 maskedmerge

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

Значення 0 у компоненті пікселя третього потоку означає, що компонент пікселя з першого потоку повертається без змін, тоді як максимальне значення (наприклад, 255 для 8-бітного відео) означає, що компонент пікселя з другого потоку повертається без змін. Проміжні значення визначають ступінь злиття між піксельними компонентами обох вхідних потоків.

Цей фільтр приймає такі параметри:

planes

Встановіть, які площини будуть оброблені як растрові, необроблені площини будуть скопійовані з першого потоку. За замовчуванням значення 0xf буде оброблено всі площини.

11.150.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

11.151 maskedmin

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

Цей фільтр приймає такі параметри:

planes

Встановіть, які площини будуть оброблені як растрові, необроблені площини будуть скопійовані з першого потоку. За замовчуванням значення 0xf буде оброблено всі площини.

11.151.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

11.152 maskedthreshold

Виберіть пікселі, порівнюючи абсолютну різницю двох відеопотоків із фіксованим порогом.

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

Цей фільтр приймає такі параметри:

threshold

Встановіть порогове значення, яке використовується під час вибору пікселів з абсолютної різниці з двох вхідних відеопотоків.

planes

Встановіть, які площини будуть оброблені як растрові, необроблені площини будуть скопійовані з другого потоку. За замовчуванням значення 0xf буде оброблено всі площини.

11.152.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

11.153 maskfun

Створення маски з вхідного відео.

Наприклад, корисно створювати маски руху після tblendфільтра.

Цей фільтр приймає такі параметри:

low

Встановіть низький поріг. Будь-який піксельний компонент, нижчий або точніший за це значення, буде встановлено на 0.

high

Встановити високий поріг. Для будь-якого піксельного компонента, вищого за це значення, буде встановлено максимальне значення, дозволене для поточного формату пікселів.

planes

Встановіть площини для фільтрування, за замовчуванням фільтруються всі доступні площини.

fill

Заповніть усі пікселі рамки цим значенням.

sum

Установіть максимальне середнє значення пікселів для кадру. Якщо сума всіх піксельних компонентів перевищує це середнє значення, вихідний кадр буде повністю заповнений значенням, встановленим fillпараметром. Як правило, це корисно для зміни сцени в поєднанні з tblendфільтром.

11.153.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

11.154 mcdeint

Застосуйте депереплетіння з компенсацією руху.

Йому потрібне одне поле на кадр як вхідні дані, тому його слід використовувати разом із yadif=1/3 або еквівалентом.

Цей фільтр доступний лише у ffmpeg версії 4.4 або ранішої.

Цей фільтр приймає такі параметри:

mode

Встановіть режим деінтерлейсингу.

Він приймає одне з таких значень:

'fast'
'medium'
'slow'

використовувати ітераційну оцінку руху

'extra_slow'

люблю 'slow', але використовувати кілька опорних кадрів.

Значення за замовчуванням: 'fast'.

parity

Встановіть парність поля зображення, яка передбачається для вхідного відео. Це має бути одне з таких значень:

'0, tff'

спочатку припустимо верхнє поле

'1, bff'

спочатку припустимо нижнє поле

Значення за замовчуванням: 'bff'.

qp

Встановіть поблочний параметр квантування (QP), який використовується внутрішнім кодувальником.

Вищі значення мають призвести до більш гладкого векторного поля руху, але менш оптимальних окремих векторів. Значення за замовчуванням 1.

11.155 median

Виберіть середній піксель із певного прямокутника, визначеного радіусом.

Цей фільтр приймає такі параметри:

radius

Встановити розмір горизонтального радіуса. Значення за замовчуванням: 1. Дозволений діапазон – ціле число від 1 до 127.

planes

Визначте, які площини обробляти. За замовчуванням встановлено 15, тобто всі доступні літаки.

radiusV

Встановити розмір вертикального радіуса. Значення за замовчуванням: 0. Дозволеним діапазоном є ціле число від 0 до 127. Якщо воно дорівнює 0, значення буде вибрано з горизонтального radiusпараметра.

percentile

Установіть медіанний процентиль. Значення за замовчуванням: 0.5. Значення за замовчуванням 0.5завжди вибиратиме середні значення, тоді як 0вибиратиме мінімальні та 1максимальні значення.

11.155.1 Commands

Цей фільтр підтримує ті самі команди , що й параметри. Команда приймає той самий синтаксис відповідного параметра.

Якщо вказаний вираз недійсний, його поточне значення зберігається.

11.156 mergeplanes

Об’єднайте компоненти кольорового каналу з кількох відеопотоків.

Фільтр приймає до 4 вхідних потоків і об’єднує вибрані вхідні площини з вихідним відео.

Цей фільтр приймає такі параметри:

mapping

Встановіть відображення площини введення та виведення. Типовим є 0.

Зіставлення вказується як растрове зображення. Його слід вказати як шістнадцяткове число у формі 0xAa[Bb[Cc[Dd]]]. 'Aa' описує відображення для першої площини вихідного потоку. 'A' встановлює номер вхідного потоку для використання (від 0 до 3), а 'a' номер площини відповідного входу для використання (від 0 до 3). Решта відображень подібні: «Bb» описує відображення для другої площини вихідного потоку, «Cc» описує відображення для третьої площини вихідного потоку, а «Dd» описує відображення для четвертої площини вихідного потоку.

format

Встановити вихідний формат пікселів. Типовим є yuva444p.

map0s
map1s
map2s
map3s

Встановіть відображення вхідного потоку на вихідний для вихідної N-ї площини. Типовим є 0.

map0p
map1p
map2p
map3p

Встановіть відображення вхідної та вихідної площини для вихідної N-ї площини. Типовим є 0.

11.156.1 Examples

  • Об’єднайте три сірі відеопотоки однакової ширини та висоти в один відеопотік:
    [a0][a1][a2]mergeplanes=0x001020:yuv444p
    
  • Об’єднайте 1-й потік yuv444p і 2-й сірий відеопотік у відеопотік yuva444p:
    [a0][a1]mergeplanes=0x00010210:yuva444p
    
  • Поміняйте місцями площину Y і A в потоці yuva444p:
    format=yuva444p,mergeplanes=0x03010200:yuva444p
    
  • Поміняти місцями площину U та V у потоці yuv420p:
    format=yuv420p,mergeplanes=0x000201:yuv420p
    
  • Передайте кліп rgb24 на yuv444p:
    format=rgb24,mergeplanes=0x000102:yuv444p
    

11.157 mestimate

Оцінка та експорт векторів руху за допомогою алгоритмів зіставлення блоків. Вектори руху зберігаються в даних на стороні кадру для використання іншими фільтрами.

Цей фільтр приймає такі параметри:

method

Вкажіть метод оцінки руху. Приймає одне з таких значень:

'esa'

Вичерпний алгоритм пошуку.

'tss'

Трикроковий алгоритм пошуку.

'tdls'

Алгоритм двовимірного логарифмічного пошуку.

'ntss'

Новий триетапний алгоритм пошуку.

'fss'

Чотирикроковий алгоритм пошуку.

'ds'

Алгоритм пошуку алмазів.

'hexbs'

Алгоритм пошуку на основі шестикутника.

'epzs'

Покращений алгоритм прогнозного зонального пошуку.

'umh'

Алгоритм пошуку нерівних кількох шестикутників.

Значення за замовчуванням: 'esa'.

mb_size

Розмір макроблоку. За замовчуванням 16.

search_param

Параметр пошуку. За замовчуванням 7.

11.158 midequalizer

Застосуйте ефект вирівнювання зображення на півдорозі за допомогою двох відеопотоків.

Функція Midway Image Equalization налаштовує пару зображень так, щоб мати однакову гістограму, максимально зберігаючи їхню динаміку. Це корисно, наприклад, для зіставлення експозиції з пари стереокамер.

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

Цей фільтр приймає такі параметри:

planes

Визначте, які площини обробляти. За замовчуванням встановлено 15, тобто всі доступні літаки.

11.159 minterpolate

Перетворіть відео на задану частоту кадрів за допомогою інтерполяції руху.

Цей фільтр приймає такі параметри:

fps

Вкажіть вихідну частоту кадрів. Це може бути раціонально, напр 60000/1001. Кадри пропускаються, якщо fpsчастота кадрів у секунду нижча за початкову. За замовчуванням 60.

mi_mode

Режим інтерполяції руху. Приймаються такі значення:

'dup'

Дублюйте попередній або наступний кадр для інтерполяції нових.

'blend'

Поєднання вихідних кадрів. Інтерпольований кадр є середнім попереднім і наступним кадрами.

'mci'

Інтерполяція з компенсацією руху. Якщо вибрано цей режим, діють такі параметри:

'mc_mode'

Режим компенсації руху. Приймаються такі значення:

'obmc'

Компенсація руху перекритого блоку.

'aobmc'

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

Типовий режим: 'obmc'.

'me_mode'

Режим оцінки руху. Приймаються такі значення:

'bidir'

Оцінка двонаправленого руху. Вектори руху оцінюються для кожного вихідного кадру як у прямому, так і у зворотному напрямках.

'bilat'

Оцінка двостороннього руху. Вектори руху оцінюються безпосередньо для інтерпольованого кадру.

Типовий режим: 'bilat'.

'me'

Алгоритм, який буде використовуватися для оцінки руху. Приймаються такі значення:

'esa'

Вичерпний алгоритм пошуку.

'tss'

Трикроковий алгоритм пошуку.

'tdls'

Алгоритм двовимірного логарифмічного пошуку.

'ntss'

Новий триетапний алгоритм пошуку.

'fss'

Чотирикроковий алгоритм пошуку.

'ds'

Алгоритм пошуку алмазів.

'hexbs'

Алгоритм пошуку на основі шестикутника.

'epzs'

Покращений алгоритм прогнозного зонального пошуку.

'umh'

Алгоритм пошуку нерівних кількох шестикутників.

Алгоритм за замовчуванням 'epzs'.

'mb_size'

Розмір макроблоку. За замовчуванням 16.

'search_param'

Параметр пошуку оцінки руху. За замовчуванням 32.

'vsbmc'

Увімкнути компенсацію руху блоку змінного розміру. Оцінка руху застосовується з меншими розмірами блоків на межах об’єктів, щоб зробити їх менш розмитими. За замовчуванням 0(вимкнено).

scd

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

'none'

Вимкнути виявлення зміни сцени.

'fdiff'

Різниця кадрів. Відповідні значення пікселів порівнюються, і якщо вони задовольняють scd_threshold, виявляється зміна сцени.

Стандартний метод: 'fdiff'.

scd_threshold

Поріг виявлення зміни сцени. Типовим є 10..

11.160 mix

Змішайте кілька вхідних відеопотоків в один відеопотік.

Нижче наведено опис прийнятих варіантів.

inputs

Кількість входів. Якщо не вказано, за умовчанням дорівнює 2.

weights

Вкажіть вагу кожного вхідного відеопотоку як послідовність. Кожна вага відокремлена пробілом. Якщо кількість ваг менша за номер framesостанньої вказаної ваги, буде використано для всіх невстановлених ваг.

scale

Укажіть масштаб, якщо його встановлено, він буде помножений на суму кожної ваги, помноженої на значення пікселів, щоб отримати кінцеве значення пікселя призначення. За замовчуванням scaleавтоматично масштабується до суми ваг.

planes

Встановіть, які площини фільтрувати. За замовчуванням це все. Дозволений діапазон від 0 до 15.

duration

Укажіть, як визначається кінець потоку.

'longest'

Тривалість найдовшого введення. (за умовчанням)

'shortest'

Тривалість найкоротшого введення.

'first'

Тривалість першого введення.

11.160.1 Commands

Цей фільтр підтримує такі команди:

weights
scale
planes

Синтаксис такий самий, як і параметр із такою ж назвою.

11.161 monochrome

Перетворюйте відео на сіре за допомогою спеціального кольорового фільтра.

Нижче наведено опис прийнятих варіантів.

cb

Встановіть кольорову синю пляму. Дозволений діапазон від -1 до 1. Значення за замовчуванням 0.

cr

Встановіть кольорову червону пляму. Дозволений діапазон від -1 до 1. Значення за замовчуванням 0.

size

Встановіть розмір кольорового фільтра. Дозволений діапазон — від 0,1 до 10. Значення за замовчуванням — 1.

high

Встановіть силу відблисків. Дозволений діапазон — від 0 до 1. Значення за замовчуванням — 0.

11.161.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

11.162 morpho

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

На відміну від простої реалізації та набагато повільнішої продуктивності у фільтрах ерозії та розширення , коли швидкість є критичною, morphoфільтр слід використовувати замість цього.

Нижче наведено опис прийнятих варіантів,

mode

Задати морфологічне перетворення для застосування можна:

'erode'
'dilate'
'open'
'close'
'gradient'
'tophat'
'blackhat'

Типовим є erode.

planes

Встановіть площини для фільтрування, за замовчуванням фільтруються всі площини, крім альфа.

structure

Встановити, яка структура відеокадрів буде оброблена з другого вхідного потоку, може бути firstабо all. Типовим є all.

Фільтр morphoтакож підтримує параметри синхронізації кадрів .

11.162.1 Commands

Цей фільтр підтримує ті самі команди , що й параметри.

11.163 mpdecimate

Пропустіть кадри, які не дуже відрізняються від попереднього, щоб зменшити частоту кадрів.

Цей фільтр в основному використовується для кодування з дуже низьким бітрейтом (наприклад, потокова передача через комутований модем), але теоретично його можна використовувати для виправлення фільмів, які були неправильно відтворені в зворотному телекіно.

Нижче наведено опис прийнятих варіантів.

max

Встановіть максимальну кількість послідовних кадрів, які можна скинути (якщо позитивне), або мінімальний інтервал між скинутими кадрами (якщо негативне). Якщо значення дорівнює 0, кадр видаляється без урахування кількості попередніх послідовно вилучених кадрів.

Значення за замовчуванням 0.

hi
lo
frac

Встановіть порогові значення падіння.

Значення дляhiіloпризначені для блоків 8x8 пікселів і представляють фактичні відмінності значень пікселів, тому поріг у 64 відповідає 1 одиниці різниці для кожного пікселя або того самого розподілу по-різному по блоку.

Кадр є кандидатом на викидання, якщо жоден блок 8x8 не відрізняється більш ніж на порогове значенняhi, а якщо не більшеfracблоки (1 означає все зображення) відрізняються більш ніж на порогове значенняlo.

Значення за умовчанням дляhi64*12, значення за замовчуванням дляloстановить 64*5, а значення за замовчуванням дляfracстановить 0,33.

11.164 msad

Отримайте MSAD (середню суму абсолютних різниць) між двома вхідними відео.

Цей фільтр приймає два вхідних відео.

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

Отримане за компонентом, середнє, мінімальне та максимальне MSAD друкується через систему реєстрації.

Фільтр зберігає розрахований MSAD кожного кадру в метаданих кадру.

У наведеному нижче прикладі вхідний файлmain.mpgобробляється порівнюється з еталонним файломref.mpg.

ffmpeg -i main.mpg -i ref.mpg -lavfi msad -f null -

11.165 multiply

Помножте значення пікселів першого відеопотоку на значення пікселів другого відеопотоку.

Фільтр приймає такі параметри:

scale

Встановіть масштаб, застосований до другого відеопотоку. За замовчуванням це 1. Дозволений діапазон від 0до 9.

offset

Встановіть зміщення, застосоване до другого відеопотоку. За замовчуванням це 0.5. Дозволений діапазон від -1до 1.

planes

Вкажіть площини вхідного відеопотоку, які будуть оброблені. За замовчуванням обробляються всі площини.

11.165.1 Commands

Цей фільтр підтримує ті самі команди , що й параметри.

11.166 negate

Інвертувати (інвертувати) вхідне відео.

Він приймає наступний варіант:

components

Установіть компоненти на заперечення.

Доступні значення для компонентів:

'y'
'u'
'v'
'a'
'r'
'g'
'b'
negate_alpha

Зі значенням 1 він заперечує альфа-компонент, якщо він присутній. Значення за замовчуванням 0.

11.166.1 Commands

Цей фільтр підтримує ті самі команди , що й параметри.

11.167 nlmeans

Усунення шумів у кадрах за допомогою алгоритму нелокальних середніх.

Кожен піксель коригується шляхом пошуку інших пікселів із подібним контекстом. Ця контекстна подібність визначається шляхом порівняння навколишніх частин розміру pxp. Латки шукають у районіrxr навколо пікселя.

Зауважте, що область дослідження визначає центри для патчів, а це означає, що деякі патчі складатимуться з пікселів за межами цієї дослідницької області.

Фільтр приймає такі параметри.

s

Встановити силу шумозаглушення. За замовчуванням 1.0. Має бути в діапазоні [1,0, 30,0].

p

Встановити розмір патча. За замовчуванням 7. Має бути непарне число в діапазоні [0, 99].

pc

Такий же, якpале для площин кольоровості.

Значення за замовчуванням є 0і означає автоматичний.

r

Встановіть розмір дослідження. За замовчуванням 15. Має бути непарне число в діапазоні [0, 99].

rc

Такий же, якrале для площин кольоровості.

Значення за замовчуванням є 0і означає автоматичний.

11.168 nnedi

Деінтерлейшуйте відео за допомогою інтерполяції, спрямованої по краях нейронної мережі.

Цей фільтр приймає такі параметри:

weights

Обов'язкова опція, без двійкового файлу фільтр працювати не може. Наразі файл можна знайти тут: https://github.com/dubhater/vapoursynth-nnedi3/blob/master/src/nnedi3_weights.bin

deint

Встановіть, які кадри деінтерлейсувати, за замовчуванням це all. Може бути allабо interlaced.

field

Встановити режим роботи.

Може бути одним із таких:

'af'

Використовуйте прапорці фрейму, обидва поля.

'a'

Використовуйте рамкові прапорці, одне поле.

't'

Використовуйте лише верхнє поле.

'b'

Використовуйте лише нижнє поле.

'tf'

Використовуйте обидва поля, спочатку зверху.

'bf'

Використовуйте обидва поля, спочатку знизу.

planes

Встановіть, які площини обробляти, за замовчуванням фільтр обробляє всі кадри.

nsize

Встановіть розмір локального оточення навколо кожного пікселя, який використовується нейронною мережею провісника.

Може бути одним із таких:

's8x6'
's16x6'
's32x6'
's48x6'
's8x4'
's16x4'
's32x4'
nns

Встановіть кількість нейронів у нейронній мережі предиктора. Може бути одним із таких:

'n16'
'n32'
'n64'
'n128'
'n256'
qual

Контролює кількість різних передбачень нейронної мережі, які змішуються разом для обчислення кінцевого вихідного значення. Може бути fast, default або slow.

etype

Установіть, який набір ваг використовувати в предикторі. Може бути одним із таких:

'a, abs'

ваги, навчені для мінімізації абсолютної похибки

's, mse'

ваги навчені для мінімізації квадратичної помилки

pscrn

Контролює, чи використовується нейронна мережа попереднього перегляду для визначення того, які пікселі мають бути оброблені нейронною мережею предиктора, а які можна обробляти простою кубічною інтерполяцією. Особа попереднього відбору навчена знати, чи буде кубічна інтерполяція достатня для пікселя, чи вона повинна бути передбачена предиктором nn. Обчислювальна складність попереднього скринінгу nn набагато менша, ніж складність предиктора nn. Оскільки більшість пікселів можна обробляти кубічною інтерполяцією, використання попереднього скринінгу зазвичай призводить до набагато швидшої обробки. Попередній скринінг досить точний, тому різниця між його використанням і невикористанням майже завжди непомітна.

Може бути одним із таких:

'none'
'original'
'new'
'new2'
'new3'

Типовим є new.

11.168.1 Commands

Цей фільтр підтримує ті самі команди , що й параметри, за винятком weightsпараметра.

11.169 noformat

Змусити libavfilter не використовувати жоден із указаних форматів пікселів для вхідних даних до наступного фільтра.

Він приймає такі параметри:

pix_fmts

Розділений «|» список імен форматів пікселів, наприклад pix_fmts=yuv420p|monow|rgb24».

11.169.1 Examples

  • Змусити libavfilter використовувати формат, відмінний від формату yuv420pвхідних даних для фільтра vflip:
    noformat=pix_fmts=yuv420p,vflip
    
  • Перетворіть вхідне відео в будь-який із форматів, яких немає у списку:
    noformat=yuv420p|yuv444p|yuv410p
    

11.170 noise

Додайте шум у вхідний відеокадр.

Фільтр приймає такі параметри:

all_seed
c0_seed
c1_seed
c2_seed
c3_seed

Установіть початкове значення шуму для певного піксельного компонента або всіх піксельних компонентів у випадку all_seed. Значення за замовчуванням: 123457.

all_strength, alls
c0_strength, c0s
c1_strength, c1s
c2_strength, c2s
c3_strength, c3s

Встановити рівень шуму для певного піксельного компонента або всіх піксельних компонентів у випадку all_strength. Значення за замовчуванням: 0. Дозволений діапазон [0, 100].

all_flags, allf
c0_flags, c0f
c1_flags, c1f
c2_flags, c2f
c3_flags, c3f

Встановіть прапорці піксельних компонентів або встановіть прапорці для всіх компонентів, якщо all_flags. Доступні значення для прапорів компонентів:

'a'

усереднений тимчасовий шум (більш плавний)

'p'

змішувати випадковий шум із (напів)регулярним шаблоном

't'

тимчасовий шум (шумова картина змінюється між кадрами)

'u'

рівномірний шум (в іншому випадку гаусів)

11.170.1 Examples

Додайте тимчасовий і рівномірний шум до вхідного відео:

noise=alls=20:allf=t+u

11.171 normalize

Нормалізація RGB-відео (така ж розтягування гістограми, розтягування контрасту). Див.: https://en.wikipedia.org/wiki/Normalization_(image_processing)

Для кожного каналу кожного кадру фільтр обчислює вхідний діапазон і лінійно відображає його на вказаний користувачем вихідний діапазон. Вихідний діапазон за замовчуванням становить повний динамічний діапазон від чисто чорного до чисто білого.

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

Канали R, G, B можна нормалізувати незалежно, що може спричинити деяке зміщення кольорів, або об’єднати разом як один канал, що запобігає зсуву кольорів. Зв'язана нормалізація зберігає відтінок. Незалежної нормалізації немає, тому її можна використовувати для видалення деяких кольорових відтінків. Незалежну і зв'язану нормалізацію можна комбінувати в будь-якому співвідношенні.

Фільтр нормалізації приймає такі параметри:

blackpt
whitept

Кольори, що визначають вихідний діапазон. Мінімальне вхідне значення відображається на blackpt. Максимальне вхідне значення відображається на whitept. За замовчуванням чорно-білі відповідно. Визначення білого для blackptта чорного для whiteptдасть інвертований колір, нормалізоване відео. Відтінки сірого можна використовувати для зменшення динамічного діапазону (контрастності). Зазначення тут насичених кольорів може створити деякі цікаві ефекти.

smoothing

Кількість попередніх кадрів для тимчасового згладжування. Вхідний діапазон кожного каналу згладжується за допомогою ковзного середнього поточного кадру та smoothingпопередніх кадрів. За замовчуванням 0 (без часового згладжування).

independence

Контролює співвідношення незалежної (зі зміною кольору) нормалізації каналу до пов’язаної (збереження кольору) нормалізації. 0.0 повністю пов’язаний, 1.0 повністю незалежний. За замовчуванням 1.0 (повністю незалежний).

strength

Загальна міцність фільтра. 1.0 – повна сила. 0.0 є досить дорогим безопераційним способом. За замовчуванням 1.0 (повна сила).

11.171.1 Commands

Цей фільтр підтримує ті самі команди , що й параметри, за винятком smoothingпараметра. Команда приймає той самий синтаксис відповідного параметра.

Якщо вказаний вираз недійсний, його поточне значення зберігається.

11.171.2 Examples

Розтягнути контраст відео для використання повного динамічного діапазону без тимчасового згладжування; може мерехтіти залежно від вихідного вмісту:

normalize=blackpt=black:whitept=white:smoothing=0

Як і вище, але з 50 кадрами тимчасового згладжування; мерехтіння слід зменшити залежно від джерела вмісту:

normalize=blackpt=black:whitept=white:smoothing=50

Як і вище, але з нормалізацією зв’язаного каналу зі збереженням кольору:

normalize=blackpt=black:whitept=white:smoothing=50:independence=0

Як і вище, але з половиною сили:

normalize=blackpt=black:whitept=white:smoothing=50:independence=0:strength=0.5

Зіставте найтемніший колір введення на червоний, найтемніший колір введення на блакитний:

normalize=blackpt=red:whitept=cyan

11.172 null

Передайте джерело відео без змін на вихід.

11.173 ocr

Оптичне розпізнавання символів

Цей фільтр використовує Tesseract для оптичного розпізнавання символів. Щоб увімкнути компіляцію цього фільтра, вам потрібно налаштувати FFmpeg за допомогою --enable-libtesseract.

Він приймає такі варіанти:

datapath

Встановіть шлях до даних для тесерактних даних. За замовчуванням використовується те, що було встановлено під час встановлення.

language

Встановіть мову, за замовчуванням "англ".

whitelist

Установити білий список символів.

blacklist

Встановити чорний список символів.

Фільтр експортує розпізнаний текст як метадані кадру lavfi.ocr.text. Фільтр експортує достовірність розпізнаних слів як метадані кадру lavfi.ocr.confidence.

11.174 ocv

Застосуйте перетворення відео за допомогою libopencv.

Щоб увімкнути цей фільтр, установіть бібліотеку libopencv і заголовки та налаштуйте FFmpeg за допомогою --enable-libopencv.

Він приймає такі параметри:

filter_name

Назва фільтра libopencv, який потрібно застосувати.

filter_params

Параметри для передачі до фільтра libopencv. Якщо не вказано, приймаються значення за замовчуванням.

Зверніться до офіційної документації libopencv для більш точної інформації: http://docs.opencv.org/master/modules/imgproc/doc/filtering.html

Підтримується декілька фільтрів libopencv; див. наступні підрозділи.

11.174.1 dilate

Розширте зображення за допомогою певного структурного елемента. Це відповідає функції libopencv cvDilate.

Він приймає параметри: struct_el| nb_iterations.

struct_elпредставляє структурний елемент і має синтаксис: colsx rows+ anchor_xx anchor_y/shape

colsі rowsпредставляють кількість стовпців і рядків структурного елемента, anchor_xі anchor_yточку прив’язки, і shapeформу для структурного елемента. shape має бути "прямий", "хрест", "еліпс" або "спеціальний".

Якщо значенням shapeє «користувацький», за ним має слідувати рядок у формі «= filename». Передбачається, що файл із назвою filenameпредставляє двійкове зображення, де кожен друкований символ відповідає яскравому пікселю. Якщо настроюваний shapeвикористовується colsта rowsігнорується, натомість приймається кількість або стовпці та рядки зчитаного файлу.

Значення за замовчуванням struct_el— «3x3+0x0/rect».

nb_iterationsвизначає кількість разів, застосованих до зображення, і за замовчуванням дорівнює 1.

Деякі приклади:

# Use the default values
ocv=dilate

# Dilate using a structuring element with a 5x5 cross, iterating two times
ocv=filter_name=dilate:filter_params=5x5+2x2/cross|2

# Read the shape from the file diamond.shape, iterating two times.
# The file diamond.shape may contain a pattern of characters like this
#   *
#  ***
# *****
#  ***
#   *
# The specified columns and rows are ignored
# but the anchor point coordinates are not
ocv=dilate:0x0+2x2/custom=diamond.shape|2

11.174.2 erode

Розмийте зображення за допомогою певного структурного елемента. Це відповідає функції libopencv cvErode.

Він приймає параметри: struct_el: nb_iterationsз тим самим синтаксисом і семантикою, що й фільтр розширення .

11.174.3 smooth

Згладжування вхідного відео.

Фільтр приймає такі параметри: type| param1| param2| param3| param4.

typeце тип плавного фільтра, який потрібно застосувати, і має бути одним із таких значень: "blur", "blur_no_scale", "median", "gaussian" або "bilateral". Значенням за замовчуванням є "гаусів".

Значення param1, param2, param3, і param4 залежить від гладкого типу. param1і param2приймати цілі додатні значення або 0. param3і param4приймати значення з плаваючою комою.

Значення за замовчуванням для param1— 3. Значення за замовчуванням для інших параметрів — 0.

Ці параметри відповідають параметрам, призначеним функції libopencv cvSmooth.

11.175 oscilloscope

2D відеоосцилограф.

Корисно для вимірювання просторового імпульсу, реакції на крок, затримки кольоровості тощо.

Він приймає такі параметри:

x

Установіть центр області осі x.

y

Встановіть центр осці y.

s

Встановіть розмір області відносно діагоналі кадру.

t

Налаштування нахилу/обертання прицілу.

o

Встановити непрозорість трасування.

tx

Установіть центр трасування по осі x.

ty

Встановіть центр трасування в положення y.

tw

Встановіть ширину контуру відносно ширини кадру.

th

Встановіть висоту трасування відносно висоти кадру.

c

Встановіть, які компоненти відстежувати. За замовчуванням він відстежує перші три компоненти.

g

Намалюйте сітку трасування. За замовчуванням увімкнено.

st

Намалюйте трохи статистики. За замовчуванням увімкнено.

sc

Малювати обсяг. За замовчуванням увімкнено.

11.175.1 Commands

Цей фільтр підтримує ті самі команди , що й параметри. Команда приймає той самий синтаксис відповідного параметра.

Якщо вказаний вираз недійсний, його поточне значення зберігається.

11.175.2 Examples

  • Огляньте весь перший ряд відеокадру.
    oscilloscope=x=0.5:y=0:s=1
    
  • Огляньте весь останній ряд відеокадру.
    oscilloscope=x=0.5:y=1:s=1
    
  • Огляньте повний 5-й рядок відеокадру висотою 1080.
    oscilloscope=x=0.5:y=5/1080:s=1
    
  • Перевірте весь останній стовпець відеокадру.
    oscilloscope=x=1:y=0.5:s=1:t=1
    

11.176 overlay

Накладіть одне відео на інше.

Він має два входи і один вихід. Перший вхід – це «основне» відео, на яке накладено другий вхід.

Він приймає такі параметри:

Нижче наведено опис прийнятих варіантів.

x
y

Установіть вираз для координат x і y накладеного відео на основне відео. Значення за замовчуванням — «0» для обох виразів. Якщо вираз недійсний, йому встановлюється велике значення (це означає, що накладення не відображатиметься у видимій області виводу).

eof_action

Дивіться framesync .

eval

Встановіть, коли вирази дляx, іyоцінюються.

Він приймає такі значення:

'init'

обчислювати вирази лише один раз під час ініціалізації фільтра або під час обробки команди

'frame'

оцінити вирази для кожного вхідного кадру

Значення за замовчуванням: 'frame'.

shortest

Дивіться framesync .

format

Встановіть формат вихідного відео.

Він приймає такі значення:

'yuv420'

силовий вихід YUV420

'yuv420p10'

силовий вихід YUV420p10

'yuv422'

силовий вихід YUV422

'yuv422p10'

сила YUV422p10 вихід

'yuv444'

силовий вихід YUV444

'rgb'

примусово упакований вихід RGB

'gbrp'

силовий планарний вихід RGB

'auto'

автоматично вибрати формат

Значення за замовчуванням: 'yuv420'.

repeatlast

Дивіться framesync .

alpha

Встановіть формат альфа-версії накладеного відео, це може бути straightабо premultiplied. Типовим є straight.

Thex, іyвирази можуть містити такі параметри.

main_w, W
main_h, H

Основний вхід ширина і висота.

overlay_w, w
overlay_h, h

Ширина та висота введення накладки.

x
y

Обчислені значення для xта y. Вони оцінюються для кожного нового кадру.

hsub
vsub

горизонтальні та вертикальні значення кольоровості вихідного формату. Наприклад, для піксельного формату "yuv422p" hsubдорівнює 2 і vsub1.

n

номер вхідного кадру, починаючи з 0

pos

позиція у файлі вхідного кадру, NAN, якщо невідома

t

Позначка часу, виражена в секундах. Це NAN, якщо позначка часу введення невідома.

Цей фільтр також підтримує параметри синхронізації кадрів .

Зауважте, що змінні n, pos, tдоступні лише тоді, коли оцінка виконується для кадру , і оцінюватимуться для NAN, колиevalвстановлено на 'init'.

Майте на увазі, що кадри беруться з кожного вхідного відео в порядку часових позначок, отже, якщо їхні початкові часові позначки відрізняються, доцільно пропустити два входи через setpts=PTS-STARTPTSфільтр, щоб вони починалися з тієї самої нульової часової позначки, як у прикладі для movieфільтр робить.

Ви можете об’єднати більше оверлеїв, але ви повинні перевірити ефективність такого підходу.

11.176.1 Commands

Цей фільтр підтримує такі команди:

x
y

Змініть x і y накладеного введення. Команда приймає той самий синтаксис відповідного параметра.

Якщо вказаний вираз недійсний, його поточне значення зберігається.

11.176.2 Examples

  • Намалюйте накладання на відстані 10 пікселів від правого нижнього кута основного відео:
    overlay=main_w-overlay_w-10:main_h-overlay_h-10
    

    Використовуючи названі параметри, наведений вище приклад виглядає так:

    overlay=x=main_w-overlay_w-10:y=main_h-overlay_h-10
    
  • Вставте прозорий логотип PNG у нижній лівий кут введення, використовуючи ffmpegінструмент із -filter_complexопцією:
    ffmpeg -i input -i logo -filter_complex 'overlay=10:main_h-overlay_h-10' output
    
  • Вставте 2 різні прозорі логотипи PNG (другий логотип у нижньому правому куті) за допомогою ffmpegінструмента:
    ffmpeg -i input -i logo1 -i logo2 -filter_complex 'overlay=x=10:y=H-h-10,overlay=x=W-w-10:y=H-h-10' output
    
  • Додайте прозорий кольоровий шар поверх основного відео; WxH необхідно вказати розмір основного входу для фільтра накладання:
    color=color=red@.3:size=WxH [over]; [in][over] overlay [out]
    
  • Відтворіть оригінальне відео та відфільтровану версію (тут із фільтром усунення струшування) поруч за допомогою ffplayінструмента:
    ffplay input.avi -vf 'split[a][b]; [a]pad=iw*2:ih[src]; [b]deshake[filt]; [src][filt]overlay=w'
    

    Наведена вище команда така ж, як:

    ffplay input.avi -vf 'split[b], pad=iw*2[src], [b]deshake, [src]overlay=w'
    
  • Зробіть ковзне накладання, яке з’являтиметься зліва направо у верхній частині екрана, починаючи з моменту 2:
    overlay=x='if(gte(t,2), -w+(t-2)*20, NAN)':y=0
    
  • Скомпонуйте вихід, розмістивши два вхідних відео один до одного:
    ffmpeg -i left.avi -i right.avi -filter_complex "
    nullsrc=size=200x100 [background];
    [0:v] setpts=PTS-STARTPTS, scale=100x100 [left];
    [1:v] setpts=PTS-STARTPTS, scale=100x100 [right];
    [background][left]       overlay=shortest=1       [background+left];
    [background+left][right] overlay=shortest=1:x=100 [left+right]
    "
    
  • Замаскуйте 10-20 секунд відео, застосувавши фільтр delogo до розділу
    ffmpeg -i test.avi -codec:v:0 wmv2 -ar 11025 -b:v 9000k
    -vf '[in]split[split_main][split_delogo];[split_delogo]trim=start=360:end=371,delogo=0:0:640:480[delogoed];[split_main][delogoed]overlay=eof_action=pass[out]'
    masked.avi
    
  • З'єднайте кілька накладок каскадом:
    nullsrc=s=200x200 [bg];
    testsrc=s=100x100, split=4 [in0][in1][in2][in3];
    [in0] lutrgb=r=0, [bg]   overlay=0:0     [mid0];
    [in1] lutrgb=g=0, [mid0] overlay=100:0   [mid1];
    [in2] lutrgb=b=0, [mid1] overlay=0:100   [mid2];
    [in3] null,       [mid2] overlay=100:100 [out0]
    

11.177 overlay_cuda

Накладіть одне відео на інше.

Це варіант фільтра накладання CUDA. Він приймає лише кадри CUDA. Базові формати вхідних пікселів мають збігатися.

Він має два входи і один вихід. Перший вхід – це «основне» відео, на яке накладено другий вхід.

Він приймає такі параметри:

x
y

Установіть вирази для координат x і y накладеного відео на основне відео.

Вони можуть містити такі параметри:

main_w, W
main_h, H

Основний вхід ширина і висота.

overlay_w, w
overlay_h, h

Ширина та висота введення накладки.

x
y

Обчислені значення для xта y. Вони оцінюються для кожного нового кадру.

n

Порядковий індекс основного вхідного кадру, починаючи з 0.

pos

Позиція зміщення байтів у файлі основного кадру введення, NAN, якщо невідомо.

t

Позначка часу основного вхідного кадру, виражена в секундах, NAN, якщо невідома.

Значення за замовчуванням — «0» для обох виразів.

eval

Встановіть, коли вирази дляxіyоцінюються.

Він приймає такі значення:

init

Оцініть вирази один раз під час ініціалізації фільтра або під час обробки команди.

frame

Оцініть вирази для кожного вхідного кадру

Значення за замовчуванням:frame.

eof_action

Дивіться framesync .

shortest

Дивіться framesync .

repeatlast

Дивіться framesync .

Цей фільтр також підтримує параметри синхронізації кадрів .

11.178 owdenoise

Застосувати OverComplete Wavelet Denoiser.

Фільтр приймає такі параметри:

depth

Встановити глибину.

Більші значення глибини більше приглушуватимуть нижчі частотні компоненти, але сповільнять фільтрацію.

Має бути значення в діапазоні 8-16, за замовчуванням це 8.

luma_strength, ls

Встановити силу яскравості.

Має бути подвійне значення в діапазоні 0-1000, за замовчуванням 1.0.

chroma_strength, cs

Встановити інтенсивність кольоровості.

Має бути подвійне значення в діапазоні 0-1000, за замовчуванням 1.0.

11.179 pad

Додайте відступи до вхідного зображення та розмістіть вихідний вхід у наданих xкоординатах y.

Він приймає такі параметри:

width, w
height, h

Укажіть вираз для розміру вихідного зображення з доданими відступами. Якщо значення widthабо heightдорівнює 0, для виведення використовується відповідний вхідний розмір.

Вираз widthможе посилатися на значення, встановлене heightвиразом, і навпаки.

Значення за замовчуванням widthі heightдорівнює 0.

x
y

Укажіть зміщення для розміщення вхідного зображення в межах доповненої області відносно верхньої/лівої межі вихідного зображення.

Вираз xможе посилатися на значення, встановлене y виразом, і навпаки.

Значення за замовчуванням xі yдорівнює 0.

Якщо xабо yоцінюється як від’ємне число, вони будуть змінені таким чином, щоб вхідне зображення було центровано на доповненій області.

color

Укажіть колір виділеної області. Щоб дізнатися про синтаксис цього параметра, перевірте розділ (ffmpeg-utils)"Колір" у посібнику ffmpeg-utils .

Значенням за замовчуванням colorє "чорний".

eval

Укажіть, коли обчислювати , widthі heightвираз . xy

Він приймає такі значення:

'init'

Обчислюйте вирази лише один раз під час ініціалізації фільтра або під час обробки команди.

'frame'

Оцініть вирази для кожного вхідного кадру.

Значення за замовчуванням: 'init'.

aspect

Додайте формат замість роздільної здатності.

Значення параметрів width, height, xі y є виразами, що містять такі константи:

in_w
in_h

Ширина та висота вхідного відео.

iw
ih

Це те саме, що in_wі in_h.

out_w
out_h

Ширина та висота виводу (розмір доповненої області), визначені виразами widthand .height

ow
oh

Це те саме, що out_wі out_h.

x
y

Зміщення x і y, як визначено виразами xand y , або NAN, якщо ще не вказано.

a

те саме, що iw/ih

sar

формат вхідного зразка

dar

формат вхідного дисплея, такий самий, як ( iw/ ih) *sar

hsub
vsub

Значення підвибірки кольоровості по горизонталі та вертикалі. Наприклад, для піксельного формату "yuv422p" hsubдорівнює 2 і vsub1.

11.179.1 Examples

  • Додайте відступи з кольором «фіолетовий» до вхідного відео. Розмір вихідного відео становить 640x480, а верхній лівий кут вхідного відео розміщено в стовпці 0, рядок 40
    pad=640:480:0:40:violet
    

    Наведений вище приклад еквівалентний такій команді:

    pad=width=640:height=480:x=0:y=40:color=violet
    
  • Заповніть вхід, щоб отримати вихід із розмірами, збільшеними на 3/2, і розмістіть вхідне відео в центрі заповненої області:
    pad="3/2*iw:3/2*ih:(ow-iw)/2:(oh-ih)/2"
    
  • Заповніть вхід, щоб отримати квадратний вихід із розміром, що дорівнює максимальному значенню між шириною та висотою введення, і розмістіть вхідне відео в центрі заповненої області:
    pad="max(iw\,ih):ow:(ow-iw)/2:(oh-ih)/2"
    
  • Додайте введення, щоб отримати остаточне співвідношення w/h 16:9:
    pad="ih*16/9:ih:(ow-iw)/2:(oh-ih)/2"
    
  • У випадку анаморфного відео, щоб правильно встановити формат вихідного відображення, необхідно використовувати sarу виразі відповідно до співвідношення:
    (ih * X / ih) * sar = output_dar
    X = output_dar / sar
    

    Таким чином, попередній приклад потрібно змінити, щоб:

    pad="ih*16/9/sar:ih:(ow-iw)/2:(oh-ih)/2"
    
  • Подвоїть вихідний розмір і помістіть вхідне відео в нижній правий кут вихідної доповненої області:
    pad="2*iw:2*ih:ow-iw:oh-ih"
    

11.180 palettegen

Створіть одну палітру для цілого відеопотоку.

Він приймає такі варіанти:

max_colors

Встановіть максимальну кількість кольорів для квантування в палітрі. Примітка: палітра все ще міститиме 256 кольорів; невикористані елементи палітри будуть чорними.

reserve_transparent

Створіть палітру з максимум 255 кольорів і залиште останній для прозорості. Резервування кольору прозорості корисно для оптимізації GIF. Якщо не встановлено, максимальна кількість кольорів у палітрі становитиме 256. Можливо, ви захочете вимкнути цей параметр для окремого зображення. Встановити за замовчуванням.

transparency_color

Встановіть колір, який використовуватиметься як фон для прозорості.

stats_mode

Встановити режим статистики.

Він приймає такі значення:

'full'

Обчисліть повнокадрові гістограми.

'diff'

Обчислюйте гістограми лише для тієї частини, яка відрізняється від попереднього кадру. Це може бути доречним, щоб надати більшого значення рухомій частині вашого введення, якщо фон статичний.

'single'

Обчисліть нову гістограму для кожного кадру.

Значення за замовчуванням: full.

use_alpha

Створіть палітру кольорів за допомогою альфа-компонентів. Якщо встановити це значення, «reserve_transparent» буде автоматично вимкнено.

Фільтр також експортує метадані кадру lavfi.color_quant_ratio ( nb_color_in / nb_color_out), за допомогою яких можна оцінити ступінь квантування кольорів палітри. Ця інформація також відображається на infoрівні журналювання.

11.180.1 Examples

  • Створіть репрезентативну палітру даного відео за допомогою ffmpeg:
    ffmpeg -i input.mkv -vf palettegen palette.png
    

11.181 paletteuse

Використовуйте палітру для зменшення дискретизації вхідного відеопотоку.

Фільтр приймає два входи: один відеопотік і палітру. Палітра має бути зображенням розміром 256 пікселів.

Він приймає такі варіанти:

dither

Виберіть режим дизерінгу. Доступні алгоритми:

'bayer'

Замовлений байєрівський дизерінг 8x8 (детермінований)

'heckbert'

Змішування за визначенням Пола Хекберта в 1982 році (проста дифузія помилок). Примітка: це згладжування іноді вважається "неправильним" і включено як довідковий матеріал.

'floyd_steinberg'

Змішування Флойда і Стейнберга (дифузія помилок)

'sierra2'

Frankie Sierra dithering v2 (поширення помилок)

'sierra2_4a'

Frankie Sierra dithering v2 "Lite" (поширення помилок)

Типовим є sierra2_4a.

bayer_scale

Якщо вибрано bayerзгладжування, цей параметр визначає масштаб візерунка (наскільки видно візерунок перехресної штрихової лінії). Низьке значення означає більш помітний візерунок із меншою кількістю смуг, а вище значення означає менш видимий візерунок ціною більшої кількості смуг.

Параметр має бути цілим значенням у діапазоні [0,5]. Типовим є 2.

diff_mode

Якщо встановлено, визначте зону для обробки

'rectangle'

Лише змінний прямокутник буде повторно оброблено. Це схоже на механізм стиснення кадрування/зміщення GIF. Цей параметр може бути корисним для збільшення швидкості, якщо змінюється лише частина зображення та має такі випадки використання, як обмеження обсягу розповсюдження помилокditherдо прямокутника, який обмежує рухому сцену (це призводить до більш детермінованого результату, якщо сцена не змінюється значно, і, як наслідок, менше рухового шуму та краще стиснення GIF).

Типовим є none.

new

Візьміть нову палітру для кожного вихідного кадру.

alpha_threshold

Встановлює альфа-поріг прозорості. Значення альфа вище цього порогу розглядатимуться як повністю непрозорі, а значення нижче цього порогу розглядатимуться як повністю прозорі.

Параметр має бути цілим значенням у діапазоні [0,255]. Типовим є 128.

use_alpha

Застосуйте палітру з урахуванням альфа-значень. Корисно лише з палітрами, які містять кілька кольорів з альфа-компонентами. Якщо встановити це значення, «alpha_treshold» буде автоматично вимкнено.

11.181.1 Examples

  • Використовуйте палітру (створену, наприклад, за допомогою palettegen ), щоб закодувати GIF за допомогою ffmpeg:
    ffmpeg -i input.mkv -i palette.png -lavfi paletteuse output.gif
    

11.182 perspective

Правильна перспектива відео не записується перпендикулярно екрану.

Нижче наведено опис прийнятих параметрів.

x0
y0
x1
y1
x2
y2
x3
y3

Встановіть вираз координат для верхнього лівого, верхнього правого, нижнього лівого та нижнього правого кутів. Значення за замовчуванням — 0:0:W:0:0:H:W:Hце перспектива, з якою залишиться незмінною. Якщо для senseпараметра встановлено значення source, то вказані точки будуть надіслані в кути пункту призначення. Якщо для senseпараметра встановлено значення destination, то кути джерела будуть відправлені за вказаними координатами.

Вирази можуть використовувати такі змінні:

W
H

ширину та висоту кадру відео.

in

Вхідна кількість кадрів.

on

Вихідна кількість кадрів.

interpolation

Встановіть інтерполяцію для виправлення перспективи.

Він приймає такі значення:

'linear'
'cubic'

Значення за замовчуванням: 'linear'.

sense

Встановити інтерпретацію параметрів координат.

Він приймає такі значення:

'0, source'

Надіслати точку в джерелі, заданому заданими координатами, до кутів пункту призначення.

'1, destination'

Надішліть кути джерела в точку призначення, визначену заданими координатами.

Значення за замовчуванням: 'source'.

eval

Установіть, коли вирази для координатx0,y0,...x3,y3оцінюються.

Він приймає такі значення:

'init'

обчислювати вирази лише один раз під час ініціалізації фільтра або під час обробки команди

'frame'

оцінити вирази для кожного вхідного кадру

Значення за замовчуванням: 'init'.

11.183 phase

Затримка черезрядкового відео на один час поля, щоб змінити порядок полів.

Передбачене використання — виправлення фільмів PAL, які були зняті з порядком полів, протилежним до передачі фільму на відео.

Нижче наведено опис прийнятих параметрів.

mode

Встановити фазовий режим.

Він приймає такі значення:

't'

Порядок захоплення полів зверху зверху, передача внизу. Фільтр затримає нижнє поле.

'b'

Порядок захоплення полів знизу, передача зверху. Фільтр затримає верхнє поле.

'p'

Захоплення та передача з однаковим порядком полів. Цей режим існує лише для документації інших параметрів, на які потрібно звернутись, але якщо ви дійсно виберете його, фільтр точно нічого не виконуватиме.

'a'

Порядок полів захоплення визначається автоматично за прапорцями полів, передача навпроти. Фільтр вибирає серед "t'і'b' режими на кадровій основі з використанням прапорців полів. Якщо інформація про поле недоступна, це працює так само, як 'u'.

'u'

Захопити невідоме або варіюється, передати навпаки. Фільтр вибирає серед "t'і'b' на кадровій основі, аналізуючи зображення та вибираючи альтернативу, яка забезпечує найкращу відповідність між полями.

'T'

Знімайте спочатку зверху, передавайте невідомі або різні. Фільтр вибирає серед "t'і'p' за допомогою аналізу зображень.

'B'

Захоплення знизу, передача невідома або змінюється. Фільтр вибирає серед "b'і'p' за допомогою аналізу зображень.

'A'

Захоплення визначається прапорцями поля, передача невідома або змінюється. Фільтр вибирає серед "t', 'b'і'p' за допомогою прапорців полів і аналізу зображень. Якщо інформація про поле недоступна, це працює так само, як 'U'. Це режим за замовчуванням.

'U'

І захоплення, і передача невідомі або змінюються. Фільтр вибирає серед "t', 'b'і'p' лише за допомогою аналізу зображень.

11.183.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

11.184 photosensitivity

Зменшіть різні спалахи у відео, щоб допомогти користувачам з епілепсією.

Він приймає такі варіанти:

frames, f

Встановіть, скільки кадрів використовувати під час фільтрації. За замовчуванням 30.

threshold, t

Встановіть пороговий коефіцієнт виявлення. За замовчуванням 1. Нижче – суворіше.

skip

Встановіть кількість пікселів пропускати під час вибірки кадрів. За замовчуванням 1. Дозволений діапазон від 1 до 1024.

bypass

Залиште рамки без змін. За замовчуванням вимкнено.

11.185 pixdesctest

Тестовий фільтр дескриптора формату пікселів, корисний переважно для внутрішнього тестування. Вихідне відео має відповідати вхідному відео.

Наприклад:

format=monow, pixdesctest

можна використовувати для перевірки визначення дескриптора формату монобілого пікселя.

11.186 pixelize

Застосувати пікселізацію до відеопотоку.

Фільтр приймає такі параметри:

width, w
height, h

Встановіть розміри блоку, які будуть використовуватися для пікселізації. Значення за замовчуванням: 16.

mode, m

Встановіть використовуваний режим пікселізації.

Можливі значення:

'avg'
'min'
'max'

Значення за замовчуванням: avg.

planes, p

Встановіть, які площини фільтрувати. За замовчуванням фільтруються всі площини.

11.186.1 Commands

Цей фільтр підтримує всі параметри як команди .

11.187 pixscope

Відображення зразкових значень колірних каналів. В основному корисно для перевірки кольору та рівнів. Мінімальна підтримувана роздільна здатність – 640x480.

Фільтри приймають такі параметри:

x

Встановіть позицію області осі X, відносне зміщення по осі X.

y

Встановіть положення осі Y, відносне зміщення осі Y.

w

Встановити ширину області.

h

Встановити висоту прицілу.

o

Встановити непрозорість вікна. У цьому вікні також міститься статистика щодо площі пікселів.

wx

Встановити позицію вікна X, відносне зміщення по осі X.

wy

Встановити положення вікна Y, відносне зміщення по осі Y.

11.187.1 Commands

Цей фільтр підтримує ті самі команди , що й параметри.

11.188 pp

Увімкніть вказаний ланцюжок підфільтрів постобробки за допомогою libpostproc. Цю бібліотеку слід автоматично вибирати за допомогою збірки GPL ( --enable-gpl). Підфільтри мають бути відокремлені знаком «/». Їх можна вимкнути, додавши перед ними знак «-». Кожен підфільтр і деякі параметри мають коротку та довгу назви, які можна використовувати як взаємозамінні, тобто dr/dering однакові.

Фільтри приймають такі параметри:

subfilters

Встановити рядок підфільтрів постобробки.

Усі підфільтри мають загальні параметри для визначення їхнього обсягу:

a/autoq

Дотримуйтеся вимог щодо якості цього підфільтра.

c/chrom

Виконайте також фільтрацію кольоровості (за замовчуванням).

y/nochrom

Виконайте лише фільтрацію яскравості (без кольоровості).

n/noluma

Виконайте лише фільтрацію кольоровості (без яскравості).

Ці параметри можна додати після назви підфільтра, розділивши їх символом «|».

Доступні підфільтри:

hb/hdeblock[|difference[|flatness]]

Горизонтальний деблокуючий фільтр

difference

Коефіцієнт різниці, де більші значення означають більше деблокування (за замовчуванням: 32).

flatness

Поріг рівномірності, де нижчі значення означають більше деблокування (за замовчуванням: 39).

vb/vdeblock[|difference[|flatness]]

Вертикальний деблокуючий фільтр

difference

Коефіцієнт різниці, де більші значення означають більше деблокування (за замовчуванням: 32).

flatness

Поріг рівномірності, де нижчі значення означають більше деблокування (за замовчуванням: 39).

ha/hadeblock[|difference[|flatness]]

Точний горизонтальний деблокуючий фільтр

difference

Коефіцієнт різниці, де більші значення означають більше деблокування (за замовчуванням: 32).

flatness

Поріг рівномірності, де нижчі значення означають більше деблокування (за замовчуванням: 39).

va/vadeblock[|difference[|flatness]]

Точний вертикальний фільтр деблокування

difference

Коефіцієнт різниці, де більші значення означають більше деблокування (за замовчуванням: 32).

flatness

Поріг рівномірності, де нижчі значення означають більше деблокування (за замовчуванням: 39).

Горизонтальні та вертикальні фільтри деблокування мають спільні значення різниці та рівності, тому ви не можете встановити різні горизонтальні та вертикальні порогові значення.

h1/x1hdeblock

Експериментальний горизонтальний деблокуючий фільтр

v1/x1vdeblock

Експериментальний вертикальний деблокуючий фільтр

dr/dering

Знімальний фільтр

tn/tmpnoise[|threshold1[|threshold2[|threshold3]]], temporal noise reducer
threshold1

більше -> сильніша фільтрація

threshold2

більше -> сильніша фільтрація

threshold3

більше -> сильніша фільтрація

al/autolevels[:f/fullyrange], automatic brightness / contrast correction
f/fullyrange

Розтягнути яскравість до 0-255.

lb/linblenddeint

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

li/linipoldeint

Лінійний інтерполяційний фільтр депереплетення, який усуває чергування заданого блоку шляхом лінійної інтерполяції кожного другого рядка.

ci/cubicipoldeint

Кубічний інтерполяційний деінтерполяційний фільтр усуває черезрядковість заданого блоку шляхом кубічної інтерполяції кожного другого рядка.

md/mediandeint

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

fd/ffmpegdeint

Фільтр деінтерлейсу FFmpeg, який усуває чередування заданого блоку шляхом фільтрації кожного другого рядка за допомогою (-1 4 2 4 -1)фільтра.

l5/lowpass5

Вертикально застосований FIR-фільтр усунення переплетення низьких частот, який усунення переплетення заданого блоку шляхом фільтрації всіх рядків за допомогою (-1 2 6 2 -1)фільтра.

fq/forceQuant[|quantizer]

Замінює таблицю квантувача зі вхідних даних постійним квантувачем, який ви вказуєте.

quantizer

Квантувач для використання

de/default

Типова комбінація фільтрів pp ( hb|a,vb|a,dr|a)

fa/fast

Швидка комбінація фільтрів pp ( h1|a,v1|a,dr|a)

ac

Високоякісна комбінація pp фільтрів ( ha|a|128|7,va|a,dr|a)

11.188.1 Examples

  • Застосуйте горизонтальну та вертикальну деблокування, деринг та автоматичну яскравість/контраст:
    pp=hb/vb/dr/al
    
  • Застосувати стандартні фільтри без корекції яскравості/контрастності:
    pp=de/-al
    
  • Застосувати фільтри за замовчуванням і тимчасове зменшення шуму:
    pp=default/tmpnoise|1|2|3
    
  • Застосовуйте деблокування лише до яскравості та автоматично вмикайте або вимикайте вертикальне деблокування залежно від доступного процесорного часу:
    pp=hb|y/vb|a
    

11.189 pp7

Застосуйте фільтр постобробки 7. Це варіант фільтра spp , подібний до spp = 6 із 7-точковим DCT, де після IDCT використовується лише центральна вибірка.

Фільтр приймає такі параметри:

qp

Примусово встановити постійний параметр квантування. Він приймає ціле число в діапазоні від 0 до 63. Якщо не встановлено, фільтр використовуватиме QP із відеопотоку (якщо доступний).

mode

Встановити пороговий режим. Доступні режими:

'hard'

Встановіть жорсткий поріг.

'soft'

Встановіть м’яке порогове значення (кращий ефект усунення дзвінків, але, швидше за все, розмитіший).

'medium'

Встановіть середній поріг (хороші результати, за замовчуванням).

11.190 premultiply

Застосуйте ефект альфа-попереднього множення до вхідного відеопотоку, використовуючи першу площину другого потоку як альфа-каналу.

Обидва потоки повинні мати однакові розміри та однаковий формат пікселів.

Фільтр приймає такі параметри:

planes

Встановіть, які площини будуть оброблені, необроблені площини будуть скопійовані. За замовчуванням значення 0xf буде оброблено всі площини.

inplace

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

11.191 prewitt

Застосувати оператор prewitt до вхідного відеопотоку.

Фільтр приймає такі параметри:

planes

Встановіть, які площини будуть оброблені, необроблені площини будуть скопійовані. За замовчуванням значення 0xf буде оброблено всі площини.

scale

Встановіть значення, яке буде помножено на відфільтрований результат.

delta

Встановіть значення, яке буде додано до відфільтрованого результату.

11.191.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

11.192 pseudocolor

Змінюйте кольори рамки у відео за допомогою псевдокольорів.

Цей фільтр приймає такі параметри:

c0

встановити вираз першого компонента пікселя

c1

встановити вираз другого компонента пікселя

c2

встановити вираз третього компонента пікселя

c3

встановлений піксель четвертого компонентного виразу, відповідає альфа-компоненту

index, i

встановити компонент для використання як основи для зміни кольорів

preset, p

Виберіть один із вбудованих LUT. За замовчуванням встановлено значення none.

Доступні LUT:

'magma'
'inferno'
'plasma'
'viridis'
'turbo'
'cividis'
'range1'
'range2'
'shadows'
'highlights'
'solar'
'nominal'
'preferred'
'total'
opacity

Встановити непрозорість вихідних кольорів. Дозволений діапазон — від 0 до 1. Значення за замовчуванням — 1.

Кожен із параметрів виразу визначає вираз, який слід використовувати для обчислення таблиці пошуку для відповідних значень піксельних компонентів.

Вирази можуть містити такі константи та функції:

w
h

Ширина та висота введення.

val

Вхідне значення для компонента пікселя.

ymin, umin, vmin, amin

Мінімально допустиме значення компонента.

ymax, umax, vmax, amax

Максимально допустиме значення компонента.

Усі вирази за умовчанням мають значення "val".

11.192.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

11.192.2 Examples

  • Змініть занадто високі значення яскравості на градієнт:
    pseudocolor="'if(between(val,ymax,amax),lerp(ymin,ymax,(val-ymax)/(amax-ymax)),-1):if(between(val,ymax,amax),lerp(umax,umin,(val-ymax)/(amax-ymax)),-1):if(between(val,ymax,amax),lerp(vmin,vmax,(val-ymax)/(amax-ymax)),-1):-1'"
    

11.193 psnr

Отримайте середнє, максимальне та мінімальне значення PSNR (пікове співвідношення сигнал/шум) між двома вхідними відео.

Цей фільтр приймає два вхідних відео, перший вхід вважається «основним» джерелом і передається на вихід без змін. Другий вхід використовується як «еталонне» відео для обчислення PSNR.

Для правильної роботи цього фільтра обидва відеовходи повинні мати однакову роздільну здатність і формат пікселів. Також передбачається, що обидва входи мають однакову кількість кадрів, які порівнюються один за іншим.

Отримане середнє значення PSNR друкується через систему реєстрації.

Фільтр зберігає накопичену MSE (середньоквадратичну помилку) кожного кадру, а наприкінці обробки її усереднюють рівномірно для всіх кадрів, і для отримання PSNR застосовується така формула:

PSNR = 10*log10(MAX^2/MSE)

Де MAX — середнє максимальних значень кожного компонента зображення.

Нижче наведено опис прийнятих параметрів.

stats_file, f

Якщо вказано, фільтр використовуватиме названий файл для збереження PSNR кожного окремого кадру. Якщо ім'я файлу дорівнює "-", дані надсилаються на стандартний вихід.

stats_version

Визначає, яку версію формату файлу статистики використовувати. Подробиці кожного формату описано нижче. Значення за замовчуванням 1.

stats_add_max

Визначає, чи виводиться максимальне значення в журнал статистики. Значення за замовчуванням — 0. Потрібна stats_version >= 2. Якщо це встановлено та stats_version < 2, фільтр поверне помилку.

Цей фільтр також підтримує параметри синхронізації кадрів .

Файл, надрукований, якщо stats_fileвибрано, містить послідовність пар ключ/значення у вигляді key: valueдля кожної порівнюваної пари кадрів.

Якщо stats_versionвказано значення більше за 1, рядок заголовка передує списку статистичних даних для кожної пари фрейму з парами ключів-значень, які слідують за форматом фрейму з такими параметрами:

psnr_log_version

Версія формату файлу журналу. Збігатиметься stats_version.

fields

Розділений комами список параметрів для кожної пари кадрів, включений у журнал.

Нижче наведено опис кожного показаного параметра для кожної пари кадрів:

n

порядковий номер вхідного кадру, починаючи з 1

mse_avg

Середня квадратична помилка попіксельна середня різниця порівнюваних кадрів, усереднена за всіма компонентами зображення.

mse_y, mse_u, mse_v, mse_r, mse_g, mse_b, mse_a

Середня квадратична помилка попіксельна середня різниця порівнюваних кадрів для компонента, визначеного суфіксом.

psnr_y, psnr_u, psnr_v, psnr_r, psnr_g, psnr_b, psnr_a

Пікове співвідношення сигнал/шум порівнюваних кадрів для компонента, визначеного суфіксом.

max_avg, max_y, max_u, max_v

Максимально допустиме значення для кожного каналу та середнє по всіх каналах.

11.193.1 Examples

  • Наприклад:
    movie=ref_movie.mpg, setpts=PTS-STARTPTS [main];
    [main][ref] psnr="stats_file=stats.log" [out]
    

    У цьому прикладі вхідний файл, що обробляється, порівнюється з еталонним файломref_movie.mpg. PSNR кожного окремого кадру зберігається вstats.log.

  • Інший приклад з різними контейнерами:
    ffmpeg -i main.mpg -i ref.mkv -lavfi  "[0:v]settb=AVTB,setpts=PTS-STARTPTS[main];[1:v]settb=AVTB,setpts=PTS-STARTPTS[ref];[main][ref]psnr" -f null -
    

11.194 pullup

Зворотний фільтр Pulldown (зворотний телекіно), здатний обробляти змішаний жорсткий телекіно, прогресивний вміст 24000/1001 кадр/с і прогресивний вміст 30000/1001 кадр/с.

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

Щоб створювати вміст із рівномірною частотою кадрів, вставте фільтр кадрів/с після підтягування, використовуйте, fps=24000/1001якщо вхідна частота кадрів становить 29,97 кадрів/с, fps=24для 30 кадрів/с і (рідкісного) телекіно 25 кадрів/с.

Фільтр приймає такі параметри:

jl
jr
jt
jb

Ці параметри встановлюють кількість «сміття», яке потрібно ігнорувати ліворуч, праворуч, угорі та внизу зображення відповідно. Ліворуч і праворуч — по 8 пікселів, а зверху й знизу — по 2 рядки. За замовчуванням 8 пікселів з кожного боку.

sb

Встановіть суворі перерви. Встановлення цього параметра на 1 зменшить ймовірність того, що фільтр час від часу генеруватиме невідповідний кадр, але це також може призвести до випадання надмірної кількості кадрів під час послідовностей із високим рухом. І навпаки, встановлення значення -1 полегшить пошук полів фільтра. Це може допомогти в обробці відео, де є невелике розмиття між полями, але також може призвести до появи кадрів через розрядку на виході. Значення за замовчуванням: 0.

mp

Встановіть метричну площину для використання. Він приймає такі значення:

'l'

Використовуйте площину освітлення.

'u'

Використовуйте кольорову синю площину.

'v'

Використовуйте кольорову червону площину.

Цей параметр може бути налаштований на використання площини кольоровості замість площини яскравості за замовчуванням для виконання обчислень фільтра. Це може підвищити точність на дуже чистому вихідному матеріалі, але, швидше за все, знизить точність, особливо якщо є кольоровий шум (ефект веселки) або будь-яке відео у відтінках сірого. Основна мета установкиmpдо кольорової площини — зменшити навантаження на процесор і зробити підтягування придатним для використання в реальному часі на повільних машинах.

Для отримання найкращих результатів (без повторюваних кадрів у вихідному файлі) необхідно змінити вихідну частоту кадрів. Наприклад, для інверсії вхідного сигналу телекіно NTSC:

ffmpeg -i input -vf pullup -r 24000/1001 ...

11.195 qp

Зміна параметрів квантування відео (QP).

Фільтр приймає такі параметри:

qp

Встановити вираз для параметра квантування.

Вираз обчислюється через eval API і може містити, серед іншого, такі константи:

known

1, якщо індекс не дорівнює 129, 0 в іншому випадку.

qp

Послідовний індекс від -129 до 128.

11.195.1 Examples

  • Якесь рівняння на зразок:
    qp=2+2*sin(PI*qp)
    

11.196 random

Очистити відеокадри з внутрішнього кешу кадрів у довільному порядку. Жоден кадр не відкидається. Натхненний нервовим фільтром frei0r .

frames

Встановіть розмір у кількості кадрів внутрішнього кешу в діапазоні від 2до 512. Типовим є 30.

seed

Начальний код для генератора випадкових чисел має бути цілим числом між 0та UINT32_MAX. Якщо не вказано або явно встановлено менше ніж 0, фільтр намагатиметься використати хороше випадкове початкове число на основі найкращих зусиль.

11.197 readeia608

Зчитування інформації субтитрів (EIA-608) із верхніх рядків відеокадру.

Цей фільтр додає метадані кадру для lavfi.readeia608.X.ccта lavfi.readeia608.X.line, де Xномер ідентифікованого рядка з даними EIA-608 (починаючи з 0). Нижче наведено опис кожного значення метаданих:

lavfi.readeia608.X.cc

Два байти, що зберігаються як дані EIA-608 (надруковані в шістнадцятковому форматі).

lavfi.readeia608.X.line

Номер рядка, в якому ідентифіковано та зчитано дані EIA-608.

Цей фільтр приймає такі параметри:

scan_min

Встановіть рядок для початку сканування даних EIA-608. Типовим є 0.

scan_max

Встановіть рядок для завершення сканування даних EIA-608. Типовим є 29.

spw

Установіть співвідношення ширини, зарезервованої для виявлення коду синхронізації. Типовим є 0.27. Дозволений діапазон становить [0.1 - 0.7].

chp

Увімкнути перевірку біта парності. У разі помилки парності фільтр виведе 0x00цей символ. За замовчуванням false.

lp

Низькочастотні лінії перед подальшою обробкою. За замовчуванням увімкнено.

11.197.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

11.197.2 Examples

  • Виведіть файл csv із часом презентації та першими двома рядками ідентифікованих даних субтитрів EIA-608.
    ffprobe -f lavfi -i movie=captioned_video.mov,readeia608 -show_entries frame=pts_time:frame_tags=lavfi.readeia608.0.cc,lavfi.readeia608.1.cc -of csv
    

11.198 readvitc

Зчитування інформації про часовий код вертикального інтервалу (VITC) із верхніх рядків відеокадру.

Фільтр додає ключ метаданих кадру lavfi.readvitc.tc_strзі значенням часового коду, якщо було виявлено дійсний часовий код. Подальший ключ метаданих lavfi.readvitc.foundвстановлюється на 0/1 залежно від того, чи були знайдені дані часового коду чи ні.

Цей фільтр приймає такі параметри:

scan_max

Установіть максимальну кількість рядків для сканування даних VITC. Якщо встановлено значення, -1сканується повний відеокадр. Типовим є 45.

thr_b

Встановіть поріг яскравості для чорного. Приймає числа з плаваючою точкою в діапазоні [0.0,1.0], значення за умовчанням 0.2. Значення має бути рівним або меншим за thr_w.

thr_w

Встановіть поріг яскравості для білого. Приймає числа з плаваючою точкою в діапазоні [0.0,1.0], значення за умовчанням 0.6. Значення має бути рівним або більшим за thr_b.

11.198.1 Examples

  • Виявлення та малювання даних VITC на відеокадрі; якщо дійсний VITC не виявлено, намалюйте --:--:--:--як заповнювач:
    ffmpeg -i input.avi -filter:v 'readvitc,drawtext=fontfile=FreeMono.ttf:text=%{metadata\\:lavfi.readvitc.tc_str\\:--\\\\\\:--\\\\\\:--\\\\\\:--}:x=(w-tw)/2:y=400-ascent'
    

11.199 remap

Перепризначайте пікселі за допомогою вхідного відеопотоку 2nd: Xmap і 3rd: Ymap.

Цільовий піксель у позиції (X, Y) буде вибрано з позиції джерела (x, y), де x = Xmap(X, Y) і y = Ymap(X, Y). Якщо значення зіставлення виходять за межі діапазону, для пікселя призначення буде використано нульове значення для пікселя.

Вхідні відеопотоки Xmap і Ymap повинні мати однакові розміри. Вихідний відеопотік матиме розміри відеопотоку Xmap/Ymap. Вхідні відеопотоки Xmap і Ymap мають глибину 16 біт, один канал.

format

Укажіть піксельний формат виведення з цього фільтра. Може бути colorабо gray. Типовим є color.

fill

Укажіть колір невідображених пікселів. Щоб дізнатися про синтаксис цього параметра, перевірте розділ (ffmpeg-utils)"Колір" у посібнику ffmpeg-utils . Типовий колір: black.

11.200 removegrain

Фільтр removegrain — це просторовий шумозаглушувач для прогресивного відео.

m0

Встановити режим для першого літака.

m1

Встановити режим для другого літака.

m2

Встановити режим для третьої площини.

m3

Встановити режим для четвертої площини.

Діапазон режимів від 0 до 24. Далі опис кожного режиму:

0

Залишити вхідну площину без змін. За замовчуванням.

1

Вирізає піксель із мінімальним і максимальним із 8 сусідніх пікселів.

2

Вирізає піксель із другим мінімумом і максимумом із 8 сусідніх пікселів.

3

Відсікає піксель із третім мінімумом і максимумом із 8 сусідніх пікселів.

4

Вирізає піксель із четвертим мінімумом і максимумом із 8 сусідніх пікселів. Це еквівалентно медіанному фільтру.

5

Відсікання, чутливе до ліній, забезпечує мінімальні зміни.

6

Відсікання з урахуванням лінії, проміжне.

7

Відсікання з урахуванням лінії, проміжне.

8

Відсікання з урахуванням лінії, проміжне.

9

Чутливе до лінії відсікання на лінії, де найближчі сусідні пікселі.

10

Замінює цільовий піксель на найближчий сусід.

11

[1 2 1] горизонтальне та вертикальне розмиття ядра.

12

Те саме, що режим 11.

13

У режимі Bob інтерполюється верхнє поле від лінії, де найближчі сусідні пікселі.

14

У режимі Bob інтерполюється нижнє поле від лінії, де найближчі сусідні пікселі.

15

Режим Bob, інтерполює верхнє поле. Те саме, що 13, але з більш складною формулою інтерполяції.

16

Режим Bob, інтерполює нижнє поле. Те саме, що 14, але з більш складною формулою інтерполяції.

17

Відсікає піксель із мінімумом і максимумом, відповідно, максимумом і мінімумом кожної пари протилежних сусідніх пікселів.

18

Чутливе до ліній відсікання з використанням протилежних сусідів, найбільша відстань яких від поточного пікселя мінімальна.

19

Замінює піксель середнім значенням 8 його сусідів.

20

Усереднює 9 пікселів ([1 1 1] горизонтальне та вертикальне розмиття).

21

Вирізає пікселі, використовуючи середні значення протилежного сусіда.

22

Те саме, що режим 21, але простіше та швидше.

23

Невелике видалення краю та ореолу, але вважається марним.

24

Схожий на 23.

11.201 removelogo

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

Фільтр приймає такі параметри:

filename, f

Встановіть файл растрового зображення фільтра, який може бути будь-яким форматом зображення, що підтримується libavformat. Ширина та висота файлу зображення мають відповідати ширині та висоті відеопотоку, що обробляється.

Пікселі в наданому растровому зображенні з нульовим значенням не вважаються частиною логотипу, ненульові пікселі вважаються частиною логотипу. Якщо ви використовуєте білий (255) для логотипу та чорний (0) для решти, ви будете в безпеці. Для створення растрового зображення фільтра рекомендується зробити знімок екрана чорної рамки з видимим логотипом, а потім використати пороговий фільтр, а потім один або два рази використати фільтр розмивання.

При необхідності невеликі плями можна виправити вручну. Пам’ятайте, що якщо пікселі логотипу не будуть закриті, якість фільтра значно погіршиться. Позначення занадто великої кількості пікселів як частини логотипу не завдасть шкоди, але це збільшить кількість розмиття, необхідного для покриття зображення, і знищить більше інформації, ніж необхідно, а додаткові пікселі сповільнять роботу на великому логотипі.

11.202 repeatfields

Цей фільтр використовує прапорець repeat_field із заголовків Video ES і поля жорстких повторів на основі його значення.

11.203 reverse

Перевернути відеокліп.

Попередження: цьому фільтру потрібна пам’ять для буферизації всього кліпу, тому пропонується обрізання.

11.203.1 Examples

  • Візьміть перші 5 секунд кліпу та переверніть його назад.
    trim=end=5,reverse
    

11.204 rgbashift

Зсув R/G/B/A пікселів по горизонталі та/або вертикалі.

Фільтр приймає такі параметри:

rh

Встановіть величину зсуву червоного кольору по горизонталі.

rv

Встановіть величину зсуву червоного кольору по вертикалі.

gh

Встановіть величину зміщення зеленого кольору по горизонталі.

gv

Встановіть величину зміщення зеленого кольору по вертикалі.

bh

Встановіть величину зміщення синього кольору по горизонталі.

bv

Встановіть величину зміщення синього кольору по вертикалі.

ah

Встановіть величину зсуву альфа-каналу по горизонталі.

av

Встановіть величину зміщення альфа-каналу по вертикалі.

edge

Встановити режим краю, може бути smear, за замовчуванням або warp.

11.204.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

11.205 roberts

Застосуйте оператор кросу Робертса до вхідного відеопотоку.

Фільтр приймає такі параметри:

planes

Встановіть, які площини будуть оброблені, необроблені площини будуть скопійовані. За замовчуванням значення 0xf буде оброблено всі площини.

scale

Встановіть значення, яке буде помножено на відфільтрований результат.

delta

Встановіть значення, яке буде додано до відфільтрованого результату.

11.205.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

11.206 rotate

Повернути відео на довільний кут, виражений у радіанах.

Фільтр приймає такі параметри:

Нижче наведено опис додаткових параметрів.

angle, a

Установіть вираз для кута, на який потрібно повернути вхідне відео за годинниковою стрілкою, вираженого як кількість радіан. Від’ємне значення призведе до обертання проти годинникової стрілки. За замовчуванням встановлено значення «0».

Цей вираз обчислюється для кожного кадру.

out_w, ow

Встановіть вираз ширини виводу, значення за замовчуванням — «iw». Цей вираз обчислюється лише один раз під час налаштування.

out_h, oh

Встановіть вихідний вираз висоти, значенням за замовчуванням є "ih". Цей вираз обчислюється лише один раз під час налаштування.

bilinear

Увімкнути білінійну інтерполяцію, якщо встановлено значення 1, значення 0 вимикає її. Значення за замовчуванням 1.

fillcolor, c

Встановіть колір, який використовується для заповнення області виводу, не покритої оберненим зображенням. Щоб отримати загальний синтаксис цього параметра, перевірте розділ (ffmpeg-utils)"Колір" у посібнику ffmpeg-utils . Якщо вибрано спеціальне значення "none", фон не друкується (корисно, наприклад, якщо фон ніколи не відображається).

Значення за замовчуванням - "чорний".

Вирази для кута та вихідного розміру можуть містити такі константи та функції:

n

порядковий номер вхідного кадру, починаючи з 0. Завжди NAN перед фільтруванням першого кадру.

t

час у секундах вхідного кадру, він встановлюється на 0, коли фільтр налаштовано. Перед фільтрацією першого кадру завжди NAN.

hsub
vsub

горизонтальні та вертикальні значення кольоровості. Наприклад, для піксельного формату "yuv422p" hsubдорівнює 2 і vsub1.

in_w, iw
in_h, ih

ширина та висота вхідного відео

out_w, ow
out_h, oh

вихідні ширина та висота, тобто розмір доповненої області, як зазначено виразами widthandheight

rotw(a)
roth(a)

мінімальна ширина/висота, необхідна для повного вмісту вхідного відео, повернутого на aрадіани.

Вони доступні лише під час обчисленняout_wі out_hвирази.

11.206.1 Examples

  • Поверніть вхід на PI/6 радіан за годинниковою стрілкою:
    rotate=PI/6
    
  • Поверніть вхід на PI/6 радіан проти годинникової стрілки:
    rotate=-PI/6
    
  • Поверніть вхід на 45 градусів за годинниковою стрілкою:
    rotate=45*PI/180
    
  • Застосуйте постійне обертання з періодом T, починаючи з кута PI/3:
    rotate=PI/3+2*PI*t/T
    
  • Зробіть вхідне відео коливанням з періодом T секунд і амплітудою A радіан:
    rotate=A*sin(2*PI/T*t)
    
  • Обертайте відео, вихідний розмір вибирається таким чином, щоб усе обертове вхідне відео завжди повністю містилося у виході:
    rotate='2*PI*t:ow=hypot(iw,ih):oh=ow'
    
  • Оберніть відео, зменште вихідний розмір, щоб фон ніколи не відображався:
    rotate=2*PI*t:ow='min(iw,ih)/sqrt(2)':oh=ow:c=none
    

11.206.2 Commands

Фільтр підтримує такі команди:

a, angle

Установіть вираз кута. Команда приймає той самий синтаксис відповідного параметра.

Якщо вказаний вираз недійсний, його поточне значення зберігається.

11.207 sab

Застосуйте адаптивне розмиття форми.

Фільтр приймає такі параметри:

luma_radius, lr

Встановіть силу фільтра розмиття яскравості, має бути значення в діапазоні 0,1-4,0, значення за замовчуванням – 1,0. Більше значення призведе до більш розмитого зображення та повільної обробки.

luma_pre_filter_radius, lpfr

Установіть радіус попереднього фільтра яскравості, має бути значення в діапазоні 0,1-2,0, значення за замовчуванням – 1,0.

luma_strength, ls

Установіть максимальну різницю яскравості між пікселями, яка все ще враховується, має бути значення в діапазоні 0,1-100,0, значення за замовчуванням – 1,0.

chroma_radius, cr

Встановіть силу фільтра кольорового розмиття, має бути значення в діапазоні -0,9-4,0. Більше значення призведе до більш розмитого зображення та повільної обробки.

chroma_pre_filter_radius, cpfr

Установіть радіус попереднього фільтра кольоровості, має бути значення в діапазоні -0,9-2,0.

chroma_strength, cs

Установіть максимальну різницю кольоровості між пікселями, яка все ще враховується, має бути значенням у діапазоні -0,9-100,0.

Кожне значення опції кольоровості, якщо не вказано явно, встановлюється на відповідне значення опції яскравості.

11.208 scale

Масштабуйте (змінюйте розмір) вхідного відео за допомогою бібліотеки libswscale.

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

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

11.208.1 Options

Фільтр приймає наступні параметри або будь-які параметри, які підтримуються масштабувальником libswscale.

Перегляньте (ffmpeg-scaler) посібник ffmpeg-scaler , щоб отримати повний список параметрів масштабувальника.

width, w
height, h

Установіть вираз розмірності вихідного відео. Значенням за замовчуванням є вхідний розмір.

Якщо значення widthабо wдорівнює 0, ширина введення використовується для виведення. Якщо значення heightабо hдорівнює 0, для виведення використовується вхідна висота.

Якщо одне й лише одне зі значень дорівнює -n з n >= 1, фільтр масштабу використовуватиме значення, яке підтримує співвідношення сторін вхідного зображення, обчислене на основі іншого вказаного розміру. Однак після цього він переконається, що обчислений розмір ділиться на n, і за потреби відкоригує значення.

Якщо обидва значення мають значення -n з n >= 1, поведінка буде ідентичною для обох значень, встановлених на 0, як описано раніше.

Нижче наведено список прийнятних констант для використання у виразі розмірності.

eval

Укажіть, коли обчислювати widthта heightвиражати. Він приймає такі значення:

'init'

Обчислюйте вирази лише один раз під час ініціалізації фільтра або під час обробки команди.

'frame'

Оцініть вирази для кожного вхідного кадру.

Значення за замовчуванням: 'init'.

interl

Встановіть режим чергування. Він приймає такі значення:

'1'

Примусове черезрядкове масштабування.

'0'

Не застосовуйте черезстрокове масштабування.

'-1'

Виберіть черезрядкове масштабування залежно від того, чи вихідні кадри позначені як черезрядкові чи ні.

Значення за замовчуванням: '0'.

flags

Встановити прапорці масштабування libswscale. Див. (ffmpeg-scaler) посібник ffmpeg-scaler для повного списку значень. Якщо не вказано явно, фільтр застосовує позначки за замовчуванням.

param0, param1

Встановіть вхідні параметри libswscale для алгоритмів масштабування, яким вони потрібні. Повну документацію див . у посібнику (ffmpeg-scaler) ffmpeg-scaler . Якщо не вказано явно, фільтр застосовує порожні параметри.

size, s

Встановіть розмір відео. Щоб дізнатися про синтаксис цього параметра, перевірте розділ (ffmpeg-utils) «Розмір відео» в посібнику ffmpeg-utils .

in_color_matrix
out_color_matrix

Встановіть тип колірного простору входу/виводу YCbCr.

Це дозволяє перевизначати автоматично визначене значення, а також дозволяє примусово використовувати конкретне значення для виведення та кодера.

Якщо не вказано, тип колірного простору залежить від формату пікселя.

Можливі значення:

'auto'

Виберіть автоматично.

'bt709'

Формат відповідає Рекомендації Міжнародного союзу електрозв’язку (ITU) BT.709.

'fcc'

Встановіть колірний простір відповідно до Кодексу федеральних правил (CFR) Федеральної комісії зв’язку США (FCC), розділ 47 (2003) 73.682 (a).

'bt601'
'bt470'
'smpte170m'

Встановити колірний простір відповідно до:

  • Рекомендація BT.601 Сектору радіозв’язку ITU (ITU-R).
  • ITU-R Rec. BT.470-6 (1998) Системи B, B1 і G
  • Товариство інженерів кіно і телебачення (SMPTE) ST 170:2004
'smpte240m'

Встановіть колірний простір відповідно до SMPTE ST 240:1999.

'bt2020'

Встановіть колірний простір відповідно до системи непостійної яскравості ITU-R BT.2020.

in_range
out_range

Встановити вхідний/вихідний діапазон вибірки YCbCr.

Це дозволяє перевизначати автоматично визначене значення, а також дозволяє примусово використовувати конкретне значення для виведення та кодера. Якщо не вказано, діапазон залежить від формату пікселів. Можливі значення:

'auto/unknown'

Виберіть автоматично.

'jpeg/full/pc'

Встановити повний діапазон (0-255 у випадку 8-бітного яскравості).

'mpeg/limited/tv'

Встановіть діапазон «MPEG» (16-235 у разі 8-бітної яскравості).

force_original_aspect_ratio

Увімкніть зменшення або збільшення ширини або висоти вихідного відео, якщо необхідно, щоб зберегти початкове співвідношення сторін. Можливі значення:

'disable'

Змініть масштаб відео, як зазначено, і вимкніть цю функцію.

'decrease'

Розміри вихідного відео буде автоматично зменшено, якщо потрібно.

'increase'

Розміри вихідного відео будуть автоматично збільшені за потреби.

Одним з корисних прикладів цього параметра є те, що коли ви знаєте максимальну дозволену роздільну здатність певного пристрою, ви можете використовувати його, щоб обмежити вихідне відео цим, зберігаючи при цьому співвідношення сторін. Наприклад, пристрій A дозволяє відтворювати 1280x720, а ваше відео має 1920x800. Використання цього параметра (встановіть для нього значення зменшення) і вказівка ​​1280x720 у командному рядку робить вихід 1280x533.

Зауважте, що це не те, що вказано -1 дляw абоh, вам все одно потрібно вказати вихідну роздільну здатність, щоб цей параметр працював.

force_divisible_by

Гарантує, що обидва вихідні розміри, ширина та висота, діляться на задане ціле число, якщо використовується разом ізforce_original_aspect_ratio. Це працює подібно до використання -nвwіhпараметри.

Цей параметр поважає значення, встановлене дляforce_original_aspect_ratio, відповідно збільшуючи або зменшуючи роздільну здатність. Співвідношення сторін відео може бути дещо змінено.

Ця опція може бути зручною, якщо вам потрібно, щоб відео відповідало визначеній роздільній здатності або перевищувало її за допомогоюforce_original_aspect_ratioале також мають обмеження кодувальника на подільність по ширині або висоті.

Цінностіwіhпараметри - це вирази, що містять такі константи:

in_w
in_h

Ширина та висота введення

iw
ih

Це те саме, що in_wі in_h.

out_w
out_h

Вихідні (масштабовані) ширина та висота

ow
oh

Це те саме, що out_wіout_h

a

Те саме, що iw/ih

sar

формат вхідного зразка

dar

Співвідношення сторін вхідного дисплея. Розраховано з (iw / ih) * sar.

hsub
vsub

горизонтальні та вертикальні вхідні значення кольоровості. Наприклад, для піксельного формату "yuv422p" hsubдорівнює 2 і vsub1.

ohsub
ovsub

горизонтальні та вертикальні вихідні значення кольоровості. Наприклад, для піксельного формату "yuv422p" hsubдорівнює 2 і vsub1.

n

(Послідовний) номер вхідного кадру, починаючи з 0. Доступно лише з eval=frame.

t

Позначка часу представлення вхідного кадру, виражена як кількість секунд. Доступно лише з eval=frame.

pos

Позиція (зміщення байтів) кадру у вхідному потоці або NaN, якщо ця інформація недоступна та/або безглузда (наприклад, у випадку синтетичного відео). Доступно лише з eval=frame.

11.208.2 Examples

  • Масштабуйте вхідне відео до розміру 200x100
    scale=w=200:h=100
    

    Це еквівалентно:

    scale=200:100
    

    або:

    scale=200x100
    
  • Вкажіть абревіатуру розміру вихідного розміру:
    scale=qcif
    

    який також можна записати так:

    scale=size=qcif
    
  • Збільште вхід до 2x:
    scale=w=2*iw:h=2*ih
    
  • Наведене вище те саме, що:
    scale=2*in_w:2*in_h
    
  • Збільште вхід до 2x за допомогою примусового черезрядкового масштабування:
    scale=2*iw:2*ih:interl=1
    
  • Масштаб введення до половини розміру:
    scale=w=iw/2:h=ih/2
    
  • Збільште ширину та встановіть той самий розмір для висоти:
    scale=3/2*iw:ow
    
  • Шукайте грецьку гармонію:
    scale=iw:1/PHI*iw
    scale=ih*PHI:ih
    
  • Збільште висоту та встановіть ширину на 3/2 висоти:
    scale=w=3/2*oh:h=3/5*ih
    
  • Збільште розмір, зробивши розмір кратним значенням підвибірки кольоровості:
    scale="trunc(3/2*iw/hsub)*hsub:trunc(3/2*ih/vsub)*vsub"
    
  • Збільште ширину максимум до 500 пікселів, зберігаючи те саме співвідношення сторін, що й у вхідних даних:
    scale=w='min(500\, iw*3/2):h=-1'
    
  • Зробіть пікселі квадратними, поєднавши масштаб і сетсар:
    scale='trunc(ih*dar):ih',setsar=1/1
    
  • Зробіть пікселі квадратними, поєднавши scale та setsar, переконавшись, що результуюча роздільна здатність є рівною (вимагається деякими кодеками):
    scale='trunc(ih*dar/2)*2:trunc(ih/2)*2',setsar=1/1
    

11.208.3 Commands

Цей фільтр підтримує такі команди:

width, w
height, h

Установіть вираз розмірності вихідного відео. Команда приймає той самий синтаксис відповідного параметра.

Якщо вказаний вираз недійсний, його поточне значення зберігається.

11.209 scale_cuda

Масштабуйте (змінюйте розмір) і конвертуйте (піксельний формат) вхідне відео за допомогою прискорених ядер CUDA. Налаштування вихідної ширини та висоти працює так само, як і для масштабного фільтра.

Фільтр приймає такі параметри:

w
h

Установіть вираз розмірності вихідного відео. Значенням за замовчуванням є вхідний розмір.

Допускає ті самі вирази, що й масштабний фільтр.

interp_algo

Встановлює алгоритм масштабування:

nearest

Найближчий сусід

Використовується за умовчанням, якщо вхідні параметри відповідають бажаному виходу.

bilinear

Білінійний

bicubic

Бікубічний

Це значення за умовчанням.

lanczos

Ланцош

format

Керує вихідним форматом пікселів. За замовчуванням або, якщо не вказано, використовується формат вхідних пікселів.

Фільтр не підтримує конвертацію між форматами пікселів YUV і RGB.

passthrough

Якщо встановлено значення 0, обробляється кожен кадр, навіть якщо перетворення не потрібне. Цей режим може бути корисним для використання фільтра як буфера для споживача кадрів нижнього потоку, який вичерпує обмежений пул кадрів декодера.

Якщо встановлено значення 1, кадри передаються як є, якщо вони відповідають бажаним вихідним параметрам. Це стандартна поведінка.

param

Специфічний параметр алгоритму.

Впливає на криві бікубічного алгоритму.

force_original_aspect_ratio
force_divisible_by

Працюють так само, як ідентичні параметри масштабного фільтра.

11.209.1 Examples

  • Масштабуйте вхідний сигнал до 720p, зберігаючи співвідношення сторін і гарантуючи вихід yuv420p.
    scale_cuda=-2:720:format=yuv420p
    
  • Розширення до 4K за допомогою алгоритму найближчого сусіда.
    scale_cuda=4096:2160:interp_algo=nearest
    
  • Не виконуйте жодного перетворення чи масштабування, але скопіюйте всі вхідні кадри у щойно виділені. Це може бути корисним для роботи з фільтром і ланцюгом кодування, який інакше вичерпує пул кадрів декодерів.
    scale_cuda=passthrough=0
    

11.210 scale_npp

Використовуйте NVIDIA Performance Primitives (libnpp), щоб виконати масштабування та/або перетворення піксельного формату на відеокадрах CUDA. Встановлення ширини та висоти виведення працює так само, як і для scaleфільтра.

Приймаються такі додаткові опції:

format

Формат пікселів вихідних кадрів CUDA. Якщо встановлено рядок "same" (за замовчуванням), формат введення буде збережено. Зауважте, що автоматичне узгодження формату та перетворення ще не підтримується для апаратних кадрів

interp_algo

Алгоритм інтерполяції, що використовується для зміни розміру. Одне з наступного:

nn

Найближчий сусід.

linear
cubic
cubic2p_bspline

2-параметрична кубічна (B=1, C=0)

cubic2p_catmullrom

2-параметрична кубічна (B=0, C=1/2)

cubic2p_b05c03

2-параметрична кубічна (B=1/2, C=3/10)

super

Суперсемплінг

lanczos
force_original_aspect_ratio

Увімкніть зменшення або збільшення ширини або висоти вихідного відео, якщо необхідно, щоб зберегти початкове співвідношення сторін. Можливі значення:

'disable'

Змініть масштаб відео, як зазначено, і вимкніть цю функцію.

'decrease'

Розміри вихідного відео буде автоматично зменшено, якщо потрібно.

'increase'

Розміри вихідного відео будуть автоматично збільшені за потреби.

Одним з корисних прикладів цього параметра є те, що коли ви знаєте максимальну дозволену роздільну здатність певного пристрою, ви можете використовувати його, щоб обмежити вихідне відео цим, зберігаючи при цьому співвідношення сторін. Наприклад, пристрій A дозволяє відтворювати 1280x720, а ваше відео має 1920x800. Використання цього параметра (встановіть для нього значення зменшення) і вказівка ​​1280x720 у командному рядку робить вихід 1280x533.

Зауважте, що це не те, що вказано -1 дляw абоh, вам все одно потрібно вказати вихідну роздільну здатність, щоб цей параметр працював.

force_divisible_by

Гарантує, що обидва вихідні розміри, ширина та висота, діляться на задане ціле число, якщо використовується разом ізforce_original_aspect_ratio. Це працює подібно до використання -nвwіhпараметри.

Цей параметр поважає значення, встановлене дляforce_original_aspect_ratio, відповідно збільшуючи або зменшуючи роздільну здатність. Співвідношення сторін відео може бути дещо змінено.

Ця опція може бути зручною, якщо вам потрібно, щоб відео відповідало визначеній роздільній здатності або перевищувало її за допомогоюforce_original_aspect_ratioале також мають обмеження кодувальника на подільність по ширині або висоті.

eval

Укажіть, коли обчислювати widthта heightвиражати. Він приймає такі значення:

'init'

Обчислюйте вирази лише один раз під час ініціалізації фільтра або під час обробки команди.

'frame'

Оцініть вирази для кожного вхідного кадру.

Цінностіwіhпараметри - це вирази, що містять такі константи:

in_w
in_h

Ширина та висота введення

iw
ih

Це те саме, що in_wі in_h.

out_w
out_h

Вихідні (масштабовані) ширина та висота

ow
oh

Це те саме, що out_wіout_h

a

Те саме, що iw/ih

sar

формат вхідного зразка

dar

Співвідношення сторін вхідного дисплея. Розраховано з (iw / ih) * sar.

n

(Послідовний) номер вхідного кадру, починаючи з 0. Доступно лише з eval=frame.

t

Позначка часу представлення вхідного кадру, виражена як кількість секунд. Доступно лише з eval=frame.

pos

Позиція (зміщення байтів) кадру у вхідному потоці або NaN, якщо ця інформація недоступна та/або безглузда (наприклад, у випадку синтетичного відео). Доступно лише з eval=frame.

11.211 scale2ref

Масштабування (зміна розміру) вхідного відео на основі контрольного відео.

Перегляньте фільтр масштабування, щоб дізнатися про доступні параметри, scale2ref підтримує те саме, але використовує еталонне відео замість основного вхідного сигналу як основу. scale2ref також підтримує такі додаткові константи дляwі hпараметри:

main_w
main_h

Ширина та висота основного вхідного відео

main_a

Те саме, що main_w/main_h

main_sar

Зразок співвідношення сторін основного вхідного відео

main_dar, mdar

Формат відображення основного вхідного відео. Розраховано з (main_w / main_h) * main_sar.

main_hsub
main_vsub

Значення підвибірки кольоровості основного вхідного відео по горизонталі та вертикалі. Наприклад, для піксельного формату "yuv422p" hsubдорівнює 2 і vsub 1.

main_n

(Послідовний) номер основного кадру введення, починаючи з 0. Доступно лише з eval=frame.

main_t

Позначка часу представлення основного вхідного кадру, виражена як кількість секунд. Доступно лише з eval=frame.

main_pos

Позиція (зміщення байтів) кадру в основному вхідному потоці або NaN, якщо ця інформація недоступна та/або безглузда (наприклад, у випадку синтетичного відео). Доступно лише з eval=frame.

11.211.1 Examples

  • Перед накладанням масштабуйте потік субтитрів (b), щоб відповідати розміру основного відео (a).
    'scale2ref[b][a];[a][b]overlay'
    
  • Масштабуйте логотип до 1/10 висоти відео, зберігаючи його співвідношення сторін.
    [logo-in][video-in]scale2ref=w=oh*mdar:h=ih/10[logo-out][video-out]
    

11.211.2 Commands

Цей фільтр підтримує такі команди:

width, w
height, h

Установіть вираз розмірності вихідного відео. Команда приймає той самий синтаксис відповідного параметра.

Якщо вказаний вираз недійсний, його поточне значення зберігається.

11.212 scale2ref_npp

Використовуйте NVIDIA Performance Primitives (libnpp), щоб масштабувати (змінювати розмір) вхідне відео на основі еталонного відео.

Перегляньте фільтр scale_npp , щоб дізнатися про доступні параметри, scale2ref_npp підтримує те саме, але використовує еталонне відео замість основного вхідного сигналу як основу. scale2ref_npp також підтримує такі додаткові константи дляwі hпараметри:

main_w
main_h

Ширина та висота основного вхідного відео

main_a

Те саме, що main_w/main_h

main_sar

Зразок співвідношення сторін основного вхідного відео

main_dar, mdar

Формат відображення основного вхідного відео. Розраховано з (main_w / main_h) * main_sar.

main_n

(Послідовний) номер основного кадру введення, починаючи з 0. Доступно лише з eval=frame.

main_t

Позначка часу представлення основного вхідного кадру, виражена як кількість секунд. Доступно лише з eval=frame.

main_pos

Позиція (зміщення байтів) кадру в основному вхідному потоці або NaN, якщо ця інформація недоступна та/або безглузда (наприклад, у випадку синтетичного відео). Доступно лише з eval=frame.

11.212.1 Examples

  • Перед накладанням масштабуйте потік субтитрів (b), щоб відповідати розміру основного відео (a).
    'scale2ref_npp[b][a];[a][b]overlay_cuda'
    
  • Масштабуйте логотип до 1/10 висоти відео, зберігаючи його співвідношення сторін.
    [logo-in][video-in]scale2ref_npp=w=oh*mdar:h=ih/10[logo-out][video-out]
    

11.213 scharr

Застосувати оператор scharr до вхідного відеопотоку.

Фільтр приймає такі параметри:

planes

Встановіть, які площини будуть оброблені, необроблені площини будуть скопійовані. За замовчуванням значення 0xf буде оброблено всі площини.

scale

Встановіть значення, яке буде помножено на відфільтрований результат.

delta

Встановіть значення, яке буде додано до відфільтрованого результату.

11.213.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

11.214 scroll

Прокручуйте вхідне відео горизонтально та/або вертикально з постійною швидкістю.

Фільтр приймає такі параметри:

horizontal, h

Встановіть швидкість горизонтальної прокрутки. За замовчуванням 0. Дозволений діапазон від -1 до 1. Від’ємні значення змінюють напрямок прокручування.

vertical, v

Встановіть швидкість вертикального прокручування. За замовчуванням 0. Дозволений діапазон від -1 до 1. Від’ємні значення змінюють напрямок прокручування.

hpos

Встановіть початкове горизонтальне положення прокручування. За замовчуванням 0. Дозволений діапазон від 0 до 1.

vpos

Встановіть початкове вертикальне положення прокручування. За замовчуванням 0. Дозволений діапазон від 0 до 1.

11.214.1 Commands

Цей фільтр підтримує такі команди :

horizontal, h

Встановіть швидкість горизонтальної прокрутки.

vertical, v

Встановіть швидкість вертикального прокручування.

11.215 scdet

Виявлення зміни сцени відео.

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

Крім того, цей фільтр реєструє повідомлення та встановлює метадані кадру, коли виявляє зміну сцениthreshold.

lavfi.scd.mafdключі метаданих встановлюються за допомогою mafd для кожного кадру.

lavfi.scd.scoreключі метаданих встановлюються з оцінкою зміни сцени для кожного кадру для виявлення зміни сцени.

lavfi.scd.timeключі метаданих встановлюються з поточним відфільтрованим часом кадру, який визначає зміну сцениthreshold.

Фільтр приймає такі параметри:

threshold, t

Встановіть поріг виявлення зміни сцени як відсоток від максимальної зміни. Хороші значення знаходяться в [8.0, 14.0]діапазоні. Діапазон дляthresholdце [0., 100.].

Значення за замовчуванням: 10..

sc_pass, s

Встановіть прапорець для передачі кадрів зміни сцени до наступного фільтра. Значення за замовчуванням: 0 Ви можете ввімкнути його, якщо хочете отримати знімок лише кадрів зміни сцени.

11.216 selectivecolor

Налаштуйте блакитний, пурпурний, жовтий і чорний (CMYK) відповідно до певних діапазонів кольорів (таких як «червоні», «жовті», «зелені», «блакитні»...). Діапазон регулювання визначається «чистотою» кольору (тобто наскільки він уже насичений).

Цей фільтр схожий на інструмент Adobe Photoshop Selective Color.

Фільтр приймає такі параметри:

correction_method

Виберіть метод корекції кольору.

Доступні значення:

'absolute'

Зазначені коригування застосовуються «як є» (додаються/віднімаються до початкового значення компонента пікселя).

'relative'

Зазначені коригування відносяться до вихідного значення компонента.

Типовим є absolute.

reds

Коригування для червоних пікселів (пікселі, де червоний компонент є максимальним)

yellows

Коригування для жовтих пікселів (пікселі, де синій компонент є мінімальним)

greens

Коригування для зелених пікселів (пікселі, де зелений компонент є максимальним)

cyans

Коригування для блакитних пікселів (пікселі, де червоний компонент є мінімальним)

blues

Коригування для синіх пікселів (пікселі, де синій компонент є максимальним)

magentas

Коригування пурпурових пікселів (пікселі, де зелений компонент є мінімальним)

whites

Коригування для білих пікселів (пікселі, де всі компоненти перевищують 128)

neutrals

Коригування для всіх пікселів, крім чистого чорного та чистого білого

blacks

Коригування для чорних пікселів (пікселі, де всі компоненти менше 128)

psfile

Укажіть файл вибіркового кольору Photoshop ( .asv), з якого потрібно імпортувати налаштування.

Усі параметри налаштування (reds,yellows, ...) приймати до 4 значень коригування з плаваючою комою, розділених пробілами, у діапазоні [-1,1] відповідно, щоб налаштувати кількість блакитного, пурпурового, жовтого та чорного для пікселів у своєму діапазоні.

11.216.1 Examples

  • Збільште блакитний на 50% і зменшіть жовтий на 33% у кожній зеленій зоні та збільште пурпуровий на 27% у синіх областях:
    selectivecolor=greens=.5 0 -.33 0:blues=0 .27
    
  • Використовуйте вибірковий колір Photoshop:
    selectivecolor=psfile=MySelectiveColorPresets/Misty.asv
    

11.217 separatefields

Він separatefieldsприймає відеовхід на основі кадрів і розбиває кожен кадр на поля компонентів, створюючи новий кліп половинної висоти з подвійною частотою кадрів і подвійною кількістю кадрів.

Цей фільтр використовує інформацію про домінування полів у кадрі, щоб вирішити, яке з кожної пари полів розмістити першим у виводі. Якщо це неправильно, використовуйте фільтр setfield перед separatefieldsфільтром.

11.218 setdar, setsar

Фільтр setdarвстановлює співвідношення сторін дисплея для вихідного відео фільтра.

Це робиться шляхом зміни вказаного співвідношення сторін зразка (так званого пікселя) відповідно до наступного рівняння:

DAR = HORIZONTAL_RESOLUTION / VERTICAL_RESOLUTION * SAR

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

Фільтр setsarвстановлює вибіркове (так зване «піксельне») співвідношення сторін для вихідного відео фільтра.

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

Майте на увазі, що вибіркове співвідношення сторін, встановлене setsar фільтром, може бути змінено пізнішими фільтрами в ланцюжку фільтрів, наприклад, якщо застосовано інший фільтр "setsar" або "setdar".

Він приймає такі параметри:

r, ratio, dar (setdar only), sar (setsar only)

Установіть співвідношення сторін, що використовується фільтром.

Параметр може бути числовим рядком із плаваючою комою, виразом або рядком у формі num: den, де numта denє чисельником і знаменником співвідношення сторін. Якщо параметр не вказано, приймається значення «0». Якщо використовується форма " num: den", :символ має бути екранованим.

max

Установіть максимальне ціле значення для вираження чисельника та знаменника під час зменшення вираженого співвідношення сторін до раціонального. Значення за замовчуванням: 100.

Параметр sar— це вираз, що містить такі константи:

E, PI, PHI

Це наближені значення для математичних констант e (число Ейлера), pi (грецьке pi) і phi (золотий перетин).

w, h

Ширина та висота введення.

a

Це те саме, що w/ h.

sar

Співвідношення сторін вхідного зразка.

dar

Співвідношення сторін вхідного дисплея. Це те саме, що ( w/ h) * sar.

hsub, vsub

Значення підвибірки кольоровості по горизонталі та вертикалі. Наприклад, для піксельного формату "yuv422p" hsubдорівнює 2 і vsub1.

11.218.1 Examples

  • Щоб змінити співвідношення сторін дисплея на 16:9, укажіть один із наведених нижче параметрів.
    setdar=dar=1.77777
    setdar=dar=16/9
    
  • Щоб змінити зразкове співвідношення сторін на 10:11, укажіть:
    setsar=sar=10/11
    
  • Щоб встановити співвідношення сторін дисплея 16:9 і вказати максимальне ціле значення 1000 у зменшенні співвідношення сторін, скористайтеся командою:
    setdar=ratio=16/9:max=1000
    

11.219 setfield

Силове поле для вихідного відеокадру.

Фільтр setfieldпозначає поле типу черезрядкової розгортки для вихідних кадрів. Він не змінює вхідний кадр, а лише встановлює відповідну властивість, яка впливає на те, як кадр обробляється наступними фільтрами (наприклад, fieldorderабо yadif).

Фільтр приймає такі параметри:

mode

Доступні значення:

'auto'

Зберігайте ту саму властивість поля.

'bff'

Позначте рамку як нижнє поле спочатку.

'tff'

Позначте кадр як верхнє поле спочатку.

'prog'

Позначте кадр як прогресивний.

11.220 setparams

Параметр Force frame для вихідного відеокадру.

Фільтр setparamsпозначає чергування та діапазон кольорів для вихідних кадрів. Він не змінює вхідний кадр, а лише встановлює відповідну властивість, яка впливає на те, як кадр обробляється фільтрами/кодерами.

field_mode

Доступні значення:

'auto'

Зберігати ту саму властивість поля (за замовчуванням).

'bff'

Позначте рамку як нижнє поле спочатку.

'tff'

Позначте кадр як верхнє поле спочатку.

'prog'

Позначте кадр як прогресивний.

range

Доступні значення:

'auto'

Зберігати ту саму властивість діапазону кольорів (за замовчуванням).

'unspecified, unknown'

Позначте рамку як невизначену кольорову гаму.

'limited, tv, mpeg'

Позначте кадр як обмежений діапазон.

'full, pc, jpeg'

Позначте кадр як повний діапазон.

color_primaries

Встановіть основні кольори. Доступні значення:

'auto'

Зберігати ту саму властивість основних кольорів (за замовчуванням).

'bt709'
'unknown'
'bt470m'
'bt470bg'
'smpte170m'
'smpte240m'
'film'
'bt2020'
'smpte428'
'smpte431'
'smpte432'
'jedec-p22'
color_trc

Встановити передачу кольору. Доступні значення:

'auto'

Зберігати ту саму властивість trc кольору (за замовчуванням).

'bt709'
'unknown'
'bt470m'
'bt470bg'
'smpte170m'
'smpte240m'
'linear'
'log100'
'log316'
'iec61966-2-4'
'bt1361e'
'iec61966-2-1'
'bt2020-10'
'bt2020-12'
'smpte2084'
'smpte428'
'arib-std-b67'
colorspace

Встановити колірний простір. Доступні значення:

'auto'

Зберігати ту саму властивість простору кольорів (за замовчуванням).

'gbr'
'bt709'
'unknown'
'fcc'
'bt470bg'
'smpte170m'
'smpte240m'
'ycgco'
'bt2020nc'
'bt2020c'
'smpte2085'
'chroma-derived-nc'
'chroma-derived-c'
'ictcp'

11.221 sharpen_npp

Використовуйте NVIDIA Performance Primitives (libnpp), щоб збільшити різкість зображення з контролем меж.

Приймаються такі додаткові опції:

border_type

Тип вибірки, яка буде використана, рамки рамки оголошення. Одне з наступного:

replicate

Копіювати значення пікселів.

11.222 shear

Застосуйте перетворення зсуву до вхідного відео.

Цей фільтр підтримує такі параметри:

shx

Коефіцієнт зсуву в напрямку X. Значення за замовчуванням — 0. Дозволений діапазон — від -2 до 2.

shy

Коефіцієнт зсуву в Y-напрямку. Значення за замовчуванням — 0. Дозволений діапазон — від -2 до 2.

fillcolor, c

Встановіть колір, який використовується для заповнення області виводу, не охопленої перетвореним відео. Щоб отримати загальний синтаксис цього параметра, перевірте розділ (ffmpeg-utils)"Колір" у посібнику ffmpeg-utils . Якщо вибрано спеціальне значення "none", фон не друкується (корисно, наприклад, якщо фон ніколи не відображається).

Значення за замовчуванням - "чорний".

interp

Встановити тип інтерполяції. Може бути bilinearабо nearest. Типовим є bilinear.

11.222.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

11.223 showinfo

Показати рядок, що містить різну інформацію для кожного вхідного відеокадру. Вхідне відео не змінено.

Цей фільтр підтримує такі параметри:

checksum

Обчисліть контрольні суми кожної площини. За замовчуванням увімкнено.

Показаний рядок містить послідовність пар ключ/значення у вигляді key: value.

У вихідних даних відображаються такі значення:

n

(Послідовний) номер вхідного кадру, починаючи з 0.

pts

Позначка часу представлення вхідного кадру, виражена як кількість одиниць бази часу. Одиниця вимірювання часу залежить від вхідної панелі фільтра.

pts_time

Позначка часу представлення вхідного кадру, виражена як кількість секунд.

pos

Позиція кадру у вхідному потоці або -1, якщо ця інформація недоступна та/або безглузда (наприклад, у випадку синтетичного відео).

fmt

Назва формату пікселів.

sar

Зразок співвідношення сторін вхідного кадру, виражений у формі num/ den.

s

Розмір вхідного кадру. Щоб дізнатися про синтаксис цього параметра, перевірте розділ (ffmpeg-utils) «Розмір відео» в посібнику ffmpeg-utils .

i

Тип режиму черезрядкової розгортки ("P" для "прогресивного", "T" для верхнього поля спочатку, "B" для нижнього поля спочатку).

iskey

Це 1, якщо кадр є ключовим, і 0 в іншому випадку.

type

Тип зображення вхідного кадру («I» для I-кадру, «P» для P-кадру, «B» для B-кадру або «?» для невідомого типу). Також зверніться до документації переліку AVPictureTypeта av_get_picture_type_charфункції, визначеної в libavutil/avutil.h.

checksum

Контрольна сума Adler-32 (надрукована в шістнадцятковій системі) усіх площин вхідного кадру.

plane_checksum

Контрольна сума Adler-32 (надрукована в шістнадцятковому форматі) кожної площини вхідного кадру, виражена у формі "[ ]". c0 c1 c2 c3

mean

Середнє значення пікселів у кожній площині вхідного кадру, виражене у формі "[ ]". mean0 mean1 mean2 mean3

stdev

Стандартне відхилення значень пікселів у кожній площині вхідного кадру, виражене у формі "[ ]". stdev0 stdev1 stdev2 stdev3

11.224 showpalette

Відображає палітру з 256 кольорів кожного кадру. Цей фільтр актуальний лише для pal8кадрів піксельного формату.

Він приймає наступний варіант:

s

Встановіть розмір прямокутника, що використовується для представлення одного елемента кольору палітри. За замовчуванням 30(для 30x30піксельної коробки).

11.225 shuffleframes

Змініть порядок та/або дублюйте та/або видаліть відеокадри.

Він приймає такі параметри:

mapping

Встановіть індекси призначення вхідних кадрів. Це пробіл або "|" відокремлений список індексів, який відображає вхідні кадри на вихідні кадри. Кількість індексів також встановлює максимальне значення, яке може мати кожен індекс. Індекс '-1' має особливе значення, а саме для пропускання кадру.

Перший кадр має індекс 0. За умовчанням вхідні дані залишаються незмінними.

11.225.1 Examples

  • Поміняйте місцями другий і третій кадри з кожних трьох кадрів введення:
    ffmpeg -i INPUT -vf "shuffleframes=0 2 1" OUTPUT
    
  • Поміняйте місцями 10-й і 1-й кадри з кожних десяти кадрів введення:
    ffmpeg -i INPUT -vf "shuffleframes=9 1 2 3 4 5 6 7 8 0" OUTPUT
    

11.226 shufflepixels

Зміна порядку пікселів у відеокадрах.

Цей фільтр приймає такі параметри:

direction, d

Установіть напрямок перемішування. Може бути прямого або зворотного напрямку. Напрямок за замовчуванням – вперед.

mode, m

Встановити режим перемішування. Може бути горизонтальним, вертикальним або блоковим режимом.

width, w
height, h

Встановити перемішування block_size. У режимі горизонтального перемішування використовується лише ширина, а у вертикальному – лише висота.

seed, s

Встановити випадкове початкове число, яке використовується з перетасуванням пікселів. Головним чином корисно налаштувати, щоб мати можливість змінити процес фільтрації, щоб отримати оригінальний вхід. Наприклад, щоб перетасувати у зворотному напрямку, вам потрібно використати ті самі параметри та точнісінько те саме початкове значення та встановити напрямок на зворотний.

11.227 shuffleplanes

Змініть порядок і/або дублюйте відеоплани.

Він приймає такі параметри:

map0

Індекс вхідної площини, яка буде використовуватися як перша вихідна площина.

map1

Індекс вхідної площини, яка буде використовуватися як друга вихідна площина.

map2

Індекс вхідної площини, яка буде використовуватися як третя вихідна площина.

map3

Індекс вхідної площини, яка буде використовуватися як четверта вихідна площина.

Перша площина має індекс 0. За замовчуванням вхідні дані залишаються незмінними.

11.227.1 Examples

  • Поміняйте місцями другу і третю площину введення:
    ffmpeg -i INPUT -vf shuffleplanes=0:2:1:3 OUTPUT
    

11.228 signalstats

Оцініть різні візуальні показники, які допомагають визначити проблеми, пов’язані з оцифруванням аналогового відео.

За замовчуванням фільтр реєструватиме ці значення метаданих:

YMIN

Відображення мінімального значення Y, що міститься у вхідному кадрі. Виражається в діапазоні [0-255].

YLOW

Відобразіть значення Y на 10% процентилі у вхідному кадрі. Виражається в діапазоні [0-255].

YAVG

Відображення середнього значення Y у вхідному кадрі. Виражається в діапазоні [0-255].

YHIGH

Відобразіть значення Y на 90% процентилі у вхідному кадрі. Виражається в діапазоні [0-255].

YMAX

Відображення максимального значення Y, що міститься у вхідному кадрі. Виражається в діапазоні [0-255].

UMIN

Відображення мінімального значення U, що міститься у вхідному кадрі. Виражається в діапазоні [0-255].

ULOW

Відобразіть значення U на 10% процентилі у вхідному кадрі. Виражається в діапазоні [0-255].

UAVG

Відображення середнього значення U у вхідному кадрі. Виражається в діапазоні [0-255].

UHIGH

Відобразіть значення U на 90% процентилі у вхідному кадрі. Виражається в діапазоні [0-255].

UMAX

Відображення максимального значення U, що міститься у вхідному кадрі. Виражається в діапазоні [0-255].

VMIN

Відображення мінімального значення V, що міститься у вхідному кадрі. Виражається в діапазоні [0-255].

VLOW

Відобразіть значення V на рівні 10% процентиля у вхідному кадрі. Виражається в діапазоні [0-255].

VAVG

Відображення середнього значення V у вхідному кадрі. Виражається в діапазоні [0-255].

VHIGH

Відобразіть значення V на 90% процентилі у вхідному кадрі. Виражається в діапазоні [0-255].

VMAX

Відображення максимального значення V, що міститься у вхідному кадрі. Виражається в діапазоні [0-255].

SATMIN

Відображення мінімального значення насиченості, що міститься у вхідному кадрі. Виражається в діапазоні [0-~181,02].

SATLOW

Відображення значення насиченості на рівні 10% процентиля у вхідному кадрі. Виражається в діапазоні [0-~181,02].

SATAVG

Відображення середнього значення насиченості у вхідному кадрі. Виражається в діапазоні [0-~181,02].

SATHIGH

Відображення значення насиченості на рівні 90% процентиля у вхідному кадрі. Виражається в діапазоні [0-~181,02].

SATMAX

Відображення максимального значення насиченості, що міститься у вхідному кадрі. Виражається в діапазоні [0-~181,02].

HUEMED

Відображення медіанного значення відтінку у вхідному кадрі. Виражається в діапазоні [0-360].

HUEAVG

Відображення середнього значення відтінку у вхідному кадрі. Виражається в діапазоні [0-360].

YDIF

Відобразити середнє значення різниці значень вибірки між усіма значеннями площини Y у поточному кадрі та відповідними значеннями попереднього кадру введення. Виражається в діапазоні [0-255].

UDIF

Відображення середнього різниці значень вибірки між усіма значеннями площини U в поточному кадрі та відповідними значеннями попереднього кадру введення. Виражається в діапазоні [0-255].

VDIF

Відобразити середнє значення різниці значень вибірки між усіма значеннями площини V у поточному кадрі та відповідними значеннями попереднього кадру введення. Виражається в діапазоні [0-255].

YBITDEPTH

Відображення бітової глибини площини Y у поточному кадрі. Виражається в діапазоні [0-16].

UBITDEPTH

Відображення бітової глибини площини U в поточному кадрі. Виражається в діапазоні [0-16].

VBITDEPTH

Відображення бітової глибини площини V у поточному кадрі. Виражається в діапазоні [0-16].

Фільтр приймає такі параметри:

stat
out

statвказати додаткову форму аналізу зображення. outвиводити відео з виділеним типом пікселів.

Обидва варіанти приймають такі значення:

'tout'

Визначте temporal outliersпікселі. A temporal outlierє пікселем на відміну від сусідніх пікселів того самого поля. Приклади тимчасових викидів включають результати випадання відео, забивання голови або проблеми з відстеженням стрічки.

'vrep'

Ідентифікувати vertical line repetition. Повторення вертикальної лінії включає подібні ряди пікселів у кадрі. У народженому цифровому відео повторення вертикальної лінії є звичайним, але цей шаблон рідко зустрічається у відео, оцифрованому з аналогового джерела. Коли це відбувається у відео, яке є результатом оцифровки аналогового джерела, це може вказувати на приховування від компенсатора випадання.

'brng'

Визначте пікселі, які виходять за межі допустимого діапазону трансляції.

color, c

Установіть колір виділення дляoutваріант. За замовчуванням колір жовтий.

11.228.1 Examples

  • Вихідні дані різних відеометрик:
    ffprobe -f lavfi movie=example.mov,signalstats="stat=tout+vrep+brng" -show_frames
    
  • Виведіть конкретні дані про мінімальне та максимальне значення площини Y на кадр:
    ffprobe -f lavfi movie=example.mov,signalstats -show_entries frame_tags=lavfi.signalstats.YMAX,lavfi.signalstats.YMIN
    
  • Відтворюйте відео, підсвічуючи червоним пікселі, які знаходяться за межами діапазону трансляції.
    ffplay example.mov -vf signalstats="out=brng:color=red"
    
  • Відтворення відео з метаданими signalstats, намальованими поверх кадру.
    ffplay example.mov -vf signalstats=stat=brng+vrep+tout,drawtext=fontfile=FreeSerif.ttf:textfile=signalstat_drawtext.txt
    

    У команді використовується такий вміст файлу signalstat_drawtext.txt:

    time %{pts:hms}
    Y (%{metadata:lavfi.signalstats.YMIN}-%{metadata:lavfi.signalstats.YMAX})
    U (%{metadata:lavfi.signalstats.UMIN}-%{metadata:lavfi.signalstats.UMAX})
    V (%{metadata:lavfi.signalstats.VMIN}-%{metadata:lavfi.signalstats.VMAX})
    saturation maximum: %{metadata:lavfi.signalstats.SATMAX}
    
    

11.229 signature

Розраховує відеопідпис MPEG-7. Фільтр може працювати з більш ніж одним входом. У цьому випадку узгодження між входами можна розрахувати додатково. Фільтр завжди проходить через перший вхід. Сигнатуру кожного потоку можна записати у файл.

Він приймає такі варіанти:

detectmode

Увімкніть або вимкніть процес зіставлення.

Доступні значення:

'off'

Вимкнути розрахунок відповідності (за замовчуванням).

'full'

Обчисліть відповідність для всього відео та виведіть, чи збігається все відео чи лише частини.

'fast'

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

nb_inputs

Встановіть кількість входів. Значення параметра має бути невід’ємним цілим числом. Значення за замовчуванням 1.

filename

Встановіть шлях, до якого записується вивід. Якщо є більше ніж один вхід, шлях має бути прототипом, тобто має містити %d або %0nd (де n є додатним цілим числом), які буде замінено номером введення. Якщо ім'я файлу не вказано, вихідні дані не будуть записані. Це значення за умовчанням.

format

Виберіть вихідний формат.

Доступні значення:

'binary'

Використовувати вказане двійкове представлення (за замовчуванням).

'xml'

Використовуйте вказане представлення xml.

th_d

Установіть порогове значення для виявлення одного слова як схожого. Значення параметра має бути цілим числом, більшим за нуль. Значення за замовчуванням 9000.

th_dc

Встановіть порогове значення для визначення всіх слів як схожих. Значення параметра має бути цілим числом, більшим за нуль. Значення за замовчуванням – 60000.

th_xh

Встановіть поріг для виявлення кадрів як схожих. Значення параметра має бути цілим числом, більшим за нуль. Значення за замовчуванням — 116.

th_di

Установіть мінімальну довжину послідовності в кадрах, щоб розпізнати її як відповідну послідовність. Значення параметра має бути невід’ємним цілим числом. Значення за замовчуванням 0.

th_it

Встановіть мінімальне відношення відповідних кадрів до всіх кадрів. Значення параметра має бути подвійним значенням між 0 і 1. Значенням за замовчуванням є 0,5.

11.229.1 Examples

  • Щоб обчислити підпис вхідного відео та зберегти його в signature.bin:
    ffmpeg -i input.mkv -vf signature=filename=signature.bin -map 0:v -f null -
    
  • Щоб визначити, чи збігаються два відео, і зберегти підписи у форматі XML у signature0.xml і signature1.xml:
    ffmpeg -i input1.mkv -i input2.mkv -filter_complex "[0:v][1:v] signature=nb_inputs=2:detectmode=full:format=xml:filename=signature%d.xml" -map :v -f null -
    

11.230 siti

Обчисліть оцінки просторової інформації (SI) і часової інформації (TI) для відео, як визначено в ITU-T P.910: Методи суб’єктивної оцінки якості відео для мультимедійних програм. PDF доступний за адресою https://www.itu.int/rec/T-REC-P.910-199909-S/en .

Він приймає наступний варіант:

print_summary

Якщо встановлено значення 1, зведена статистика буде надрукована на консолі. За замовчуванням 0.

11.230.1 Examples

  • Щоб розрахувати показники SI/TI і надрукувати підсумок:
    ffmpeg -i input.mp4 -vf siti=print_summary=1 -f null -
    

11.231 smartblur

Розмити вхідне відео, не впливаючи на контури.

Він приймає такі варіанти:

luma_radius, lr

Встановіть радіус яскравості. Значенням параметра має бути число з плаваючою точкою в діапазоні [0.1,5.0], яке визначає дисперсію фільтра Гауса, який використовується для розмиття зображення (повільніше, якщо більше). Значення за замовчуванням 1,0.

luma_strength, ls

Встановіть силу яскравості. Значенням параметра має бути число з плаваючою точкою в діапазоні [-1.0,1.0], яке налаштовує розмиття. Значення, включене в [0.0,1.0], розмиє зображення, тоді як значення, включене в [-1.0,0.0], збільшить різкість зображення. Значення за замовчуванням 1,0.

luma_threshold, lt

Встановіть поріг яскравості, який використовується як коефіцієнт, щоб визначити, чи слід піксель розмивати чи ні. Значення параметра має бути цілим числом у діапазоні [-30,30]. Значення 0 фільтруватиме все зображення, значення, включене в [0,30], фільтруватиме плоскі ділянки, а значення, включене в [-30,0], фільтруватиме краї. Значення за замовчуванням 0.

chroma_radius, cr

Встановіть радіус кольоровості. Значенням параметра має бути число з плаваючою точкою в діапазоні [0.1,5.0], яке визначає дисперсію фільтра Гауса, який використовується для розмиття зображення (повільніше, якщо більше). Значення за замовчуванням:luma_radius.

chroma_strength, cs

Встановіть інтенсивність кольоровості. Значенням параметра має бути число з плаваючою точкою в діапазоні [-1.0,1.0], яке налаштовує розмиття. Значення, включене в [0.0,1.0], розмиє зображення, тоді як значення, включене в [-1.0,0.0], збільшить різкість зображення. Значення за замовчуванням:luma_strength.

chroma_threshold, ct

Встановіть поріг кольоровості, який використовується як коефіцієнт, щоб визначити, чи слід піксель розмивати чи ні. Значення параметра має бути цілим числом у діапазоні [-30,30]. Значення 0 фільтруватиме все зображення, значення, включене в [0,30], фільтруватиме плоскі ділянки, а значення, включене в [-30,0], фільтруватиме краї. Значення за замовчуванням:luma_threshold.

Якщо параметр кольоровості не встановлено явно, встановлюється відповідне значення яскравості.

11.232 sobel

Застосувати оператор sobel до вхідного відеопотоку.

Фільтр приймає такі параметри:

planes

Встановіть, які площини будуть оброблені, необроблені площини будуть скопійовані. За замовчуванням значення 0xf буде оброблено всі площини.

scale

Встановіть значення, яке буде помножено на відфільтрований результат.

delta

Встановіть значення, яке буде додано до відфільтрованого результату.

11.232.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

11.233 spp

Застосуйте простий фільтр постобробки, який стискає та розтискає зображення на кілька (або - у випадкуqualityрівень 6- усі) зсуви та усереднення результатів.

Фільтр приймає такі параметри:

quality

Встановити якість. Цей параметр визначає кількість рівнів для усереднення. Він приймає ціле число в діапазоні 0-6. Якщо встановлено значення 0, фільтр не матиме ефекту. Значення 6означає вищу якість. З кожним збільшенням цього значення швидкість падає приблизно в 2 рази. Значення за замовчуванням становить 3.

qp

Примусово встановити постійний параметр квантування. Якщо не встановлено, фільтр використовуватиме QP із відеопотоку (якщо доступний).

mode

Встановити пороговий режим. Доступні режими:

'hard'

Встановити жорсткий поріг (за замовчуванням).

'soft'

Встановіть м’яке порогове значення (кращий ефект усунення дзвінків, але, швидше за все, розмитіший).

use_bframe_qp

Увімкніть використання QP з B-Frames, якщо встановлено 1. Використання цього параметра може спричинити мерехтіння, оскільки B-кадри часто мають більший QP. За замовчуванням 0(не ввімкнено).

11.233.1 Commands

Цей фільтр підтримує такі команди:

quality, level

Встановити рівень якості. Значення maxможна використовувати для встановлення максимального рівня, наразі 6.

11.234 sr

Масштабуйте вхідні дані, застосувавши один із методів надвисокої роздільної здатності на основі згорткових нейронних мереж. Підтримувані моделі:

  • Модель згорткової нейронної мережі супер-роздільності (SRCNN). Див. https://arxiv.org/abs/1501.00092 .
  • Ефективна модель субпіксельної згорткової нейронної мережі (ESPCN). Див . https://arxiv.org/abs/1609.05158 .

Навчальні сценарії, а також сценарії для збереження файлу моделі (.pb) можна знайти за адресою https://github.com/XueweiMeng/sr/tree/sr_dnn_native . Оригінальний репозиторій знаходиться на https://github.com/HighVoltageRocknRoll/sr.git .

Файли рідної моделі (.model) можна створити з файлів моделі TensorFlow (.pb) за допомогою tools/python/convert.py

Фільтр приймає такі параметри:

dnn_backend

Укажіть, який сервер DNN використовувати для завантаження та виконання моделі. Цей параметр приймає такі значення:

'native'

Рідна реалізація завантаження та виконання DNN.

'tensorflow'

Сервер TensorFlow. Щоб увімкнути цей бекенд, вам потрібно встановити бібліотеку TensorFlow для C (див. https://www.tensorflow.org/install/lang_c ) і налаштувати FFmpeg за допомогою --enable-libtensorflow

Значення за замовчуванням: 'native'.

model

Встановіть шлях до файлу моделі із зазначенням архітектури мережі та її параметрів. Зверніть увагу, що різні серверні програми використовують різні формати файлів. Сервер TensorFlow може завантажувати файли для обох форматів, тоді як рідний сервер може завантажувати файли лише для свого формату.

scale_factor

Встановити масштабний коефіцієнт для моделі SRCNN. Дозволені значення 2: 3і 4. Значення за замовчуванням: 2. Коефіцієнт масштабування необхідний для моделі SRCNN, оскільки вона приймає вхідні дані, підвищені за допомогою бікубічного масштабування з відповідним коефіцієнтом масштабування.

Щоб отримати повну функціональність (наприклад, асинхронне виконання), використовуйте фільтр dnn_processing .

11.235 ssim

Отримайте SSIM (метрику структурної подібності) між двома вхідними відео.

Цей фільтр приймає два вхідних відео, перший вхід вважається «основним» джерелом і передається на вихід без змін. Другий вхід використовується як «еталонне» відео для обчислення SSIM.

Для правильної роботи цього фільтра обидва відеовходи повинні мати однакову роздільну здатність і формат пікселів. Також передбачається, що обидва входи мають однакову кількість кадрів, які порівнюються один за іншим.

Фільтр зберігає розрахований SSIM кожного кадру.

Нижче наведено опис прийнятих параметрів.

stats_file, f

Якщо вказано, фільтр використовуватиме названий файл для збереження SSIM кожного окремого кадру. Якщо ім'я файлу дорівнює "-", дані надсилаються на стандартний вихід.

Файл, надрукований, якщо stats_fileвибрано, містить послідовність пар ключ/значення у вигляді key: valueдля кожної порівнюваної пари кадрів.

Нижче наведено опис кожного показаного параметра:

n

порядковий номер вхідного кадру, починаючи з 1

Y, U, V, R, G, B

SSIM порівнюваних кадрів для компонента, визначеного суфіксом.

All

SSIM порівнюваних кадрів для всього кадру.

dB

Те саме, що й вище, але в дБ.

Цей фільтр також підтримує параметри синхронізації кадрів .

11.235.1 Examples

  • Наприклад:
    movie=ref_movie.mpg, setpts=PTS-STARTPTS [main];
    [main][ref] ssim="stats_file=stats.log" [out]
    

    У цьому прикладі вхідний файл, що обробляється, порівнюється з еталонним файломref_movie.mpg. SSIM кожного окремого кадру зберігається вstats.log.

  • Ще один приклад із psnr і ssim одночасно:
    ffmpeg -i main.mpg -i ref.mpg -lavfi  "ssim;[0:v][1:v]psnr" -f null -
    
  • Інший приклад з різними контейнерами:
    ffmpeg -i main.mpg -i ref.mkv -lavfi  "[0:v]settb=AVTB,setpts=PTS-STARTPTS[main];[1:v]settb=AVTB,setpts=PTS-STARTPTS[ref];[main][ref]ssim" -f null -
    

11.236 stereo3d

Перетворення між різними форматами стереоскопічного зображення.

Фільтри приймають такі параметри:

in

Встановити формат стереоскопічного зображення для введення.

Доступні значення для форматів вхідних зображень:

'sbsl'

пліч-о-пліч паралельно (ліве око ліворуч, праве око праворуч)

'sbsr'

поруч (праве око ліворуч, ліве око праворуч)

'sbs2l'

пліч-о-пліч паралельно з роздільною здатністю половини ширини (ліве око ліворуч, праве око праворуч)

'sbs2r'

пліч-о-пліч перехрестя з роздільною здатністю половини ширини (праве око ліворуч, ліве око праворуч)

'abl'
'tbl'

зверху-знизу (ліве око зверху, праве око внизу)

'abr'
'tbr'

вгорі-внизу (праве око вгорі, ліве око внизу)

'ab2l'
'tb2l'

зверху-внизу з роздільною здатністю на половину висоти (ліве око вгорі, праве око внизу)

'ab2r'
'tb2r'

зверху-внизу з роздільною здатністю на половину висоти (праве око вгорі, ліве око внизу)

'al'

чергування кадрів (спочатку ліве око, друге праве око)

'ar'

чергування кадрів (праве око спочатку, ліве око потім)

'irl'

чергуються ряди (ліве око має верхній рядок, праве око починається з наступного рядка)

'irr'

рядки, що перемежовуються (праве око має верхній рядок, ліве око починається з наступного рядка)

'icl'

чергуються стовпці, ліве око спочатку

'icr'

чергуються стовпці, право око спочатку

Значення за замовчуванням: 'sbsl'.

out

Встановити формат стереоскопічного зображення для виводу.

'sbsl'

пліч-о-пліч паралельно (ліве око ліворуч, праве око праворуч)

'sbsr'

поруч (праве око ліворуч, ліве око праворуч)

'sbs2l'

пліч-о-пліч паралельно з роздільною здатністю половини ширини (ліве око ліворуч, праве око праворуч)

'sbs2r'

пліч-о-пліч перехрестя з роздільною здатністю половини ширини (праве око ліворуч, ліве око праворуч)

'abl'
'tbl'

зверху-знизу (ліве око зверху, праве око внизу)

'abr'
'tbr'

вгорі-внизу (праве око вгорі, ліве око внизу)

'ab2l'
'tb2l'

зверху-внизу з роздільною здатністю на половину висоти (ліве око вгорі, праве око внизу)

'ab2r'
'tb2r'

зверху-внизу з роздільною здатністю на половину висоти (праве око вгорі, ліве око внизу)

'al'

чергування кадрів (спочатку ліве око, друге праве око)

'ar'

чергування кадрів (праве око спочатку, ліве око потім)

'irl'

чергуються ряди (ліве око має верхній рядок, праве око починається з наступного рядка)

'irr'

рядки, що перемежовуються (праве око має верхній рядок, ліве око починається з наступного рядка)

'arbg'

анагліф червоний/синьо-сірий (червоний фільтр на лівому оці, синій фільтр на правому оці)

'argg'

анагліф червоний/зелено-сірий (червоний фільтр на лівому оці, зелений фільтр на правому оці)

'arcg'

червоний анагліф/сірий блакитний (червоний фільтр на лівому оці, блакитний фільтр на правому оці)

'arch'

анагліф червоний/блакитний напівкольоровий (червоний фільтр на лівому оці, блакитний фільтр на правому оці)

'arcc'

анагліф червоний/блакитний колір (червоний фільтр на лівому оці, блакитний фільтр на правому оці)

'arcd'

червоний/блакитний анагліф, оптимізований за допомогою проекції Дюбуа методом найменших квадратів (червоний фільтр на ліве око, блакитний фільтр на праве око)

'agmg'

анагліф зелений/пурпурно-сірий (зелений фільтр на ліве око, пурпурний фільтр на праве око)

'agmh'

анагліф зелений/пурпуровий напівкольоровий (зелений фільтр на ліве око, пурпурний фільтр на праве око)

'agmc'

анагліф зеленого/пурпурового кольору (зелений фільтр на лівому оці, пурпуровий фільтр на правому оці)

'agmd'

колір анагліфа зелений/пурпуровий, оптимізований за допомогою проекції методу найменших квадратів Дюбуа (зелений фільтр на ліве око, пурпуровий фільтр на праве око)

'aybg'

анагліф жовтий/синьо-сірий (жовтий фільтр на лівому оці, синій фільтр на правому оці)

'aybh'

анагліф жовтий/синій напівкольоровий (жовтий фільтр на лівому оці, синій фільтр на правому оці)

'aybc'

анагліф жовто-синього кольору (жовтий фільтр на лівому оці, синій фільтр на правому оці)

'aybd'

жовтий/синій колір анагліфа, оптимізований за допомогою проекції методу найменших квадратів Дюбуа (жовтий фільтр на ліве око, синій фільтр на праве око)

'ml'

моно вихід (лише ліве око)

'mr'

моно вихід (лише праве око)

'chl'

шашка, ліве око спочатку

'chr'

шашка, праве око спочатку

'icl'

чергуються стовпці, ліве око спочатку

'icr'

чергуються стовпці, право око спочатку

'hdmi'

Пакет кадрів HDMI

Значення за замовчуванням: 'arcd'.

11.236.1 Examples

  • Перетворіть вхідне відео з паралелі на анагліф жовто-синього Дюбуа:
    stereo3d=sbsl:aybd
    
  • Перетворюйте вхідне відео згори вниз (ліве око зверху, праве око знизу) у паралельне перехресне око.
    stereo3d=abl:sbsr
    

11.237 streamselect, astreamselect

Виберіть відео або аудіопотоки.

Фільтр приймає такі параметри:

inputs

Встановити кількість входів. За замовчуванням 2.

map

Встановіть вхідні індекси для переналаштування на виходи.

11.237.1 Commands

Фільтр streamselectand astreamselectпідтримує такі команди:

map

Встановіть вхідні індекси для переналаштування на виходи.

11.237.2 Examples

  • Виберіть перші 5 секунд 1-го потоку та решту часу 2-го потоку:
    sendcmd='5.0 streamselect map 1',streamselect=inputs=2:map=0
    
  • Те саме, що й вище, але для аудіо:
    asendcmd='5.0 astreamselect map 1',astreamselect=inputs=2:map=0
    

11.238 subtitles

Намалюйте субтитри поверх вхідного відео за допомогою бібліотеки libass.

Щоб увімкнути компіляцію цього фільтра, вам потрібно налаштувати FFmpeg за допомогою --enable-libass. Для цього фільтра також потрібна збірка з libavcodec і libavformat для перетворення переданого файлу субтитрів у формат субтитрів ASS (Advanced Substation Alpha).

Фільтр приймає такі параметри:

filename, f

Встановіть назву файлу субтитрів для читання. Його необхідно вказати.

original_size

Вкажіть розмір вихідного відео, відео, для якого було створено файл ASS. Щоб дізнатися про синтаксис цього параметра, перевірте розділ (ffmpeg-utils) «Розмір відео» в посібнику ffmpeg-utils . Через неправильну арифметику співвідношення сторін ASS це необхідно для правильного масштабування шрифтів, якщо співвідношення сторін було змінено.

fontsdir

Встановіть шлях до каталогу, що містить шрифти, які може використовувати фільтр. Ці шрифти використовуватимуться на додаток до тих, які використовує постачальник шрифтів.

alpha

Альфа-канал обробки, за умовчанням альфа-канал не змінено.

charenc

Встановити кодування вхідних символів субтитрів. subtitlesлише фільтр. Корисно, лише якщо не UTF-8.

stream_index, si

Установити індекс потоку субтитрів. subtitlesлише фільтр.

force_style

Заміна параметрів інформації про стиль або сценарій субтитрів за замовчуванням. Він приймає рядок, що містить KEY=VALUEпари форматів у стилі ASS, розділені ",".

Якщо перший ключ не вказано, передбачається, що перше значення визначаєfilename.

Наприклад, для візуалізації файлуsub.srtповерх вхідного відео скористайтеся командою:

subtitles=sub.srt

що еквівалентно:

subtitles=filename=sub.srt

Для відтворення стандартного потоку субтитрів із файлуvideo.mkv, використовуйте:

subtitles=video.mkv

Щоб відтворити другий потік субтитрів із цього файлу, використовуйте:

subtitles=video.mkv:si=1

Щоб транслювати субтитриsub.srtвідображаються у 80% прозоро-синьому кольорі DejaVu Serif, використовуйте:

subtitles=sub.srt:force_style='Fontname=DejaVu Serif,PrimaryColour=&HCCFF0000'

11.239 super2xsai

Збільште вхідні дані у 2 рази та згладьте за допомогою алгоритму масштабування піксельної графіки Super2xSaI (Scale and Interpolate).

Корисно для збільшення піксельних зображень без зменшення різкості.

11.240 swaprect

Поміняйте місцями два прямокутні об’єкти у відео.

Цей фільтр приймає такі параметри:

w

Встановити ширину об'єкта.

h

Встановити висоту об'єкта.

x1

Встановіть координату 1 прямокутника x.

y1

Установіть 1-ю координату y.

x2

Встановіть координату 2 прямокутника x.

y2

Встановіть 2-у координату y.

Усі вирази обчислюються один раз для кожного кадру.

Параметри all — це вирази, що містять такі константи:

w
h

Ширина та висота введення.

a

те саме, що w/h

sar

формат вхідного зразка

dar

формат вхідного дисплея, такий самий, як ( w/ h) *sar

n

Номер вхідного кадру, починаючи з 0.

t

Мітка часу, виражена в секундах. Це NAN, якщо позначка часу введення невідома.

pos

позиція у файлі вхідного кадру, NAN, якщо невідома

11.240.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

11.241 swapuv

Поміняти місцями площину U і V.

11.242 tblend

Змішайте послідовні відеокадри.

Див. суміш

11.243 telecine

Застосуйте процес телекіно до відео.

Цей фільтр приймає такі параметри:

first_field
'top, t'

спочатку верхнє поле

'bottom, b'

нижнє поле спочатку Значення за замовчуванням — top.

pattern

Рядок чисел, що представляє розкривний шаблон, який ви бажаєте застосувати. Значення за замовчуванням — 23.

Some typical patterns:

NTSC output (30i):
27.5p: 32222
24p: 23 (classic)
24p: 2332 (preferred)
20p: 33
18p: 334
16p: 3444

PAL output (25i):
27.5p: 12222
24p: 222222222223 ("Euro pulldown")
16.67p: 33
16p: 33333334

11.244 thistogram

Обчисліть і намалюйте гістограму розподілу кольорів для вхідного відео в часі.

На відміну від гістограмного відеофільтру, який показує лише гістограму одного вхідного кадру в певний час, цей фільтр також показує минулі гістограми кількості кадрів, визначених widthопцією.

Обчислена гістограма є представленням розподілу компонентів кольору в зображенні.

Фільтр приймає такі параметри:

width, w

Встановити ширину однокольорового компонента. Значення за замовчуванням: 0. Значення 0середньої ширини буде вибрано з вхідного відео. Це також встановлює кількість пройдених гістограм, які потрібно зберегти. Дозволений діапазон [0, 8192].

display_mode, d

Встановити режим відображення. Він приймає такі значення:

'stack'

Графіки компонентів кольору розташовані один під одним.

'parade'

Графіки компонентів кольору розташовані поруч.

'overlay'

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

Типовим є stack.

levels_mode, m

Встановити режим. Може бути або linear, або logarithmic. Типовим є linear.

components, c

Встановіть колір компонентів для відображення. Типовим є 7.

bgopacity, b

Встановити непрозорість фону. Типовим є 0.9.

envelope, e

Показати конверт. За замовчуванням вимкнено.

ecolor, ec

Встановити колір конверта. Типовим є gold.

slide

Встановити режим слайдів.

Доступні значення для слайда:

'frame'

Намалюйте нову рамку, коли досягнуто правої межі.

'replace'

Замініть старі колонки на нові.

'scroll'

Прокрутіть справа наліво.

'rscroll'

Прокрутіть зліва направо.

'picture'

Намалюйте одну картинку.

Типовим є replace.

11.245 threshold

Застосувати пороговий ефект до відеопотоку.

Цей фільтр потребує чотирьох відеопотоків для виконання порогового значення. Перший потік – це потік, який ми фільтруємо. Другий потік містить порогові значення, третій – мінімальні значення, а останній, четвертий – максимальні значення.

Фільтр приймає такі параметри:

planes

Встановіть, які площини будуть оброблені, необроблені площини будуть скопійовані. За замовчуванням значення 0xf буде оброблено всі площини.

Наприклад, якщо значення компонента першого потокового пікселя менше порогового значення компонента пікселя з 2-го порогового потоку, буде вибрано значення третього потоку, інакше буде вибрано значення компонента четвертого пікселя потоку.

Використовуючи фільтр джерела кольорів, можна виконувати різні типи порогів:

11.245.1 Commands

Цей фільтр підтримує всі параметри як команди .

11.245.2 Examples

  • Двійкове порогове значення, використовуючи сірий колір як порогове значення:
    ffmpeg -i 320x240.avi -f lavfi -i color=gray -f lavfi -i color=black -f lavfi -i color=white -lavfi threshold output.avi
    
  • Інвертований двійковий поріг із використанням сірого кольору як порогового значення:
    ffmpeg -i 320x240.avi -f lavfi -i color=gray -f lavfi -i color=white -f lavfi -i color=black -lavfi threshold output.avi
    
  • Обрізати двійкове порогове значення, використовуючи сірий колір як порогове значення:
    ffmpeg -i 320x240.avi -f lavfi -i color=gray -i 320x240.avi -f lavfi -i color=gray -lavfi threshold output.avi
    
  • Порогове значення до нуля, використовуючи сірий колір як порогове значення:
    ffmpeg -i 320x240.avi -f lavfi -i color=gray -f lavfi -i color=white -i 320x240.avi -lavfi threshold output.avi
    
  • Перевернуте порогове значення до нуля, використовуючи сірий колір як порогове значення:
    ffmpeg -i 320x240.avi -f lavfi -i color=gray -i 320x240.avi -f lavfi -i color=white -lavfi threshold output.avi
    

11.246 thumbnail

Виберіть найбільш типовий кадр у заданій послідовності послідовних кадрів.

Фільтр приймає такі параметри:

n

Встановіть розмір пакету кадрів для аналізу; у наборі nкадрів фільтр вибере один із них, а потім обробить наступну партію nкадрів до кінця. Типовим є 100.

Оскільки фільтр відстежує всю послідовність кадрів, більше n значення призведе до більшого використання пам’яті, тому високе значення не рекомендується.

11.246.1 Examples

  • Витягніть одне зображення на кожні 50 кадрів:
    thumbnail=50
    
  • Повний приклад створення мініатюри за допомогою ffmpeg:
    ffmpeg -i in.avi -vf thumbnail,scale=300:200 -frames:v 1 out.png
    

11.247 tile

Об'єднайте кілька послідовних кадрів.

Фільтр untilе може робити навпаки.

Фільтр приймає такі параметри:

layout

Задайте розмір сітки у формі COLUMNSxROWS. Діапазон становить до UINT_MAX клітинок. Типовим є 6x5.

nb_frames

Встановіть максимальну кількість кадрів для візуалізації в даній області. Він має бути меншим або дорівнювати wx h. Значення за замовчуванням — 0, тобто використовуватиметься вся область.

margin

Встановіть межу зовнішньої межі в пікселях. Діапазон від 0 до 1024. За замовчуванням 0.

padding

Встановіть товщину внутрішньої межі (тобто кількість пікселів між кадрами). Щоб отримати додаткові параметри відступу (наприклад, мати різні значення для країв), зверніться до відеофільтру відступу. Діапазон від 0 до 1024. За замовчуванням 0.

color

Вкажіть колір невикористаної області. Щоб дізнатися про синтаксис цього параметра, перевірте розділ (ffmpeg-utils)"Колір" у посібнику ffmpeg-utils . Значенням за замовчуванням colorє "чорний".

overlap

Встановіть кількість кадрів, які перекриватимуться під час об’єднання кількох послідовних кадрів. Значення має бути між 0та nb_frames - 1. Типовим є 0.

init_padding

Перед відображенням першого вихідного кадру встановіть кількість кадрів, яка спочатку буде порожньою. Це визначає, як скоро буде отримано перший вихідний кадр. Значення має бути між 0та nb_frames - 1. Типовим є 0.

11.247.1 Examples

  • Створення 8x8 PNG плиток усіх ключових кадрів (-skip_frame nokey) у фільмі:
    ffmpeg -skip_frame nokey -i file.avi -vf 'scale=128:72,tile=8x8' -an -vsync 0 keyframes%03d.png
    

    The-vsync 0необхідний, щоб запобігти ffmpegдублюванню кожного вихідного кадру для пристосування початково визначеної частоти кадрів.

  • Відображати 5зображення в області 3x2кадрів з 7пікселями між ними та 2пікселями початкового поля, використовуючи змішані рівні та іменовані параметри:
    tile=3x2:nb_frames=5:padding=7:margin=2
    

11.248 tinterlace

Виконуйте різні види переплетення скроневих полів.

Кадри підраховуються, починаючи з 1, тому перший вхідний кадр вважається непарним.

Фільтр приймає такі параметри:

mode

Вкажіть режим переплетення. Цей параметр також можна вказати окремо як значення. Нижче наведено список значень для цього параметра.

Доступні значення:

'merge, 0'

Перемістіть непарні кадри у верхнє поле, парні – у нижнє, створивши кадр подвійної висоти з половинною частотою кадрів.

 ------> time
Input:
Frame 1         Frame 2         Frame 3         Frame 4

11111           22222           33333           44444
11111           22222           33333           44444
11111           22222           33333           44444
11111           22222           33333           44444

Output:
11111                           33333
22222                           44444
11111                           33333
22222                           44444
11111                           33333
22222                           44444
11111                           33333
22222                           44444
'drop_even, 1'

Виводьте лише непарні кадри, парні кадри видаляються, створюючи кадр незмінної висоти з половинною частотою кадрів.

 ------> time
Input:
Frame 1         Frame 2         Frame 3         Frame 4

11111           22222           33333           44444
11111           22222           33333           44444
11111           22222           33333           44444
11111           22222           33333           44444

Output:
11111                           33333
11111                           33333
11111                           33333
11111                           33333
'drop_odd, 2'

Виводять лише парні кадри, непарні кадри відкидаються, створюючи кадр незмінної висоти з половинною частотою кадрів.

 ------> time
Input:
Frame 1         Frame 2         Frame 3         Frame 4

11111           22222           33333           44444
11111           22222           33333           44444
11111           22222           33333           44444
11111           22222           33333           44444

Output:
                22222                           44444
                22222                           44444
                22222                           44444
                22222                           44444
'pad, 3'

Розгорніть кожен кадр на повну висоту, але чергуйте лінії чорним, створюючи кадр подвоєної висоти з тією самою вхідною частотою кадрів.

 ------> time
Input:
Frame 1         Frame 2         Frame 3         Frame 4

11111           22222           33333           44444
11111           22222           33333           44444
11111           22222           33333           44444
11111           22222           33333           44444

Output:
11111           .....           33333           .....
.....           22222           .....           44444
11111           .....           33333           .....
.....           22222           .....           44444
11111           .....           33333           .....
.....           22222           .....           44444
11111           .....           33333           .....
.....           22222           .....           44444
'interleave_top, 4'

Перемежуйте верхнє поле з непарних кадрів з нижнім полем з парних кадрів, створюючи кадр незмінної висоти з половинною частотою кадрів.

 ------> time
Input:
Frame 1         Frame 2         Frame 3         Frame 4

11111<-         22222           33333<-         44444
11111           22222<-         33333           44444<-
11111<-         22222           33333<-         44444
11111           22222<-         33333           44444<-

Output:
11111                           33333
22222                           44444
11111                           33333
22222                           44444
'interleave_bottom, 5'

Перемежуйте нижнє поле з непарних кадрів з верхнім полем з парних кадрів, створюючи кадр незмінної висоти з половинною частотою кадрів.

 ------> time
Input:
Frame 1         Frame 2         Frame 3         Frame 4

11111           22222<-         33333           44444<-
11111<-         22222           33333<-         44444
11111           22222<-         33333           44444<-
11111<-         22222           33333<-         44444

Output:
22222                           44444
11111                           33333
22222                           44444
11111                           33333
'interlacex2, 6'

Подвоєна частота кадрів із незмінною висотою. Вставляються кадри, кожен з яких містить друге часове поле з попереднього вхідного кадру та перше часове поле з наступного вхідного кадру. Цей режим покладається на прапор top_field_first. Корисно для дисплеїв черезрядкового відео без синхронізації полів.

 ------> time
Input:
Frame 1         Frame 2         Frame 3         Frame 4

11111           22222           33333           44444
 11111           22222           33333           44444
11111           22222           33333           44444
 11111           22222           33333           44444

Output:
11111   22222   22222   33333   33333   44444   44444
 11111   11111   22222   22222   33333   33333   44444
11111   22222   22222   33333   33333   44444   44444
 11111   11111   22222   22222   33333   33333   44444
'mergex2, 7'

Перемістіть непарні кадри у верхнє поле, парні – у нижнє, створюючи кадр подвійної висоти з однаковою частотою кадрів.

 ------> time
Input:
Frame 1         Frame 2         Frame 3         Frame 4

11111           22222           33333           44444
11111           22222           33333           44444
11111           22222           33333           44444
11111           22222           33333           44444

Output:
11111           33333           33333           55555
22222           22222           44444           44444
11111           33333           33333           55555
22222           22222           44444           44444
11111           33333           33333           55555
22222           22222           44444           44444
11111           33333           33333           55555
22222           22222           44444           44444

Числові значення застаріли, але приймаються з причин зворотної сумісності.

Типовий режим: merge.

flags

Вкажіть позначки, що впливають на процес фільтрації.

Доступне значення для flags:

low_pass_filter, vlpf

Увімкніть у фільтрі лінійну вертикальну фільтрацію низьких частот. Вертикальна фільтрація низьких частот необхідна під час створення черезрядкової адреси з прогресивного джерела, яке містить високочастотні вертикальні деталі. Фільтрування зменшить черезрядкову «щеріньку» та муаровий візерунок.

complex_filter, cvlpf

Увімкнути складну вертикальну фільтрацію низьких частот. Це дещо менше зменшить чергування «щерінькання» та візерунок муару, але краще збереже деталі та суб’єктивне враження чіткості.

bypass_il

Обійти вже черезстрокові кадри, налаштувати лише частоту кадрів.

Вертикальну фільтрацію низьких частот і обхід уже черезрядкових кадрів можна ввімкнути лише дляmode interleave_topі interleave_bottom.

11.249 tmedian

Виберіть середні пікселі з кількох послідовних вхідних відеокадрів.

Фільтр приймає такі параметри:

radius

Встановити радіус медіанного фільтра. За замовчуванням 1. Дозволений діапазон від 1 до 127.

planes

Встановіть, які площини фільтрувати. Значення за замовчуванням — 15, за яким обробляються всі площини.

percentile

Установіть медіанний процентиль. Значення за замовчуванням: 0.5. Значення за замовчуванням 0.5завжди вибиратиме середні значення, тоді як 0вибиратиме мінімальні та 1максимальні значення.

11.249.1 Commands

Цей фільтр підтримує всі вищезазначені параметри як команди , за винятком параметра radius.

11.250 tmidequalizer

Застосуйте ефект часового вирівнювання відео.

Midway Video Equalization налаштовує послідовність відеокадрів, щоб мати однакові гістограми, максимально зберігаючи їхню динаміку. Це корисно, наприклад, для зіставлення експозиції з послідовності відеокадрів.

Цей фільтр приймає такі параметри:

radius

Встановити радіус фільтрації. Типовим є 5. Дозволений діапазон від 1 до 127.

sigma

Встановити сигму фільтрації. Типовим є 0.5. Це контролює силу фільтрації. Встановлення цього параметра на 0 фактично нічого не дає.

planes

Визначте, які площини обробляти. За замовчуванням встановлено 15, тобто всі доступні літаки.

11.251 tmix

Змішайте послідовні відеокадри.

Нижче наведено опис прийнятих варіантів.

frames

Кількість послідовних кадрів для змішування. Якщо не вказано, за умовчанням дорівнює 3.

weights

Вкажіть вагу кожного вхідного відеокадру. Кожна вага відокремлена пробілом. Якщо кількість ваг менша за номер framesостанньої вказаної ваги, буде використано для всіх невстановлених ваг.

scale

Укажіть масштаб, якщо його встановлено, він буде помножений на суму кожної ваги, помноженої на значення пікселів, щоб отримати кінцеве значення пікселя призначення. За замовчуванням scaleавтоматично масштабується до суми ваг.

planes

Встановіть, які площини фільтрувати. За замовчуванням це все. Дозволений діапазон від 0 до 15.

11.251.1 Examples

  • У середньому 7 послідовних кадрів:
    tmix=frames=7:weights="1 1 1 1 1 1 1"
    
  • Застосуйте просту часову згортку:
    tmix=frames=3:weights="-1 3 -1"
    
  • Подібно до вищезазначеного, але показує лише часові відмінності:
    tmix=frames=3:weights="-1 2 -1":scale=1
    

11.251.2 Commands

Цей фільтр підтримує такі команди:

weights
scale
planes

Синтаксис такий самий, як і параметр із такою ж назвою.

11.252 tonemap

Кольори тонової карти з різних динамічних діапазонів.

Цей фільтр очікує даних у формі з плаваючою точністю одинарної точності, оскільки він має оперувати (і може виводити) значення, що виходять за межі діапазону. Інший фільтр, наприклад zscale , необхідний для перетворення отриманого кадру у придатний для використання формат.

Реалізовані алгоритми відображення тонів працюють лише з лінійним світлом, тому вхідні дані слід попередньо лінеаризувати (і, можливо, правильно позначити).

ffmpeg -i INPUT -vf zscale=transfer=linear,tonemap=clip,zscale=transfer=bt709,format=yuv420p OUTPUT

11.252.1 Options

Фільтр приймає такі параметри.

tonemap

Встановіть алгоритм тональної карти для використання.

Можливі значення:

none

Не застосовуйте жодної карти тонів, лише зменшуйте насиченість пікселів із надмірною яскравістю.

clip

Жорстко обрізайте будь-які значення, що виходять за межі діапазону. Використовуйте його для ідеальної точності кольорів для значень у діапазоні, спотворюючи значення поза діапазоном.

linear

Розтягніть всю еталонну гаму до лінійного кратного дисплея.

gamma

Встановіть логарифмічний перенос між тональними кривими.

reinhard

Зберігайте загальну яскравість зображення за допомогою простої кривої, використовуючи нелінійний контраст, що призводить до згладжування деталей і погіршення точності кольорів.

hable

Зберігайте як темні, так і яскраві деталі краще, ніж reinhard, ціною трохи затемнення всього. Використовуйте його, коли збереження деталей важливіше, ніж точність кольору та яскравості.

mobius

Плавно відображайте значення, що виходять за межі діапазону, максимально зберігаючи контраст і кольори для матеріалу в межах діапазону. Використовуйте його, коли точність кольору важливіша за збереження деталей.

За замовчуванням немає.

param

Налаштуйте алгоритм тонального відображення.

Це впливає на наступні алгоритми:

none

Ігнорується.

linear

Визначає масштабний коефіцієнт для використання під час розтягування. За замовчуванням 1.0.

gamma

Визначає показник степеня функції. За замовчуванням 1.8.

clip

Укажіть додатковий лінійний коефіцієнт для множення на сигнал перед обрізанням. За замовчуванням 1.0.

reinhard

Вкажіть локальний коефіцієнт контрастності на піку відображення. За замовчуванням встановлено значення 0,5, що означає, що значення гами будуть приблизно вдвічі яскравішими, ніж під час відсікання.

hable

Ігнорується.

mobius

Вкажіть точку переходу від лінійного до перетворення Мебіуса. Кожне значення нижче цієї точки гарантовано буде зіставлено 1:1. Чим вище значення, тим точнішим буде результат за рахунок втрати яскравих деталей. За замовчуванням встановлено значення 0,3, яке завдяки крутому початковому нахилу все ще досить точно зберігає кольори в діапазоні.

desat

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

Значення за замовчуванням 2.0 є дещо консервативним і здебільшого застосовуватиметься лише до неба або прямо освітлених сонцем поверхонь. Налаштування 0.0 вимикає цей параметр.

Цей параметр працює, лише якщо кадр введення має підтримуваний колірний тег.

peak

Замініть сигнал/номінальний/еталонний пік цим значенням. Корисно, коли вбудована пікова інформація в метаданих відображення є ненадійною або коли тональне відображення з нижчого діапазону на вищий діапазон.

11.253 tpad

Тимчасово замінити відеокадри.

Фільтр приймає такі параметри:

start

Вкажіть кількість кадрів затримки перед вхідним відеопотоком. За замовчуванням 0.

stop

Укажіть кількість кадрів заповнення після вхідного відеопотоку. Встановіть -1, щоб прокладати необмежено. За замовчуванням 0.

start_mode

Встановіть тип кадрів, які додаються на початок потоку. Може бути або addабо clone. З addрамами однотонного кольору додаються. З cloneкадрами є клонами першого кадру. Типовим є add.

stop_mode

Встановіть тип кадрів, які додаються в кінець потоку. Може бути або addабо clone. З addрамами однотонного кольору додаються. З cloneкадрами є клони останнього кадру. Типовим є add.

start_duration, stop_duration

Вкажіть тривалість затримки запуску/зупинки. Перегляньте (ffmpeg-utils) розділ «Тривалість часу» в посібнику ffmpeg-utils(1) , щоб дізнатися про прийнятний синтаксис. Ці параметри перекривають startі stop. За замовчуванням 0.

color

Укажіть колір виділеної області. Щоб дізнатися про синтаксис цього параметра, перевірте розділ (ffmpeg-utils)"Колір" у посібнику ffmpeg-utils .

Значенням за замовчуванням colorє "чорний".

11.254 transpose

Транспонуйте рядки зі стовпцями у вхідному відео та за бажанням переверніть його.

Він приймає такі параметри:

dir

Укажіть напрям транспозиції.

Може приймати такі значення:

'0, 4, cclock_flip'

Повернути на 90 градусів проти годинникової стрілки та вертикально перевернути (за замовчуванням), тобто:

L.R     L.l
. . ->  . .
l.r     R.r
'1, 5, clock'

Повернути на 90 градусів за годинниковою стрілкою, тобто:

L.R     l.L
. . ->  . .
l.r     r.R
'2, 6, cclock'

Повернути на 90 градусів проти годинникової стрілки, тобто:

L.R     R.r
. . ->  . .
l.r     L.l
'3, 7, clock_flip'

Повернути на 90 градусів за годинниковою стрілкою і вертикально перевернути, тобто:

L.R     r.R
. . ->  . .
l.r     l.L

Для значень від 4 до 7 транспонування виконується, лише якщо геометрія вхідного відео є портретною, а не альбомною. Ці значення застаріли, passthroughзамість них слід використовувати опцію.

Числові значення застаріли, і їх слід відмовитися на користь символічних констант.

passthrough

Не застосовуйте транспозицію, якщо вхідна геометрія збігається з тією, що визначена вказаним значенням. Він приймає такі значення:

'none'

Завжди застосовуйте транспозицію.

'portrait'

Зберігати портретну геометрію (коли height>= width).

'landscape'

Зберігати ландшафтну геометрію (коли width>= height).

Значення за замовчуванням: none.

Наприклад, щоб повернути на 90 градусів за годинниковою стрілкою та зберегти портретний макет:

transpose=dir=1:passthrough=portrait

Наведену вище команду також можна вказати так:

transpose=1:portrait

11.255 transpose_npp

Транспонуйте рядки зі стовпцями у вхідному відео та за бажанням переверніть його. Щоб отримати докладніші приклади, перегляньте відеофільтр транспонування , який використовує в основному ті самі параметри.

Він приймає такі параметри:

dir

Укажіть напрям транспозиції.

Може приймати такі значення:

'cclock_flip'

Поверніть на 90 градусів проти годинникової стрілки та переверніть вертикально. (за умовчанням)

'clock'

Поверніть на 90 градусів за годинниковою стрілкою.

'cclock'

Поверніть на 90 градусів проти годинникової стрілки.

'clock_flip'

Поверніть на 90 градусів за годинниковою стрілкою і переверніть вертикально.

passthrough

Не застосовуйте транспозицію, якщо вхідна геометрія збігається з тією, що визначена вказаним значенням. Він приймає такі значення:

'none'

Завжди застосовуйте транспозицію. (за умовчанням)

'portrait'

Зберігати портретну геометрію (коли height>= width).

'landscape'

Зберігати ландшафтну геометрію (коли width>= height).

11.256 trim

Обріжте вхідні дані так, щоб вихідні дані містили одну суцільну частину вхідних даних.

Він приймає такі параметри:

start

Вкажіть час початку збереженого розділу, тобто кадр із міткою часу startбуде першим кадром у виводі.

end

Укажіть час першого кадру, який буде видалено, тобто кадр, який безпосередньо передує кадру з міткою часу end, буде останнім кадром у виводі.

start_pts

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

end_pts

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

duration

Максимальна тривалість виведення в секундах.

start_frame

Номер першого кадру, який потрібно передати на вихід.

end_frame

Номер першого кадру, який потрібно скинути.

start,end, іdurationвиражаються специфікаціями тривалості часу; див. (ffmpeg-utils) розділ «Тривалість часу» в посібнику ffmpeg-utils(1) для прийнятного синтаксису.

Зауважте, що перші два набори параметрів початку/завершення таduration параметр переглядає мітку часу кадру, тоді як варіанти _frame просто підраховують кадри, які проходять через фільтр. Також зауважте, що цей фільтр не змінює позначки часу. Якщо ви бажаєте, щоб вихідні мітки часу починалися з нуля, вставте фільтр setpts після фільтра обрізки.

Якщо встановлено кілька параметрів початку або кінця, цей фільтр намагається бути жадібним і зберігати всі кадри, які відповідають принаймні одному з указаних обмежень. Щоб зберегти лише ту частину, яка одночасно відповідає всім обмеженням, об’єднайте кілька фільтрів обрізки.

За умовчанням зберігаються всі введені дані. Отже, можна встановити, наприклад, лише кінцеві значення, щоб зберегти все до вказаного часу.

приклади:

  • Відкинути все, крім другої хвилини введення:
    ffmpeg -i INPUT -vf trim=60:120
    
  • Зберігайте лише першу секунду:
    ffmpeg -i INPUT -vf trim=duration=1
    

11.257 unpremultiply

Застосувати ефект альфа-непомноження до вхідного відеопотоку, використовуючи першу площину другого потоку як альфа-каналу.

Обидва потоки повинні мати однакові розміри та однаковий формат пікселів.

Фільтр приймає такі параметри:

planes

Встановіть, які площини будуть оброблені, необроблені площини будуть скопійовані. За замовчуванням значення 0xf буде оброблено всі площини.

Якщо формат має 1 або 2 компоненти, то яскравість має біт 0. Якщо формат має 3 або 4 компоненти: для форматів RGB біт 0 зелений, біт 1 синій і біт 2 червоний; для форматів YUV біт 0 — це яскравість, біт 1 — chroma-U, а біт 2 — chroma-V. Якщо присутній, альфа-канал завжди є останнім бітом.

inplace

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

11.258 unsharp

Збільште різкість або розмийте вхідне відео.

Він приймає такі параметри:

luma_msize_x, lx

Встановіть горизонтальний розмір матриці яскравості. Це має бути непарне ціле число від 3 до 23. Значення за замовчуванням — 5.

luma_msize_y, ly

Встановіть вертикальний розмір матриці яскравості. Це має бути непарне ціле число від 3 до 23. Значення за замовчуванням — 5.

luma_amount, la

Встановіть силу ефекту яскравості. Це має бути число з плаваючою комою, розумні значення лежать між -1,5 і 1,5.

Від’ємні значення призведуть до розмиття вхідного відео, тоді як позитивні значення збільшать його різкість, нульове значення вимкне ефект.

Значення за замовчуванням 1,0.

chroma_msize_x, cx

Встановіть горизонтальний розмір кольорової матриці. Це має бути непарне ціле число від 3 до 23. Значення за замовчуванням — 5.

chroma_msize_y, cy

Встановіть вертикальний розмір кольорової матриці. Це має бути непарне ціле число від 3 до 23. Значення за замовчуванням — 5.

chroma_amount, ca

Встановіть силу ефекту кольоровості. Це має бути число з плаваючою комою, розумні значення лежать між -1,5 і 1,5.

Від’ємні значення призведуть до розмиття вхідного відео, тоді як позитивні значення збільшать його різкість, нульове значення вимкне ефект.

Значення за замовчуванням 0,0.

alpha_msize_x, ax

Встановіть горизонтальний розмір альфа-матриці. Це має бути непарне ціле число від 3 до 23. Значення за замовчуванням — 5.

alpha_msize_y, ay

Встановіть розмір альфа-матриці по вертикалі. Це має бути непарне ціле число від 3 до 23. Значення за замовчуванням — 5.

alpha_amount, aa

Встановіть силу альфа-ефекту. Це має бути число з плаваючою комою, розумні значення лежать між -1,5 і 1,5.

Від’ємні значення призведуть до розмиття вхідного відео, тоді як позитивні значення збільшать його різкість, нульове значення вимкне ефект.

Значення за замовчуванням 0,0.

Усі параметри є необов’язковими та за замовчуванням еквівалентні рядку "5:5:1.0:5:5:0.0".

11.258.1 Examples

  • Застосувати потужний ефект підвищення яскравості:
    unsharp=luma_msize_x=7:luma_msize_y=7:luma_amount=2.5
    
  • Застосуйте сильне розмиття параметрів яскравості та кольоровості:
    unsharp=7:7:-2:7:7:-2
    

11.259 untile

Розкладіть відео, яке складається з мозаїчних зображень, на окремі зображення.

Частота кадрів вихідного відео – це частота кадрів вхідного відео, помножена на кількість фрагментів.

Цей фільтр діє навпаки плитки .

Фільтр приймає такі параметри:

layout

Встановіть розмір сітки (тобто кількість рядків і стовпців). Щоб дізнатися про синтаксис цього параметра, перевірте розділ (ffmpeg-utils) «Розмір відео» в посібнику ffmpeg-utils .

11.259.1 Examples

  • Створіть 1-секундне відео з файлу нерухомого зображення, що складається з 25 кадрів, розташованих вертикально, як аналогова кіноплівка:
    ffmpeg -r 1 -i image.jpg -vf untile=1x25 movie.mkv
    

11.260 uspp

Застосуйте ультраповільний/простий фільтр постобробки, який стискає та розпаковує зображення на кілька (або - у випадкуqualityрівень 8- усі) зсуви та усереднення результатів.

Це відрізняється від поведінки spp тим, що uspp фактично кодує та декодує кожен випадок за допомогою libavcodec Snow, тоді як spp використовує спрощений внутрішній лише 8x8 DCT, подібний до MJPEG.

Цей фільтр доступний лише у ffmpeg версії 4.4 або ранішої.

Фільтр приймає такі параметри:

quality

Встановити якість. Цей параметр визначає кількість рівнів для усереднення. Він приймає ціле число в діапазоні 0-8. Якщо встановлено значення 0, фільтр не матиме ефекту. Значення 8означає вищу якість. З кожним збільшенням цього значення швидкість падає приблизно в 2 рази. Значення за замовчуванням становить 3.

qp

Примусово встановити постійний параметр квантування. Якщо не встановлено, фільтр використовуватиме QP із відеопотоку (якщо доступний).

11.261 v360

Перетворюйте 360-градусне відео в різні формати.

Фільтр приймає такі параметри:

input
output

Встановити формат вхідного/вихідного відео.

Доступні формати:

'e'
'equirect'

Рівнопрямокутна проекція.

'c3x2'
'c6x1'
'c1x6'

Кубічна карта з макетом 3x2/6x1/1x6.

Спеціальні параметри формату:

in_pad
out_pad

Встановіть пропорцію заповнення для вхідної/вихідної кубічної карти. Значення в десяткових дробах.

Приклад значень:

'0'

Без підкладки.

'0.01'

1% лицьової поверхні займає підкладка. Наприклад, із роздільною здатністю 1920x1280 розмір грані буде 640x640, а відступ становитиме 3 пікселі з кожного боку. (640 * 0,01 = 6 пікселів)

Значення за замовчуванням: '0' . Максимальне значення '0.1' .

fin_pad
fout_pad

Встановіть фіксоване заповнення для вхідної/вихідної кубічної карти. Значення в пікселях.

Значення за замовчуванням: '0' . Якщо значення більше нуля, воно перекриває інші параметри доповнення.

in_forder
out_forder

Установіть порядок граней для вхідної/вихідної кубічної карти. Виберіть один напрямок для кожної позиції.

Позначення напрямків:

'r'

правильно

'l'

зліва

'u'

вгору

'd'

вниз

'f'

вперед

'b'

назад

Значення за замовчуванням: 'rludfb' .

in_frot
out_frot

Встановити обертання граней для вхідної/вихідної кубічної карти. Виберіть один ракурс для кожної позиції.

Позначення кутів:

'0'

0 градусів за годинниковою стрілкою

'1'

90 градусів за годинниковою стрілкою

'2'

180 градусів за годинниковою стрілкою

'3'

270 градусів за годинниковою стрілкою

Значення за замовчуванням: '000000' .

'eac'

Рівнокутна кубічна карта.

'flat'
'gnomonic'
'rectilinear'

Звичайне відео.

Спеціальні параметри формату:

h_fov
v_fov
d_fov

Встановіть горизонтальне/вертикальне/діагональне поле зору вихідного сигналу. Значення в градусах.

Якщо встановлено діагональне поле зору, воно перекриває горизонтальне та вертикальне поле зору.

ih_fov
iv_fov
id_fov

Встановіть горизонтальне/вертикальне/діагональне поле зору. Значення в градусах.

Якщо встановлено діагональне поле зору, воно перекриває горизонтальне та вертикальне поле зору.

'dfisheye'

Подвійне риб'яче око.

Спеціальні параметри формату:

h_fov
v_fov
d_fov

Встановіть горизонтальне/вертикальне/діагональне поле зору вихідного сигналу. Значення в градусах.

Якщо встановлено діагональне поле зору, воно перекриває горизонтальне та вертикальне поле зору.

ih_fov
iv_fov
id_fov

Встановіть горизонтальне/вертикальне/діагональне поле зору. Значення в градусах.

Якщо встановлено діагональне поле зору, воно перекриває горизонтальне та вертикальне поле зору.

'barrel'
'fb'
'barrelsplit'

Формати Facebook 360.

'sg'

Стереографічний формат.

Спеціальні параметри формату:

h_fov
v_fov
d_fov

Встановіть горизонтальне/вертикальне/діагональне поле зору вихідного сигналу. Значення в градусах.

Якщо встановлено діагональне поле зору, воно перекриває горизонтальне та вертикальне поле зору.

ih_fov
iv_fov
id_fov

Встановіть горизонтальне/вертикальне/діагональне поле зору. Значення в градусах.

Якщо встановлено діагональне поле зору, воно перекриває горизонтальне та вертикальне поле зору.

'mercator'

Формат Меркатор.

'ball'

М'яч формату, дає значний викривлення в бік спини.

'hammer'

Формат картографічної проекції Хаммера-Айтоффа.

'sinusoidal'

Формат синусоїдальної картографічної проекції.

'fisheye'

Проекція риб'ячого ока.

Спеціальні параметри формату:

h_fov
v_fov
d_fov

Встановіть горизонтальне/вертикальне/діагональне поле зору вихідного сигналу. Значення в градусах.

Якщо встановлено діагональне поле зору, воно перекриває горизонтальне та вертикальне поле зору.

ih_fov
iv_fov
id_fov

Встановіть горизонтальне/вертикальне/діагональне поле зору. Значення в градусах.

Якщо встановлено діагональне поле зору, воно перекриває горизонтальне та вертикальне поле зору.

'pannini'

Проекція Панніні.

Спеціальні параметри формату:

h_fov

Встановити вихідний параметр Pannini.

ih_fov

Встановіть вхідний параметр Pannini.

'cylindrical'

Циліндрична проекція.

Спеціальні параметри формату:

h_fov
v_fov
d_fov

Встановіть горизонтальне/вертикальне/діагональне поле зору вихідного сигналу. Значення в градусах.

Якщо встановлено діагональне поле зору, воно перекриває горизонтальне та вертикальне поле зору.

ih_fov
iv_fov
id_fov

Встановіть горизонтальне/вертикальне/діагональне поле зору. Значення в градусах.

Якщо встановлено діагональне поле зору, воно перекриває горизонтальне та вертикальне поле зору.

'perspective'

Перспективна проекція. (тільки вихід)

Спеціальні параметри формату:

v_fov

Встановити параметр перспективи.

'tetrahedron'

Проекція тетраедра.

'tsp'

Проекція усіченої квадратної піраміди.

'he'
'hequirect'

Піврівнокутна проекція.

'equisolid'

Equisolid формат.

Спеціальні параметри формату:

h_fov
v_fov
d_fov

Встановіть горизонтальне/вертикальне/діагональне поле зору вихідного сигналу. Значення в градусах.

Якщо встановлено діагональне поле зору, воно перекриває горизонтальне та вертикальне поле зору.

ih_fov
iv_fov
id_fov

Встановіть горизонтальне/вертикальне/діагональне поле зору. Значення в градусах.

Якщо встановлено діагональне поле зору, воно перекриває горизонтальне та вертикальне поле зору.

'og'

Орфографічний формат.

Спеціальні параметри формату:

h_fov
v_fov
d_fov

Встановіть горизонтальне/вертикальне/діагональне поле зору вихідного сигналу. Значення в градусах.

Якщо встановлено діагональне поле зору, воно перекриває горизонтальне та вертикальне поле зору.

ih_fov
iv_fov
id_fov

Встановіть горизонтальне/вертикальне/діагональне поле зору. Значення в градусах.

Якщо встановлено діагональне поле зору, воно перекриває горизонтальне та вертикальне поле зору.

'octahedron'

Проекція октаедра.

'cylindricalea'

Циліндрична рівноплоща проекція.

interp

Встановити метод інтерполяції.
Примітка: для виконання більш складних методів інтерполяції потрібно набагато більше пам’яті.

Доступні методи:

'near'
'nearest'

Найближчий сусід.

'line'
'linear'

Білінійна інтерполяція.

'lagrange9'

Інтерполяція Лагранжа9.

'cube'
'cubic'

Бікубічна інтерполяція.

'lanc'
'lanczos'

Інтерполяція Ланцоша.

'sp16'
'spline16'

Сплайн16 інтерполяція.

'gauss'
'gaussian'

Інтерполяція Гауса.

'mitchell'

Інтерполяція Мітчелла.

Значення за замовчуванням: 'line' .

w
h

Встановіть вихідну роздільну здатність відео.

Роздільна здатність за умовчанням залежить від форматів.

in_stereo
out_stereo

Встановіть стереоформат входу/виходу.

'2d'

2D моно

'sbs'

Пліч-о-пліч

'tb'

Верхній низ

Значення за замовчуванням: '2d' для формату введення та виведення.

yaw
pitch
roll

Установіть обертання вихідного відео. Значення в градусах.

rorder

Установіть порядок обертання вихідного відео. Виберіть один предмет для кожної позиції.

'y, Y'

поворот

'p, P'

крок

'r, R'

рол

Значення за замовчуванням: 'ypr' .

h_flip
v_flip
d_flip

Перевернути вихідне відео горизонтально (змінюється вліво-вправо)/вертикально (змінюється вгору-вниз)/в глибину (змінюється назад-вперед). Логічні значення.

ih_flip
iv_flip

Встановіть, якщо вхідне відео перевертається горизонтально/вертикально. Логічні значення.

in_trans

Встановіть, якщо вхідне відео транспоновано. Логічне значення, за умовчанням вимкнено.

out_trans

Встановіть, чи потрібно транспонувати вихідне відео. Логічне значення, за умовчанням вимкнено.

h_offset
v_offset

Встановіть вихідний горизонтальний/вертикальний зсув поза осею. За замовчуванням встановлено значення 0. Дозволений діапазон від -1 до 1.

alpha_mask

Побудуйте маску в альфа-площині для всіх невідображених пікселів, позначивши їх повністю прозорими. Логічне значення, за умовчанням вимкнено.

reset_rot

Скинути обертання вихідного відео. Логічне значення, за умовчанням вимкнено.

11.261.1 Examples

  • Перетворіть рівнопрямокутне відео на кубічну карту з макетом 3x2 і 1% відступом за допомогою бікубічної інтерполяції:
    ffmpeg -i input.mkv -vf v360=e:c3x2:cubic:out_pad=0.01 output.mkv
    
  • Вилучити задній вигляд Equi-Angular Cubemap:
    ffmpeg -i input.mkv -vf v360=eac:flat:yaw=180 output.mkv
    
  • Перетворюйте транспоновану та горизонтально перевернуту Equi-Angular Cubemap у стереоформаті «пліч-о-пліч» у формат рівнопрямокутного верхнього та нижнього стерео:
    v360=eac:equirect:in_stereo=sbs:in_trans=1:ih_flip=1:out_stereo=tb
    

11.261.2 Commands

Цей фільтр підтримує підмножину наведених вище параметрів як команди .

11.262 vaguedenoiser

Застосувати вейвлет-дешумеризатор.

Він перетворює кожен кадр із вхідного відео в домен вейвлетів за допомогою Коена-Добеші-Фево 9/7. Потім він застосовує деяку фільтрацію до отриманих коефіцієнтів. Після цього виконується зворотне вейвлет-перетворення. Завдяки вейвлет-властивостям це повинно дати гарний згладжений результат і зменшити шум без розмиття характеристик зображення.

Цей фільтр приймає такі параметри:

threshold

Сила фільтрації. Чим вище, тим більш фільтрованим буде відео. Жорстке порогове значення може використовувати вищий поріг, ніж м’яке, перш ніж відео виглядатиме перефільтрованим. Значення за замовчуванням – 2.

method

Метод фільтрації, який використовуватиме фільтр.

Він приймає такі значення:

'hard'

Усі значення нижче порогу буде обнулено.

'soft'

Усі значення нижче порогу буде обнулено. Усі наведені вище значення будуть зменшені на порогове значення.

'garrote'

Масштабує або обнулює коефіцієнти - посередник між (більш) м'яким і (менш) жорстким пороговими значеннями.

За замовчуванням — гаррота.

nsteps

Скільки разів вейвлет розкладе зображення. Зображення не можна розкласти за певну точку (як правило, 8 для кадру 640x480 - як 2^9 = 512 > 480). Дійсні значення — цілі числа від 1 до 32. Значення за замовчуванням — 6.

percent

Часткове або повне усунення шумів (обмежене скорочення коефіцієнтів), від 0 до 100. Значення за замовчуванням 85.

planes

Список площин для обробки. За замовчуванням обробляються всі площини.

type

Тип порогу, який використовуватиме фільтр.

Він приймає такі значення:

'universal'

Порогове значення, що використовується, однакове для всіх розкладів.

'bayes'

Порогове значення, що використовується, також залежить від кожного коефіцієнта розкладання.

За замовчуванням універсальний.

11.263 varblur

Застосуйте змінний фільтр розмиття, використовуючи 2-й відеопотік, щоб установити радіус розмиття. 2-й струмок повинен мати такі ж розміри.

Цей фільтр приймає такі параметри:

min_r

Установіть мінімально допустимий радіус. Дозволений діапазон від 0 до 254. За замовчуванням 0.

max_r

Установіть максимально дозволений радіус. Дозволений діапазон від 1 до 255. За замовчуванням 8.

planes

Визначте, які площини обробляти. За замовчуванням використовуються всі.

Фільтр varblurтакож підтримує параметри синхронізації кадрів .

11.263.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

11.264 vectorscope

Відобразити 2 значення колірних компонентів у двовимірному графіку (який називається вектороскопом).

Цей фільтр приймає такі параметри:

mode, m

Встановити режим вектороскопа.

Він приймає такі значення:

'gray'
'tint'

Значення сірого відображаються на графіку, вища яскравість означає, що більше пікселів мають однакове значення кольору компонента в місці на графіку. Це режим за замовчуванням.

'color'

Значення сірого відображаються на графіку. Значення оточуючих пікселів, яких немає у відеокадрі, малюються градієнтом 2 компонентів кольору, які встановлюються опцією xта y. 3-й колірний компонент є статичним.

'color2'

Фактичні значення колірних компонентів, присутні у відеокадрі, відображаються на графіку.

'color3'

Подібно до color2, але більш висока частота тих самих значень xі y на графіку збільшує значення іншого компонента кольору, яким є яскравість за умовчанням xі y.

'color4'

Фактичні кольори, присутні у кадрі відео, відображаються на графіку. Якщо два різні кольори відображаються в одній позиції на графіку, тоді вибирається колір із вищим значенням компонента, якого немає на графіку.

'color5'

Значення сірого відображаються на графіку. Подібно до, colorале з 3-м колірним компонентом, вибраним із радіального градієнта.

x

Встановіть компонент кольору, який буде представлено на осі Х. Типовим є 1.

y

Встановіть компонент кольору, який буде представлено на осі Y. Типовим є 2.

intensity, i

Встановіть інтенсивність, яка використовується режимами: сірий, колір, колір3 і колір5 для збільшення яскравості компонента кольору, який представляє частоту розташування (X, Y) на графіку.

envelope, e
'none'

Немає конверта, це стандартно.

'instant'

Миттєвий конверт, навіть найтемніший окремий піксель буде чітко виділено.

'peak'

Тримайте максимальні та мінімальні значення, представлені на графіку протягом певного часу. Таким чином ви все ще можете помітити значення поза діапазоном, не дивлячись постійно на вектороскоп.

'peak+instant'

Пік і миттєвий конверт разом.

graticule, g

Встановіть тип сітки для малювання.

'none'
'green'
'color'
'invert'
opacity, o

Встановити непрозорість сітки.

flags, f

Встановити прапорці сітки.

'white'

Намалюйте сітку для білої точки.

'black'

Намалюйте сітку для чорної точки.

'name'

Намалюйте кольоровими точками короткі назви.

bgopacity, b

Встановити непрозорість фону.

lthreshold, l

Встановіть низький поріг для колірного компонента, не представленого на осі X або Y. Значення, нижчі за це значення, ігноруватимуться. За замовчуванням 0. Зауважте, що це значення множиться на фактичне максимально можливе значення, яке може мати один піксельний компонент. Отже, для 8-бітного вхідного сигналу та низького порогового значення 0,1 фактичне порогове значення дорівнює 0,1 * 255 = 25.

hthreshold, h

Встановіть високий поріг для кольорового компонента, не представленого на осі X або Y. Значення, вищі за це значення, ігноруватимуться. За замовчуванням 1. Зауважте, що це значення множиться на фактичне максимально можливе значення, яке може мати один піксельний компонент. Отже, для 8-бітного вхідного сигналу та високого порогового значення 0,9 фактичне порогове значення становить 0,9 * 255 = 230.

colorspace, c

Встановіть, який колірний простір використовувати під час малювання сітки.

'auto'
'601'
'709'

За замовчуванням — автоматично.

tint0, t0
tint1, t1

Встановіть відтінок кольору для режиму вектороскопа сірого/відтінку. За замовчуванням обидва параметри дорівнюють нулю. Це означає відсутність відтінку, а відбиток залишатиметься сірим.

11.265 vidstabdetect

Проаналізуйте стабілізацію/усунення тремтіння відео. Виконайте прохід 1 з 2, див. vidstabtransform для проходу 2.

Цей фільтр генерує файл із інформацією про відносний перехід і перетворення повороту про наступні кадри, який потім використовується фільтром vidstabtransform .

Щоб увімкнути компіляцію цього фільтра, вам потрібно налаштувати FFmpeg за допомогою --enable-libvidstab.

Цей фільтр приймає такі параметри:

result

Встановіть шлях до файлу, який використовується для запису інформації про перетворення. Значення за замовчуванням:transforms.trf.

shakiness

Установіть, наскільки тремтить відео та швидкість камери. Він приймає ціле число в діапазоні 1-10, значення 1 означає незначне тремтіння, значення 10 означає сильне тремтіння. Значення за замовчуванням – 5.

accuracy

Встановіть точність процесу виявлення. Це має бути значення в діапазоні 1-15. Значення 1 означає низьку точність, значення 15 означає високу точність. Значення за замовчуванням 15.

stepsize

Встановити розмір кроку процесу пошуку. Область навколо мінімуму сканується з роздільною здатністю 1 піксель. Значення за замовчуванням – 6.

mincontrast

Встановіть мінімальний контраст. Нижче цього значення локальне поле вимірювання відкидається. Має бути значення з плаваючою комою в діапазоні 0-1. Значення за замовчуванням 0,3.

tripod

Встановіть контрольний номер кадру для режиму штатива.

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

Якщо встановлено значення 0, він вимкнений. Кадри рахуються починаючи з 1.

show

Показувати поля та трансформації в отриманих кадрах. Він приймає ціле число в діапазоні 0-2. Значення за замовчуванням — 0, що вимикає будь-яку візуалізацію.

11.265.1 Examples

  • Використовуйте значення за замовчуванням:
    vidstabdetect
    
  • Проаналізуйте сильно тремтливий фільм і помістіть результати у файл mytransforms.trf:
    vidstabdetect=shakiness=10:accuracy=15:result="mytransforms.trf"
    
  • Візуалізуйте результат внутрішніх перетворень на отриманому відео:
    vidstabdetect=show=1
    
  • Проаналізуйте відео із середнім тремтінням за допомогою ffmpeg:
    ffmpeg -i input -vf vidstabdetect=shakiness=5:show=1 dummy.avi
    

11.266 vidstabtransform

Стабілізація/усунення тремтіння відео: пройдіть 2 з 2, див. vidstabdetect для проходу 1.

Прочитайте файл із інформацією про перетворення для кожного кадру та застосуйте/компенсуйте їх. Разом із фільтром vidstabdetect це можна використовувати для усунення тремтіння відео. Дивіться також http://public.hronopik.de/vid.stab . Важливо також використовувати фільтр unsharp , див. нижче.

Щоб увімкнути компіляцію цього фільтра, вам потрібно налаштувати FFmpeg за допомогою --enable-libvidstab.

11.266.1 Options

input

Встановіть шлях до файлу, який використовується для читання перетворень. Значення за замовчуванням: transforms.trf.

smoothing

Встановіть кількість кадрів (значення*2 + 1), які використовуються для низькочастотної фільтрації рухів камери. Значення за замовчуванням 10.

Наприклад, число 10 означає, що для згладжування руху у відео використовується 21 кадр (10 у минулому та 10 у майбутньому). Більше значення забезпечує плавніше відео, але обмежує прискорення камери (рухи панорамування/нахилу). 0 — окремий випадок, коли імітується статична камера.

optalgo

Встановіть алгоритм оптимізації траєкторії камери.

Допустимі значення:

'gauss'

фільтр низьких частот ядра Гауса за рухом камери (за замовчуванням)

'avg'

усереднення за перетвореннями

maxshift

Встановіть максимальну кількість пікселів для перекладу кадрів. Значення за замовчуванням – -1, що означає відсутність обмежень.

maxangle

Встановіть максимальний кут у радіанах (градус*PI/180) для обертання кадрів. Значення за замовчуванням – -1, що означає відсутність обмежень.

crop

Укажіть, як працювати з межами, які можуть бути видимими через компенсацію руху.

Доступні значення:

'keep'

зберегти інформацію про зображення з попереднього кадру (за замовчуванням)

'black'

заповніть рамку чорним кольором

invert

Інвертувати перетворення, якщо встановлено значення 1. Значення за замовчуванням — 0.

relative

Розглядати перетворення відносно попереднього кадру, якщо встановлено значення 1, або абсолютне значення, якщо встановлено значення 0. Значення за замовчуванням — 0.

zoom

Установіть відсоток для збільшення. Позитивне значення призведе до ефекту збільшення, а від’ємне значення – до ефекту зменшення. Значення за замовчуванням 0 (без масштабування).

optzoom

Встановіть оптимальне масштабування, щоб уникнути рамок.

Допустимі значення:

'0'

вимкнено

'1'

визначається оптимальне статичне значення масштабу (лише дуже сильні рухи призведуть до видимих ​​меж) (за замовчуванням)

'2'

визначається оптимальне значення адаптивного масштабування (країв не буде видно), дивzoomspeed

Зверніть увагу, що значення, наведене під час збільшення, додається до обчисленого тут.

zoomspeed

Установіть відсоток для максимального збільшення кожного кадру (увімкнено, коли optzoomвстановлено на 2). Діапазон від 0 до 5, значення за замовчуванням 0,25.

interpol

Вкажіть тип інтерполяції.

Доступні значення:

'no'

без інтерполяції

'linear'

лінійні тільки горизонтальні

'bilinear'

лінійно в обох напрямках (за замовчуванням)

'bicubic'

кубічний в обох напрямках (повільний)

tripod

Увімкнути режим віртуального штатива, якщо встановлено значення 1, що еквівалентно relative=0:smoothing=0. Значення за замовчуванням 0.

Використовуйте також tripodпараметр vidstabdetect .

debug

Збільшити докладність журналу, якщо встановлено значення 1. Також виявлені глобальні рухи записуються до тимчасового файлуglobal_motions.trf. Значення за замовчуванням 0.

11.266.2 Examples

  • Використовуйте ffmpegдля типової стабілізації зі значеннями за замовчуванням:
    ffmpeg -i inp.mpeg -vf vidstabtransform,unsharp=5:5:0.8:3:3:0.4 inp_stabilized.mpeg
    

    Зверніть увагу на використання фільтра нерізкості , який завжди рекомендується.

  • Збільште трохи більше та завантажте дані перетворення з заданого файлу:
    vidstabtransform=zoom=5:input="mytransforms.trf"
    
  • Згладьте відео ще більше:
    vidstabtransform=smoothing=30
    

11.267 vflip

Переверніть вхідне відео вертикально.

Наприклад, щоб вертикально перевернути відео за допомогою ffmpeg:

ffmpeg -i in.avi -vf "vflip" out.avi

11.268 vfrdet

Виявлення відео зі змінною частотою кадрів.

Цей фільтр намагається визначити, чи вхід є змінною чи постійною частотою кадрів.

Наприкінці він виведе кількість кадрів, визначених як такі, що мають змінні дельта-пункти, і кадри зі змінними дельта-пунктами. Якщо були кадри зі змінною дельтою, то також буде показано мінімальну, максимальну та середню дельту.

11.269 vibrance

Збільште або змініть насиченість.

Фільтр приймає такі параметри:

intensity

Встановіть силу посилення, якщо додатне значення, або силу зміни, якщо значення від’ємне. За замовчуванням 0. Дозволений діапазон від -2 до 2.

rbal

Встановіть баланс червоного. За замовчуванням 1. Дозволений діапазон від -10 до 10.

gbal

Встановіть зелений баланс. За замовчуванням 1. Дозволений діапазон від -10 до 10.

bbal

Встановіть баланс синього. За замовчуванням 1. Дозволений діапазон від -10 до 10.

rlum

Встановіть коефіцієнт яскравості червоного.

glum

Встановіть коефіцієнт яскравості зеленого кольору.

blum

Встановіть коефіцієнт яскравості синього.

alternate

Якщо intensityзначення від’ємне та встановлено значення 1, кольори змінюватимуться, інакше кольори будуть менш насиченими, більш сірими.

11.269.1 Commands

Цей фільтр підтримує всі наведені вище параметри як команди .

11.270 vif

Отримайте середнє VIF (точність візуальної інформації) між двома вхідними відео.

Цей фільтр приймає два вхідних відео.

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

Отриманий середній бал VIF друкується через систему реєстрації.

Фільтр зберігає розраховану оцінку VIF кожного кадру.

У наведеному нижче прикладі вхідний файлmain.mpgобробляється порівнюється з еталонним файломref.mpg.

ffmpeg -i main.mpg -i ref.mpg -lavfi vif -f null -

11.271 vignette

Зробіть або змініть природний ефект віньєтування.

Фільтр приймає такі параметри:

angle, a

Встановіть вираз кута лінзи як кількість радіан.

Значення обрізається в [0,PI/2]діапазоні.

Значення за замовчуванням:"PI/5"

x0
y0

Установіть вирази координат центру. Відповідно "w/2"і "h/2" за замовчуванням.

mode

Встановити режим вперед/назад.

Доступні режими:

'forward'

Чим більше відстань від центральної точки, тим темніше стає зображення.

'backward'

Чим більше відстань від центральної точки, тим яскравішим стає зображення. Це можна використати, щоб скасувати ефект віньєтки, хоча немає автоматичного виявлення для вилучення лінзиangleта інші налаштування (поки). Також його можна використовувати для створення ефекту печіння.

Значення за замовчуванням: 'forward'.

eval

Встановити режим оцінки для виразів (angle,x0,y0).

Він приймає такі значення:

'init'

Обчислюйте вирази лише один раз під час ініціалізації фільтра.

'frame'

Оцініть вирази для кожного вхідного кадру. Це набагато повільніше, ніж "init', оскільки він вимагає повторного обчислення всіх скалерів, але він дозволяє розширені динамічні вирази.

Значення за замовчуванням: 'init'.

dither

Встановіть розмитість, щоб зменшити ефект кругових смуг. За замовчуванням 1 (увімкнено).

aspect

Встановити формат віньєтки. Цей параметр дозволяє регулювати форму віньєтки. Встановлення цього значення для SAR вхідного сигналу створить прямокутне віньєтування відповідно до розмірів відео.

Типовим є 1/1.

11.271.1 Expressions

Thealpha,x0іy0вирази можуть містити такі параметри.

w
h

ширина та висота введення

n

номер вхідного кадру, починаючи з 0

pts

час PTS (Presentation TimeStamp) відфільтрованого відеокадру, виражений в TBодиницях, NAN, якщо не визначено

r

частота кадрів вхідного відео, NAN, якщо частота кадрів вхідного сигналу невідома

t

PTS (TimeStamp презентації) відфільтрованого відеокадру, виражений у секундах, NAN, якщо не визначено

tb

часова база вхідного відео

11.271.2 Examples

  • Застосуйте простий сильний ефект віньєтування:
    vignette=PI/4
    
  • Зробіть мерехтливе віньєтування:
    vignette='PI/4+random(1)*PI/50':eval=frame
    

11.272 vmafmotion

Отримайте середню оцінку руху VMAF для відео. Це одна зі складових метрик VMAF.

Отриманий середній показник руху друкується через систему реєстрації.

Фільтр приймає такі параметри:

stats_file

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

приклад:

ffmpeg -i ref.mpg -vf vmafmotion -f null -

11.273 vstack

Розмістіть вхідні відео вертикально.

Усі потоки мають мати однаковий піксельний формат і однакову ширину.

Зауважте, що цей фільтр є швидшим, ніж використання накладання та фільтра накладки для створення того самого результату.

Фільтр приймає такі параметри:

inputs

Встановити кількість вхідних потоків. За замовчуванням 2.

shortest

Якщо встановлено значення 1, примусове завершення виведення, коли завершується найкоротший вхід. Значення за замовчуванням 0.

11.274 w3fdif

Деінтерлейсинг вхідного відео ("w3fdif" означає "Weston 3 Field Deinterlacing Filter").

На основі процесу, описаного Мартіном Вестоном для BBC R&D, і реалізованого на основі алгоритму депереплетіння, написаного Джимом Істербруком для BBC R&D, фільтр депереплетення поля Weston 3 використовує коефіцієнти фільтра, розраховані BBC R&D.

Цей фільтр використовує інформацію про домінування полів у кадрі, щоб вирішити, яке з кожної пари полів розмістити першим у виводі. Якщо це неправильно, використовуйте фільтр setfield перед w3fdifфільтром.

Існує два набори коефіцієнтів фільтра, так звані «простий» і «складний». Який набір коефіцієнтів фільтра використовується, можна встановити, передавши додатковий параметр:

filter

Встановіть коефіцієнти чергування фільтрів. Приймає одне з таких значень:

'simple'

Простий набір коефіцієнтів фільтра.

'complex'

Більш складний набір коефіцієнтів фільтра.

Значення за замовчуванням: 'complex'.

mode

Режим переплетення, який потрібно прийняти. Він приймає одне з таких значень:

frame

Виведіть один кадр для кожного кадру.

field

Виведіть один кадр для кожного поля.

Значення за замовчуванням — field.

parity

Парність поля зображення передбачається для вхідного черезрядкового відео. Він приймає одне з таких значень:

tff

Припустимо, що верхнє поле є першим.

bff

Припустимо, що нижнє поле є першим.

auto

Увімкнути автоматичне визначення парності поля.

Значення за замовчуванням — auto. Якщо чергування невідоме або декодер не експортує цю інформацію, першим буде вважатися верхнє поле.

deint

Укажіть, які кадри потрібно деінтерлейсувати. Приймає одне з таких значень:

'all'

Деінтерлейс усіх кадрів,

'interlaced'

Усунути черезрядкову розгортку лише кадри, позначені як черезрядкові.

Значення за замовчуванням: 'all'.

11.274.1 Commands

Цей фільтр підтримує ті самі команди , що й параметри.

11.275 waveform

Монітор відеосигналу.

Монітор форми сигналу відображає інтенсивність компонента кольору. За замовчуванням лише яскравість. Кожен стовпець хвилі відповідає стовпцю пікселів у вихідному відео.

Він приймає такі варіанти:

mode, m

Може бути або row, або column. Типовим є column. У режимі рядка графік ліворуч представляє значення колірного компонента 0, а правий — значення = 255. У режимі стовпця верхня сторона представляє значення колірного компонента = 0, а нижня сторона — значення = 255.

intensity, i

Встановити інтенсивність. Менші значення корисні, щоб дізнатися, скільки значень однакової яскравості розподілено між вхідними рядками/стовпцями. Значення за замовчуванням: 0.04. Дозволений діапазон [0, 1].

mirror, r

Встановити режим дзеркального відображення. 0означає невіддзеркалений, 1означає дзеркальний. У дзеркальному режимі вищі значення будуть представлені ліворуч для rowрежиму та вгорі для columnрежиму. За замовчуванням 1(віддзеркалено).

display, d

Встановити режим відображення. Він приймає такі значення:

'overlay'

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

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

'stack'

Відображати окремий графік для компонентів кольору поруч у rowрежимі або один під одним у columnрежимі.

'parade'

Відображати окремий графік для компонентів кольору поруч у columnрежимі або один під одним у rowрежимі.

Використання цього режиму відображення полегшує виявлення кольорових відтінків у світлих і тінних ділянках зображення шляхом порівняння контурів верхнього та нижнього графіків кожної хвилі. Оскільки білі, сірі та чорні характеризуються рівною кількістю червоного, зеленого та синього, нейтральні області зображення мають відображати три хвилі приблизно однакової ширини/висоти. Якщо ні, корекцію легко виконати, відкоригувавши рівень трьох форм хвилі.

Типовим є stack.

components, c

Встановіть компоненти кольору для відображення. За замовчуванням — 1, що означає лише яскравість або компонент червоного кольору, якщо введення вводиться в просторі кольорів RGB. Якщо, наприклад, встановлено значення 7, відображатимуться всі 3 (якщо) доступні колірні компоненти.

envelope, e
'none'

Немає конверта, це стандартно.

'instant'

Миттєвий конверт, мінімальні та максимальні значення, представлені на графіку, будуть легко видимі навіть при невеликих stepзначеннях.

'peak'

Зберігайте мінімальні та максимальні значення, представлені на графіку за час. Таким чином ви все ще можете помітити значення поза діапазоном, не дивлячись постійно на форми сигналу.

'peak+instant'

Пік і миттєвий конверт разом.

filter, f
'lowpass'

Без фільтрації, це за замовчуванням.

'flat'

Поєднання яскравості та кольоровості.

'aflat'

Подібний до вищезазначеного, але показує різницю між синьою та червоною кольоровістю.

'xflat'

Подібно до вищезазначеного, але використовуйте інші кольори.

'yflat'

Подібні до вищезгаданих, але знову з іншими кольорами.

'chroma'

Відображає лише кольоровість.

'color'

Відображає фактичне значення кольору на хвилі.

'acolor'

Подібно до вищезазначеного, але з яскравістю, яка показує частоту значень кольоровості.

graticule, g

Встановіть, яку сітку відображати.

'none'

Не показувати сітку.

'green'

Відображати зелену сітку, яка показує допустимі діапазони трансляції.

'orange'

Відображення помаранчевої сітки, яка показує допустимі діапазони трансляції.

'invert'

Відображення інвертованої сітки, що показує допустимі діапазони трансляції.

opacity, o

Встановити непрозорість сітки.

flags, fl

Встановити прапорці сітки.

'numbers'

Намалюйте цифри над лініями. За замовчуванням увімкнено.

'dots'

Малюйте точки замість ліній.

scale, s

Встановити масштаб для відображення сітки.

'digital'
'millivolts'
'ire'

За замовчуванням цифровий.

bgopacity, b

Встановити непрозорість фону.

tint0, t0
tint1, t1

Встановити відтінок для виведення. Використовується лише з фільтром низьких частот і коли дисплей не накладається, а формати вхідних пікселів не RGB.

fitmode, fm

Встановіть зразкове співвідношення сторін вихідних кадрів відео. Можна використовувати для налаштування форми сигналу, щоб він не надто сильно розтягувався в одному з напрямків.

'none'

Встановіть зразкове співвідношення сторін 1/1.

'size'

Установіть зразкове співвідношення сторін відповідно до вхідного розміру відео

Типовим є 'none'.

11.276 weave, doubleweave

Він weaveприймає відеовхід на основі поля та об’єднує кожні два послідовних поля в один кадр, створюючи новий кліп подвійної висоти з половиною частоти кадрів і половиною кількості кадрів.

Працює doubleweaveтак само, weaveале без зменшення частоти кадрів і кількості кадрів вдвічі.

Він приймає наступний варіант:

first_field

Встановити перше поле. Доступні значення:

'top, t'

Установіть рамку як верхнє поле спочатку.

'bottom, b'

Установіть рамку як нижнє поле спочатку.

11.276.1 Examples

  • Переплетіть відео за допомогою фільтра select and separatefields :
    separatefields,select=eq(mod(n,4),0)+eq(mod(n,4),3),weave
    

11.277 xbr

Застосуйте високоякісний фільтр збільшення xBR, розроблений для піксельного мистецтва. Він відповідає набору правил виявлення країв, див . https://forums.libretro.com/t/xbr-algorithm-tutorial/123 .

Він приймає наступний варіант:

n

Встановіть розмір масштабування: 2для 2xBR, 3для 3xBRі 4для 4xBR. Типовим є 3.

11.278 xcorrelate

Застосувати нормалізовану крос-кореляцію між першим і другим вхідним відеопотоком.

Розміри другого вхідного відеопотоку мають бути меншими за перший вхідний відеопотік.

Фільтр приймає такі параметри:

planes

Визначте, які площини обробляти.

secondary

Встановіть, які вторинні відеокадри будуть оброблені з другого вхідного відеопотоку, можна firstабо all. Типовим є all.

Фільтр xcorrelateтакож підтримує параметри синхронізації кадрів .

11.279 xfade

Застосувати перехресне затухання від одного вхідного відеопотоку до іншого вхідного відеопотоку. Перехресне затухання застосовується протягом визначеного часу.

Обидва входи повинні мати постійну частоту кадрів і мати однакову роздільну здатність, формат пікселів, частоту кадрів і часову базу.

Фільтр приймає такі параметри:

transition

Встановіть один із доступних ефектів переходу:

'custom'
'fade'
'wipeleft'
'wiperight'
'wipeup'
'wipedown'
'slideleft'
'slideright'
'slideup'
'slidedown'
'circlecrop'
'rectcrop'
'distance'
'fadeblack'
'fadewhite'
'radial'
'smoothleft'
'smoothright'
'smoothup'
'smoothdown'
'circleopen'
'circleclose'
'vertopen'
'vertclose'
'horzopen'
'horzclose'
'dissolve'
'pixelize'
'diagtl'
'diagtr'
'diagbl'
'diagbr'
'hlslice'
'hrslice'
'vuslice'
'vdslice'
'hblur'
'fadegrays'
'wipetl'
'wipetr'
'wipebl'
'wipebr'
'squeezeh'
'squeezev'
'zoomin'
'fadefast'
'fadeslow'

Стандартним ефектом переходу є згасання.

duration

Встановіть тривалість перехресного затухання в секундах. Діапазон від 0 до 60 секунд. Тривалість за замовчуванням становить 1 секунду.

offset

Встановити початок перехресного затухання відносно першого вхідного потоку в секундах. Зміщення за замовчуванням дорівнює 0.

expr

Встановіть вираз для спеціального ефекту переходу.

Вирази можуть використовувати такі змінні та функції:

X
Y

Координати поточної вибірки.

W
H

Ширина і висота зображення.

P

Прогрес ефекту переходу.

PLANE

В даний час обробляється літак.

A

Повернене значення першого введення в поточному місці та площині.

B

Повернене значення другого введення в поточному місці та площині.

a0(x, y)
a1(x, y)
a2(x, y)
a3(x, y)

Повертає значення пікселя в місці ( x, y) першого/другого/третього/четвертого компонента першого введення.

b0(x, y)
b1(x, y)
b2(x, y)
b3(x, y)

Повертає значення пікселя в місці ( x, y) першого/другого/третього/четвертого компонента другого введення.

11.279.1 Examples

  • Перехресне затухання від одного вхідного відео до іншого вхідного відео з переходом із затуханням і тривалістю переходу 2 секунди, починаючи зі зсуву 5 секунд:
    ffmpeg -i first.mp4 -i second.mp4 -filter_complex xfade=transition=fade:duration=2:offset=5 output.mp4
    

11.280 xmedian

Виберіть середні пікселі з кількох вхідних відео.

Фільтр приймає такі параметри:

inputs

Встановити кількість входів. За замовчуванням — 3. Дозволений діапазон — від 3 до 255. Якщо кількість введених даних — парне число, результатом буде середнє значення між двома середніми значеннями.

planes

Встановіть, які площини фільтрувати. Значення за замовчуванням — 15, за яким обробляються всі площини.

percentile

Установіть медіанний процентиль. Значення за замовчуванням: 0.5. Значення за замовчуванням 0.5завжди вибиратиме середні значення, тоді як 0вибиратиме мінімальні та 1максимальні значення.

11.280.1 Commands

Цей фільтр підтримує всі вищезазначені параметри як команди , за винятком параметра inputs.

11.281 xstack

Створюйте відеовхідні дані в власний макет.

Усі потоки мають мати однаковий піксельний формат.

Фільтр приймає такі параметри:

inputs

Встановити кількість вхідних потоків. За замовчуванням 2.

layout

Вкажіть схему входів. Цей параметр вимагає, щоб бажана конфігурація макета була явно встановлена ​​користувачем. Це встановлює позицію кожного відеовходу на виході. Кожен вхід відокремлюється символом «|». Перше число позначає стовпець, а друге число позначає рядок. Числа починаються з 0 і розділяються знаком «_». Додатково можна використовувати wX і hX, де X — відеовхід, з якого береться ширина або висота. Можна використовувати кілька значень, розділених знаком «+». У такому випадку значення підсумовуються.

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

Для 2 входів встановлено макет за замовчуванням 0_0|w0_0(еквівалентний grid=2x1). У всіх інших випадках макет або сітку повинен налаштувати користувач. Або gridабо layoutможна вказати одночасно. Вказівка ​​обох призведе до помилки.

grid

Вкажіть сітку фіксованого розміру входів. Цей параметр використовується для створення сітки фіксованого розміру вхідних потоків. Задайте розмір сітки у формі COLUMNSxROWS. Повинні бути ROWS * COLUMNS вхідні потоки, і вони будуть організовані у вигляді сітки з ROWSрядками та COLUMNSстовпцями. У разі використання цього параметра кожен вхідний потік у рядку повинен мати однакову висоту, а всі рядки — однакову ширину.

Якщо gridвстановлено, inputsпараметр ігнорується та неявно встановлюється на ROWS * COLUMNS.

Для 2 входів встановлено сітку за замовчуванням 2x1(еквівалент layout=0_0|w0_0). У всіх інших випадках макет або сітку повинен налаштувати користувач. Або gridабо layoutможна вказати одночасно. Вказівка ​​обох призведе до помилки.

shortest

Якщо встановлено значення 1, примусове завершення виведення, коли завершується найкоротший вхід. Значення за замовчуванням 0.

fill

Якщо встановлено дійсний колір, усі невикористані пікселі будуть заповнені цим кольором. За замовчуванням для заповнення встановлено значення «немає», тому його вимкнено.

11.281.1 Examples

  • Відображення 4 входів у сітці 2x2.

    Макет:

    input1(0, 0)  | input3(w0, 0)
    input2(0, h0) | input4(w0, h0)
    
    xstack=inputs=4:layout=0_0|0_h0|w0_0|w0_h0
    

    Зауважте, що якщо вхідні дані мають різні розміри, можуть виникнути прогалини або накладання.

  • Відображення 4 входів у сітці 1x4.

    Макет:

    input1(0, 0)
    input2(0, h0)
    input3(0, h0+h1)
    input4(0, h0+h1+h2)
    
    xstack=inputs=4:layout=0_0|0_h0|0_h0+h1|0_h0+h1+h2
    

    Зауважте, що якщо вхідні дані мають різну ширину, з’явиться невикористаний простір.

  • Відображення 9 входів у сітці 3x3.

    Макет:

    input1(0, 0)       | input4(w0, 0)      | input7(w0+w3, 0)
    input2(0, h0)      | input5(w0, h0)     | input8(w0+w3, h0)
    input3(0, h0+h1)   | input6(w0, h0+h1)  | input9(w0+w3, h0+h1)
    
    xstack=inputs=9:layout=0_0|0_h0|0_h0+h1|w0_0|w0_h0|w0_h0+h1|w0+w3_0|w0+w3_h0|w0+w3_h0+h1
    

    Зауважте, що якщо вхідні дані мають різні розміри, можуть виникнути прогалини або накладання.

  • Відображення 16 входів у сітці 4x4.

    Макет:

    input1(0, 0)       | input5(w0, 0)       | input9 (w0+w4, 0)       | input13(w0+w4+w8, 0)
    input2(0, h0)      | input6(w0, h0)      | input10(w0+w4, h0)      | input14(w0+w4+w8, h0)
    input3(0, h0+h1)   | input7(w0, h0+h1)   | input11(w0+w4, h0+h1)   | input15(w0+w4+w8, h0+h1)
    input4(0, h0+h1+h2)| input8(w0, h0+h1+h2)| input12(w0+w4, h0+h1+h2)| input16(w0+w4+w8, h0+h1+h2)
    
    xstack=inputs=16:layout=0_0|0_h0|0_h0+h1|0_h0+h1+h2|w0_0|w0_h0|w0_h0+h1|w0_h0+h1+h2|w0+w4_0|
    w0+w4_h0|w0+w4_h0+h1|w0+w4_h0+h1+h2|w0+w4+w8_0|w0+w4+w8_h0|w0+w4+w8_h0+h1|w0+w4+w8_h0+h1+h2
    

    Зауважте, що якщо вхідні дані мають різні розміри, можуть виникнути прогалини або накладання.

11.282 yadif

Деінтерлейсінг вхідного відео («yadif» означає «ще один фільтр деінтерлейсингу»).

Він приймає такі параметри:

mode

Режим переплетення, який потрібно прийняти. Він приймає одне з таких значень:

0, send_frame

Виведіть один кадр для кожного кадру.

1, send_field

Виведіть один кадр для кожного поля.

2, send_frame_nospatial

Подобається send_frame, але пропускає перевірку просторового чергування.

3, send_field_nospatial

Подобається send_field, але пропускає перевірку просторового чергування.

Значення за замовчуванням — send_frame.

parity

Парність поля зображення передбачається для вхідного черезрядкового відео. Він приймає одне з таких значень:

0, tff

Припустимо, що верхнє поле є першим.

1, bff

Припустимо, що нижнє поле є першим.

-1, auto

Увімкнути автоматичне визначення парності поля.

Значення за замовчуванням — auto. Якщо чергування невідоме або декодер не експортує цю інформацію, першим буде вважатися верхнє поле.

deint

Укажіть, які кадри потрібно деінтерлейсувати. Приймає одне з таких значень:

0, all

Деінтерлейс усіх кадрів.

1, interlaced

Усунути черезрядкову розгортку лише кадри, позначені як черезрядкові.

Значення за замовчуванням — all.

11.283 yadif_cuda

Деінтерлейс вхідного відео за допомогою алгоритму yadif , але реалізованого в CUDA, щоб він міг працювати як частина прискореного GPU конвеєра з nvdec та/або nvenc.

Він приймає такі параметри:

mode

Режим переплетення, який потрібно прийняти. Він приймає одне з таких значень:

0, send_frame

Виведіть один кадр для кожного кадру.

1, send_field

Виведіть один кадр для кожного поля.

2, send_frame_nospatial

Подобається send_frame, але пропускає перевірку просторового чергування.

3, send_field_nospatial

Подобається send_field, але пропускає перевірку просторового чергування.

Значення за замовчуванням — send_frame.

parity

Парність поля зображення передбачається для вхідного черезрядкового відео. Він приймає одне з таких значень:

0, tff

Припустимо, що верхнє поле є першим.

1, bff

Припустимо, що нижнє поле є першим.

-1, auto

Увімкнути автоматичне визначення парності поля.

Значення за замовчуванням — auto. Якщо чергування невідоме або декодер не експортує цю інформацію, першим буде вважатися верхнє поле.

deint

Укажіть, які кадри потрібно деінтерлейсувати. Приймає одне з таких значень:

0, all

Деінтерлейс усіх кадрів.

1, interlaced

Усунути черезрядкову розгортку лише кадри, позначені як черезрядкові.

Значення за замовчуванням — all.

11.284 yaepblur

Застосуйте фільтр розмиття, зберігаючи краї («yaepblur» означає «ще один фільтр розмиття, що зберігає краї»). Алгоритм описано в "Дж. С. Лі, Покращення цифрового зображення та фільтрація шуму за допомогою локальної статистики, IEEE Trans. Pattern Anal. Mach. Intell. PAMI-2, 1980."

Він приймає такі параметри:

radius, r

Встановити радіус вікна. Значення за замовчуванням – 3.

planes, p

Встановіть, які площини фільтрувати. За замовчуванням лише перша площина.

sigma, s

Встановити силу розмиття. Значення за замовчуванням 128.

11.284.1 Commands

Цей фільтр підтримує ті самі команди , що й параметри.

11.285 zoompan

Застосувати ефект масштабування та панорамування.

Цей фільтр приймає такі параметри:

zoom, z

Установіть вираз масштабування. Діапазон 1-10. За замовчуванням 1.

x
y

Установіть вираз x і y. За замовчуванням 0.

d

Встановіть вираз тривалості в кількості кадрів. Це встановлює, скільки кадрів триватиме для одного вхідного зображення. За замовчуванням 90.

s

Встановіть розмір вихідного зображення, за замовчуванням «hd720».

fps

Встановіть вихідну частоту кадрів, за замовчуванням 25.

Кожен вираз може містити такі константи:

in_w, iw

Ширина входу.

in_h, ih

Вхідна висота.

out_w, ow

Вихідна ширина.

out_h, oh

Вихідна висота.

in

Вхідна кількість кадрів.

on

Вихідна кількість кадрів.

in_time, it

Мітка часу введення, виражена в секундах. Це NAN, якщо позначка часу введення невідома.

out_time, time, ot

Позначка часу виведення, виражена в секундах.

x
y

Остання розрахована позиція «x» і «y» з виразів «x» і «y» для поточного вхідного кадру.

px
py

'x' і 'y' останнього вихідного кадру попереднього вхідного кадру або 0, якщо такого кадру ще не було (перший вхідний кадр).

zoom

Останнє розраховане масштабування з виразу 'z' для поточного вхідного кадру.

pzoom

Останнє розраховане масштабування останнього вихідного кадру попереднього вхідного кадру.

duration

Кількість вихідних кадрів для поточного вхідного кадру. Обчислюється з виразу «d» для кожного вхідного кадру.

pduration

кількість вихідних кадрів, створених для попереднього вхідного кадру

a

Раціональне число: ширина введення / висота введення

sar

співвідношення сторін зразка

dar

співвідношення сторін дисплея

11.285.1 Examples

  • Збільшення до 1,5 разів і водночас панорамування до певної точки поблизу центру зображення:
    zoompan=z='min(zoom+0.0015,1.5)':d=700:x='if(gte(zoom,1.5),x,x+1/a)':y='if(gte(zoom,1.5),y,y+1)':s=640x360
    
  • Збільшення до 1,5 разів і панорамування завжди в центрі зображення:
    zoompan=z='min(zoom+0.0015,1.5)':d=700:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)'
    
  • Те саме, що й вище, але без пауз:
    zoompan=z='min(max(zoom,pzoom)+0.0015,1.5)':d=1:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)'
    
  • Збільште вдвічі центр зображення лише для першої секунди вхідного відео:
    zoompan=z='if(between(in_time,0,1),2,1)':d=1:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)'
    

11.286 zscale

Змініть масштаб (змініть розмір) вхідного відео за допомогою бібліотеки z.lib: https://github.com/sekrit-twc/zimg . Щоб увімкнути компіляцію цього фільтра, вам потрібно налаштувати FFmpeg за допомогою --enable-libzimg.

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

Якщо формат вхідного зображення відрізняється від формату, запитуваного наступним фільтром, фільтр zscale перетворить вхідні дані в потрібний формат.

11.286.1 Options

Фільтр приймає такі параметри.

width, w
height, h

Установіть вираз розмірності вихідного відео. Значенням за замовчуванням є вхідний розмір.

Якщо значення widthабо wдорівнює 0, ширина введення використовується для виведення. Якщо значення heightабо hдорівнює 0, для виведення використовується вхідна висота.

Якщо одним і лише одним із значень є -n із n >= 1, фільтр zscale використовуватиме значення, яке підтримує співвідношення сторін вхідного зображення, розраховане на основі іншого вказаного розміру. Однак після цього він переконається, що обчислений розмір ділиться на n, і за потреби відкоригує значення.

Якщо обидва значення мають значення -n з n >= 1, поведінка буде ідентичною для обох значень, встановлених на 0, як описано раніше.

Нижче наведено список прийнятних констант для використання у виразі розмірності.

size, s

Встановіть розмір відео. Щоб дізнатися про синтаксис цього параметра, перевірте розділ (ffmpeg-utils) «Розмір відео» в посібнику ffmpeg-utils .

dither, d

Встановіть тип тремтіння.

Можливі значення:

none
ordered
random
error_diffusion

За замовчуванням немає.

filter, f

Встановіть тип фільтра зміни розміру.

Можливі значення:

point
bilinear
bicubic
spline16
spline36
lanczos

За замовчуванням білінійний.

range, r

Встановити діапазон кольорів.

Можливі значення:

input
limited
full

За замовчуванням таке ж, як і введення.

primaries, p

Встановіть основні кольори.

Можливі значення:

input
709
unspecified
170m
240m
2020

За замовчуванням таке ж, як і введення.

transfer, t

Встановити характеристики передачі.

Можливі значення:

input
709
unspecified
601
linear
2020_10
2020_12
smpte2084
iec61966-2-1
arib-std-b67

За замовчуванням таке ж, як і введення.

matrix, m

Встановіть матрицю простору кольорів.

Можливі значення:

input
709
unspecified
470bg
170m
2020_ncl
2020_cl

За замовчуванням таке ж, як і введення.

rangein, rin

Встановіть діапазон кольорів для введення.

Можливі значення:

input
limited
full

За замовчуванням таке ж, як і введення.

primariesin, pin

Встановіть первинні кольори введення.

Можливі значення:

input
709
unspecified
170m
240m
2020

За замовчуванням таке ж, як і введення.

transferin, tin

Встановити вхідні характеристики передачі.

Можливі значення:

input
709
unspecified
601
linear
2020_10
2020_12

За замовчуванням таке ж, як і введення.

matrixin, min

Встановіть вхідну матрицю простору кольорів.

Можливі значення:

input
709
unspecified
470bg
170m
2020_ncl
2020_cl
chromal, c

Встановіть вихідну кольоровість.

Можливі значення:

input
left
center
topleft
top
bottomleft
bottom
chromalin, cin

Встановіть місце кольоровості вхідного сигналу.

Можливі значення:

input
left
center
topleft
top
bottomleft
bottom
npl

Встановіть номінальну пікову яскравість.

param_a

Параметр A для фільтрів масштабування. Параметр «b» для бікубічних і кількість кранів фільтра для lanczos.

param_b

Параметр B для фільтрів масштабування. Параметр «с» для бікубічного.

Цінностіwіhпараметри - це вирази, що містять такі константи:

in_w
in_h

Ширина та висота введення

iw
ih

Це те саме, що in_wі in_h.

out_w
out_h

Вихідні (масштабовані) ширина та висота

ow
oh

Це те саме, що out_wіout_h

a

Те саме, що iw/ih

sar

формат вхідного зразка

dar

Співвідношення сторін вхідного дисплея. Розраховано з (iw / ih) * sar.

hsub
vsub

горизонтальні та вертикальні вхідні значення кольоровості. Наприклад, для піксельного формату "yuv422p" hsubдорівнює 2 і vsub1.

ohsub
ovsub

горизонтальні та вертикальні вихідні значення кольоровості. Наприклад, для піксельного формату "yuv422p" hsubдорівнює 2 і vsub1.

11.286.2 Commands

Цей фільтр підтримує такі команди:

width, w
height, h

Установіть вираз розмірності вихідного відео. Команда приймає той самий синтаксис відповідного параметра.

Якщо вказаний вираз недійсний, його поточне значення зберігається.

12 OpenCL Video Filters

Нижче наведено опис доступних наразі відеофільтрів OpenCL.

Щоб увімкнути компіляцію цих фільтрів, вам потрібно налаштувати FFmpeg за допомогою --enable-opencl.

Запуск фільтрів OpenCL вимагає ініціалізації апаратного пристрою та передачі цього пристрою всім фільтрам у будь-якій графі фільтрів.

-init_hw_device opencl[=name][:device[,key=value...]]

Ініціалізуйте новий апаратний пристрій типу opencl, nameвикористовуючи задані параметри пристрою.

-filter_hw_device name

Передайте викликаний апаратний пристрій nameусім фільтрам у будь-якому графі фільтрів.

Для отримання більш детальної інформації див. https://www.ffmpeg.org/ffmpeg.html#Advanced-Video-options

  • Приклад вибору першого пристрою на другій платформі та запуску на ньому фільтра avgblur_opencl із параметрами за замовчуванням.
    -init_hw_device opencl=gpu:1.0 -filter_hw_device gpu -i INPUT -vf "hwupload, avgblur_opencl, hwdownload" OUTPUT
    

Оскільки фільтри OpenCL не можуть отримати доступ до даних кадру в звичайній пам’яті, перед використанням усі дані кадру потрібно завантажити ( hwupload ) на апаратні поверхні, під’єднані до відповідного пристрою, а потім завантажити ( hwdownload ) назад у звичайну пам’ять. Зауважте, що hwupload завантажуватиметься на поверхню з тим же макетом, що й фрейм програмного забезпечення, тому може знадобитися додати фільтр формату безпосередньо перед тим, щоб отримати вхідні дані у правильному форматі, а hwdownload не підтримує всі формати на виході – це може необхідно вставити додатковий фільтр формату відразу після графіка, щоб отримати вивід у підтримуваному форматі.

12.1 avgblur_opencl

Застосуйте фільтр середнього розмиття.

Фільтр приймає такі параметри:

sizeX

Встановити розмір горизонтального радіуса. Діапазон становить , [1, 1024]а значення за умовчанням — 1.

planes

Встановіть, які площини фільтрувати. Значення за замовчуванням — 0xf, за яким обробляються всі площини.

sizeY

Встановити розмір вертикального радіуса. Діапазон становить , [1, 1024]а значення за умовчанням — 0. Якщо нуль, sizeXбуде використано значення.

12.1.1 Example

  • Застосуйте фільтр середнього розмиття з горизонтальним і вертикальним розміром 3, встановлюючи для кожного пікселя результату середнє значення області 7x7 з центром на вхідних даних. Для пікселів на краях зображення область не виходить за межі зображення, тому координати поза межами діапазону не використовуються в обчисленнях.
    -i INPUT -vf "hwupload, avgblur_opencl=3, hwdownload" OUTPUT
    

12.2 boxblur_opencl

Застосуйте алгоритм boxblur до вхідного відео.

Він приймає такі параметри:

luma_radius, lr
luma_power, lp
chroma_radius, cr
chroma_power, cp
alpha_radius, ar
alpha_power, ap

Нижче наведено опис прийнятих варіантів.

luma_radius, lr
chroma_radius, cr
alpha_radius, ar

Встановіть вираз для радіуса рамки в пікселях, який використовується для розмивання відповідної вхідної площини.

Значення радіуса має бути невід’ємним числом і не повинно перевищувати значення виразу min(w,h)/2для площин яскравості та альфа, а також min(cw,ch)/2для площин кольоровості.

Значення за умовчанням дляluma_radiusце "2". Якщо не зазначено, chroma_radiusіalpha_radiusза замовчуванням встановлено відповідне значенняluma_radius.

Вирази можуть містити такі константи:

w
h

Ширина та висота введення в пікселях.

cw
ch

Ширина та висота вхідного кольорового зображення в пікселях.

hsub
vsub

Значення підвибірки кольоровості по горизонталі та вертикалі. Наприклад, для піксельного формату "yuv422p" hsubдорівнює 2 і vsubдорівнює 1.

luma_power, lp
chroma_power, cp
alpha_power, ap

Укажіть, скільки разів фільтр boxblur застосовується до відповідної площини.

Значення за умовчанням дляluma_powerдорівнює 2. Якщо не вказано, chroma_powerіalpha_powerза замовчуванням встановлено відповідне значенняluma_power.

Значення 0 вимкне ефект.

12.2.1 Examples

Застосуйте фільтр box-blur, установивши для кожного пікселя результату середнє значення радіусів box-radiuse luma_radius, chroma_radius, alpha_radiusдля кожної площини відповідно. Фільтр буде застосовано luma_power, chroma_power, alpha_powerразів до відповідної площини. Для пікселів на краях зображення радіус не виходить за межі зображення, тому координати поза діапазоном не використовуються в обчисленнях.

  • Застосуйте фільтр box-blur із радіусом яскравості, кольоровості й альфа-каналу, встановленим на 2, і потужністю яскравості, кольоровості й альфа-каналу, встановленим на 3. Фільтр запуститься 3 рази з радіусом box-radius, установленим на 2, для кожної площини зображення.
    -i INPUT -vf "hwupload, boxblur_opencl=luma_radius=2:luma_power=3, hwdownload" OUTPUT
    -i INPUT -vf "hwupload, boxblur_opencl=2:3, hwdownload" OUTPUT
    
  • Застосуйте фільтр boxblur із радіусом яскравості 2, luma_power — 1, chroma_radius — 4, chroma_power — 5, alpha_radius — 3 і alpha_power — 7.

    Для площини яскравості радіус коробки 2x2 буде виконано один раз.

    Для площини кольоровості радіус прямокутника 4x4 буде проходити 5 разів.

    Для альфа-площини радіус прямокутника 3x3 буде проходити 7 разів.

    -i INPUT -vf "hwupload, boxblur_opencl=2:1:4:5:3:7, hwdownload" OUTPUT
    

12.3 colorkey_opencl

Колірний простір RGB.

Фільтр приймає такі параметри:

color

Колір, який буде замінено на прозорість.

similarity

Відсоток схожості з ключовим кольором.

0,01 відповідає лише точному кольору ключа, тоді як 1,0 відповідає всьому.

blend

Відсоток суміші.

0.0 робить пікселі або повністю прозорими, або взагалі непрозорими.

Вищі значення призводять до напівпрозорих пікселів, а з вищою прозорістю колір пікселів схожіший на основний колір.

12.3.1 Examples

  • Зробіть кожен напівзелений піксель у вхідних даних прозорим за допомогою легкого змішування:
    -i INPUT -vf "hwupload, colorkey_opencl=green:0.3:0.1, hwdownload" OUTPUT
    

12.4 convolution_opencl

Застосувати згортку матриці 3x3, 5x5, 7x7.

Фільтр приймає такі параметри:

0m
1m
2m
3m

Задайте матрицю для кожної площини. Матриця - це послідовність із 9, 25 або 49 чисел зі знаком. Значення за замовчуванням для кожної площини 0 0 0 0 1 0 0 0 0.

0rdiv
1rdiv
2rdiv
3rdiv

Встановіть множник для розрахункового значення для кожної площини. Якщо не встановлено або 0, це буде сума всіх елементів матриці. Значення параметра має бути числом з плаваючою речовиною, більшим або рівним 0.0. Значення за замовчуванням: 1.0.

0bias
1bias
2bias
3bias

Встановіть ухил для кожної площини. Це значення додається до результату множення. Корисно, щоб зробити загальне зображення яскравішим або темнішим. Значення параметра має бути числом з плаваючою речовиною, більшим або рівним 0.0. Значення за замовчуванням: 0.0.

12.4.1 Examples

  • Застосувати різкість:
    -i INPUT -vf "hwupload, convolution_opencl=0 -1 0 -1 5 -1 0 -1 0:0 -1 0 -1 5 -1 0 -1 0:0 -1 0 -1 5 -1 0 -1 0:0 -1 0 -1 5 -1 0 -1 0, hwdownload" OUTPUT
    
  • Застосувати розмиття:
    -i INPUT -vf "hwupload, convolution_opencl=1 1 1 1 1 1 1 1 1:1 1 1 1 1 1 1 1 1:1 1 1 1 1 1 1 1 1:1 1 1 1 1 1 1 1 1:1/9:1/9:1/9:1/9, hwdownload" OUTPUT
    
  • Застосувати покращення країв:
    -i INPUT -vf "hwupload, convolution_opencl=0 0 0 -1 1 0 0 0 0:0 0 0 -1 1 0 0 0 0:0 0 0 -1 1 0 0 0 0:0 0 0 -1 1 0 0 0 0:5:1:1:1:0:128:128:128, hwdownload" OUTPUT
    
  • Застосувати визначення країв:
    -i INPUT -vf "hwupload, convolution_opencl=0 1 0 1 -4 1 0 1 0:0 1 0 1 -4 1 0 1 0:0 1 0 1 -4 1 0 1 0:0 1 0 1 -4 1 0 1 0:5:5:5:1:0:128:128:128, hwdownload" OUTPUT
    
  • Застосуйте лапласівський детектор країв, який включає діагоналі:
    -i INPUT -vf "hwupload, convolution_opencl=1 1 1 1 -8 1 1 1 1:1 1 1 1 -8 1 1 1 1:1 1 1 1 -8 1 1 1 1:1 1 1 1 -8 1 1 1 1:5:5:5:1:0:128:128:0, hwdownload" OUTPUT
    
  • Нанесіть тиснення:
    -i INPUT -vf "hwupload, convolution_opencl=-2 -1 0 -1 1 1 0 1 2:-2 -1 0 -1 1 1 0 1 2:-2 -1 0 -1 1 1 0 1 2:-2 -1 0 -1 1 1 0 1 2, hwdownload" OUTPUT
    

12.5 erosion_opencl

Застосуйте ефект ерозії до відео.

Цей фільтр замінює піксель локальним (3x3) мінімумом.

Він приймає такі варіанти:

threshold0
threshold1
threshold2
threshold3

Обмежте максимальну зміну для кожної площини. Діапазон становить , [0, 65535]а значення за умовчанням — 65535. Якщо 0, площина залишиться без змін.

coordinates

Прапорець, який визначає піксель, на який потрібно посилатися. Діапазон становить , [0, 255]а значення за замовчуванням — 255, тобто використовуються всі вісім пікселів.

Прапори до локальної області координат 3x3 з центром x:

1 2 3

4 х 5

6 7 8

12.5.1 Example

  • Застосуйте ерозійний фільтр із значенням threshold0 30, threshold1 40, threshold2 50 і координатами 231, установивши для кожного пікселя результату локальний мінімум між пікселями: 1, 2, 3, 6, 7, 8 3x3 область із центром у вхідних даних. Якщо різниця між вхідним пікселем і локальним мінімумом перевищує порогове значення відповідної площини, вихідний піксель буде встановлено як вхідний піксель - поріг відповідної площини.
    -i INPUT -vf "hwupload, erosion_opencl=30:40:50:coordinates=231, hwdownload" OUTPUT
    

12.6 deshake_opencl

Фільтр стабілізації відео на основі характеристик.

Фільтр приймає такі параметри:

tripod

Імітує штатив, запобігаючи будь-якому руху камери з вихідного кадру. За замовчуванням 0.

debug

Чи має відображатися додаткова інформація про налагодження як у обробленому виведенні, так і на консолі.

Зауважте, що для перегляду виводу налагодження консолі вам також потрібно буде перейти -v verboseдо ffmpeg.

Збіги точок перегляду у вихідному відео підтримуються лише для входу RGB.

За замовчуванням 0.

adaptive_crop

Незалежно від того, чи потрібно робити невелике обрізання на межах, щоб зменшити кількість дзеркальних пікселів.

За замовчуванням 1.

refine_features

Чи потрібно уточнювати точки функцій на субпіксельному рівні.

Це можна вимкнути для невеликого підвищення продуктивності за рахунок точності.

За замовчуванням 1.

smooth_strength

Інтенсивність згладжування, застосованого до шляху камери від 0.0до 1.0.

1.0є максимальною міцністю згладжування, тоді як значення, менші за це, призводять до меншого згладжування.

0.0змушує фільтр адаптивно вибирати силу згладжування для кожного кадру.

За замовчуванням 0.0.

smooth_window_multiplier

Контролює розмір вікна згладжування (кількість кадрів, буферизованих для визначення інформації про рух).

Розмір вікна згладжування визначається множенням частоти кадрів відео на це число.

Припустимі значення від 0.1до 10.0.

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

За замовчуванням 2.0.

12.6.1 Examples

  • Стабілізація відео з фіксованим середнім рівнем згладжування:
    -i INPUT -vf "hwupload, deshake_opencl=smooth_strength=0.5, hwdownload" OUTPUT
    
  • Стабілізація відео за допомогою налагодження (як у консолі, так і у відтвореному відео):
    -i INPUT -filter_complex "[0:v]format=rgba, hwupload, deshake_opencl=debug=1, hwdownload, format=rgba, format=yuv420p" -v verbose OUTPUT
    

12.7 dilation_opencl

Застосуйте ефект розширення до відео.

Цей фільтр замінює піксель локальним (3x3) максимумом.

Він приймає такі варіанти:

threshold0
threshold1
threshold2
threshold3

Обмежте максимальну зміну для кожної площини. Діапазон становить , [0, 65535]а значення за умовчанням — 65535. Якщо 0, площина залишиться без змін.

coordinates

Прапорець, який визначає піксель, на який потрібно посилатися. Діапазон становить , [0, 255]а значення за замовчуванням — 255, тобто використовуються всі вісім пікселів.

Прапори до локальної області координат 3x3 з центром x:

1 2 3

4 х 5

6 7 8

12.7.1 Example

  • Застосуйте фільтр розширення з threshold0, встановленим на 30, threshold1, встановленим на 40, threshold2, встановленим на 50, і координатами, встановленими на 231, установивши для кожного пікселя виведення локальний максимум між пікселями: 1, 2, 3, 6, 7, 8 3x3 область із центром у вхідних даних. Якщо різниця між вхідним пікселем і локальним максимумом перевищує порогове значення відповідної площини, вихідний піксель буде встановлено на вхідний піксель + поріг відповідної площини.
    -i INPUT -vf "hwupload, dilation_opencl=30:40:50:coordinates=231, hwdownload" OUTPUT
    

12.8 nlmeans_opencl

Нелокальний означає фільтр усунення шумів через OpenCL, цей фільтр приймає ті самі параметри, що й nlmeans .

12.9 overlay_opencl

Накладіть одне відео на інше.

Він має два входи і один вихід. Перший вхід – це «основне» відео, на яке накладено другий вхід. Цей фільтр потребує однакового розташування пам’яті для всіх входів. Тому може знадобитися перетворення формату.

Фільтр приймає такі параметри:

x

Установіть координату x накладеного відео на основне відео. Значення за замовчуванням: 0.

y

Установіть координату y накладеного відео на основне відео. Значення за замовчуванням: 0.

12.9.1 Examples

  • Накладіть ЛОГОТИП зображення у верхній лівий кут ВХІДНОГО відео. Обидва входи мають формат yuv420p.
    -i INPUT -i LOGO -filter_complex "[0:v]hwupload[a], [1:v]format=yuv420p, hwupload[b], [a][b]overlay_opencl, hwdownload" OUTPUT
    
  • Входи мають однакову структуру пам’яті для кольорових каналів, накладення має додаткову альфа-площину, як INPUT – yuv420p, а LOGO – yuva420p.
    -i INPUT -i LOGO -filter_complex "[0:v]hwupload[a], [1:v]format=yuva420p, hwupload[b], [a][b]overlay_opencl, hwdownload" OUTPUT
    

12.10 pad_opencl

Додайте відступи до вхідного зображення та розмістіть вихідний вхід у наданих xкоординатах y.

Він приймає такі варіанти:

width, w
height, h

Укажіть вираз для розміру вихідного зображення з доданими відступами. Якщо значення widthабо heightдорівнює 0, для виведення використовується відповідний вхідний розмір.

Вираз widthможе посилатися на значення, встановлене heightвиразом, і навпаки.

Значення за замовчуванням widthі heightдорівнює 0.

x
y

Укажіть зміщення для розміщення вхідного зображення в межах доповненої області відносно верхньої/лівої межі вихідного зображення.

Вираз xможе посилатися на значення, встановлене y виразом, і навпаки.

Значення за замовчуванням xі yдорівнює 0.

Якщо xабо yоцінюється як від’ємне число, вони будуть змінені таким чином, щоб вхідне зображення було центровано на доповненій області.

color

Укажіть колір виділеної області. Щоб дізнатися про синтаксис цього параметра, перевірте розділ (ffmpeg-utils)"Колір" у посібнику ffmpeg-utils .

aspect

Перейдіть до аспекту замість роздільної здатності.

Значення параметрів width, height, xі y є виразами, що містять такі константи:

in_w
in_h

Ширина та висота вхідного відео.

iw
ih

Це те саме, що in_wі in_h.

out_w
out_h

Ширина та висота виводу (розмір доповненої області), визначені виразами widthand .height

ow
oh

Це те саме, що out_wі out_h.

x
y

Зміщення x і y, як визначено виразами xand y , або NAN, якщо ще не вказано.

a

те саме, що iw/ih

sar

формат вхідного зразка

dar

формат вхідного дисплея, такий самий, як ( iw/ ih) *sar

12.11 prewitt_opencl

Застосуйте оператор Prewitt ( https://en.wikipedia.org/wiki/Prewitt_operator ) для введення відеопотоку.

Фільтр приймає такі параметри:

planes

Встановіть, які площини фільтрувати. Значення за замовчуванням — 0xf, за яким обробляються всі площини.

scale

Встановіть значення, яке буде помножено на відфільтрований результат. Діапазон становить , [0.0, 65535]а значення за умовчанням — 1.0.

delta

Встановіть значення, яке буде додано до відфільтрованого результату. Діапазон становить , [-65535, 65535]а значення за умовчанням — 0.0.

12.11.1 Example

  • Застосуйте оператор Превітта зі значенням масштабу 2 і дельтою 10.
    -i INPUT -vf "hwupload, prewitt_opencl=scale=2:delta=10, hwdownload" OUTPUT
    

12.12 program_opencl

Фільтруйте відео за допомогою програми OpenCL.

source

Вихідний файл програми OpenCL.

kernel

Назва ядра в програмі.

inputs

Кількість входів у фільтр. За замовчуванням 1.

size, s

Розмір вихідних кадрів. За замовчуванням те саме, що й перший вхід.

Фільтр program_openclтакож підтримує параметри синхронізації кадрів .

Вихідний файл програми повинен містити функцію ядра з заданим іменем, яка запускатиметься один раз для кожної площини виводу. Кожен запуск на площині ставиться в чергу як окремий 2D глобальний NDRange з одним робочим елементом для кожного пікселя, який буде згенерований. Таким чином, глобальне зміщення ідентифікатора для кожного робочого елемента є координатами пікселя в цільовому зображенні.

Функція ядра повинна приймати такі аргументи:

  • Зображення пункту призначення,__write_only image2d_t .

    Це зображення стане вихідним; ядро має записати все це.

  • Індекс кадру,unsigned int .

    Це лічильник, який починається з нуля і збільшується на одиницю для кожного кадру.

  • Вихідні зображення,__read_only image2d_t .

    Це найновіші зображення для кожного входу. Ядро може читати з них для генерування виводу, але в них не можна записувати.

Приклади програм:

  • Скопіюйте вхідні дані у вихідні (вихідні дані мають бути такого ж розміру, як і вхідні).
    __kernel void copy(__write_only image2d_t призначення,
                       unsigned int індекс,
                       __read_only image2d_t джерело)
    {
        const sampler_t sampler = CLK_NORMALIZED_COORDS_FALSE;
    
        int2 location = (int2)(get_global_id(0), get_global_id(1));
    
        значення float4 = read_imagef(джерело, вибірка, розташування);
    
        write_imagef(пункт призначення, розташування, значення);
    }
    
  • Застосуйте просте перетворення, обертаючи вхідні дані на величину, що збільшується разом із лічильником індексів. Значення пікселів лінійно інтерполюються семплером, і вихідні дані не обов’язково мають ті самі розміри, що й вхідні.
    __kernel void rotate_image(__write_only image2d_t dst,
                               unsigned int індекс,
                               __read_only image2d_t src)
    {
        const sampler_t sampler = (CLK_NORMALIZED_COORDS_FALSE |
                                   CLK_FILTER_LINEAR);
    
        float angle = (float)index / 100.0f;
    
        float2 dst_dim = convert_float2(get_image_dim(dst));
        float2 src_dim = convert_float2(get_image_dim(src));
    
        float2 dst_cen = dst_dim / 2.0f;
        float2 src_cen = src_dim / 2.0f;
    
        int2 dst_loc = (int2)(get_global_id(0), get_global_id(1));
    
        float2 dst_pos = convert_float2(dst_loc) - dst_cen;
        float2 src_pos = {
            cos(кут) * dst_pos.x - sin(кут) * dst_pos.y,
            sin(кут) * dst_pos.x + cos(кут) * dst_pos.y
        };
        src_pos = src_pos * src_dim / dst_dim;
    
        float2 src_loc = src_pos + src_cen;
    
        якщо (src_loc.x < 0.0f || src_loc.y < 0.0f ||
            src_loc.x > src_dim.x || src_loc.y > src_dim.y)
            write_imagef(dst, dst_loc, 0,5f);
        інше
            write_imagef(dst, dst_loc, read_imagef(src, sampler, src_loc));
    }
    
  • Змішайте два входи разом, причому кількість кожного використаного входу змінюється залежно від лічильника індексів.
    __kernel void blend_images(__write_only image2d_t dst,
                               unsigned int індекс,
                               __read_only image2d_t src1,
                               __read_only image2d_t src2)
    {
        const sampler_t sampler = (CLK_NORMALIZED_COORDS_FALSE |
                                   CLK_FILTER_LINEAR);
    
        float blend = (cos((float)index / 50.0f) + 1.0f) / 2.0f;
    
        int2 dst_loc = (int2)(get_global_id(0), get_global_id(1));
        int2 src1_loc = dst_loc * get_image_dim(src1) / get_image_dim(dst);
        int2 src2_loc = dst_loc * get_image_dim(src2) / get_image_dim(dst);
    
        float4 val1 = read_imagef(src1, sampler, src1_loc);
        float4 val2 = read_imagef(src2, sampler, src2_loc);
    
        write_imagef(dst, dst_loc, val1 * blend + val2 * (1.0f - blend));
    }
    

12.13 remap_opencl

Перепризначайте пікселі за допомогою вхідного відеопотоку 2nd: Xmap і 3rd: Ymap.

Цільовий піксель у позиції (X, Y) буде вибрано з позиції джерела (x, y), де x = Xmap(X, Y) і y = Ymap(X, Y). Якщо значення зіставлення виходять за межі діапазону, для пікселя призначення буде використано нульове значення для пікселя.

Вхідні відеопотоки Xmap і Ymap повинні мати однакові розміри. Вихідний відеопотік матиме розміри відеопотоку Xmap/Ymap. Вхідні відеопотоки Xmap і Ymap є 32-бітним форматом плаваючих пікселів, одноканальним.

interp

Укажіть інтерполяцію, яка використовується для перевідображення пікселів. Дозволені значення nearта linear. Значення за замовчуванням: linear.

fill

Укажіть колір невідображених пікселів. Щоб дізнатися про синтаксис цього параметра, перевірте розділ (ffmpeg-utils)"Колір" у посібнику ffmpeg-utils . Типовий колір: black.

12.14 roberts_opencl

Застосуйте оператор хреста Робертса ( https://en.wikipedia.org/wiki/Roberts_cross ) для введення відеопотоку.

Фільтр приймає такі параметри:

planes

Встановіть, які площини фільтрувати. Значення за замовчуванням — 0xf, за яким обробляються всі площини.

scale

Встановіть значення, яке буде помножено на відфільтрований результат. Діапазон становить , [0.0, 65535]а значення за умовчанням — 1.0.

delta

Встановіть значення, яке буде додано до відфільтрованого результату. Діапазон становить , [-65535, 65535]а значення за умовчанням — 0.0.

12.14.1 Example

  • Застосуйте оператор хреста Робертса з масштабом 2 і дельтою 10
    -i INPUT -vf "hwupload, roberts_opencl=scale=2:delta=10, hwdownload" OUTPUT
    

12.15 sobel_opencl

Застосуйте оператор Sobel ( https://en.wikipedia.org/wiki/Sobel_operator ) для введення відеопотоку.

Фільтр приймає такі параметри:

planes

Встановіть, які площини фільтрувати. Значення за замовчуванням — 0xf, за яким обробляються всі площини.

scale

Встановіть значення, яке буде помножено на відфільтрований результат. Діапазон становить , [0.0, 65535]а значення за умовчанням — 1.0.

delta

Встановіть значення, яке буде додано до відфільтрованого результату. Діапазон становить , [-65535, 65535]а значення за умовчанням — 0.0.

12.15.1 Example

  • Застосуйте оператор Sobel зі шкалою 2 і дельтою 10
    -i INPUT -vf "hwupload, sobel_opencl=scale=2:delta=10, hwdownload" OUTPUT
    

12.16 tonemap_opencl

Виконайте перетворення HDR(PQ/HLG) на SDR за допомогою тонального відображення.

Він приймає такі параметри:

tonemap

Укажіть оператор тонального відображення, який буде використовуватися. Те саме, що параметр карти тонів у карті тонів .

param

Налаштуйте алгоритм тонального відображення. те саме, що параметр param у карті тонів .

desat

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

Значення за замовчуванням — 0,5, а алгоритм тут дещо відрізняється від поточної версії тональної карти процесора. Налаштування 0.0 вимикає цей параметр.

threshold

Параметри алгоритму відображення тонів точно налаштовуються для кожної сцени. Порогове значення використовується для виявлення зміни сцени чи ні. Якщо відстань між поточною середньою яскравістю кадру та поточним поточним середнім перевищує порогове значення, ми перераховуємо середню та пікову яскравість сцени. Значення за замовчуванням 0,2.

format

Вкажіть вихідний формат пікселів.

Наразі підтримуються такі формати:

p010
nv12
range, r

Установіть вихідний колірний діапазон.

Можливі значення:

tv/mpeg
pc/jpeg

За замовчуванням таке ж, як і введення.

primaries, p

Встановіть основні кольори виводу.

Можливі значення:

bt709
bt2020

За замовчуванням таке ж, як і введення.

transfer, t

Встановіть вихідні характеристики передачі.

Можливі значення:

bt709
bt2020

Типовим є bt709.

matrix, m

Встановіть вихідну матрицю простору кольорів.

Можливі значення:

bt709
bt2020

За замовчуванням таке ж, як і введення.

12.16.1 Example

  • Перетворюйте відео HDR(PQ/HLG) у формат bt2020-transfer-characteristic p010 за допомогою лінійного оператора.
    -i INPUT -vf "format=p010,hwupload,tonemap_opencl=t=bt2020:tonemap=linear:format=p010,hwdownload,format=p010" OUTPUT
    

12.17 unsharp_opencl

Збільште різкість або розмийте вхідне відео.

Він приймає такі параметри:

luma_msize_x, lx

Встановіть горизонтальний розмір матриці яскравості. Діапазон становить , [1, 23]а значення за умовчанням — 5.

luma_msize_y, ly

Встановіть вертикальний розмір матриці яскравості. Діапазон становить , [1, 23]а значення за умовчанням — 5.

luma_amount, la

Встановіть силу ефекту яскравості. Діапазон становить , [-10, 10]а значення за умовчанням — 1.0.

Від’ємні значення призведуть до розмиття вхідного відео, тоді як позитивні значення збільшать його різкість, нульове значення вимкне ефект.

chroma_msize_x, cx

Встановіть горизонтальний розмір кольорової матриці. Діапазон становить , [1, 23]а значення за умовчанням — 5.

chroma_msize_y, cy

Встановіть вертикальний розмір кольорової матриці. Діапазон становить , [1, 23]а значення за умовчанням — 5.

chroma_amount, ca

Встановіть силу ефекту кольоровості. Діапазон становить , [-10, 10]а значення за умовчанням — 0.0.

Від’ємні значення призведуть до розмиття вхідного відео, тоді як позитивні значення збільшать його різкість, нульове значення вимкне ефект.

Усі параметри є необов’язковими та за замовчуванням еквівалентні рядку "5:5:1.0:5:5:0.0".

12.17.1 Examples

  • Застосувати потужний ефект підвищення яскравості:
    -i INPUT -vf "hwupload, unsharp_opencl=luma_msize_x=7:luma_msize_y=7:luma_amount=2.5, hwdownload" OUTPUT
    
  • Застосуйте сильне розмиття параметрів яскравості та кольоровості:
    -i INPUT -vf "hwupload, unsharp_opencl=7:7:-2:7:7:-2, hwdownload" OUTPUT
    

12.18 xfade_opencl

Перехресне згасання двох відео з власним ефектом переходу за допомогою OpenCL.

Він приймає такі варіанти:

transition

Встановіть один із можливих ефектів переходу.

custom

Виберіть спеціальний ефект переходу, фактичний опис переходу буде вибрано з параметрів джерела та ядра.

fade
wipeleft
wiperight
wipeup
wipedown
slideleft
slideright
slideup
slidedown

Перехід за замовчуванням — згасання.

source

Вихідний файл програми OpenCL для спеціального переходу.

kernel

Встановіть ім'я ядра, яке буде використовуватися для власного переходу з вихідного файлу програми.

duration

Встановити тривалість переходу відео.

offset

Встановіть час початку переходу відносно першого відео.

Вихідний файл програми повинен містити функцію ядра з заданим іменем, яка запускатиметься один раз для кожної площини виводу. Кожен запуск на площині ставиться в чергу як окремий 2D глобальний NDRange з одним робочим елементом для кожного пікселя, який буде згенерований. Таким чином, глобальне зміщення ідентифікатора для кожного робочого елемента є координатами пікселя в цільовому зображенні.

Функція ядра повинна приймати такі аргументи:

  • Зображення призначення,__write_only image2d_t .

    Це зображення стане вихідним; ядро має записати все це.

  • Перше вихідне зображення, __read_only image2d_t. Друге вихідне зображення, __read_only image2d_t.

    Це найновіші зображення для кожного входу. Ядро може читати з них для генерування виводу, але в них не можна записувати.

  • Прогрес переходу, float. Це значення завжди між 0 і 1 включно.

Приклади програм:

  • Застосувати ефект переходу шторки з точками:
    __kernel void blend_images(__write_only image2d_t dst,
                               __read_only image2d_t src1,
                               __read_only image2d_t src2,
                               поплавковий прогрес)
    {
        const sampler_t sampler = (CLK_NORMALIZED_COORDS_FALSE |
                                   CLK_FILTER_LINEAR);
        int2 p = (int2)(get_global_id(0), get_global_id(1));
        float2 rp = (float2)(get_global_id(0), get_global_id(1));
        float2 dim = (float2)(get_image_dim(src1).x, get_image_dim(src1).y);
        rp = rp / dim;
    
        float2 точки = (float2)(20.0, 20.0);
        float2 центр = (float2)(0,0);
        float2 не використовується;
    
        float4 val1 = read_imagef(src1, sampler, p);
        float4 val2 = read_imagef(src2, sampler, p);
        bool next = distance(fract(rp * dots, &unused), (float2)(0.5, 0.5)) < (progress / distance(rp, center));
    
        write_imagef(dst, p, наступний ? val1 : val2);
    }
    

13 VAAPI Video Filters

Відеофільтри VAAPI зазвичай використовуються з декодером VAAPI та кодувальником VAAPI. Нижче наведено опис відеофільтрів VAAPI.

Щоб увімкнути компіляцію цих фільтрів, вам потрібно налаштувати FFmpeg за допомогою --enable-vaapi.

Щоб використовувати фільтри vaapi, потрібно правильно налаштувати пристрій vaapi. Для отримання додаткової інформації прочитайте https://trac.ffmpeg.org/wiki/Hardware/VAAPI

13.1 overlay_vaapi

Накладіть одне відео на інше.

Він має два входи і один вихід. Перший вхід – це «основне» відео, на яке накладено другий вхід. Цей фільтр потребує однакового розташування пам’яті для всіх входів. Тому може знадобитися перетворення формату.

Фільтр приймає такі параметри:

x

Установіть координату x накладеного відео на основне відео. Значення за замовчуванням: 0.

y

Установіть координату y накладеного відео на основне відео. Значення за замовчуванням: 0.

w

Установіть ширину накладеного відео на основне відео. Значенням за замовчуванням є ширина вхідного накладеного відео.

h

Установіть висоту накладеного відео на основне відео. Значенням за замовчуванням є висота вхідного накладеного відео.

alpha

Встановіть пороги виявлення блокування. Дозволений діапазон від 0,0 до 1,0, для цього потрібне вхідне відео з альфа-каналом. Значення за замовчуванням: 0.0.

13.1.1 Examples

  • Накладіть ЛОГОТИП зображення у верхній лівий кут ВХІДНОГО відео. Обидва входи для цього фільтра мають формат yuv420p.
    -i INPUT -i LOGO -filter_complex "[0:v]hwupload[a], [1:v]format=yuv420p, hwupload[b], [a][b]overlay_vaapi" OUTPUT
    
  • Накладіть ЛОГОТИП зображення зі зміщенням (200, 100) від верхнього лівого кута ВХІДНОГО відео. Входи мають однакову структуру пам’яті для кольорових каналів, накладення має додаткову альфа-площину, як INPUT – yuv420p, а LOGO – yuva420p.
    -i INPUT -i LOGO -filter_complex "[0:v]hwupload[a], [1:v]format=yuva420p, hwupload[b], [a][b]overlay_vaapi=x=200:y=100:w=400:h=300:alpha=1.0, hwdownload, format=nv12" OUTPUT
    

13.2 tonemap_vaapi

Виконайте перетворення HDR (розширений динамічний діапазон) у SDR (стандартний динамічний діапазон) із тональним відображенням. Він відображає динамічний діапазон вмісту HDR10 на вміст SDR. Зараз він приймає лише HDR10 як вхідний сигнал.

Він приймає такі параметри:

format

Вкажіть вихідний формат пікселів.

Наразі підтримуються такі формати:

p010
nv12

Типовим є nv12.

primaries, p

Встановіть основні кольори виводу.

За замовчуванням таке ж, як і введення.

transfer, t

Встановіть вихідні характеристики передачі.

Типовим є bt709.

matrix, m

Встановіть вихідну матрицю простору кольорів.

За замовчуванням таке ж, як і введення.

13.2.1 Example

  • Перетворення HDR(HDR10) відео у формат bt2020-transfer-characteristic p010
    tonemap_vaapi=format=p010:t=bt2020-10
    

14 Video Sources

Нижче наведено опис доступних на даний момент джерел відео.

14.1 buffer

Буферизуйте відеокадри та зробіть їх доступними для ланцюжка фільтрів.

Це джерело в основному призначене для програмного використання, зокрема через інтерфейс, визначений уlibavfilter/buffersrc.h.

Він приймає такі параметри:

video_size

Укажіть розмір (ширину та висоту) буферизованих відеокадрів. Щоб дізнатися про синтаксис цього параметра, перевірте розділ (ffmpeg-utils) «Розмір відео» в посібнику ffmpeg-utils .

width

Ширина вхідного відео.

height

Висота вхідного відео.

pix_fmt

Рядок, що представляє формат пікселів буферизованих відеокадрів. Це може бути число, що відповідає піксельному формату, або назва піксельного формату.

time_base

Укажіть часову базу, яка передбачається мітками часу буферизованих кадрів.

frame_rate

Укажіть очікувану частоту кадрів для відеопотоку.

pixel_aspect, sar

Зразок (піксель) співвідношення сторін вхідного відео.

sws_param

Ця опція застаріла та ігнорується. Додайте до опису filtergraph, щоб указати прапорці swscale для автоматично вставлених масштабувальників. Див . Синтаксис Filtergraph . sws_flags=flags;

hw_frames_ctx

Якщо використовується апаратний піксельний формат, це має бути посилання на AVHWFramesContext, що описує вхідні кадри.

Наприклад:

buffer=width=320:height=240:pix_fmt=yuv410p:time_base=1/24:sar=1

дасть вказівку джерелу приймати відеокадри розміром 320x240 і форматом "yuv410p", припускаючи 1/24 як мітки часу, часову базу та квадратні пікселі (співвідношення сторін зразка 1:1). Оскільки формат пікселя з назвою "yuv410p" відповідає числу 6 (перевірте визначення enum AVPixelFormat уlibavutil/pixfmt.h), цей приклад відповідає:

buffer=size=320x240:pixfmt=6:time_base=1/24:pixel_aspect=1/1

Крім того, параметри можна вказати як плоский рядок, але цей синтаксис застарів:

width: height: pix_fmt: time_base.num: time_base.den: pixel_aspect.num:pixel_aspect.den

14.2 cellauto

Створіть шаблон, створений елементарним клітинним автоматом.

Початковий стан клітинного автомата можна визначити через filenameіpatternпараметри. Якщо такі параметри не вказані, початковий стан створюється випадковим чином.

У кожному новому кадрі новий рядок відео заповнюється результатом клітинного автомата наступного покоління. Поведінка, коли весь кадр заповнений, визначаєтьсяscrollваріант.

Це джерело приймає такі варіанти:

filename, f

Прочитати початковий стан клітинного автомата, тобто початковий рядок, із зазначеного файлу. У файлі кожен символ без пробілу вважається живою коміркою, новий рядок завершує рядок, а наступні символи у файлі ігноруються.

pattern, p

Прочитати початковий стан клітинного автомата, тобто початковий рядок, із зазначеного рядка.

Кожен непробільний символ у рядку вважається живою коміркою, новий рядок завершує рядок, а наступні символи в рядку ігноруються.

rate, r

Встановіть швидкість відео, тобто кількість кадрів, що генеруються за секунду. За замовчуванням 25.

random_fill_ratio, ratio

Встановіть випадковий коефіцієнт заповнення для початкового рядка клітинного автомата. Це значення числа з плаваючою комою в діапазоні від 0 до 1, за замовчуванням 1/PHI.

Цей параметр ігнорується, якщо вказано файл або шаблон.

random_seed, seed

Встановіть початкове значення для випадкового заповнення початкового рядка, має бути цілим числом від 0 до UINT32_MAX. Якщо не вказано або явно встановлено значення -1, фільтр намагатиметься використовувати хороше випадкове початкове число на основі найкращих зусиль.

rule

Встановіть правило клітинного автомата, це число в діапазоні від 0 до 255. Значення за замовчуванням 110.

size, s

Встановіть розмір вихідного відео. Щоб дізнатися про синтаксис цього параметра, перевірте розділ (ffmpeg-utils) «Розмір відео» в посібнику ffmpeg-utils .

Якщоfilenameабоpatternвказано, розмір за замовчуванням встановлюється на ширину вказаного рядка початкового стану, а висота встановлюється на width* PHI.

Якщоsizeвстановлено, він має містити ширину вказаного рядка шаблону, і вказаний шаблон буде відцентровано у більшому рядку.

Якщо ім’я файлу або рядок шаблону не вказано, значення розміру за замовчуванням становить «320x518» (використовується для випадково згенерованого початкового стану).

scroll

Якщо встановлено значення 1, прокручувати вихідні дані вгору, коли всі рядки вже заповнено. Якщо встановлено значення 0, новий згенерований рядок буде записаний поверх верхнього рядка відразу після заповнення нижнього рядка. За замовчуванням 1.

start_full, full

Якщо встановлено значення 1, повністю заповнити вивід згенерованими рядками перед виведенням першого кадру. Це типова поведінка, для вимкнення встановіть значення 0.

stitch

Якщо встановлено значення 1, зшийте разом лівий і правий краї ряду. Це типова поведінка, для вимкнення встановіть значення 0.

14.2.1 Examples

  • Прочитайте початковий стан зpatternі вкажіть вихідний файл розміром 200x400.
    cellauto=f=pattern:s=200x400
    
  • Створіть випадковий початковий рядок шириною 200 клітинок із коефіцієнтом заповнення 2/3:
    cellauto=ratio=2/3:s=200x200
    
  • Створіть шаблон, створений за правилом 18, починаючи з однієї живої клітинки з центром у початковому рядку шириною 100:
    cellauto=p=@:s=100x400:full=0:rule=18
    
  • Вкажіть більш розгорнутий початковий візерунок:
    cellauto=p='@@ @ @@':s=100x400:full=0:rule=18
    

14.3 coreimagesrc

Джерело відео, створене на GPU за допомогою Apple CoreImage API на OSX.

Це джерело відео є спеціалізованою версією відеофільтра coreimage . Використовуйте основний генератор зображень на початку застосованого ланцюжка фільтрів, щоб створити вміст.

Джерело відео coreimagesrc приймає такі параметри:

list_generators

Перелічіть усі доступні генератори разом із усіма їхніми відповідними параметрами, а також можливі мінімальні та максимальні значення разом із значеннями за замовчуванням.

list_generators=true
size, s

Укажіть розмір отриманого відео. Щоб дізнатися про синтаксис цього параметра, перевірте розділ (ffmpeg-utils) «Розмір відео» в посібнику ffmpeg-utils . Значення за замовчуванням — 320x240.

rate, r

Укажіть частоту кадрів отриманого відео як кількість кадрів, згенерованих за секунду. Це має бути рядок у форматі frame_rate_num/ frame_rate_den, ціле число, число з плаваючою комою або дійсна абревіатура частоти кадрів відео. Значення за замовчуванням — «25».

sar

Установіть зразкове співвідношення сторін отриманого відео.

duration, d

Встановіть тривалість вихідного відео. Перегляньте (ffmpeg-utils) розділ «Тривалість часу» в посібнику ffmpeg-utils(1) , щоб дізнатися про прийнятний синтаксис.

Якщо не вказано або вказана тривалість є від’ємною, відео має генеруватися назавжди.

Крім того, приймаються всі параметри відеофільтру coreimage . Повний ланцюжок фільтрів можна використовувати для подальшої обробки згенерованих вхідних даних без передачі CPU-HOST. Додаткову інформацію дивіться в документації та прикладах coreimage .

14.3.1 Examples

  • Використовуйте CIQRCodeGenerator, щоб створити QR-код для домашньої сторінки FFmpeg, наданий як повний і екранований командний рядок для стандартної оболонки bash від Apple:
    ffmpeg -f lavfi -i coreimagesrc=s=100x100:filter=CIQRCodeGenerator@inputMessage=https\\\\\://FFmpeg.org/@inputCorrectionLevel=H -frames:v 1 QRCode.png
    

    Цей приклад еквівалентний прикладу QRCode coreimage без потреби у джерелі відео nullsrc.

14.4 gradients

Згенеруйте кілька градієнтів.

size, s

Встановити розмір рамки. Щоб дізнатися про синтаксис цього параметра, перевірте розділ (ffmpeg-utils) «Розмір відео» в посібнику ffmpeg-utils . Значення за замовчуванням - "640x480".

rate, r

Встановіть частоту кадрів, виражену як кількість кадрів за секунду. Значення за замовчуванням - "25".

c0, c1, c2, c3, c4, c5, c6, c7

Набір 8 кольорів. Значення за замовчуванням для кольорів вибираються випадково.

x0, y0, y0, y1

Встановіть вихідну та кінцеву точки лінії градієнта. Якщо значення негативне або виходить за межі діапазону, вибираються випадкові.

nb_colors, n

Встановіть кількість кольорів для одночасного використання. Дозволений діапазон — від 2 до 8. Значення за замовчуванням — 2.

seed

Встановіть початкове значення для вибору точок лінії градієнта.

duration, d

Встановіть тривалість вихідного відео. Перегляньте (ffmpeg-utils) розділ «Тривалість часу» в посібнику ffmpeg-utils(1) , щоб дізнатися про прийнятний синтаксис.

Якщо не вказано або вказана тривалість є від’ємною, відео має генеруватися назавжди.

speed

Встановити швидкість обертання градієнтів.

type, t

Встановіть тип градієнтів, може бути linearабо radialабо circularабо spiral.

14.5 mandelbrot

Створіть фрактал набору Мандельброта та поступово наближайте до точки, визначеної кнопками start_xта start_y.

Це джерело приймає такі варіанти:

end_pts

Встановіть значення кінцевих балів. Значення за замовчуванням 400.

end_scale

Встановіть значення шкали терміналу. Має бути значення з плаваючою комою. Значення за замовчуванням 0,3.

inner

Встановіть режим внутрішнього забарвлення, тобто алгоритм, який використовується для малювання внутрішньої області фрактала Мандельброта.

Він має приймати одне з таких значень:

black

Встановити чорний режим.

convergence

Показати час до конвергенції.

mincol

Установіть колір на основі точки, найближчої до початку ітерацій.

period

Встановити режим періоду.

Значення за замовчуванням: mincol.

bailout

Встановіть значення викупу. Значення за замовчуванням 10,0.

maxiter

Встановіть максимальну кількість ітерацій, які виконує алгоритм візуалізації. Значення за замовчуванням – 7189.

outer

Встановити зовнішній режим фарбування. Він повинен приймати одне з таких значень:

iteration_count

Встановити режим підрахунку ітерацій.

normalized_iteration_count

встановити нормалізований режим підрахунку ітерацій.

Значення за замовчуванням: normalized_iteration_count.

rate, r

Встановіть частоту кадрів, виражену як кількість кадрів за секунду. Значення за замовчуванням - "25".

size, s

Встановити розмір рамки. Щоб дізнатися про синтаксис цього параметра, перевірте розділ (ffmpeg-utils) «Розмір відео» в посібнику ffmpeg-utils . Значення за замовчуванням - "640x480".

start_scale

Встановіть початкове значення масштабу. Значення за замовчуванням 3,0.

start_x

Встановіть початкову позицію x. Має бути значення з плаваючою комою від -100 до 100. Значення за замовчуванням: -0,743643887037158704752191506114774.

start_y

Встановіть початкову позицію y. Має бути значення з плаваючою комою від -100 до 100. Значення за замовчуванням: -0,131825904205311970493132056385139.

14.6 mptestsrc

Створюйте різні тестові шаблони, створені тестовим фільтром MPlayer.

Розмір згенерованого відео є фіксованим і становить 256x256. Це джерело корисно, зокрема, для тестування функцій кодування.

Це джерело приймає такі варіанти:

rate, r

Укажіть частоту кадрів отриманого відео як кількість кадрів, згенерованих за секунду. Це має бути рядок у форматі frame_rate_num/ frame_rate_den, ціле число, число з плаваючою комою або дійсна абревіатура частоти кадрів відео. Значення за замовчуванням — «25».

duration, d

Встановіть тривалість вихідного відео. Перегляньте (ffmpeg-utils) розділ «Тривалість часу» в посібнику ffmpeg-utils(1) , щоб дізнатися про прийнятний синтаксис.

Якщо не вказано або вказана тривалість є від’ємною, відео має генеруватися назавжди.

test, t

Встановіть номер або назву тесту для виконання. Підтримувані тести:

dc_luma
dc_chroma
freq_luma
freq_chroma
amp_luma
amp_chroma
cbp
mv
ring1
ring2
all
max_frames, m

Встановіть максимальну кількість кадрів, згенерованих для кожного тесту, значення за замовчуванням становить 30.

Значення за замовчуванням — «усі», яке буде циклічно переглядати список усіх тестів.

Деякі приклади:

mptestsrc=t=dc_luma

створить тестовий шаблон "dc_luma".

14.7 frei0r_src

Надайте вільне джерело.

Щоб увімкнути компіляцію цього фільтра, вам потрібно встановити заголовок frei0r і налаштувати FFmpeg за допомогою --enable-frei0r.

Це джерело приймає такі параметри:

size

Розмір відео для створення. Щоб дізнатися про синтаксис цього параметра, перевірте розділ (ffmpeg-utils) «Розмір відео» в посібнику ffmpeg-utils .

framerate

Частота кадрів створеного відео. Це може бути рядок у формі num/ denабо абревіатура частоти кадрів.

filter_name

Ім’я джерела frei0r для завантаження. Для отримання додаткової інформації про frei0r і про те, як налаштувати параметри, прочитайте розділ frei0r у документації відеофільтрів.

filter_params

Розділений '|' список параметрів для передачі до джерела frei0r.

Наприклад, щоб створити джерело frei0r partik0l розміром 200x200 і частотою кадрів 10, яке накладається на головний вхід фільтра накладання:

frei0r_src=size=200x200:framerate=10:filter_name=partik0l:filter_params=1234 [overlay]; [in][overlay] overlay

14.8 life

Створіть модель життя.

Це джерело засноване на узагальненні життєвої гри Джона Конвея.

Отриманий вхід представляє сітку життя, кожен піксель представляє клітинку, яка може перебувати в одному з двох можливих станів: жива або мертва. Кожна клітина взаємодіє зі своїми вісьмома сусідами, які є клітинами, розташованими по горизонталі, вертикалі або діагоналі.

При кожній взаємодії сітка розвивається відповідно до прийнятого правила, яке визначає кількість сусідніх живих клітин, завдяки яким клітина залишиться живою або народиться. TheruleПараметр дозволяє вказати правило для прийняття.

Це джерело приймає такі варіанти:

filename, f

Встановіть файл, з якого читати початковий стан сітки. У файлі кожен непробільний символ вважається живою коміркою, а символ нового рядка використовується для розмежування кінця кожного рядка.

Якщо цей параметр не вказано, початкова сітка генерується випадковим чином.

rate, r

Встановіть швидкість відео, тобто кількість кадрів, що генеруються за секунду. За замовчуванням 25.

random_fill_ratio, ratio

Встановіть випадковий коефіцієнт заповнення для початкової випадкової сітки. Це значення числа з плаваючою комою в діапазоні від 0 до 1, за замовчуванням 1/PHI. Він ігнорується, якщо вказано файл.

random_seed, seed

Встановіть початкове значення для заповнення початкової випадкової сітки, має бути ціле число від 0 до UINT32_MAX. Якщо не вказано або явно встановлено значення -1, фільтр намагатиметься використовувати хороше випадкове початкове число на основі найкращих зусиль.

rule

Встановіть правило життя.

Правило можна вказати за допомогою коду типу "S NS/ B NB", де NSі NB- це послідовності чисел у діапазоні 0-8, NSвизначає кількість живих сусідніх комірок, які роблять живу комірку живою, і NBкількість живих сусідні клітини, які змушують мертву клітину оживати (тобто «народжуватися»). "s" і "b" можна використовувати замість "S" і "B", відповідно.

Крім того, правило може бути задано 18-бітним цілим числом. 9 старших бітів використовуються для кодування наступного стану клітини, якщо вона жива для кожної кількості сусідніх живих клітин, біти молодшого порядку вказують правило для «народження» нових клітин. Біти вищого порядку кодують більшу кількість сусідніх комірок. Наприклад, число 6153 = (12<<9)+9визначає правило залишатися в живих 12 і правило народження 9, що відповідає "S23/B03".

Значення за замовчуванням — «S23/B3», яке є оригінальним правилом гри життя Конвея, і воно збереже клітину живою, якщо в ній є 2 або 3 сусідні живі клітини, і створить нову клітину, якщо навколо мертвої є три живі клітини клітина.

size, s

Встановіть розмір вихідного відео. Щоб дізнатися про синтаксис цього параметра, перевірте розділ (ffmpeg-utils) «Розмір відео» в посібнику ffmpeg-utils .

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

Якщо ім’я файлу не вказано, розмір за замовчуванням становить «320x240» (використовується для випадково згенерованої початкової сітки).

stitch

Якщо встановлено значення 1, з’єднайте разом лівий і правий краї сітки, а також верхній і нижній краї. За замовчуванням 1.

mold

Встановіть швидкість прес-форми. Якщо встановлено, з мертвої клітини буде виходитиdeath_colorдо mold_colorз крокомmold.moldможе мати значення від 0 до 255.

life_color

Встановіть колір живих (або новонароджених) клітин.

death_color

Встановити колір мертвих клітин. Якщоmoldустановлено, це перший колір, який використовується для зображення мертвої клітини.

mold_color

Встановіть колір цвілі для точно мертвих і запліснявілих клітин.

Щоб дізнатися про синтаксис цих 3 параметрів кольору, перегляньте розділ (ffmpeg-utils)"Колір" у посібнику ffmpeg-utils .

14.8.1 Examples

  • Прочитати сітку зpattern, і розмістіть його по центру сітки розміром 300x300 пікселів:
    life=f=pattern:s=300x300
    
  • Згенеруйте випадкову сітку розміром 200x200 із коефіцієнтом заповнення 2/3:
    life=ratio=2/3:s=200x200
    
  • Укажіть спеціальне правило для еволюції випадково згенерованої сітки:
    life=rule=S14/B34
    
  • Повний приклад ефекту повільної смерті (плісняви) з використанням ffplay:
    ffplay -f lavfi life=s=300x200:mold=10:r=60:ratio=0.1:death_color=#C83232:life_color=#00ff00,scale=1200:800:flags=16
    

14.9 allrgb, allyuv, color, colorchart, colorspectrum, haldclutsrc, nullsrc, pal75bars, pal100bars, rgbtestsrc, smptebars, smptehdbars, testsrc, testsrc2, yuvtestsrc

Джерело allrgbповертає кадри розміром 4096x4096 усіх кольорів rgb.

Джерело allyuvповертає кадри розміром 4096x4096 усіх кольорів yuv.

Джерело colorзабезпечує однорідно забарвлений вхідний сигнал.

Джерело colorchartнадає таблицю перевірки кольорів.

Джерело colorspectrumзабезпечує введення спектру кольорів.

Джерело haldclutsrcнадає ідентичність Hald CLUT. Дивіться також фільтр haldclut .

Джерело nullsrcповертає необроблені відеокадри. Це в основному корисно для використання в інструментах аналізу/налагодження або як джерело для фільтрів, які ігнорують вхідні дані.

Джерело pal75barsгенерує шаблон кольорових смуг на основі рекомендацій EBU PAL із 75% рівнями кольорів.

Джерело pal100barsгенерує шаблон кольорових смуг на основі рекомендацій EBU PAL зі 100% рівнями кольорів.

Джерело rgbtestsrcгенерує тестовий шаблон RGB, корисний для виявлення проблем RGB проти BGR. Ви повинні побачити червону, зелену та синю смуги зверху вниз.

Джерело smptebarsгенерує шаблон кольорових смуг на основі SMPTE Engineering Guideline EG 1-1990.

Джерело smptehdbarsгенерує шаблон кольорових смуг на основі SMPTE RP 219-2002.

Джерело testsrcгенерує шаблон тестового відео, що показує кольоровий шаблон, градієнт прокручування та мітку часу. Це в основному призначено для тестування.

Джерело testsrc2схоже на testsrc, але підтримує більше піксельних форматів замість просто rgb24. Це дозволяє використовувати його як вхідні дані для інших тестів, не вимагаючи перетворення формату.

Джерело yuvtestsrcгенерує тестовий шаблон YUV. Ви повинні побачити смуги a, cb і cr зверху вниз.

Джерела приймають такі параметри:

level

Вкажіть рівень Hald CLUT, доступний лише в haldclutsrc джерелі. Рівень Nгенерує піксельне зображення N*N*N, N*N*N яке використовується як ідентифікаційна матриця для тривимірних таблиць пошуку. Кожен компонент кодується за 1/(N*N)шкалою.

color, c

Вкажіть колір джерела, доступний тільки в color джерелі. Щоб дізнатися про синтаксис цього параметра, перевірте розділ (ffmpeg-utils)"Колір" у посібнику ffmpeg-utils .

size, s

Укажіть розмір отриманого відео. Щоб дізнатися про синтаксис цього параметра, перевірте розділ (ffmpeg-utils) «Розмір відео» в посібнику ffmpeg-utils . Значення за замовчуванням — 320x240.

Ця опція недоступна з фільтрами allrgb, allyuvі .haldclutsrc

rate, r

Укажіть частоту кадрів отриманого відео як кількість кадрів, згенерованих за секунду. Це має бути рядок у форматі frame_rate_num/ frame_rate_den, ціле число, число з плаваючою комою або дійсна абревіатура частоти кадрів відео. Значення за замовчуванням — «25».

duration, d

Встановіть тривалість вихідного відео. Перегляньте (ffmpeg-utils) розділ «Тривалість часу» в посібнику ffmpeg-utils(1) , щоб дізнатися про прийнятний синтаксис.

Якщо не вказано або вказана тривалість є від’ємною, відео має генеруватися назавжди.

Оскільки частота кадрів використовується як часова основа, усі кадри, включаючи останній, матимуть повну тривалість. Якщо вказана тривалість не кратна тривалості кадру, її буде округлено в більшу сторону.

sar

Установіть зразкове співвідношення сторін отриманого відео.

alpha

Укажіть альфа (непрозорість) фону, доступну лише в testsrc2джерелі. Значення має бути від 0 (повністю прозорий) до 255 (повністю непрозорий, за умовчанням).

decimals, n

Встановіть кількість десяткових знаків, які відображатимуться в мітці часу, доступно лише в testsrcджерелі.

Відображене значення мітки часу відповідатиме початковому значенню мітки часу, помноженому на ступінь 10 вказаного значення. Значення за замовчуванням 0.

type

Встановіть тип колірного спектру, доступний тільки в colorspectrumджерелі. Може бути одним із таких:

'black'
'white'
'all'
patch_size

Встановити розмір плями одного кольору, доступний лише у colorchartвихідному коді. Типовим є 64x64.

preset

Встановити попередні налаштування кольорів для перевірки кольорів, доступні лише у colorchartвихідному коді.

Доступні значення:

'reference'
'skintones'

Значення за замовчуванням: reference.

14.9.1 Examples

  • Згенеруйте відео тривалістю 5,3 секунди, розміром 176x144 і частотою кадрів 10 кадрів в секунду:
    testsrc=duration=5.3:size=qcif:rate=10
    
  • Наступний опис графіка створить джерело червоного кольору з непрозорістю 0,2, розміром "qcif" і частотою кадрів 10 кадрів на секунду:
    color=c=red@0.2:s=qcif:r=10
    
  • Якщо вхідний вміст потрібно ігнорувати, nullsrcможна використовувати. Наступна команда генерує шум у площині яскравості, використовуючи geqфільтр:
    nullsrc=s=256x256, geq=random(1)*255:128:128
    

14.9.2 Commands

Джерело colorпідтримує такі команди:

c, color

Встановити колір створеного зображення. Приймає той самий синтаксис відповідногоcolorваріант.

14.10 openclsrc

Створення відео за допомогою програми OpenCL.

source

Вихідний файл програми OpenCL.

kernel

Назва ядра в програмі.

size, s

Розмір кадрів для створення. Це має бути встановлено.

format

Формат пікселів для створення кадрів. Це має бути встановлено.

rate, r

Кількість кадрів, що генеруються щосекунди. Значення за замовчуванням — «25».

Докладні відомості про те, як працює завантаження програми, див. у файлі program_opencl фільтр

Приклади програм:

  • Створіть зміну кольору, встановивши значення пікселів, виходячи з позиції пікселя на вихідному зображенні. (Зверніть увагу, що це працюватиме з усіма форматами пікселів, але згенерований результат не буде однаковим.)
    __kernel void ramp(__write_only image2d_t dst,
                       unsigned int index)
    {
        int2 loc = (int2)(get_global_id(0), get_global_id(1));
    
        float4 val;
        val.xy = val.zw = convert_float2(loc) / convert_float2(get_image_dim(dst));
    
        write_imagef(dst, loc, val);
    }
    
  • Створіть візерунок килима Серпінського, панорамуючи на один піксель у кожному кадрі.
    __kernel void sierpinski_carpet(__write_only image2d_t dst,
                                    unsigned int index)
    {
        int2 loc = (int2)(get_global_id(0), get_global_id(1));
    
        значення float4 = 0.0f;
        int x = loc.x + індекс;
        int y = loc.y + індекс;
        while (x > 0 || y > 0) {
            if (x % 3 == 1 && y % 3 == 1) {
                значення = 1.0f;
                перерву;
            }
            х /= 3;
            y /= 3;
        }
    
        write_imagef(dst, loc, значення);
    }
    

14.11 sierpinski

Створіть фрактал килима/трикутника Серпінського та довільно переміщуйтеся.

Це джерело приймає такі варіанти:

size, s

Встановити розмір рамки. Щоб дізнатися про синтаксис цього параметра, перевірте розділ (ffmpeg-utils) «Розмір відео» в посібнику ffmpeg-utils . Значення за замовчуванням - "640x480".

rate, r

Встановіть частоту кадрів, виражену як кількість кадрів за секунду. Значення за замовчуванням - "25".

seed

Встановіть початкове значення, яке використовується для випадкового панорамування.

jump

Встановіть максимальний стрибок для одного призначення панорамування. Дозволений діапазон від 1 до 10000.

type

Встановіть тип фракталу, може бути типовим carpetабо triangle.

15 Video Sinks

Нижче наведено опис доступних на даний момент відеоприймачів.

15.1 buffersink

Буферизуйте відеокадри та зробіть їх доступними в кінці графіка фільтра.

Цей приймач в основному призначений для програмного використання, зокрема через інтерфейс, визначений уlibavfilter/buffersink.h або система опцій.

Він приймає вказівник на структуру AVBufferSinkContext, яка визначає формати вхідних буферів, який передається як непрозорий параметр avfilter_init_filterдля ініціалізації.

15.2 nullsink

Нульовий прийом відео: абсолютно нічого не робити з вхідним відео. Це в основному корисно як шаблон і для використання в інструментах аналізу/налагодження.

16 Multimedia Filters

Нижче наведено опис доступних на даний момент мультимедійних фільтрів.

16.1 abitscope

Перетворюйте вхідний аудіо на вихідний відеосигнал, відображаючи бітовий діапазон аудіо.

Фільтр приймає такі параметри:

rate, r

Встановіть частоту кадрів, виражену як кількість кадрів за секунду. Значення за замовчуванням - "25".

size, s

Укажіть розмір відео для виведення. Щоб дізнатися про синтаксис цього параметра, перевірте розділ (ffmpeg-utils) «Розмір відео» в посібнику ffmpeg-utils . Значення за замовчуванням: 1024x256.

colors

Укажіть список кольорів, розділених пробілом або символом '|' який буде використовуватися для малювання каналів. Нерозпізнані або відсутні кольори будуть замінені білим кольором.

mode, m

Встановити режим виведення. Може бути barsабо trace. Типовим є bars.

16.2 adrawgraph

Намалюйте графік, використовуючи вхідні аудіо метадані.

Дивіться малюнок

16.3 agraphmonitor

Дивіться графомонітор .

16.4 ahistogram

Перетворення вхідного аудіо на вихідне відео з відображенням гістограми гучності.

Фільтр приймає такі параметри:

dmode

Вкажіть, як обчислюється гістограма.

Він приймає такі значення:

'single'

Використовуйте одну гістограму для всіх каналів.

'separate'

Використовуйте окрему гістограму для кожного каналу.

Типовим є single.

rate, r

Встановіть частоту кадрів, виражену як кількість кадрів за секунду. Значення за замовчуванням - "25".

size, s

Укажіть розмір відео для виведення. Щоб дізнатися про синтаксис цього параметра, перевірте розділ (ffmpeg-utils) «Розмір відео» в посібнику ffmpeg-utils . Значення за замовчуванням: hd720.

scale

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

Він приймає такі значення:

'log'

логарифмічний

'sqrt'

квадратний корінь

'cbrt'

кубічний корінь

'lin'

лінійний

'rlog'

зворотний логарифмічний

Типовим є log.

ascale

Встановити шкалу амплітуди.

Він приймає такі значення:

'log'

логарифмічний

'lin'

лінійний

Типовим є log.

acount

Встановіть кількість кадрів для накопичення гістограми. За замовчуванням 1. Якщо встановити значення -1, усі кадри накопичуються.

rheight

Встановити співвідношення висоти вікна гістограми.

slide

Набір сонограми ковзний.

Він приймає такі значення:

'replace'

замінити старі рядки на нові.

'scroll'

прокрутити зверху вниз.

Типовим є replace.

hmode

Встановити режим гістограми.

Він приймає такі значення:

'abs'

Використовуйте абсолютні значення зразків.

'sign'

Використовуйте незмінні значення зразків.

Типовим є abs.

16.5 aphasemeter

Вимірює фазу вхідного аудіо, яке експортується як метадані lavfi.aphasemeter.phase, що представляє середню фазу поточного аудіокадру. Відеовихід також може бути створений і ввімкнено за замовчуванням. Аудіо передається як перший вихід.

Аудіо буде рематриксовано на стерео, якщо воно має інше розташування каналів. Значення фази знаходиться в діапазоні, [-1, 1]де -1означає, що лівий і правий канали повністю зміщені по фазі, а 1канали знаходяться в фазі.

Фільтр приймає такі параметри, усі пов’язані з його відеовиходом:

rate, r

Встановіть вихідну частоту кадрів. Значення за замовчуванням: 25.

size, s

Встановіть розмір відео для виведення. Щоб дізнатися про синтаксис цього параметра, перевірте розділ (ffmpeg-utils) «Розмір відео» в посібнику ffmpeg-utils . Значення за замовчуванням: 800x400.

rc
gc
bc

Вкажіть червоний, зелений, синій контраст. Значення за замовчуванням 2: 7і 1. Дозволений діапазон становить [0, 255].

mpc

Встановіть колір, який буде використовуватися для малювання середньої фази. Якщо колір noneвибрано за замовчуванням, середнє значення фази не відображатиметься.

video

Увімкнути вихід відео. За замовчуванням увімкнено.

16.5.1 phasing detection

Фільтр також виявляє дисфазні та моно послідовності в стереопотоках. Він реєструє початок, кінець і тривалість послідовності, коли вона триває довше або до мінімального набору.

Фільтр приймає такі параметри для цього виявлення:

phasing

Увімкнути монофонічне та збіжне виявлення. За замовчуванням вимкнено.

tolerance, t

Встановіть фазовий допуск для виявлення монофонічного сигналу у співвідношенні амплітуд. Типовим є 0. Дозволений діапазон становить [0, 1].

angle, a

Встановіть порогове значення кута для виявлення зміщення фази, у градусах. Типовим є 170. Дозволений діапазон становить [90, 180].

duration, d

Встановіть тривалість монофонічного або дисфазного сигналу до повідомлення, виражену в секундах. Типовим є 2.

16.5.2 Examples

  • Повний приклад із ffmpegвизначенням 1 секунди моно з допуском фази 0,001:
    ffmpeg -i stereo.wav -af aphasemeter=video=0:phasing=1:duration=1:tolerance=0.001 -f null -
    

16.6 avectorscope

Перетворюйте вхідний аудіосигнал на вихідний відеосигнал, що представляє векторний діапазон аудіо.

Фільтр використовується для вимірювання різниці між каналами стереоаудіопотоку. Монофонічний сигнал, що складається з ідентичних лівого та правого сигналів, призводить до прямої вертикальної лінії. Будь-яке стереорозділення видно як відхилення від цієї лінії, створюючи фігуру Ліссажу. Якщо з'являється пряма (або відхилення від неї), але горизонтальна лінія, це означає, що лівий і правий канали не мають фази.

Фільтр приймає такі параметри:

mode, m

Встановити режим вектороскопа.

Доступні значення:

'lissajous'

Ліссажу повернуто на 45 градусів.

'lissajous_xy'

Те саме, що й вище, але без повороту.

'polar'

Форма нагадує половину кола.

Значення за замовчуванням: 'lissajous'.

size, s

Встановіть розмір відео для виведення. Щоб дізнатися про синтаксис цього параметра, перевірте розділ (ffmpeg-utils) «Розмір відео» в посібнику ffmpeg-utils . Значення за замовчуванням: 400x400.

rate, r

Встановіть вихідну частоту кадрів. Значення за замовчуванням: 25.

rc
gc
bc
ac

Вкажіть червоний, зелений, синій і альфа-контраст. Значення за замовчуванням 40: 160, 80і 255. Дозволений діапазон становить [0, 255].

rf
gf
bf
af

Укажіть червоний, зелений, синій і альфа-фейд. Значення за замовчуванням 15: 10, 5і 5. Дозволений діапазон становить [0, 255].

zoom

Встановіть коефіцієнт масштабування. Значення за замовчуванням: 1. Дозволений діапазон становить [0, 10]. Значення, нижчі за 1, автоматично регулюють коефіцієнт масштабування до максимально можливого значення.

draw

Встановити режим малювання вектороскопа.

Доступні значення:

'dot'

Намалюйте крапку для кожного зразка.

'line'

Проведіть лінію між попереднім і поточним зразком.

Значення за замовчуванням: 'dot'.

scale

Вкажіть шкалу амплітуд звукових зразків.

Доступні значення:

'lin'

Лінійний.

'sqrt'

Квадратний корінь.

'cbrt'

Кубічний корінь.

'log'

Логарифмічний.

swap

Поміняти місцями вісь лівого каналу на вісь правого каналу.

mirror

Дзеркальна вісь.

'none'

Без дзеркала.

'x'

Дзеркало лише по осі х.

'y'

Дзеркало лише по осі y.

'xy'

Дзеркало обох осей.

16.6.1 Examples

  • Повний приклад з використанням ffplay:
    ffplay -f lavfi 'amovie=input.mp3, asplit [a][out1];
                 [a] avectorscope=zoom=1.3:rc=2:gc=200:bc=10:rf=1:gf=8:bf=7 [out0]'
    

16.6.2 Commands

Цей фільтр підтримує всі наведені вище параметри як команди, крім параметрів sizeі rate.

16.7 bench, abench

Еталонна частина фільтра.

Фільтр приймає такі параметри:

action

Запуск або зупинка таймера.

Доступні значення:

'start'

Отримайте поточний час, встановіть його як метадані кадру (за допомогою клавіші lavfi.bench.start_time) і перешліть кадр до наступного фільтра.

'stop'

Отримати поточний час і отримати lavfi.bench.start_timeметадані з метаданих вхідного кадру, щоб отримати різницю в часі. Потім друкуються різниця в часі, середній, максимальний і мінімальний час (відповідно t, avgі ). Часові мітки виражені в секундах. maxmin

16.7.1 Examples

  • Тест селективного кольорового фільтра:
    bench=start,selectivecolor=reds=-.2 .12 -.49,bench=stop
    

16.8 concat

Об’єднуйте аудіо- та відеопотоки, об’єднуючи їх один за одним.

Фільтр працює на сегментах синхронізованих відео та аудіопотоків. Усі сегменти повинні мати однакову кількість потоків кожного типу, і це також буде кількість потоків на виході.

Фільтр приймає такі параметри:

n

Встановити кількість сегментів. За замовчуванням 2.

v

Встановіть кількість вихідних відеопотоків, тобто кількість відеопотоків у кожному сегменті. За замовчуванням 1.

a

Встановіть кількість вихідних аудіопотоків, тобто кількість аудіопотоків у кожному сегменті. За замовчуванням 0.

unsafe

Активуйте небезпечний режим: не вийде збій, якщо сегменти мають інший формат.

Фільтр має v+ aвиходи: спочатку vвідеовиходи, потім aаудіовиходи.

Є nx( v+ a) входи: спочатку входи для першого сегмента, у тому ж порядку, що й виходи, потім входи для другого сегмента тощо.

Пов’язані потоки не завжди мають однакову тривалість з різних причин, включаючи розмір кадру кодека або неохайне авторство. З цієї причини пов’язані синхронізовані потоки (наприклад, відео та його звукова доріжка) слід об’єднувати одночасно. Фільтр concat використовуватиме тривалість найдовшого потоку в кожному сегменті (крім останнього) і, якщо необхідно, доповнює коротші аудіопотоки тишею.

Щоб цей фільтр працював правильно, усі сегменти мають починатися з позначки часу 0.

Усі відповідні потоки повинні мати однакові параметри у всіх сегментах; система фільтрації автоматично вибере загальний формат пікселів для відеопотоків, а також загальний формат вибірки, частоту дискретизації та структуру каналу для аудіопотоків, але інші параметри, такі як роздільна здатність, повинні бути конвертовані користувачем явно.

Різні частоти кадрів прийнятні, але призведуть до змінної частоти кадрів на виході; обов’язково налаштуйте вихідний файл для його обробки.

16.8.1 Examples

  • Об’єднайте відкриття, епізод і кінцівку, все у двомовній версії (відео в потоці 0, аудіо в потоках 1 і 2):
    ffmpeg -i opening.mkv -i episode.mkv -i ending.mkv -filter_complex \
      '[0:0] [0:1] [0:2] [1:0] [1:1] [1:2] [2:0] [2:1] [2:2]
       concat=n=3:v=1:a=2 [v] [a1] [a2]' \
      -map '[v]' -map '[a1]' -map '[a2]' output.mkv
    
  • Об’єднайте дві частини, обробляючи аудіо та відео окремо, використовуючи (a)джерела фільму та регулюючи роздільну здатність:
    movie=part1.mp4, scale=512:288 [v1] ; amovie=part1.mp4 [a1] ;
    movie=part2.mp4, scale=512:288 [v2] ; amovie=part2.mp4 [a2] ;
    [v1] [v2] concat [outv] ; [a1] [a2] concat=v=0:a=1 [outa]
    

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

16.8.2 Commands

Цей фільтр підтримує такі команди:

next

Закрийте поточний сегмент і перейдіть до наступного

16.9 ebur128

Фільтр сканера EBU R128. Цей фільтр бере аудіопотік і аналізує рівень його гучності. За замовчуванням він реєструє повідомлення на частоті 10 Гц із миттєвою гучністю (позначеною M), короткочасною гучністю ( S), інтегрованою гучністю ( I) і діапазоном гучності ( LRA).

Фільтр може аналізувати лише потоки, які мають формат вибірки з плаваючою точкою подвійної точності. За потреби вхідний потік буде перетворено на цю специфікацію. Користувачам може знадобитися вставити фільтри aformat і/або aresample після цього фільтра, щоб отримати вихідні параметри.

Фільтр також має відеовихід (див. videoопцію) з графіком у реальному часі для спостереження за зміною гучності. Графіка містить зареєстроване повідомлення, згадане вище, тому воно більше не друкується, якщо встановлено цей параметр, якщо не встановлено детальне журналювання. Основна область графіка містить короткочасну гучність (3 секунди аналізу), а покажчик праворуч призначений для миттєвої гучності (400 мілісекунд), але за бажанням її можна налаштувати для відображення короткочасної гучності (див gauge. ).

Зелена зона позначає цільовий діапазон +/- 1LU навколо цільової гучності (-23LUFS за замовчуванням, якщо не змінено через target).

Більше інформації про Рекомендацію щодо гучності EBU R128 див. на http://tech.ebu.ch/loudness .

Фільтр приймає такі параметри:

video

Активуйте відеовихід. Аудіопотік передається без змін незалежно від того, чи встановлено цей параметр, чи ні. Відеопотік буде першим вихідним потоком, якщо його активовано. Типовим є 0.

size

Встановіть розмір відео. Ця опція лише для відео. Щоб дізнатися про синтаксис цього параметра, перевірте розділ (ffmpeg-utils) «Розмір відео» в посібнику ffmpeg-utils . За замовчуванням і мінімальною роздільною здатністю є 640x480.

meter

Встановіть вимірювальний прилад EBU. Типовим є 9. Загальними значеннями є 9та 18, відповідно, для вимірювача шкали EBU +9 та вимірювача шкали EBU +18. Будь-яке інше ціле значення в цьому діапазоні дозволено.

metadata

Налаштувати введення метаданих. Якщо встановлено значення 1, вхідний аудіосигнал буде сегментовано на вихідні кадри тривалістю 100 мс, кожен із яких містить різну інформацію про гучність у метаданих. Усі ключі метаданих мають префікс lavfi.r128..

Типовим є 0.

framelog

Примусовий рівень журналювання кадру.

Доступні значення:

'info'

рівень реєстрації інформації

'verbose'

рівень детального журналювання

За замовчуванням рівень журналювання встановлено на info. Якщоvideoабоmetadataвстановлено параметри, він перемикається на verbose.

peak

Встановити піковий режим(и).

Доступні режими можна накопичувати (параметр є flagтипом). Можливі значення:

'none'

Вимкніть будь-який піковий режим (за замовчуванням).

'sample'

Увімкніть режим пікового зразка.

Простий піковий режим пошуку вищого значення вибірки. Він реєструє повідомлення для піку вибірки (позначеного SPK).

'true'

Увімкніть режим справжнього піку.

Якщо ввімкнено, пошук піків виконується на версії вхідного потоку з надмірною дискретизацією для кращої точності піків. Він реєструє повідомлення для справжнього піку. (позначено TPK) і справжній пік на кадр (позначено FTPK). Для цього режиму потрібна збірка з libswresample.

dualmono

Розглядати монофонічні вхідні файли як "подвійні монофонічні". Якщо монофонічний файл призначений для відтворення на стереосистемі, його вимірювання EBU R128 буде неправильним для сприйняття. Якщо встановлено значення true, цей параметр компенсує цей ефект. Ця опція не впливає на багатоканальні вхідні файли.

panlaw

Встановіть певний закон панорамування, який буде використовуватися для вимірювання подвійних монофайлів. Цей параметр необов’язковий і має значення за замовчуванням -3,01 дБ.

target

Установіть конкретний цільовий рівень (у LUFS), який використовується як відносний нуль у візуалізації. Цей параметр є необов’язковим і має значення за замовчуванням -23LUFS, як визначено EBU R128. Проте матеріал, опублікований в Інтернеті, може віддавати перевагу рівню -16LUFS (наприклад, для використання з подкастами чи відеоплатформами).

gauge

Встановіть значення, яке відображає манометр. Дійсні значення momentaryта s shortterm. За замовчуванням використовуватиметься миттєве значення, але в певних сценаріях може бути кориснішим спостерігати за короткостроковим значенням (наприклад, живе мікшування).

scale

Встановлює шкалу відображення для гучності. Дійсні параметри absolute (у LUFS) або relative(LU) відносно цілі. Це впливає лише на вихід відео, а не на підсумковий або безперервний журнал.

16.9.1 Examples

  • Графік у режимі реального часу ffplayз використанням шкали EBU +18:
    ffplay -f lavfi -i "amovie=input.mp3,ebur128=video=1:meter=18 [out0][out1]"
    
  • Виконайте аналіз за допомогою ffmpeg:
    ffmpeg -nostats -i input.mp3 -filter_complex ebur128 -f null -
    

16.10 interleave, ainterleave

Тимчасове чергування кадрів з кількох входів.

interleaveпрацює з відео входами, ainterleaveз аудіо.

Ці фільтри зчитують кадри з кількох входів і надсилають на вихід найстаріший кадр із черги.

Вхідні потоки повинні мати чітко визначені, монотонно зростаючі значення часових позначок кадру.

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

Наприклад, розглянемо випадок, коли один вхід є selectфільтром, який завжди пропускає вхідні кадри. Фільтр interleaveпродовжуватиме читати з цього входу, але він ніколи не зможе надсилати нові кадри на вихід, доки вхід не надішле сигнал кінця потоку.

Крім того, залежно від синхронізації входів, фільтри відкидають кадри, якщо один вхід отримує більше кадрів, ніж інші, і черга вже заповнена.

Ці фільтри приймають такі параметри:

nb_inputs, n

Встановіть кількість різних входів, за замовчуванням 2.

duration

Як визначити кінець потоку.

longest

Тривалість найдовшого введення. (за умовчанням)

shortest

Тривалість найкоротшого введення.

first

Тривалість першого введення.

16.10.1 Examples

  • Перемежуйте кадри, що належать до різних потоків, використовуючи ffmpeg:
    ffmpeg -i bambi.avi -i pr0n.mkv -filter_complex "[0:v][1:v] interleave" out.avi
    
  • Додати мерехтливий ефект розмиття:
    select='if(gt(random(0), 0.2), 1, 2)':n=2 [tmp], boxblur=2:2, [tmp] interleave
    

16.11 latency, alatency

Виміряйте затримку фільтрації.

Повідомляти про затримку фільтрації попереднього фільтра, затримку кількості зразків аудіо для аудіофільтрів або кількості відеокадрів для відеофільтрів.

Наприкінці вхідного потоку фільтр повідомить мінімальну та максимальну виміряну затримку для попереднього запущеного фільтра у filtergraph.

16.12 metadata, ametadata

Маніпулювати метаданими фрейму.

Цей фільтр приймає такі параметри:

mode

Встановити режим роботи фільтра.

Може бути одним із таких:

'select'

Якщо встановлено обидва параметри valueі key, виберіть кадри, які мають такі метадані. Якщо keyвстановлено лише, вибирайте кожен кадр, який має такий ключ у метаданих.

'add'

Додайте нові метадані keyта value. Якщо ключ уже доступний, нічого не робіть.

'modify'

Змінити значення вже наявного ключа.

'delete'

Якщо valueвстановлено, видаляти лише ті ключі, які мають таке значення. В іншому випадку видаліть ключ. Якщо keyне встановлено, видалити всі значення метаданих у кадрі.

'print'

Ключ друку та його значення, якщо метадані знайдено. Якщо keyне встановлено, надрукувати всі значення метаданих, доступні у кадрі.

key

Установити ключ, який використовується в усіх режимах. Необхідно встановити для всіх режимів, крім printі delete.

value

Встановіть значення метаданих, які будуть використовуватися. Цей параметр є обов'язковим для режиму modifyі .add

function

Яку функцію використовувати під час порівняння значення метаданих і value.

Може бути одним із наступних:

'same_str'

Значення інтерпретуються як рядки, повертає true, якщо значення метаданих таке ж, як value.

'starts_with'

Значення інтерпретуються як рядки, повертає істину, якщо значення метаданих починається з valueрядка параметра.

'less'

Значення інтерпретуються як числа з плаваючою точкою, повертає істину, якщо значення метаданих менше ніж value.

'equal'

Значення інтерпретуються як числа з плаваючою точкою, повертає істину, якщо valueдорівнює значенню метаданих.

'greater'

Значення інтерпретуються як числа з плаваючою точкою, повертає істину, якщо значення метаданих більше ніж value.

'expr'

Значення інтерпретуються як числа з плаваючою речовиною, повертає істину, якщо вираз із параметра expr обчислюється як істина.

'ends_with'

Значення інтерпретуються як рядки, повертає істину, якщо значення метаданих закінчується valueрядком параметра.

expr

Встановити вираз, який використовується, коли functionвстановлено значення expr. Вираз обчислюється за допомогою API eval і може містити такі константи:

VALUE1, FRAMEVAL

Плаваюче представлення valueз ключа метаданих.

VALUE2, USERVAL

Плаваюче представлення, valueяк надає користувач у valueпараметрі.

file

Якщо вказано в printрежимі, вихідні дані записуються у вказаний файл. Замість простого імені файлу можна вказати будь-яку URL-адресу, доступну для запису. Назва файлу «-» є скороченням стандартного виводу. Якщо fileпараметр не встановлено, вихідні дані записуються до журналу з рівнем журналу AV_LOG_INFO.

direct

Зменшує буферизацію в режимі друку, коли вихідні дані записуються до URL-адреси, встановленої за допомогою file.

16.12.1 Examples

  • Надрукувати всі значення метаданих для кадрів із ключем lavfi.signalstats.YDIFзі значеннями від 0 до 1.
    signalstats,metadata=print:key=lavfi.signalstats.YDIF:value=0:function=expr:expr='between(VALUE1,0,1)'
    
  • Друк вихідних даних silencedetect у файлmetadata.txt.
    silencedetect,ametadata=mode=print:file=metadata.txt
    
  • Спрямуйте всі метадані в канал із файловим дескриптором 4.
    metadata=mode=print:file='pipe\:4'
    

16.13 perms, aperms

Встановіть дозволи на читання/запис для вихідних кадрів.

Ці фільтри в основному призначені для розробників, щоб перевірити прямий шлях у наступному фільтрі на діаграмі фільтрів.

Фільтри приймають такі параметри:

mode

Виберіть режим дозволів.

Він приймає такі значення:

'none'

Нічого не робити. Це значення за умовчанням.

'ro'

Налаштуйте всі вихідні кадри лише для читання.

'rw'

Налаштуйте всі вихідні кадри доступними для безпосереднього запису.

'toggle'

Зробіть фрейм доступним лише для читання, якщо доступний для запису, і доступним для запису, якщо він доступний лише для читання.

'random'

Довільно встановіть кожен вихідний кадр лише для читання або запису.

seed

Встановіть початкове значення для randomрежиму, має бути цілим числом між 0та UINT32_MAX. Якщо не вказано або явно встановлено значення -1, фільтр намагатиметься використовувати хороше випадкове початкове число на основі найкращих зусиль.

Примітка: у разі автоматичного вставлення фільтра між фільтром дозволів і наступним, дозвіл може бути отримано не так, як очікувалося, у цьому наступному фільтрі. Цю проблему можна уникнути, якщо вставити фільтр формату або формату перед фільтром perms/aperms .

16.14 realtime, arealtime

Уповільніть фільтрацію, щоб приблизно відповідати реальному часу.

Ці фільтри призупинять фільтрацію на певний проміжок часу, щоб узгодити вихідну швидкість із вхідними часовими мітками. Вони схожі наreваріант до ffmpeg.

Вони приймають такі варіанти:

limit

Обмеження часу для пауз. Будь-яка пауза, довша за цю, вважатиметься розривом часової позначки та скине таймер. За замовчуванням 2 секунди.

speed

Коефіцієнт швидкості обробки. Значення має бути числом з плаваючою речовиною, більшим за нуль. Значення, більші за 1,0, призведуть до швидшої обробки, ніж у реальному часі, менші – уповільнить обробку. Автоматично limitадаптується відповідно. За замовчуванням 1.0.

Без цих фільтрів неможливо досягти вищої швидкості обробки, ніж це можливо.

16.14.1 Commands

Обидва фільтри підтримують усі наведені вище параметри як команди .

16.15 segment, asegment

Розділіть один вхідний потік на кілька потоків.

Цей фільтр діє протилежно до фільтрів concat.

segmentпрацює на відеокадрах, asegmentна аудіосемплах.

Цей фільтр приймає такі параметри:

timestamps

Позначки часу вихідних сегментів, розділених символом "|". Перший сегмент запускатиметься з початку вхідного потоку. Останній сегмент триватиме до кінця вхідного потоку

frames, samples

Точна кількість кадрів/вибірок для поділу на сегменти.

У всіх випадках додавання до кожного сегмента префікса «+» зробить його відносним до попереднього сегмента.

16.15.1 Examples

  • Розділіть вхідний аудіопотік на три вихідних аудіопотоку, починаючи з початку вхідного аудіопотоку та зберігаючи його в 1-му вихідному аудіопотоці, потім на 60-й секунді та зберігаючи у 2-му вихідному аудіопотоці, і останньою після 150-ї секунди вхідного аудіопотоку. у 3-му вихідному аудіопотоці:
    asegment=timestamps="60|150"
    

16.16 select, aselect

Виберіть кадри для виведення.

Цей фільтр приймає такі параметри:

expr, e

Встановити вираз, який обчислюється для кожного вхідного кадру.

Якщо вираз обчислюється як нуль, фрейм відкидається.

Якщо результат оцінки негативний або NaN, кадр надсилається на перший вихід; інакше він надсилається на вихід з індексом ceil(val)-1, припускаючи, що вхідний індекс починається з 0.

Наприклад, значення 1.2відповідає виходу з індексом ceil(1.2)-1 = 2-1 = 1, тобто другому виходу.

outputs, n

Встановити кількість виходів. Вихід, до якого потрібно надіслати вибраний кадр, базується на результаті оцінки. Значення за замовчуванням 1.

Вираз може містити такі константи:

n

(Послідовний) номер відфільтрованого кадру, починаючи з 0.

selected_n

(Послідовний) номер вибраного кадру, починаючи з 0.

prev_selected_n

Порядковий номер останнього вибраного кадру. Це NAN, якщо не визначено.

TB

База часу вхідних позначок часу.

pts

PTS (TimeStamp презентації) відфільтрованого кадру, виражений в TBодиницях. Це NAN, якщо не визначено.

t

PTS відфільтрованого кадру, виражений у секундах. Це NAN, якщо не визначено.

prev_pts

PTS попередньо відфільтрованого кадру. Це NAN, якщо не визначено.

prev_selected_pts

PTS останнього попередньо відфільтрованого кадру. Це NAN, якщо не визначено.

prev_selected_t

PTS останнього раніше вибраного кадру, виражений у секундах. Це NAN, якщо не визначено.

start_pts

Перший PTS у потоці, який не є NAN. Якщо не знайдено, він залишається NAN.

start_t

Перший PTS, у секундах, у потоці, який не є NAN. Якщо не знайдено, він залишається NAN.

pict_type (video only)

Тип відфільтрованого кадру. Він може приймати одне з таких значень:

I
P
B
S
SI
SP
BI
interlace_type (video only)

Тип кадрового переплетення. Він може приймати одне з таких значень:

PROGRESSIVE

Кадр прогресивний (не чересстрочний).

TOPFIRST

Рамка верхнє поле спочатку.

BOTTOMFIRST

Рамка розташована нижнім полем.

consumed_sample_n (audio only)

кількість вибраних вибірок перед поточним кадром

samples_n (audio only)

кількість вибірок у поточному кадрі

sample_rate (audio only)

вхідна частота дискретизації

key

Це 1, якщо відфільтрований кадр є ключовим кадром, 0 в іншому випадку.

pos

позиція відфільтрованого кадру у файлі, -1, якщо інформація недоступна (наприклад, для синтетичного відео)

scene (video only)

значення від 0 до 1 для позначення нової сцени; низьке значення відображає низьку ймовірність того, що поточний кадр представить нову сцену, тоді як вище значення означає, що поточний кадр, швидше за все, буде таким (див. приклад нижче)

concatdec_select

Демультифікатор concat може вибрати лише частину вхідного файлу concat, встановивши вхідну та вихідну точки, але вихідні пакети можуть не повністю міститися у вибраному інтервалі. Використовуючи цю змінну, можна пропускати кадри, згенеровані демультиплексором concat, які точно не містяться у вибраному інтервалі.

Це працює шляхом порівняння точок кадру зі lavf.concat.start_time значеннями lavf.concat.durationметаданих пакетів, які також присутні в декодованих кадрах.

Змінна concatdec_selectдорівнює -1, якщо кількість точок кадру дорівнює принаймні start_time, а метадані тривалості відсутні, або точка кадру менша за start_time + тривалість, інакше 0, і NaN, якщо метадані start_time відсутні.

По суті, це означає, що вхідний кадр вибрано, якщо його точки знаходяться в межах інтервалу, встановленого демультиплексором concat.

Значення за замовчуванням виразу вибору — «1».

16.16.1 Examples

  • Виберіть усі кадри у вхідних даних:
    select
    

    Приклад вище такий самий, як:

    select=1
    
  • Пропустити всі кадри:
    select=0
    
  • Виберіть лише I-фрейми:
    select='eq(pict_type\,I)'
    
  • Виберіть один кадр кожні 100:
    select='not(mod(n\,100))'
    
  • Виберіть лише кадри, що містяться в часовому інтервалі 10-20:
    select=between(t\,10\,20)
    
  • Виберіть лише I-кадри, що містяться в інтервалі часу 10-20:
    select=between(t\,10\,20)*eq(pict_type\,I)
    
  • Виберіть кадри з мінімальною відстанню 10 секунд:
    select='isnan(prev_selected_t)+gte(t-prev_selected_t\,10)'
    
  • Використовуйте aselect, щоб вибрати лише звукові кадри з кількістю семплів > 100:
    aselect='gt(samples_n\,100)'
    
  • Складіть мозаїку з перших сцен:
    ffmpeg -i video.avi -vf select='gt(scene\,0.4)',scale=160:120,tile -frames:v 1 preview.png
    

    Порівняння sceneзі значенням від 0,3 до 0,5, як правило, є розумним вибором.

  • Надсилайте парні та непарні кадри на окремі виходи та складайте їх:
    select=n=2:e='mod(n, 2)+1' [odd][even]; [odd] pad=h=2*ih [tmp]; [tmp][even] overlay=y=h
    
  • Виберіть корисні кадри з файлу ffconcat, який використовує вхідні та вихідні точки, але де вихідні файли не є лише внутрішніми кадрами.
    ffmpeg -copyts -vsync 0 -segment_time_metadata 1 -i input.ffconcat -vf select=concatdec_select -af aselect=concatdec_select output.avi
    

16.17 sendcmd, asendcmd

Надсилайте команди до фільтрів у filtergraph.

Ці фільтри зчитують команди для надсилання іншим фільтрам у фільтрі.

sendcmdмає бути вставлено між двома відеофільтрами, asendcmdмає бути вставлено між двома аудіофільтрами, але крім цього вони діють однаково.

Специфікація команд може бути надана в аргументах фільтра з commandsпараметром або у файлі, визначеному filename опцією.

Ці фільтри приймають такі параметри:

commands, c

Встановіть команди для читання та надсилання до інших фільтрів.

filename, f

Встановіть ім'я файлу команд, які будуть читатися та надсилатися до інших фільтрів.

16.17.1 Commands syntax

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

Інтервал визначається таким синтаксисом:

START[-END] COMMANDS;

Інтервал часу задається за допомогою STARTі ENDчасів. ENDє необов’язковим і за замовчуванням встановлено максимальний час.

Поточний час кадру вважається в межах зазначеного інтервалу, якщо він входить до інтервалу [ START, END), тобто коли час більше або дорівнює STARTі менше END.

COMMANDSскладається з послідовності однієї або кількох специфікацій команд, розділених символом ",", що стосуються цього інтервалу. Синтаксис специфікації команди визначається так:

[FLAGS] TARGET COMMAND ARG

FLAGSє необов’язковим і визначає тип подій, пов’язаних з часовим інтервалом, які дозволяють надіслати вказану команду, і має бути ненульовою послідовністю прапорів ідентифікатора, розділених «+» або «|» і укладений між "[" і "]".

Розпізнаються наступні прапори:

enter

Команда надсилається, коли мітка часу поточного кадру входить у вказаний інтервал. Іншими словами, команда надсилається, коли мітка часу попереднього кадру не була в заданому інтервалі, а поточна є.

leave

Команда надсилається, коли мітка часу поточного кадру виходить за вказаний інтервал. Іншими словами, команда надсилається, коли мітка часу попереднього кадру була в заданому інтервалі, а поточна – ні.

expr

Команда ARGінтерпретується як вираз, а результат виразу передається як ARG.

Вираз обчислюється за допомогою API eval і може містити такі константи:

POS

Вихідна позиція у файлі кадру або невизначена, якщо не визначена для поточного кадру.

PTS

Позначка часу презентації у вхідних даних.

N

Кількість вхідних кадрів для відео або аудіо, починаючи з 0.

T

Час у секундах поточного кадру.

TS

Час початку в секундах поточного командного інтервалу.

TE

Час завершення в секундах поточного командного інтервалу.

TI

Інтерпольований час поточного командного інтервалу, TI = (T - TS) / (TE - TS).

W

Ширина кадру відео.

H

Висота кадру відео.

Якщо FLAGSне вказано, передбачається значення за умовчанням [enter].

TARGETвизначає ціль команди, як правило, ім'я класу фільтра або ім'я конкретного екземпляра фільтра.

COMMANDвизначає назву команди для цільового фільтра.

ARGє необов'язковим і вказує необов'язковий список аргументів для даного COMMAND.

Між однією специфікацією інтервалу та іншою пробіли або послідовності символів, починаючи з #до кінця рядка, ігноруються та можуть використовуватися для анотування коментарів.

Спрощений опис BNF синтаксису специфікації команд наведено нижче:

COMMAND_FLAG  ::= "enter" | "leave"
COMMAND_FLAGS ::= COMMAND_FLAG [(+|"|")COMMAND_FLAG]
COMMAND       ::= ["[" COMMAND_FLAGS "]"] TARGET COMMAND [ARG]
COMMANDS      ::= COMMAND [,COMMANDS]
INTERVAL      ::= START[-END] COMMANDS
INTERVALS     ::= INTERVAL[;INTERVALS]

16.17.2 Examples

  • Укажіть зміну темпу звуку на секунді 4:
    asendcmd=c='4.0 atempo tempo 1.5',atempo
    
  • Націлювання на конкретний екземпляр фільтра:
    asendcmd=c='4.0 atempo@my tempo 1.5',atempo@my
    
  • Укажіть список команд малювання тексту та відтінку у файлі.
    # show text in the interval 5-10
    5.0-10.0 [enter] drawtext reinit 'fontfile=FreeSerif.ttf:text=hello world',
             [leave] drawtext reinit 'fontfile=FreeSerif.ttf:text=';
    
    # desaturate the image in the interval 15-20
    15.0-20.0 [enter] hue s 0,
              [enter] drawtext reinit 'fontfile=FreeSerif.ttf:text=nocolor',
              [leave] hue s 1,
              [leave] drawtext reinit 'fontfile=FreeSerif.ttf:text=color';
    
    # apply an exponential saturation fade-out effect, starting from time 25
    25 [enter] hue s exp(25-t)
    

    Граф фільтра, який дозволяє читати та обробляти наведений вище список команд, що зберігається у файліtest.cmd, можна вказати за допомогою:

    sendcmd=f=test.cmd,drawtext=fontfile=FreeSerif.ttf:text='',hue
    

16.18 setpts, asetpts

Змініть PTS (мітку часу презентації) вхідних кадрів.

setptsпрацює на відеокадрах, asetptsна аудіокадрах.

Цей фільтр приймає такі параметри:

expr

Вираз, який обчислюється для кожного кадру для побудови його позначки часу.

Вираз обчислюється за допомогою API eval і може містити такі константи:

FRAME_RATE, FR

частота кадрів, визначена лише для відео з постійною частотою кадрів

PTS

Позначка часу презентації у вхідних даних

N

Кількість вхідних кадрів для відео або кількість спожитих семплів, не включаючи поточний кадр для аудіо, починаючи з 0.

NB_CONSUMED_SAMPLES

Кількість використаних семплів, не включаючи поточний кадр (тільки аудіо)

NB_SAMPLES, S

Кількість семплів у поточному кадрі (тільки аудіо)

SAMPLE_RATE, SR

Частота дискретизації звуку.

STARTPTS

PTS першого кадру.

STARTT

час у секундах першого кадру

INTERLACED

Вкажіть, чи є поточний кадр черезрядковим.

T

час у секундах поточного кадру

POS

початкова позиція у файлі кадру або невизначена, якщо не визначена для поточного кадру

PREV_INPTS

Попередній вхід ПТС.

PREV_INT

час попереднього введення в секундах

PREV_OUTPTS

Попередній висновок ВТС.

PREV_OUTT

час попереднього виведення в секундах

RTCTIME

Час настінного годинника (RTC) у мікросекундах. Це застаріле, замість нього використовуйте time(0).

RTCSTART

Час настінного годинника (RTC) на початку фільму в мікросекундах.

TB

База часу вхідних позначок часу.

16.18.1 Examples

  • Почніть відлік ВТС з нуля
    setpts=PTS-STARTPTS
    
  • Застосувати ефект швидкого руху:
    setpts=0.5*PTS
    
  • Застосувати ефект сповільненої зйомки:
    setpts=2.0*PTS
    
  • Встановити фіксовану частоту 25 кадрів за секунду:
    setpts=N/(25*TB)
    
  • Встановіть фіксовану швидкість 25 кадрів в секунду з деяким тремтінням:
    setpts='1/(25*TB) * (N + 0.05 * sin(N*2*PI/25))'
    
  • Застосуйте зсув на 10 секунд до вхідного PTS:
    setpts=PTS+10/TB
    
  • Створіть часові мітки з «живого джерела» та перебазуйте на поточну часову базу:
    setpts='(RTCTIME - RTCSTART) / (TB * 1000000)'
    
  • Створення часових позначок шляхом підрахунку зразків:
    asetpts=N/SR/TB
    

16.19 setrange

Примусовий діапазон кольорів для вихідного відеокадру.

Фільтр setrangeпозначає властивість діапазону кольорів для вихідних кадрів. Він не змінює вхідний кадр, а лише встановлює відповідну властивість, яка впливає на те, як кадр обробляється наступними фільтрами.

Фільтр приймає такі параметри:

range

Доступні значення:

'auto'

Зберігайте ту саму властивість діапазону кольорів.

'unspecified, unknown'

Встановіть діапазон кольорів як невизначений.

'limited, tv, mpeg'

Встановіть діапазон кольорів як обмежений.

'full, pc, jpeg'

Встановіть діапазон кольорів як повний.

16.20 settb, asettb

Встановіть часову базу, яка буде використовуватися для позначок часу вихідних кадрів. Це в основному корисно для тестування конфігурації часової бази.

Він приймає такі параметри:

expr, tb

Вираз, який обчислюється у вихідній базі часу.

Значення дляtbце арифметичний вираз, що представляє раціональне. Вираз може містити константи «AVTB» (типова часова база), «intb» (вхідна часова база) і «sr» (частота дискретизації, лише аудіо). Значення за замовчуванням - "intb".

16.20.1 Examples

  • Встановіть часову базу на 1/25:
    settb=expr=1/25
    
  • Встановіть часову базу на 1/10:
    settb=expr=0.1
    
  • Встановіть часову базу на 1001/1000:
    settb=1+0.001
    
  • Встановіть часову базу на 2*intb:
    settb=2*intb
    
  • Встановіть стандартне значення часової бази:
    settb=AVTB
    

16.21 showcqt

Перетворюйте вхідний аудіосигнал у вихідний відеосигнал, що представляє частотний спектр логарифмічно за допомогою алгоритму постійного Q-перетворення Брауна-Пакетта з прямим обчисленням коефіцієнта частотної області (але саме перетворення насправді не є постійним Q, натомість фактор Q фактично є змінним/фіксованим), з музичним тоном шкала, від E0 до D#10.

Фільтр приймає такі параметри:

size, s

Укажіть розмір відео для виведення. Він повинен бути рівним. Щоб дізнатися про синтаксис цього параметра, перевірте розділ (ffmpeg-utils) «Розмір відео» в посібнику ffmpeg-utils . Значення за замовчуванням: 1920x1080.

fps, rate, r

Встановіть вихідну частоту кадрів. Значення за замовчуванням: 25.

bar_h

Встановіть висоту гістограми. Він повинен бути рівним. Значення за замовчуванням -1автоматично обчислює висоту гістограми.

axis_h

Встановити висоту осі. Він повинен бути рівним. Значення за замовчуванням -1автоматично обчислює висоту осі.

sono_h

Встановіть висоту сонограми. Він повинен бути рівним. Значення за замовчуванням -1автоматично обчислює висоту сонограми.

fullhd

Встановіть роздільну здатність fullhd. Цей параметр застарів, використовуйте sizeзамість s нього. Значення за замовчуванням: 1.

sono_v, volume

Укажіть об’ємний вираз сонограми. Він може містити змінні:

bar_v

оцінюваний bar_vвираз

frequency, freq, f

частота, де вона оцінюється

timeclamp, tc

значення timeclampопціону

і функції:

a_weighting(f)

A-зваження рівної гучності

b_weighting(f)

B-зважування рівної гучності

c_weighting(f)

C-зважування рівної гучності.

Значення за замовчуванням: 16.

bar_v, volume2

Укажіть вираз об’єму гістограми. Він може містити змінні:

sono_v

оцінюваний sono_vвираз

frequency, freq, f

частота, де вона оцінюється

timeclamp, tc

значення timeclampопціону

і функції:

a_weighting(f)

A-зваження рівної гучності

b_weighting(f)

B-зважування рівної гучності

c_weighting(f)

C-зважування рівної гучності.

Значення за замовчуванням: sono_v.

sono_g, gamma

Укажіть гамму сонограми. Нижча гамма робить спектр більш контрастним, вища гамма робить спектр більшим діапазоном. Значення за замовчуванням: 3. Прийнятний діапазон становить [1, 7].

bar_g, gamma2

Укажіть гамму гістограми. Значення за замовчуванням: 1. Прийнятний діапазон становить [1, 7].

bar_t

Вкажіть рівень прозорості гістограми. Нижче значення робить гістограму чіткішою. Значення за замовчуванням: 1. Прийнятний діапазон становить [0, 1].

timeclamp, tc

Укажіть часовий фіксатор перетворення. На низькій частоті існує компроміс між точністю в часовій області та частотній області. Якщо часовий фіксатор нижчий, подія в часовій області представлена ​​точніше (наприклад, швидкий бас-барабан), інакше подія в частотній області представлена ​​точніше (наприклад, бас-гітара). Прийнятний діапазон становить [0.002, 1]. Значення за замовчуванням: 0.17.

attack

Встановіть час атаки в секундах. За замовчуванням 0(вимкнено). В іншому випадку він обмежує майбутні зразки, застосовуючи асиметричне віконне відображення в часовій області, корисне, коли потрібна низька затримка. Прийнятий діапазон становить [0, 1].

basefreq

Вкажіть базову частоту перетворення. Значення за замовчуванням — 20.01523126408007475це частота на 50 центів нижче E0. Прийнятний діапазон становить [10, 100000].

endfreq

Вкажіть кінцеву частоту перетворення. Значення за замовчуванням — 20495.59681441799654це частота на 50 центів вище D#10. Прийнятний діапазон становить [10, 100000].

coeffclamp

Ця опція застаріла та ігнорується.

tlength

Укажіть довжину перетворення в часовій області. Використовуйте цей параметр, щоб контролювати компроміс точності між часовою областю та частотною областю для кожної частотної вибірки. Він може містити змінні:

frequency, freq, f

частота, де вона оцінюється

timeclamp, tc

значення timeclampопціону.

Значення за замовчуванням: 384*tc/(384+tc*f).

count

Укажіть кількість трансформацій для кожного кадру відео. Значення за замовчуванням: 6. Прийнятний діапазон становить [1, 30].

fcount

Укажіть кількість трансформацій для кожного окремого пікселя. Значення за замовчуванням — 0, тому воно обчислюється автоматично. Прийнятний діапазон становить [0, 10].

fontfile

Укажіть файл шрифту для використання з freetype для малювання осі. Якщо не вказано, використовувати вбудований шрифт. Зауважте, що малювання за допомогою файлу шрифту або вбудованого шрифту не реалізовано за допомогою настроюваних basefreqі , замість цього endfreqвикористовуйте параметр.axisfile

font

Вкажіть шаблон fontconfig. Це має нижчий пріоритет, ніж fontfile. У :шаблоні можна замінити на , |щоб уникнути непотрібного екранування.

fontcolor

Вкажіть вираз кольору шрифту. Це арифметичний вираз, який має повертати ціле значення 0xRRGGBB. Він може містити змінні:

frequency, freq, f

частота, де вона оцінюється

timeclamp, tc

значення timeclampопціону

і функції:

midi(f)

міді номер частоти f, деякі міді номери: E0(16), C1(24), C2(36), A4(69)

r(x), g(x), b(x)

червоне, зелене та синє значення інтенсивності x.

Значення за замовчуванням: st(0, (midi(f)-59.5)/12); st(1, if(between(ld(0),0,1), 0.5-0.5*cos(2*PI*ld(0)), 0)); r(1-ld(1)) + b(ld(1)).

axisfile

Вкажіть файл зображення для малювання осі. Ця опція замінює опцію fontfile. fontcolor

axis, text

Увімкнути/вимкнути малювання тексту до осі. Якщо встановлено значення 0, малювання до осі вимкнено, ігноруючи опцію fontfileта . axisfileЗначення за замовчуванням: 1.

csp

Встановити колірний простір. Допустимі значення:

'unspecified'

Не визначено (за замовчуванням)

'bt709'

BT.709

'fcc'

FCC

'bt470bg'

BT.470BG або BT.601-6 625

'smpte170m'

СМПТЕ-170М або БТ.601-6 525

'smpte240m'

СМПТЕ-240М

'bt2020ncl'

BT.2020 з непостійною яскравістю

cscheme

Встановити колірну схему спектрограми. Це список значень із плаваючою комою у форматі left_r|left_g|left_b|right_r|right_g|right_b. Типовим є 1|0.5|0|0|0.5|1.

16.21.1 Examples

  • Відтворення аудіо з показом спектру:
    ffplay -f lavfi 'amovie=a.mp3, asplit [a][out1]; [a] showcqt [out0]'
    
  • Те саме, що й вище, але з частотою кадрів 30 кадрів/с:
    ffplay -f lavfi 'amovie=a.mp3, asplit [a][out1]; [a] showcqt=fps=30:count=5 [out0]'
    
  • Гра в 1280x720:
    ffplay -f lavfi 'amovie=a.mp3, asplit [a][out1]; [a] showcqt=s=1280x720:count=4 [out0]'
    
  • Вимкнути відображення сонограми:
    sono_h=0
    
  • A1 та його гармоніки: A1, A2, (ближній) E3, A3:
    ffplay -f lavfi 'aevalsrc=0.1*sin(2*PI*55*t)+0.1*sin(4*PI*55*t)+0.1*sin(6*PI*55*t)+0.1*sin(8*PI*55*t),
                     asplit[a][out1]; [a] showcqt [out0]'
    
  • Те саме, що й вище, але з більшою точністю в частотній області:
    ffplay -f lavfi 'aevalsrc=0.1*sin(2*PI*55*t)+0.1*sin(4*PI*55*t)+0.1*sin(6*PI*55*t)+0.1*sin(8*PI*55*t),
                     asplit[a][out1]; [a] showcqt=timeclamp=0.5 [out0]'
    
  • Спеціальний обсяг:
    bar_v=10:sono_v=bar_v*a_weighting(f)
    
  • Власна гамма, тепер спектр лінійний до амплітуди.
    bar_g=2:sono_g=2
    
  • Спеціальне рівняння довжини:
    tc=0.33:tlength='st(0,0.17); 384*tc / (384 / ld(0) + tc*f /(1-ld(0))) + 384*tc / (tc*f / ld(0) + 384 /(1-ld(0)))'
    
  • Користувацький колір шрифту та файл шрифту, C-note пофарбовано в зелений колір, інші – у синій:
    fontcolor='if(mod(floor(midi(f)+0.5),12), 0x0000FF, g(1))':fontfile=myfont.ttf
    
  • Спеціальний шрифт за допомогою fontconfig:
    font='Courier New,Monospace,mono|bold'
    
  • Користувацький діапазон частот із спеціальною віссю за допомогою файлу зображення:
    axisfile=myaxis.png:basefreq=40:endfreq=10000
    

16.22 showfreqs

Перетворення вхідного аудіо на вихідне відео, що представляє спектр потужності звуку. Амплітуда звуку розташована на осі Y, а частота – на осі X.

Фільтр приймає такі параметри:

size, s

Вкажіть розмір відео. Щоб дізнатися про синтаксис цього параметра, перевірте розділ (ffmpeg-utils) «Розмір відео» в посібнику ffmpeg-utils . Типовим є 1024x512.

rate, r

Встановити швидкість відео. Типовим є 25.

mode

Встановити режим відображення. Це встановлює, як буде представлено кожен діапазон частот.

Він приймає такі значення:

'line'
'bar'
'dot'

Типовим є bar.

ascale

Встановити шкалу амплітуди.

Він приймає такі значення:

'lin'

Лінійний масштаб.

'sqrt'

Шкала квадратного кореня.

'cbrt'

Кубічний корінь шкали.

'log'

Логарифмічна шкала.

Типовим є log.

fscale

Встановити шкалу частот.

Він приймає такі значення:

'lin'

Лінійний масштаб.

'log'

Логарифмічна шкала.

'rlog'

Зворотний логарифмічний масштаб.

Типовим є lin.

win_size

Встановити розмір вікна. Дозволений діапазон від 16 до 65536.

За замовчуванням2048

win_func

Встановити функцію вікон.

Він приймає такі значення:

'rect'
'bartlett'
'hanning'
'hamming'
'blackman'
'welch'
'flattop'
'bharris'
'bnuttall'
'bhann'
'sine'
'nuttall'
'lanczos'
'gauss'
'tukey'
'dolph'
'cauchy'
'parzen'
'poisson'
'bohman'

Типовим є hanning.

overlap

Встановити перекриття вікон. В діапазоні [0, 1]. За замовчуванням встановлено 1, що означає, що буде вибрано оптимальне перекриття для вибраної функції вікна.

averaging

Встановити усереднення часу. Якщо встановити значення 0, відображатимуться поточні максимальні піки. За замовчуванням встановлено 1, що означає, що усереднення часу вимкнено.

colors

Укажіть список кольорів, розділених пробілом або символом '|' який використовуватиметься для малювання частот каналу. Нерозпізнані або відсутні кольори будуть замінені білим кольором.

cmode

Встановити режим відображення каналу.

Він приймає такі значення:

'combined'
'separate'

Типовим є combined.

minamp

Встановіть мінімальну амплітуду, яка використовується в logмасштабувальнику амплітуди.

data

Встановити режим відображення даних.

Він приймає такі значення:

'magnitude'
'phase'
'delay'

Типовим є magnitude.

channels

Встановіть канали для обробки звуку. За замовчуванням усі обробляються.

16.23 showspatial

Перетворюйте вхідний стереофонічний аудіосигнал на вихідний відеосигнал, що відображає просторове співвідношення між двома каналами.

Фільтр приймає такі параметри:

size, s

Укажіть розмір відео для виведення. Щоб дізнатися про синтаксис цього параметра, перевірте розділ (ffmpeg-utils) «Розмір відео» в посібнику ffmpeg-utils . Значення за замовчуванням: 512x512.

win_size

Встановити розмір вікна. Дозволений діапазон від 1024до 65536. Типовий розмір: 4096.

win_func

Встановити функцію вікна.

Він приймає такі значення:

'rect'
'bartlett'
'hann'
'hanning'
'hamming'
'blackman'
'welch'
'flattop'
'bharris'
'bnuttall'
'bhann'
'sine'
'nuttall'
'lanczos'
'gauss'
'tukey'
'dolph'
'cauchy'
'parzen'
'poisson'
'bohman'

Значення за замовчуванням: hann.

overlap

Встановити коефіцієнт перекриття вікна. Значення за замовчуванням: 0.5. Коли значення 1перекривається, встановлено рекомендований розмір для конкретної функції вікна, яка зараз використовується.

16.24 showspectrum

Перетворення вхідного аудіо на вихідне відео, що представляє частотний спектр звуку.

Фільтр приймає такі параметри:

size, s

Укажіть розмір відео для виведення. Щоб дізнатися про синтаксис цього параметра, перевірте розділ (ffmpeg-utils) «Розмір відео» в посібнику ffmpeg-utils . Значення за замовчуванням: 640x512.

slide

Вкажіть, як спектр має ковзати по вікну.

Він приймає такі значення:

'replace'

зразки починаються знову зліва, коли досягають правого

'scroll'

зразки прокручуються справа наліво

'fullframe'

кадри створюються лише тоді, коли зразки досягають потрібного

'rscroll'

зразки прокручуються зліва направо

'lreplace'

зразки починаються знову справа, коли досягають лівого

Значення за замовчуванням: replace.

mode

Вкажіть режим відображення.

Він приймає такі значення:

'combined'

усі канали відображаються в одному рядку

'separate'

всі канали відображаються в окремих рядках

Значення за замовчуванням: 'combined'.

color

Вкажіть колірний режим дисплея.

Він приймає такі значення:

'channel'

кожен канал відображається окремим кольором

'intensity'

кожен канал відображається з використанням однієї колірної схеми

'rainbow'

кожен канал відображається за схемою кольорів веселки

'moreland'

кожен канал відображається за допомогою колірної схеми moreland

'nebulae'

кожен канал відображається за допомогою колірної схеми туманностей

'fire'

кожен канал відображається за допомогою кольорової схеми вогню

'fiery'

кожен канал відображається за допомогою вогняної колірної схеми

'fruit'

кожен канал відображається за допомогою фруктової колірної схеми

'cool'

кожен канал відображається за допомогою холодної колірної схеми

'magma'

кожен канал відображається за допомогою колірної схеми магми

'green'

кожен канал відображається за допомогою зеленої колірної схеми

'viridis'

кожен канал відображається за допомогою колірної схеми viridis

'plasma'

кожен канал відображається за схемою кольорів плазми

'cividis'

кожен канал відображається за схемою кольорів cividis

'terrain'

кожен канал відображається за допомогою колірної схеми місцевості

Значення за замовчуванням: 'channel'.

scale

Укажіть шкалу, що використовується для розрахунку значень інтенсивності кольору.

Він приймає такі значення:

'lin'

лінійний

'sqrt'

квадратний корінь, за замовчуванням

'cbrt'

кубічний корінь

'log'

логарифмічний

'4thrt'

4-й корінь

'5thrt'

5-й корінь

Значення за замовчуванням: 'sqrt'.

fscale

Вкажіть частотний масштаб.

Він приймає такі значення:

'lin'

лінійний

'log'

логарифмічний

Значення за замовчуванням: 'lin'.

saturation

Установіть модифікатор насиченості для відображуваних кольорів. Від’ємні значення забезпечують альтернативну колірну схему. 0не є насиченням взагалі. Насиченість має бути в діапазоні [-10,0, 10,0]. Значення за замовчуванням: 1.

win_func

Встановити функцію вікна.

Він приймає такі значення:

'rect'
'bartlett'
'hann'
'hanning'
'hamming'
'blackman'
'welch'
'flattop'
'bharris'
'bnuttall'
'bhann'
'sine'
'nuttall'
'lanczos'
'gauss'
'tukey'
'dolph'
'cauchy'
'parzen'
'poisson'
'bohman'

Значення за замовчуванням: hann.

orientation

Встановити орієнтацію осі часу та частоти. Може бути verticalабо horizontal. Типовим є vertical.

overlap

Встановити коефіцієнт перекриття вікна. Значення за замовчуванням: 0. Коли значення 1перекривається, встановлено рекомендований розмір для конкретної функції вікна, яка зараз використовується.

gain

Встановіть посилення масштабу для обчислення значень інтенсивності кольору. Значення за замовчуванням: 1.

data

Встановіть, які дані відображати. Може бути magnitude, за замовчуванням або phase, або розгорнута фаза: uphase.

rotation

Установіть обертання кольорів, має бути в діапазоні [-1,0, 1,0]. Значення за замовчуванням: 0.

start

Встановіть початкову частоту для відображення спектрограми. Типовим є 0.

stop

Встановіть кінцеву частоту, до якої буде відображатися спектрограма. Типовим є 0.

fps

Встановити верхню межу частоти кадрів. За замовчуванням autoнеобмежено.

legend

Намалюйте осі часу та частоти та легенди. За замовчуванням вимкнено.

drange

Встановіть динамічний діапазон, який використовується для обчислення значень інтенсивності кольору. За замовчуванням 120 dBFS. Дозволений діапазон від 10 до 200.

limit

Встановіть верхню межу гучності вхідних аудіо зразків у dBFS. За замовчуванням 0 dBFS. Дозволений діапазон від -100 до 100.

opacity

Встановіть ступінь непрозорості під час використання піксельного виведення з альфа-компонентом.

Використання дуже схоже на фільтр showwaves; дивіться приклади в цьому розділі.

16.24.1 Examples

  • Велике вікно з логарифмічною шкалою кольорів:
    showspectrum=s=1280x480:scale=log
    
  • Повний приклад для кольорового та ковзного спектру на канал із використанням ffplay:
    ffplay -f lavfi 'amovie=input.mp3, asplit [a][out1];
                 [a] showspectrum=mode=separate:color=intensity:slide=1:scale=cbrt [out0]'
    

16.25 showspectrumpic

Перетворення вхідного аудіо в один відеокадр, що представляє спектр звукових частот.

Фільтр приймає такі параметри:

size, s

Укажіть розмір відео для виведення. Щоб дізнатися про синтаксис цього параметра, перевірте розділ (ffmpeg-utils) «Розмір відео» в посібнику ffmpeg-utils . Значення за замовчуванням: 4096x2048.

mode

Вкажіть режим відображення.

Він приймає такі значення:

'combined'

усі канали відображаються в одному рядку

'separate'

всі канали відображаються в окремих рядках

Значення за замовчуванням: 'combined'.

color

Вкажіть колірний режим дисплея.

Він приймає такі значення:

'channel'

кожен канал відображається окремим кольором

'intensity'

кожен канал відображається з використанням однієї колірної схеми

'rainbow'

кожен канал відображається за схемою кольорів веселки

'moreland'

кожен канал відображається за допомогою колірної схеми moreland

'nebulae'

кожен канал відображається за допомогою колірної схеми туманностей

'fire'

кожен канал відображається за допомогою кольорової схеми вогню

'fiery'

кожен канал відображається за допомогою вогняної колірної схеми

'fruit'

кожен канал відображається за допомогою фруктової колірної схеми

'cool'

кожен канал відображається за допомогою холодної колірної схеми

'magma'

кожен канал відображається за допомогою колірної схеми магми

'green'

кожен канал відображається за допомогою зеленої колірної схеми

'viridis'

кожен канал відображається за допомогою колірної схеми viridis

'plasma'

кожен канал відображається за схемою кольорів плазми

'cividis'

кожен канал відображається за схемою кольорів cividis

'terrain'

кожен канал відображається за допомогою колірної схеми місцевості

Значення за замовчуванням: 'intensity'.

scale

Укажіть шкалу, що використовується для розрахунку значень інтенсивності кольору.

Він приймає такі значення:

'lin'

лінійний

'sqrt'

квадратний корінь, за замовчуванням

'cbrt'

кубічний корінь

'log'

логарифмічний

'4thrt'

4-й корінь

'5thrt'

5-й корінь

Значення за замовчуванням: 'log'.

fscale

Вкажіть частотний масштаб.

Він приймає такі значення:

'lin'

лінійний

'log'

логарифмічний

Значення за замовчуванням: 'lin'.

saturation

Установіть модифікатор насиченості для відображуваних кольорів. Від’ємні значення забезпечують альтернативну колірну схему. 0не є насиченням взагалі. Насиченість має бути в діапазоні [-10,0, 10,0]. Значення за замовчуванням: 1.

win_func

Встановити функцію вікна.

Він приймає такі значення:

'rect'
'bartlett'
'hann'
'hanning'
'hamming'
'blackman'
'welch'
'flattop'
'bharris'
'bnuttall'
'bhann'
'sine'
'nuttall'
'lanczos'
'gauss'
'tukey'
'dolph'
'cauchy'
'parzen'
'poisson'
'bohman'

Значення за замовчуванням: hann.

orientation

Встановити орієнтацію осі часу та частоти. Може бути verticalабо horizontal. Типовим є vertical.

gain

Встановіть посилення масштабу для обчислення значень інтенсивності кольору. Значення за замовчуванням: 1.

legend

Намалюйте осі часу та частоти та легенди. За замовчуванням увімкнено.

rotation

Установіть обертання кольорів, має бути в діапазоні [-1,0, 1,0]. Значення за замовчуванням: 0.

start

Встановіть початкову частоту для відображення спектрограми. Типовим є 0.

stop

Встановіть кінцеву частоту, до якої буде відображатися спектрограма. Типовим є 0.

drange

Встановіть динамічний діапазон, який використовується для обчислення значень інтенсивності кольору. За замовчуванням 120 dBFS. Дозволений діапазон від 10 до 200.

limit

Встановіть верхню межу гучності вхідних аудіо зразків у dBFS. За замовчуванням 0 dBFS. Дозволений діапазон від -100 до 100.

opacity

Встановіть ступінь непрозорості під час використання піксельного виведення з альфа-компонентом.

16.25.1 Examples

  • Витягніть аудіоспектрограму цілої звукової доріжки на зображенні 1024x1024 за допомогою ffmpeg:
    ffmpeg -i audio.flac -lavfi showspectrumpic=s=1024x1024 spectrogram.png
    

16.26 showvolume

Перетворення гучності вхідного аудіо на вихід відео.

Фільтр приймає такі параметри:

rate, r

Встановити швидкість відео.

b

Встановіть ширину межі, допустимий діапазон [0, 5]. За замовчуванням 1.

w

Встановіть ширину каналу, допустимий діапазон [80, 8192]. За замовчуванням 400.

h

Встановіть висоту каналу, допустимий діапазон [1, 900]. За замовчуванням 20.

f

Встановити затухання, дозволений діапазон [0, 1]. За замовчуванням 0,95.

c

Встановіть вираз кольору об’єму.

Вираз може використовувати такі змінні:

VOLUME

Поточна максимальна гучність каналу в дБ.

PEAK

Поточний пік.

CHANNEL

Номер поточного каналу, починаючи з 0.

t

Якщо встановлено, відображає назви каналів. За замовчуванням увімкнено.

v

Якщо встановлено, відображає значення гучності. За замовчуванням увімкнено.

o

Встановіть орієнтацію, може бути горизонтальною: hабо вертикальною: v, за замовчуванням h.

s

Встановіть розмір кроку, допустимий діапазон [0, 5]. За замовчуванням 0, що означає, що крок вимкнено.

p

Встановіть непрозорість фону, допустимий діапазон [0, 1]. За замовчуванням 0.

m

Встановіть режим вимірювання, може бути peak: pабо rms:, rза замовчуванням це p.

ds

Встановити масштаб відображення, може бути лінійним: linабо логарифмічним: log, за замовчуванням lin.

dm

У секунду. Якщо встановлено значення > 0., відображати рядок максимального рівня за попередні секунди. за замовчуванням вимкнено:0.

dmc

Колір максимальної лінії. Використовувати, якщо для dmпараметра встановлено значення > 0. За замовчуванням:orange

16.27 showwaves

Перетворення вхідного аудіо на вихідне відео, що представляє хвилі зразків.

Фільтр приймає такі параметри:

size, s

Укажіть розмір відео для виведення. Щоб дізнатися про синтаксис цього параметра, перевірте розділ (ffmpeg-utils) «Розмір відео» в посібнику ffmpeg-utils . Значення за замовчуванням: 600x240.

mode

Встановити режим відображення.

Доступні значення:

'point'

Намалюйте точку для кожного зразка.

'line'

Проведіть вертикальну лінію для кожного зразка.

'p2p'

Намалюйте точку для кожного зразка та лінію між ними.

'cline'

Намалюйте вертикальну лінію по центру для кожного зразка.

Значення за замовчуванням: point.

n

Встановіть кількість зразків, які друкуються на одній колонці. Більше значення зменшить частоту кадрів. Має бути додатним цілим числом. Цей параметр можна встановити, лише якщо значення для rate не вказано явно.

rate, r

Встановіть (приблизну) вихідну частоту кадрів. Це робиться шляхом встановлення опції n. Значення за замовчуванням - "25".

split_channels

Встановіть, чи слід малювати канали окремо чи накладатися. Значення за замовчуванням 0.

colors

Встановити кольори, розділені символом "|" які будуть використовуватися для малювання кожного каналу.

scale

Встановити шкалу амплітуди.

Доступні значення:

'lin'

Лінійний.

'log'

Логарифмічний.

'sqrt'

Квадратний корінь.

'cbrt'

Кубічний корінь.

За замовчуванням лінійний.

draw

Встановити режим малювання. Це здебільшого корисно встановити для високого значенняn .

Доступні значення:

'scale'

Масштабувати значення пікселів для кожного намальованого зразка.

'full'

Намалюйте кожен зразок безпосередньо.

Значення за замовчуванням: scale.

16.27.1 Examples

  • Одночасно виведіть аудіо та відповідне відео у вхідному файлі:
    amovie=a.mp3,asplit[out0],showwaves[out1]
    
  • Створіть синтетичний сигнал і покажіть його за допомогою шоу-хвиль, форсуючи частоту кадрів 30 кадрів на секунду:
    aevalsrc=sin(1*2*PI*t)*sin(880*2*PI*t):cos(2*PI*200*t),asplit[out0],showwaves=r=30[out1]
    

16.28 showwavespic

Перетворення вхідного аудіо на один відеокадр, що представляє хвилі зразків.

Фільтр приймає такі параметри:

size, s

Укажіть розмір відео для виведення. Щоб дізнатися про синтаксис цього параметра, перевірте розділ (ffmpeg-utils) «Розмір відео» в посібнику ffmpeg-utils . Значення за замовчуванням: 600x240.

split_channels

Встановіть, чи слід малювати канали окремо чи накладатися. Значення за замовчуванням 0.

colors

Встановити кольори, розділені символом "|" які будуть використовуватися для малювання кожного каналу.

scale

Встановити шкалу амплітуди.

Доступні значення:

'lin'

Лінійний.

'log'

Логарифмічний.

'sqrt'

Квадратний корінь.

'cbrt'

Кубічний корінь.

За замовчуванням лінійний.

draw

Встановити режим малювання.

Доступні значення:

'scale'

Масштабувати значення пікселів для кожного намальованого зразка.

'full'

Намалюйте кожен зразок безпосередньо.

Значення за замовчуванням: scale.

filter

Встановіть режим фільтра.

Доступні значення:

'average'

Використовуйте середні значення зразків для кожного взятого зразка.

'peak'

Використовуйте пікові значення зразків для кожного взятого зразка.

Значення за замовчуванням: average.

16.28.1 Examples

  • Витягніть розділене по каналу представлення форми хвилі цілої звукової доріжки в зображенні 1024x800 за допомогою ffmpeg:
    ffmpeg -i audio.flac -lavfi showwavespic=split_channels=1:s=1024x800 waveform.png
    

16.29 sidedata, asidedata

Видаліть сторонні дані кадру або виберіть кадри на їх основі.

Цей фільтр приймає такі параметри:

mode

Встановити режим роботи фільтра.

Може бути одним із таких:

'select'

Виберіть кожен кадр із бічними даними type.

'delete'

Видалити сторонні дані type. Якщо typeне встановлено, видалити всі сторонні дані у кадрі.

type

Встановіть тип даних сторони, який використовується для всіх режимів. Необхідно встановити selectрежим. Список типів даних на стороні кадру дивAVFrameSideDataType вlibavutil/frame.h. Наприклад, щоб вибрати AV_FRAME_DATA_PANSCANсторонні дані, необхідно вказати PANSCAN.

16.30 spectrumsynth

Синтезуйте аудіо з 2 вхідних відеоспектрів, перший вхідний потік представляє величину в часі, а другий представляє фазу в часі. Фільтр перетвориться з частотної області, яка відображається у відео, на часову область, представлену в аудіовиході.

Цей фільтр в основному створений для реверсування оброблених виходів фільтра showspectrum , але також може синтезувати звук з інших спектрограм. Але в такому випадку результати будуть поганими, якщо дані фази недоступні, тому що в таких випадках дані фази потрібно відтворювати заново, зазвичай вони просто відтворюються з випадкового шуму. Для отримання найкращих результатів використовуйте вихід лише сірого ( channelкольоровий режим у фільтрі showspectrum ) і logшкалу для амплітуди відео та linшкалу для фази відео. Для створення фази для 2-го відео скористайтеся dataопцією. Вхідні відео зазвичай мають використовувати fullframe режим слайдів, оскільки це економить ресурси, необхідні для декодування відео.

Фільтр приймає такі параметри:

sample_rate

Укажіть частоту дискретизації вихідного аудіо, частота дискретизації аудіо, з якого було згенеровано спектр, може відрізнятися.

channels

Встановіть кількість каналів, представлених у вхідному відеоспектрі.

scale

Встановіть масштаб, який використовувався при генерації вхідного спектру величини. Може бути linабо log. Типовим є log.

slide

Встановити слайд, який використовувався під час генерації вхідних спектрів. Може бути replace, scrollабо . Типовим є . fullframerscrollfullframe

win_func

Встановити функцію вікна, яка використовується для повторного синтезу.

overlap

Встановити перекриття вікон. В діапазоні [0, 1]. За замовчуванням встановлено 1, що означає, що буде вибрано оптимальне перекриття для вибраної функції вікна.

orientation

Встановити орієнтацію вхідного відео. Може бути verticalабо horizontal. Типовим є vertical.

16.30.1 Examples

  • Спочатку створіть відео амплітуди та фази з аудіо, припускаючи, що аудіо є стерео з частотою дискретизації 44100, а потім знову синтезуйте відео в аудіо за допомогою spectrumsynth:
    ffmpeg -i input.flac -lavfi showspectrum=mode=separate:scale=log:overlap=0.875:color=channel:slide=fullframe:data=magnitude -an -c:v rawvideo magnitude.nut
    ffmpeg -i input.flac -lavfi showspectrum=mode=separate:scale=lin:overlap=0.875:color=channel:slide=fullframe:data=phase -an -c:v rawvideo phase.nut
    ffmpeg -i magnitude.nut -i phase.nut -lavfi spectrumsynth=channels=2:sample_rate=44100:win_func=hann:overlap=0.875:slide=fullframe output.flac
    

16.31 split, asplit

Розділити вхід на кілька однакових виходів.

asplitпрацює з аудіовходом,split з відео.

Фільтр приймає єдиний параметр, який визначає кількість виходів. Якщо не вказано, за умовчанням дорівнює 2.

16.31.1 Examples

  • Створіть два окремих виходи з одного входу:
    [in] split [out0][out1]
    
  • Щоб створити 3 або більше виходів, потрібно вказати кількість виходів, наприклад:
    [in] asplit=3 [out0][out1][out2]
    
  • Створіть два окремих виводу з одного входу, один обрізаний, а інший доповнений:
    [in] split [splitout1][splitout2];
    [splitout1] crop=100:100:0:0    [cropout];
    [splitout2] pad=200:200:100:100 [padout];
    
  • Створіть 5 копій вхідного аудіо за допомогою ffmpeg:
    ffmpeg -i INPUT -filter_complex asplit=5 OUTPUT
    

16.32 zmq, azmq

Отримувати команди, надіслані через клієнт libzmq, і пересилати їх до фільтрів у filtergraph.

zmqі azmqпрацюють як прохідні фільтри. zmq має бути вставлено між двома відеофільтрами, azmqміж двома аудіофільтрами. Обидва можуть надсилати повідомлення до будь-якого типу фільтра.

Щоб увімкнути ці фільтри, вам потрібно встановити бібліотеку libzmq і заголовки та налаштувати FFmpeg за допомогою--enable-libzmq .

Для отримання додаткової інформації про libzmq див.: http://www.zeromq.org/

zmqФільтри і azmqпрацюють як сервер libzmq, який отримує повідомлення, надіслані через мережевий інтерфейс, визначенийbind_address(або абревіатура "b"). Значення за замовчуванням цього параметра:tcp://localhost:5555. Можливо, ви захочете змінити це значення відповідно до своїх потреб, але не забудьте екранувати будь-які знаки «:» (див . Екранування фільтра ).

Отримане повідомлення має бути у формі:

TARGET COMMAND [ARG]

TARGETвизначає ціль команди, як правило, ім'я класу фільтра або ім'я конкретного екземпляра фільтра. Назва екземпляра фільтра за замовчуванням використовує шаблон 'Parsed_<filter_name>_<index>', але ви можете змінити це за допомогою 'filter_name@id' синтаксис (див . Синтаксис Filtergraph ).

COMMANDвизначає назву команди для цільового фільтра.

ARGє необов'язковим і визначає необов'язковий список аргументів для даного COMMAND.

Після отримання повідомлення обробляється і відповідна команда вводиться в фільтр-граф. Залежно від результату фільтр надішле клієнту відповідь у такому форматі:

ERROR_CODE ERROR_REASON
MESSAGE

MESSAGEє необов'язковим.

16.32.1 Examples

Подивись наtools/zmqsendдля прикладу клієнта zmq, який можна використовувати для надсилання команд, оброблених цими фільтрами.

Розглянемо наступний фільтр-граф, згенерований ffplay. У цьому прикладі останній фільтр накладання має назву екземпляра. Усі інші фільтри матимуть імена екземплярів за замовчуванням.

ffplay -dumpgraph 1 -f lavfi "
color=s=100x100:c=red  [l];
color=s=100x100:c=blue [r];
nullsrc=s=200x100, zmq [bg];
[bg][l]   overlay     [bg+l];
[bg+l][r] overlay@my=x=100 "

Щоб змінити колір лівої частини відео, можна використати таку команду:

echo Parsed_color_0 c yellow | tools/zmqsend

Щоб змінити праву сторону:

echo Parsed_color_1 c pink | tools/zmqsend

Щоб змінити положення правого боку:

echo overlay@my x 150 | tools/zmqsend

17 Multimedia Sources

Нижче наведено опис доступних на даний момент джерел мультимедіа.

17.1 amovie

Це те саме, що джерело фільму , за винятком того, що за замовчуванням вибирається аудіопотік.

17.2 avsynctest

Згенеруйте тест синхронізації аудіо/відео.

Згенерований потік періодично показує флеш-кадр відео та видає звуковий сигнал у аудіо. Корисно для перевірки проблем синхронізації A/V.

Він приймає такі варіанти:

size, s

Встановити розмір вихідного відео. Значення за замовчуванням: hd720.

framerate, fr

Встановити вихідну частоту кадрів відео. Значення за замовчуванням: 30.

samplerate, sr

Встановити вихідну частоту дискретизації аудіо. Значення за замовчуванням: 44100.

amplitude, a

Встановіть амплітуду вихідного звукового сигналу. Значення за замовчуванням: 0.7.

period, p

Встановіть період вихідного звукового сигналу в секундах. Значення за замовчуванням: 3.

delay, dl

Встановіть затримку спалаху вихідного відео в кількості кадрів. Значення за замовчуванням: 0.

cycle, c

Увімкнути циклічні затримки відео, за замовчуванням вимкнено.

duration, d

Встановити тривалість виведення потоку. За замовчуванням тривалість необмежена.

fg, bg, ag

Установити передній/фоновий/додатковий колір.

17.3 movie

Читання аудіо- та/або відеопотоків із контейнера фільмів.

Він приймає такі параметри:

filename

Ім’я ресурсу для читання (не обов’язково файл; це також може бути пристрій або потік, доступ до якого здійснюється через певний протокол).

format_name, f

Визначає формат, який передбачається для читання фільму, і може бути назвою контейнера або пристрою введення. Якщо не вказано, формат вгадується з movie_nameабо за допомогою зондування.

seek_point, sp

Визначає точку пошуку в секундах. Кадри будуть виведені, починаючи з цієї точки пошуку. Параметр обчислюється за допомогою av_strtod, тому числове значення може суфіксуватися постфіксом IS. Значення за замовчуванням - "0".

streams, s

Визначає потоки для читання. Можна вказати кілька потоків, розділених знаком «+». Тоді джерело матиме стільки виходів у тому самому порядку. Синтаксис пояснюється в розділі (ffmpeg) «Специфікатори потоку» посібника ffmpeg . Дві спеціальні назви «dv» і «da» вказують відповідно стандартний (найкращий) відео- та аудіопотік. Типовим значенням є «dv» або «da», якщо фільтр називається «amovie».

stream_index, si

Визначає індекс відеопотоку для читання. Якщо значення дорівнює -1, буде автоматично вибрано найбільш підходящий відеопотік. Значення за замовчуванням - "-1". Застаріле. Якщо фільтр називається «amovie», він вибиратиме аудіо замість відео.

loop

Визначає, скільки разів послідовно читати потік. Якщо значення дорівнює 0, потік буде зациклюватися нескінченно. Значення за замовчуванням - "1".

Зауважте, що коли фільм зациклюється, мітки часу джерела не змінюються, тому він генеруватиме немонотонно зростаючі мітки часу.

discontinuity

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

dec_threads

Визначає кількість потоків для декодування

format_opts

Вкажіть параметри формату для відкритого файлу. Параметри формату можна вказати як список пар key= value, розділених символом ':'. У наступному прикладі показано, як додати параметри protocol_whitelist і protocol_blacklist:

ffplay -f lavfi
"movie=filename='1.sdp':format_opts='protocol_whitelist=file,rtp,udp\:protocol_blacklist=http'"

Це дозволяє накладати друге відео поверх основного входу фільтра, як показано на цьому графіку:

input -----------> deltapts0 --> overlay --> output
                                    ^
                                    |
movie --> scale--> deltapts1 -------+

17.3.1 Examples

  • Пропустіть 3,2 секунди від початку файлу AVI in.avi і накладіть його на вхідний файл із позначкою «in»:
    movie=in.avi:seek_point=3.2, scale=180:-1, setpts=PTS-STARTPTS [over];
    [in] setpts=PTS-STARTPTS [main];
    [main][over] overlay=16:16 [out]
    
  • Прочитайте з пристрою video4linux2 і накладіть його поверх введення, позначеного «в»:
    movie=/dev/video0:f=video4linux2, scale=180:-1, setpts=PTS-STARTPTS [over];
    [in] setpts=PTS-STARTPTS [main];
    [main][over] overlay=16:16 [out]
    
  • Прочитати перший відеопотік та аудіопотік з ідентифікатором 0x81 з dvd.vob; відео підключено до панелі під назвою «відео», а аудіо підключено до панелі під назвою «аудіо»:
    movie=dvd.vob:s=v:0+#0x81 [video] [audio]
    

17.3.2 Commands

І movie, і amovie підтримують такі команди:

seek

Виконайте пошук за допомогою "av_seek_frame". Синтаксис такий: seek stream_index| timestamp|flags

  • stream_index: Якщо stream_index дорівнює -1, вибрано потік за замовчуванням, timestampякий автоматично перетворюється з одиниць AV_TIME_BASE на конкретну базу часу_потоку.
  • timestamp: Мітка часу в одиницях AVStream.time_base або, якщо потік не вказано, в одиницях AV_TIME_BASE.
  • flags: прапорці, які вибирають напрямок і режим пошуку.
get_duration

Отримайте тривалість фільму в одиницях AV_TIME_BASE.

18 See Also

ffmpeg , ffplay , ffprobe , libavfilter

19 Authors

Розробники FFmpeg.

Щоб дізнатися більше про авторство, перегляньте історію Git проекту (git://source.ffmpeg.org/ffmpeg), наприклад, ввівши команду git logв каталозі вихідного коду FFmpeg або переглянувши онлайн-репозиторій за адресою http://source. ffmpeg.org .

Супроводжувачі для конкретних компонентів перераховані у файлі MAINTAINERSу дереві вихідного коду.

Цей документ було створено 11 липня 2022 року за допомогою makeinfo .

Хостинг надає telepoint.bg

Исходный текст