Dokumentacja filtrów FFmpeg

Spis treści

1 Description

Ten dokument opisuje filtry, źródła i ujścia dostarczane przez bibliotekę libavfilter.

2 Filtering Introduction

Filtrowanie w FFmpeg jest włączone przez bibliotekę libavfilter.

W libavfilter filtr może mieć wiele wejść i wiele wyjść. Aby zilustrować rodzaje rzeczy, które są możliwe, rozważmy poniższy wykres filtracyjny.

                [główne] 
wejście --> split ---------------------> nakładka --> wyjście 
            | ^ 
            |[tmp] [przerzucenie]| 
            +-----> przytnij --> odwróć -------+

Ten wykres filtra dzieli strumień wejściowy na dwa strumienie, a następnie przesyła jeden strumień przez filtr upraw i filtr vflip, a następnie łączy go z powrotem z drugim strumieniem, nakładając go na wierzch. Aby to osiągnąć, możesz użyć następującego polecenia:

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

W rezultacie górna połowa wideo zostanie odzwierciedlona w dolnej połowie wyjściowego wideo.

Filtry w tym samym łańcuchu liniowym są oddzielone przecinkami, a odrębne łańcuchy liniowe filtrów są oddzielone średnikami. W naszym przykładzie crop,vflipznajdują się w jednym łańcuchu liniowym, splita overlayosobno w innym. Punkty, w których łączą się łańcuchy liniowe, są oznaczone nazwami ujętymi w nawiasy kwadratowe. W tym przykładzie filtr podziału generuje dwa dane wyjściowe, które są skojarzone z etykietami [main]i [tmp].

Strumień wysyłany do drugiego wyjścia split, oznaczony jako [tmp], jest przetwarzany przez cropfiltr, który wycina dolną połowę filmu, a następnie jest odwracany w pionie. Filtr overlayprzyjmuje na wejście pierwsze niezmienione wyjście filtra dzielonego (oznaczonego jako [main]) i nakłada na jego dolną połowę wyjście generowane przez crop,vflipłańcuch filtrów.

Niektóre filtry przyjmują na wejściu listę parametrów: są one określone po nazwie filtra i znaku równości i są oddzielone od siebie dwukropkiem.

Istnieją tak zwane source filters, które nie mają wejścia audio/wideo i sink filtersnie będą miały wyjścia audio/wideo.

3 graph2dot

Thegraph2dotprogram zawarty w FFmpegtools directory może służyć do analizowania opisu wykresu filtra i wydawania odpowiedniej reprezentacji tekstowej w języku kropek.

Wywołaj polecenie:

graph2dot -h

aby zobaczyć, jak używaćgraph2dot.

Następnie możesz przekazać opis kropki dodot(z pakietu programów graphviz) i uzyskać graficzną reprezentację wykresu filtra.

Na przykład sekwencja poleceń:

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

może służyć do tworzenia i wyświetlania obrazu reprezentującego wykres opisany przez GRAPH_DESCRIPTIONciąg. Zauważ, że ten ciąg musi być kompletnym, samodzielnym wykresem, z wyraźnie zdefiniowanymi danymi wejściowymi i wyjściowymi. Na przykład, jeśli linia poleceń ma postać:

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

Twój GRAPH_DESCRIPTIONciąg będzie musiał mieć postać:

nullsrc,scale=640:360,nullsink

może być również konieczne ustawienie nullsrcparametrów i dodanie format filtra, aby zasymulować określony plik wejściowy.

4 Filtergraph description

Filtergraph to ukierunkowany wykres połączonych filtrów. Może zawierać cykle i może istnieć wiele połączeń między parą filtrów. Każde łącze ma jedną wkładkę wejściową z jednej strony, łączącą je z jednym filtrem, z którego pobiera swoje wejście, i jedną wkładkę wyjściową z drugiej strony, łączącą je z jednym filtrem akceptującym jego wyjście.

Każdy filtr na wykresie filtra jest instancją klasy filtra zarejestrowaną w aplikacji, która definiuje cechy oraz liczbę padów wejściowych i wyjściowych filtra.

Filtr bez padów wejściowych nazywany jest „źródłem”, a filtr bez padów wyjściowych nazywany jest „sink”.

4.1 Filtergraph syntax

Wykres filtracyjny ma reprezentację tekstową, która jest rozpoznawana przez -filter/-vf/-aforaz -filter_complexopcje w ffmpegi -vf/-afin ffplayi przez avfilter_graph_parse_ptr()funkcję zdefiniowaną w libavfilter/avfilter.h.

Łańcuch filtrów składa się z sekwencji połączonych filtrów, z których każdy jest połączony z poprzednim w sekwencji. Łańcuch filtrów jest reprezentowany przez listę opisów filtrów oddzielonych ","-.

Wykres filtra składa się z sekwencji łańcuchów filtrów. Sekwencja łańcuchów filtrów jest reprezentowana przez listę opisów łańcuchów filtrów oddzielonych „;”.

Filtr jest reprezentowany przez ciąg znaków: [ in_link_1]...[ in_link_N] filter_name@ id= arguments[ out_link_1]...[ out_link_M]

filter_namejest nazwą klasy filtra, której instancją jest opisywany filtr, i musi być nazwą jednej z klas filtrów zarejestrowanych w programie opcjonalnie z dopiskiem „@ id”. Po nazwie klasy filtra opcjonalnie następuje ciąg „= arguments”.

argumentsto ciąg znaków, który zawiera parametry używane do inicjalizacji instancji filtra. Może mieć jedną z dwóch form:

  • Lista key=valuepar rozdzielonych ':'.
  • Lista rozdzielonych ':' value. W takim przypadku zakłada się, że klucze są nazwami opcji w kolejności ich deklarowania. Np. fadefiltr deklaruje trzy opcje w tej kolejności –type,start_frameoraz nb_frames. Wtedy lista parametrów in:0:30oznacza, że ​​wartość injest przypisana do opcjitype, 0do start_framei 30donb_frames.
  • Lista mieszanych par prostych valuei długich , rozdzielonych ':'. key=valueBezpośrednie valuemuszą poprzedzać key=valuepary i przebiegać w tej samej kolejności ograniczeń co w poprzednim punkcie. Poniższe key=valuepary można ustawić w dowolnej preferowanej kolejności.

Jeśli sama wartość opcji jest listą elementów (np. formatfiltr przyjmuje listę formatów pikseli), elementy na liście są zwykle oddzielone '|„.

Listę argumentów można cytować za pomocą znaku ''' jako początkowy i końcowy znak, a znak '\' do ucieczki znaków w cytowanym tekście; w przeciwnym razie ciąg argumentów jest uważany za zakończony, gdy następny znak specjalny (należący do zestawu '[]=;,').

Nazwa i argumenty filtru są opcjonalnie poprzedzone i poprzedzone listą etykiet łączy. Etykieta łącza umożliwia nazwanie łącza i powiązanie go z wyjściem filtra lub padem wejściowym. Poprzednie etykiety in_link_1 ... in_link_N, są związane z wkładkami wejściowymi filtra, kolejne etykiety out_link_1... out_link_M, są związane z wkładkami wyjściowymi.

Gdy na wykresie filtra zostaną znalezione dwie etykiety linków o tej samej nazwie, tworzony jest link między odpowiednim padem wejściowym i wyjściowym.

Jeśli podkładka wyjściowa nie jest oznaczona, jest domyślnie połączona z pierwszą nieoznaczoną podkładką wejściową następnego filtra w łańcuchu filtrów. Na przykład w łańcuchu filtrów

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

instancja filtra dzielonego ma dwa pady wyjściowe, a instancja filtra nakładki dwa pady wejściowe. Pierwsze pole wyjściowe podziału jest oznaczone jako „L1”, pierwsze pole wejściowe nakładki jest oznaczone jako „L2”, a drugie pole wyjściowe podziału jest połączone z drugim polem wejściowym nakładki, które są nieoznaczone.

W opisie filtra, jeśli etykieta wejściowa pierwszego filtra nie jest określona, ​​zakłada się "in"; jeśli etykieta wyjściowa ostatniego filtru nie jest określona, ​​przyjmowane jest "out".

W kompletnym łańcuchu filtrów wszystkie nieopisane wkłady wejściowe i wyjściowe filtra muszą być połączone. Wykres filtra jest uważany za prawidłowy, jeśli wszystkie wkładki wejściowe i wyjściowe filtra wszystkich łańcuchów filtrów są połączone.

Libavfilter automatycznie wstawi filtry skali tam, gdzie wymagana jest konwersja formatu. Możliwe jest określenie flag swscale dla automatycznie wstawianych skalerów, dołączając do opisu wykresu filtra. sws_flags=flags;

Oto opis BNF składni wykresu filtra:

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

Kompozycja opisu filtrografu pociąga za sobą kilka poziomów ucieczki. Zobacz (ffmpeg-utils) sekcję „Cytowanie i escaping” w podręczniku ffmpeg-utils(1) , aby uzyskać więcej informacji o zastosowanej procedurze ucieczki.

Zmiana znaczenia pierwszego poziomu wpływa na zawartość każdej wartości opcji filtru, która może zawierać znak specjalny :używany do oddzielania wartości lub jeden ze znaków ucieczki \'.

Drugi poziom ucieczki wpływa na cały opis filtra, który może zawierać znaki \'specjalne lub znaki specjalne [],;używane w opisie wykresu filtru.

Wreszcie, kiedy określasz wykres filtra w wierszu poleceń powłoki, musisz wykonać trzeci poziom ucieczki dla zawartych w nim znaków specjalnych powłoki.

Rozważmy na przykład następujący ciąg, który ma zostać osadzony w opisie filtra tekstu rysunkowego :textwartość:

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

Ten ciąg zawiera 'specjalny znak ucieczki i :znak specjalny, więc należy go zmienić w ten sposób:

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

Drugi poziom ucieczki jest wymagany podczas osadzania opisu filtra w opisie wykresu filtra, aby uniknąć wszystkich znaków specjalnych wykresu filtra. Zatem powyższy przykład staje się:

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

(zauważ, że oprócz \'uciekających znaków specjalnych, ,trzeba też uciec).

Wreszcie, podczas pisania opisu wykresu filtra w poleceniu powłoki potrzebny jest dodatkowy poziom ucieczki, który zależy od reguł ucieczki przyjętej powłoki. Na przykład, zakładając, że \jest to coś specjalnego i musi być poprzedzone innym \, poprzedni ciąg ostatecznie da w wyniku:

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

5 Timeline editing

Niektóre filtry obsługują ogólnyenableopcja. W przypadku filtrów obsługujących edycję osi czasu tę opcję można ustawić na wyrażenie, które jest oceniane przed wysłaniem ramki do filtru. Jeśli ocena jest niezerowa, filtr zostanie włączony, w przeciwnym razie ramka zostanie wysłana w niezmienionej postaci do następnego filtru na wykresie filtra.

Wyrażenie przyjmuje następujące wartości:

't'

znacznik czasu wyrażony w sekundach, NAN, jeśli wejściowy znacznik czasu jest nieznany

'n'

kolejny numer ramki wejściowej, zaczynając od 0

'pos'

pozycja w pliku ramki wejściowej, NAN jeśli nieznana

'w'
'h'

szerokość i wysokość ramki wejściowej, jeśli wideo

Dodatkowo filtry te obsługująenablepolecenie, którego można użyć do przedefiniowania wyrażenia.

Jak każda inna opcja filtrowania,enableopcja podlega tym samym zasadom.

Na przykład, aby włączyć filtr rozmycia ( smartblur ) od 10 sekund do 3 minut, a filtr krzywych zaczynający się od 3 sekund:

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

Zobacz ffmpeg -filters, które filtry obsługują oś czasu.

6 Changing options at runtime with a command

Niektóre opcje można zmienić podczas działania filtra za pomocą polecenia. Te opcje są oznaczone 'T' na wyjściu ffmpeg -h filter=<name of filter>. Nazwa polecenia to nazwa opcji, a argument to nowa wartość.

7 Options for filters with several inputs (framesync)

Niektóre filtry z kilkoma wejściami obsługują wspólny zestaw opcji. Te opcje można ustawić tylko według nazwy, a nie za pomocą krótkiej notacji.

eof_action

Akcja do wykonania w przypadku napotkania EOF na wejściu pomocniczym; przyjmuje jedną z następujących wartości:

repeat

Powtórz ostatnią klatkę (domyślnie).

endall

Zakończ oba strumienie.

pass

Przepuścić główne wejście.

shortest

Jeśli jest ustawiony na 1, wymusza zakończenie wyjścia po zakończeniu najkrótszego wejścia. Wartość domyślna to 0.

repeatlast

Jeśli jest ustawiony na 1, wymusza na filtrze przedłużenie ostatniej klatki strumieni wtórnych do końca strumienia głównego. Wartość 0 wyłącza to zachowanie. Wartość domyślna to 1.

8 Audio Filters

Podczas konfigurowania kompilacji FFmpeg możesz wyłączyć dowolny z istniejących filtrów za pomocą --disable-filters. Dane wyjściowe konfiguracji pokażą filtry audio zawarte w twojej kompilacji.

Poniżej znajduje się opis aktualnie dostępnych filtrów audio.

8.1 acompressor

Kompresor służy głównie do zmniejszenia zakresu dynamicznego sygnału. Zwłaszcza współczesna muzyka jest kompresowana w dużym stopniu, aby poprawić ogólną głośność. Ma to na celu przyciągnięcie jak największej uwagi słuchacza, „podgrubienie” dźwięku i wniesienie do utworu więcej „mocy”. Jeśli sygnał jest zbyt mocno skompresowany, może brzmieć potem przytłumiony lub „martwy” lub może zacząć „pompować” (co może być potężnym efektem, ale może również całkowicie zniszczyć utwór). Właściwa kompresja jest kluczem do uzyskania profesjonalnego dźwięku i jest wysoką sztuką miksowania i masteringu. Ze względu na złożone ustawienia, uzyskanie odpowiedniego wyczucia tego rodzaju efektu może zająć dużo czasu.

Kompresja polega na wykryciu głośności powyżej wybranego poziomu thresholdi podzieleniu jej przez współczynnik ustawiony za pomocą ratio. Więc jeśli ustawisz próg na -12dB i twój sygnał osiągnie -6dB stosunek 2:1 da sygnał na poziomie -9dB. Ponieważ dokładna manipulacja sygnałem spowodowałaby zniekształcenie przebiegu, redukcja może być niwelowana w czasie. Odbywa się to poprzez ustawienie "Atak" i "Uwolnienie". attackokreśla, jak długo sygnał musi wzrosnąć powyżej progu, zanim nastąpi jakakolwiek redukcja, i releaseustawia czas, w którym sygnał musi spaść poniżej progu, aby ponownie zmniejszyć redukcję. Sygnały krótsze niż wybrany czas ataku pozostaną nietknięte. Całkowitą redukcję sygnału można później nadrobić za pomocą makeupustawienie. Tak więc skompresowanie szczytów sygnału o około 6dB i podniesienie makijażu do tego poziomu daje sygnał dwa razy głośniejszy niż źródło. Aby uzyskać bardziej miękkie wejście w kompresji, kneespłaszcza twardą krawędź na progu w zakresie wybranych decybeli.

Filtr akceptuje następujące opcje:

level_in

Ustaw wzmocnienie wejścia. Wartość domyślna to 1. Zakres wynosi od 0,015625 do 64.

mode

Ustaw tryb pracy sprężarki. Może być upwardlub downward. Wartość domyślna to downward.

threshold

Jeśli sygnał strumienia wzrośnie powyżej tego poziomu, wpłynie to na redukcję wzmocnienia. Domyślnie jest to 0,125. Zakres wynosi od 0,00097563 do 1.

ratio

Ustaw współczynnik redukcji sygnału. 1:2 oznacza, że ​​jeśli poziom wzrósł o 4dB powyżej progu, to po redukcji będzie tylko 2dB powyżej. Wartość domyślna to 2. Zakres wynosi od 1 do 20.

attack

Ilość milisekund, przez którą sygnał musi wzrosnąć powyżej progu, zanim rozpocznie się redukcja wzmocnienia. Wartość domyślna to 20. Zakres wynosi od 0,01 do 2000.

release

Ilość milisekund, przez którą sygnał musi spaść poniżej progu, zanim redukcja zostanie ponownie zmniejszona. Wartość domyślna to 250. Zakres wynosi od 0,01 do 9000.

makeup

Ustaw ilość, o jaką sygnał zostanie wzmocniony po przetworzeniu. Wartość domyślna to 1. Zakres wynosi od 1 do 64.

knee

Zakręć ostre kolano wokół progu, aby łagodniej wejść w redukcję wzmocnienia. Wartość domyślna to 2.82843. Zakres wynosi od 1 do 8.

link

Wybierz, czy averagepoziom pomiędzy wszystkimi kanałami strumienia wejściowego, czy głośniejszy( maximum) kanał strumienia wejściowego ma wpływ na redukcję. Wartość domyślna to average.

detection

Czy należy odbierać dokładny sygnał w przypadku peaklub RMS w przypadku rms. Domyślnie jest rmsto w większości płynniejsze.

mix

Ile użyć skompresowanego sygnału na wyjściu. Wartość domyślna to 1. Zakres wynosi od 0 do 1.

8.1.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

8.2 acontrast

Prosty filtr kompresji/rozszerzania zakresu dynamiki dźwięku.

Filtr akceptuje następujące opcje:

contrast

Ustaw kontrast. Wartość domyślna to 33. Dozwolony zakres to od 0 do 100.

8.3 acopy

Skopiuj źródło dźwięku wejściowego bez zmian do wyjścia. Jest to przydatne głównie do celów testowych.

8.4 acrossfade

Zastosuj crossfade z jednego wejściowego strumienia audio do innego wejściowego strumienia audio. Przenikanie jest stosowane przez określony czas pod koniec pierwszego strumienia.

Filtr akceptuje następujące opcje:

nb_samples, ns

Określ liczbę próbek, dla których efekt przenikania ma trwać. Pod koniec efektu cross fade pierwsze wejście audio będzie całkowicie wyciszone. Wartość domyślna to 44100.

duration, d

Określ czas trwania efektu przenikania. Zobacz (ffmpeg-utils) sekcję Czas trwania w podręczniku ffmpeg-utils(1), aby poznać akceptowaną składnię. Domyślnie czas trwania jest określany przez nb_samples. Jeśli jest ustawiona, ta opcja jest używana zamiast nb_samples.

overlap, o

Czy koniec pierwszego strumienia powinien pokrywać się z początkiem drugiego strumienia. Domyślnie jest włączone.

curve1

Ustaw krzywą przejścia crossfade dla pierwszego strumienia.

curve2

Ustaw krzywą dla przejścia cross fade dla drugiego strumienia.

Opis dostępnych typów krzywych znajduje się w opisie filtra zanikania.

8.4.1 Examples

  • Przenikanie z jednego wejścia do drugiego:
    ffmpeg -i first.flac -i second.flac -filter_complex acrossfade=d=10:c1=exp:c2=exp output.flac
    
  • Przenikanie z jednego wejścia do drugiego, ale bez nakładania się:
    ffmpeg -i first.flac -i second.flac -filter_complex acrossfade=d=10:o=0:c1=exp:c2=exp output.flac
    

8.5 acrossover

Podziel strumień audio na kilka pasm.

Ten filtr dzieli strumień audio na dwa lub więcej zakresów częstotliwości. Zsumowanie wszystkich strumieni z powrotem da płaską wydajność.

Filtr akceptuje następujące opcje:

split

Ustaw podział częstotliwości. Muszą być pozytywne i wzrastać.

order

Ustaw kolejność filtrów dla każdego podziału pasma. Kontroluje to zsuwanie się filtra lub nachylenie funkcji przenoszenia filtra. Dostępne wartości to:

'2nd'

12 dB na oktawę.

'4th'

24 dB na oktawę.

'6th'

36 dB na oktawę.

'8th'

48 dB na oktawę.

'10th'

60 dB na oktawę.

'12th'

72 dB na oktawę.

'14th'

84 dB na oktawę.

'16th'

96 dB na oktawę.

'18th'

108 dB na oktawę.

'20th'

120 dB na oktawę.

Wartość domyślna to 4th.

level

Ustaw poziom wzmocnienia wejściowego. Dozwolony zakres to od 0 do 1. Wartość domyślna to 1.

gains

Ustaw wzmocnienie wyjściowe dla każdego pasma. Wartość domyślna to 1 dla wszystkich pasm.

precision

Ustaw precyzję, która ma być używana podczas przetwarzania próbek.

auto

Automatycznie wybierz wewnętrzny format próbki w zależności od innych filtrów.

float

Zawsze używaj formatu próbki z dokładnością do pojedynczej liczby zmiennoprzecinkowej.

double

Zawsze używaj formatu próbki o podwójnej precyzji zmiennoprzecinkowej.

Wartość domyślna to auto.

8.5.1 Examples

  • Podziel wejściowy strumień audio na dwa pasma (niskie i wysokie) z podzieloną częstotliwością 1500 Hz, każde pasmo będzie w osobnym strumieniu:
    ffmpeg -i in.flac -filter_complex 'acrossover=split=1500[LOW][HIGH]' -map '[LOW]' low.wav -map '[HIGH]' high.wav
    
  • Tak samo jak powyżej, ale z wyższą kolejnością filtrów:
    ffmpeg -i in.flac -filter_complex 'acrossover=split=1500:order=8th[LOW][HIGH]' -map '[LOW]' low.wav -map '[HIGH]' high.wav
    
  • Jak wyżej, ale z dodatkowym pasmem środkowym (częstotliwości od 1500 do 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

Zmniejsz rozdzielczość bitową dźwięku.

Ten filtr to kruszarka do bitów o zwiększonej funkcjonalności. Kruszarka bitów służy do słyszalnego zmniejszania liczby bitów, którymi próbkowany jest sygnał audio. Nie zmienia to wcale głębi bitowej, po prostu daje efekt. Materiał zmniejszony w głębi bitowej brzmi bardziej szorstko i „cyfrowo”. Ten filtr może nawet zaokrąglać do wartości ciągłych zamiast dyskretnych głębi bitowych. Dodatkowo posiada offset D/C, co skutkuje różnym zmiażdżeniem dolnej i górnej połowy sygnału. Ustawienie antyaliasingu jest w stanie generować „delikatniejsze” dźwięki miażdżenia.

Kolejną cechą tego filtra jest tryb logarytmiczny. To ustawienie przełącza z odległości liniowych między bitami na odległości logarytmiczne. Rezultatem jest znacznie bardziej "naturalnie" brzmiący kruszarka, która na przykład nie bramkuje niskich sygnałów. Ludzkie ucho ma percepcję logarytmiczną, więc ten rodzaj miażdżenia jest znacznie przyjemniejszy. Miażdżenie logarytmiczne jest również w stanie uzyskać antyaliasing.

Filtr akceptuje następujące opcje:

level_in

Ustaw poziom w.

level_out

Wyrównaj poziom.

bits

Ustaw redukcję bitów.

mix

Ustaw ilość mieszania.

mode

Może być liniowy: linlub logarytmiczny: log.

dc

Ustaw DC.

aa

Ustaw antyaliasing.

samples

Ustaw redukcję próbki.

lfo

Włącz LFO. Domyślnie wyłączone.

lforange

Ustaw zakres LFO.

lforate

Ustaw szybkość LFO.

8.6.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

8.7 acue

Opóźnij filtrowanie dźwięku do podanej sygnatury czasowej zegara ściennego. Zobacz filtr cue .

8.8 adeclick

Usuń impulsowe szumy z wejścia audio.

Próbki wykryte jako szum impulsowy są zastępowane próbkami interpolowanymi przy użyciu modelowania autoregresyjnego.

window, w

Ustaw rozmiar okna w milisekundach. Dozwolony zakres to od 10do 100. Wartość domyślna to 55milisekundy. Ustawia rozmiar okna, które będzie przetwarzane od razu.

overlap, o

Ustaw nakładanie się okien w procentach rozmiaru okna. Dozwolony zakres to od 50do 95. Wartość domyślna to 75procent. Ustawienie tego na bardzo wysoką wartość zwiększa usuwanie szumów impulsywnych, ale sprawia, że ​​cały proces jest znacznie wolniejszy.

arorder, a

Ustaw kolejność autoregresji w procentach rozmiaru okna. Dozwolony zakres to od 0do 25. Wartość domyślna to 2procent. Ta opcja kontroluje również jakość interpolowanych próbek przy użyciu sąsiednich dobrych próbek.

threshold, t

Ustaw wartość progową. Dozwolony zakres to od 1do 100. Wartość domyślna to 2. Kontroluje to siłę impulsowego szumu, który ma zostać usunięty. Im niższa wartość, tym więcej próbek zostanie wykrytych jako szum impulsowy.

burst, b

Ustaw połączenie serii, w procentach rozmiaru okna. Dozwolony zakres 0to 10. Wartość domyślna to 2. Jeżeli jakiekolwiek dwie próbki wykryte jako szum są rozmieszczone w odstępach mniejszych niż ta wartość, to każda próbka pomiędzy tymi dwiema próbkami zostanie również wykryta jako szum.

method, m

Ustaw metodę nakładania się.

Przyjmuje następujące wartości:

add, a

Wybierz metodę nakładania i dodawania. Za pomocą tej metody nawet nieinterpolowane próbki ulegają nieznacznym zmianom.

save, s

Wybierz metodę zapisywania nakładek. Próbki nieinterpolowane pozostają niezmienione.

Wartość domyślna to a.

8.9 adeclip

Usuń przycięte próbki z wejściowego dźwięku.

Próbki wykryte jako obcięte są zastępowane próbkami interpolowanymi przy użyciu modelowania autoregresyjnego.

window, w

Ustaw rozmiar okna w milisekundach. Dozwolony zakres to od 10do 100. Wartość domyślna to 55milisekundy. Ustawia rozmiar okna, które będzie przetwarzane od razu.

overlap, o

Ustaw nakładanie się okien w procentach rozmiaru okna. Dozwolony zakres to od 50 do 95. Wartość domyślna to 75procent.

arorder, a

Ustaw kolejność autoregresji w procentach rozmiaru okna. Dozwolony zakres to od 0do 25. Wartość domyślna to 8procent. Ta opcja kontroluje również jakość interpolowanych próbek przy użyciu sąsiednich dobrych próbek.

threshold, t

Ustaw wartość progową. Dozwolony zakres to od 1do 100. Wartość domyślna to 10. Wyższe wartości sprawiają, że wykrywanie klipów jest mniej agresywne.

hsize, n

Ustaw rozmiar histogramu używanego do wykrywania klipów. Dozwolony zakres to od 100do 9999. Wartość domyślna to 1000. Wyższe wartości sprawiają, że wykrywanie klipów jest mniej agresywne.

method, m

Ustaw metodę nakładania się.

Przyjmuje następujące wartości:

add, a

Wybierz metodę nakładania i dodawania. Za pomocą tej metody nawet nieinterpolowane próbki ulegają nieznacznym zmianom.

save, s

Wybierz metodę zapisywania nakładek. Próbki nieinterpolowane pozostają niezmienione.

Wartość domyślna to a.

8.10 adecorrelate

Zastosuj dekorelację do wejściowego strumienia audio.

Filtr akceptuje następujące opcje:

stages

Ustaw etapy dekorelacji filtrowania. Dozwolony zakres to od 1 do 16. Wartość domyślna to 6.

seed

Ustaw losowe źródło używane do ustawiania opóźnienia w próbkach w kanałach.

8.11 adelay

Opóźnij jeden lub więcej kanałów audio.

Próbki w kanale opóźnionym są wypełnione ciszą.

Filtr akceptuje następującą opcję:

delays

Ustaw listę opóźnień w milisekundach dla każdego kanału oddzielonych znakiem '|'. Niewykorzystane opóźnienia będą po cichu ignorowane. Jeżeli liczba podanych opóźnień jest mniejsza niż liczba kanałów, wszystkie pozostałe kanały nie będą opóźnione. Jeśli chcesz opóźnić dokładną liczbę próbek, dodaj 'S' do numeru. Jeśli chcesz zamiast tego opóźnić w sekundach, dodaj 's' do liczby.

all

Użyj ostatniego ustawionego opóźnienia dla wszystkich pozostałych kanałów. Domyślnie jest wyłączona. Ta opcja, jeśli jest włączona, zmienia sposób delaysinterpretacji opcji.

8.11.1 Examples

  • Opóźnij pierwszy kanał o 1,5 sekundy, trzeci kanał o 0,5 sekundy i pozostaw drugi kanał (i wszystkie inne kanały, które mogą być obecne) bez zmian.
    adelay=1500|0|500
    
  • Opóźnij drugi kanał o 500 próbek, trzeci kanał o 700 próbek i pozostaw pierwszy kanał (i wszystkie inne kanały, które mogą być obecne) bez zmian.
    adelay=0|500S|700S
    
  • Opóźnij wszystkie kanały o tę samą liczbę próbek:
    adelay=delays=64S:all=1
    

8.12 adenorm

Środki zaradcze pogarszają się w dźwięku, dodając bardzo niski poziom hałasu.

Filtr ten należy umieścić przed jakimkolwiek filtrem, który może powodować odchylenia.

Poniżej znajduje się opis akceptowanych parametrów.

level

Ustaw poziom dodatkowego hałasu w dB. Wartość domyślna to -351. Dozwolony zakres to od -451 do -90.

type

Ustaw typ dodanego szumu.

dc

Dodaj sygnał DC.

ac

Dodaj sygnał AC.

square

Dodaj sygnał kwadratowy.

pulse

Dodaj sygnał impulsowy.

Wartość domyślna to dc.

8.12.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

8.13 aderivative, aintegral

Oblicz pochodną/całkę strumienia audio.

Zastosowanie obu filtrów jeden po drugim daje oryginalny dźwięk.

8.14 adynamicequalizer

Zastosuj korektę dynamiczną do wejściowego strumienia audio.

Poniżej znajduje się opis akceptowanych opcji.

threshold

Ustaw próg detekcji używany do wyzwalania korekcji. Wykrywanie progu wykorzystuje filtr pasmowy. Wartość domyślna to 0. Dozwolony zakres to od 0 do 100.

dfrequency

Ustaw częstotliwość wykrywania w Hz używaną przez filtr pasmowy używany do wyzwalania korekcji. Wartość domyślna to 1000 Hz. Dozwolony zakres to od 2 do 1000000 Hz.

dqfactor

Ustaw współczynnik rezonansu detekcji dla filtra pasmowego używanego do wyzwalania korekcji. Wartość domyślna to 1. Dozwolony zakres to od 0,001 do 1000.

tfrequency

Ustaw docelową częstotliwość filtra wyrównującego. Wartość domyślna to 1000 Hz. Dozwolony zakres to od 2 do 1000000 Hz.

tqfactor

Ustaw docelowy współczynnik rezonansu dla docelowego filtra wyrównującego. Wartość domyślna to 1. Dozwolony zakres to od 0,001 do 1000.

attack

Ustaw ilość milisekund, o jaką sygnał z detekcji musi wzrosnąć powyżej progu detekcji zanim rozpocznie się wyrównywanie. Wartość domyślna to 20. Dozwolony zakres to od 1 do 2000.

release

Ustaw ilość milisekund, przez którą sygnał z detekcji musi spaść poniżej progu detekcji przed zakończeniem korekcji. Wartość domyślna to 200. Dozwolony zakres to od 1 do 2000.

knee

Zakrzywij ostre kolano wokół progu wykrywania, aby delikatniej obliczyć wzmocnienie korekcji. Wartość domyślna to 1. Dozwolony zakres to od 0 do 8.

ratio

Ustaw współczynnik, o który zwiększa się wzmocnienie korekcji. Wartość domyślna to 1. Dozwolony zakres to od 1 do 20.

makeup

Ustaw przesunięcie makijażu w dB, o które zwiększa się wzmocnienie korekcji. Wartość domyślna to 0. Dozwolony zakres to od 0 do 30.

range

Ustaw maksymalną dozwoloną wartość cięcia/wzmocnienia w dB. Wartość domyślna to 0. Dozwolony zakres to od 0 do 200.

slew

Ustaw współczynnik zabicia. Wartość domyślna to 1. Dozwolony zakres to od 1 do 200.

mode

Ustaw tryb działania filtra, może być jednym z następujących:

'listen'

Wyprowadza tylko izolowany sygnał pasmowoprzepustowy.

'cut'

Wytnij częstotliwości powyżej progu wykrywania.

'boost'

Wzmocnij częstotliwości poniżej progu wykrywania.

Tryb domyślny to 'cut„.

tftype

Ustaw typ filtra celu, może być jednym z następujących:

'bell'
'lowshelf'
'highshelf'

Domyślny typ to 'bell„.

8.14.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

8.15 adynamicsmooth

Zastosuj dynamiczne wygładzanie do wejściowego strumienia audio.

Poniżej znajduje się opis akceptowanych opcji.

sensitivity

Ustaw czułość na wahania częstotliwości. Wartość domyślna to 2. Dozwolony zakres to od 0 do 1e+06.

basefreq

Ustaw częstotliwość podstawową dla wygładzania. Wartość domyślna to 22050. Dozwolony zakres to od 2 do 1e+06.

8.15.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

8.16 aecho

Zastosuj echo do wejściowego dźwięku.

Echa są odbitym dźwiękiem i mogą występować naturalnie w górach (a czasami w dużych budynkach) podczas rozmowy lub krzyku; cyfrowe efekty echa naśladują to zachowanie i są często używane do wypełniania dźwięku pojedynczego instrumentu lub wokalu. Różnica czasu między sygnałem oryginalnym a delayodbitym to , a głośność odbitego sygnału to decay. Wiele ech może mieć różne opóźnienia i zaniki.

Poniżej znajduje się opis akceptowanych parametrów.

in_gain

Ustaw wzmocnienie wejściowe odbitego sygnału. Wartość domyślna to 0.6.

out_gain

Ustaw wzmocnienie wyjściowe odbitego sygnału. Wartość domyślna to 0.3.

delays

Ustawia listę odstępów czasu w milisekundach pomiędzy oryginalnym sygnałem a odbiciami oddzielonymi znakiem '|'. Dozwolony zakres dla każdego delayto (0 - 90000.0]. Wartość domyślna to 1000.

decays

Ustaw listę głośności odbitych sygnałów oddzielonych znakiem '|'. Dozwolony zakres dla każdego decayto (0 - 1.0]. Wartość domyślna to 0.5.

8.16.1 Examples

  • Spraw, aby brzmiało to tak, jakby było dwa razy więcej instrumentów niż faktycznie gra:
    aecho=0.8:0.88:60:0.4
    
  • Jeśli opóźnienie jest bardzo krótkie, to brzmi jak (metaliczny) robot grający muzykę:
    aecho=0.8:0.88:6:0.4
    
  • Dłuższe opóźnienie zabrzmi jak koncert plenerowy w górach:
    aecho=0.8:0.9:1000:0.3
    
  • Tak samo jak powyżej, ale z jeszcze jedną górą:
    aecho=0.8:0.9:1000|1800:0.3|0.25
    

8.17 aemphasis

Filtr uwydatniania dźwięku tworzy lub przywraca materiał bezpośrednio pobrany z płyt LP lub uwydatnionych płyt CD z różnymi krzywymi filtra. Np. aby zapisać muzykę na winylu, sygnał musi być najpierw zmieniony przez filtr, aby zniwelować wady tego nośnika. Po odtworzeniu materiału należy zastosować filtr odwrotny, aby przywrócić zniekształcenia pasma przenoszenia.

Filtr akceptuje następujące opcje:

level_in

Ustaw wzmocnienie wejścia.

level_out

Ustaw wzmocnienie wyjściowe.

mode

Ustaw tryb filtrowania. Aby przywrócić reproductiontryb użycia materiału, w przeciwnym razie użyj productiontrybu. Domyślnie jest reproductiontryb.

type

Ustaw typ filtra. Wybiera medium. Może być jednym z następujących:

col

wybierz Kolumbia.

emi

wybierz EMI.

bsi

wybierz BSI (78 obr./min).

riaa

wybierz RIAA.

cd

wybierz opcję Płyta kompaktowa (CD).

50fm

wybierz 50µs (FM).

75fm

wybierz 75µs (FM).

50kf

wybierz 50µs (FM-KF).

75kf

wybierz 75µs (FM-KF).

8.17.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

8.18 aeval

Zmodyfikuj sygnał audio zgodnie z określonymi wyrażeniami.

Ten filtr akceptuje jedno lub więcej wyrażeń (po jednym dla każdego kanału), które są oceniane i używane do modyfikowania odpowiedniego sygnału audio.

Przyjmuje następujące parametry:

exprs

Ustaw listę wyrażeń rozdzielonych '|' dla każdego oddzielnego kanału. Jeśli liczba kanałów wejściowych jest większa niż liczba wyrażeń, ostatnie określone wyrażenie jest używane dla pozostałych kanałów wyjściowych.

channel_layout, c

Ustaw układ kanału wyjściowego. Jeśli nie zostanie określony, układ kanału jest określony przez liczbę wyrażeń. Jeśli ustawione na 'same', domyślnie użyje tego samego układu kanału wejściowego.

Każde wyrażenie w exprsmoże zawierać następujące stałe i funkcje:

ch

numer kanału bieżącego wyrażenia

n

numer ocenianej próby, począwszy od 0

s

próbna stawka

t

czas ocenianej próbki wyrażony w sekundach

nb_in_channels
nb_out_channels

liczba kanałów wejściowych i wyjściowych

val(CH)

wartość kanału wejściowego z numeremCH

Uwaga: ten filtr działa wolno. Aby przyspieszyć przetwarzanie, powinieneś użyć dedykowanego filtra.

8.18.1 Examples

  • Połowa objętości:
    aeval=val(ch)/2:c=same
    
  • Odwrócona faza drugiego kanału:
    aeval=val(0)|-val(1)
    

8.19 aexciter

Wzbudnik jest używany do wytwarzania wysokiego dźwięku, którego nie ma w oryginalnym sygnale. Odbywa się to poprzez tworzenie zniekształceń harmonicznych sygnału, które są ograniczone w zakresie i dodawane do oryginalnego sygnału. Wzbudnik podnosi górny koniec sygnału audio bez zwykłego podnoszenia wyższych częstotliwości, tak jak zrobiłby to korektor, aby uzyskać bardziej „ostry” lub „jasny” dźwięk.

Filtr akceptuje następujące opcje:

level_in

Ustaw poziom wejściowy przed przetwarzaniem sygnału. Dozwolony zakres to od 0 do 64. Wartość domyślna to 1.

level_out

Ustaw poziom wyjściowy po przetworzeniu sygnału. Dozwolony zakres to od 0 do 64. Wartość domyślna to 1.

amount

Ustaw ilość harmonicznych dodawanych do oryginalnego sygnału. Dozwolony zakres to od 0 do 64. Wartość domyślna to 1.

drive

Ustaw ilość nowo tworzonych harmonicznych. Dozwolony zakres to od 0,1 do 10. Wartość domyślna to 8,5.

blend

Ustaw oktawę nowo tworzonych harmonicznych. Dozwolony zakres to od -10 do 10. Wartość domyślna to 0.

freq

Ustaw dolną granicę częstotliwości wytwarzania harmonicznych w Hz. Dozwolony zakres to od 2000 do 12000 Hz. Wartość domyślna to 7500 Hz.

ceil

Ustaw górną granicę częstotliwości wytwarzania harmonicznych. Dozwolony zakres to od 9999 do 20000 Hz. Jeżeli wartość jest niższa niż 10000 Hz, limit nie jest stosowany.

listen

Wycisz oryginalny sygnał i wyjdź tylko dodane harmoniczne. Domyślnie jest wyłączona.

8.19.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

8.20 afade

Zastosuj efekt ściemniania/zanikania do wejściowego dźwięku.

Poniżej znajduje się opis akceptowanych parametrów.

type, t

Określ typ efektu, może to być efekt inzanikania lub outzanikania. Wartość domyślna to in.

start_sample, ss

Określ numer próbki początkowej, aby rozpocząć stosowanie efektu zanikania. Wartość domyślna to 0.

nb_samples, ns

Określ liczbę próbek, dla których efekt zanikania ma trwać. Pod koniec efektu zanikania dźwięk wyjściowy będzie miał taką samą głośność jak dźwięk wejściowy, pod koniec przejścia zanikania dźwięk wyjściowy będzie wyciszony. Wartość domyślna to 44100.

start_time, st

Określ czas rozpoczęcia efektu zanikania. Wartość domyślna to 0. Wartość musi być określona jako czas trwania; zobacz (ffmpeg-utils) sekcję Czas trwania w podręczniku ffmpeg-utils(1), aby poznać akceptowaną składnię. Jeśli jest ustawiona, ta opcja jest używana zamiast start_sample.

duration, d

Określ czas trwania efektu zanikania. Zobacz (ffmpeg-utils) sekcję Czas trwania w podręczniku ffmpeg-utils(1), aby poznać akceptowaną składnię. Pod koniec efektu zanikania dźwięk wyjściowy będzie miał taką samą głośność jak dźwięk wejściowy, pod koniec przejścia zanikania dźwięk wyjściowy będzie wyciszony. Domyślnie czas trwania jest określany przez nb_samples. Jeśli jest ustawiona, ta opcja jest używana zamiast nb_samples.

curve

Ustaw krzywą przejścia zanikania.

Przyjmuje następujące wartości:

tri

wybierz trójkątne, liniowe nachylenie (domyślne)

qsin

wybierz ćwierć fali sinusoidalnej

hsin

wybierz połowę sinusoidy

esin

wybierz wykładniczą sinusoidę

log

wybierz logarytmiczne

ipar

wybierz odwróconą parabolę

qua

wybierz kwadratowe

cub

wybierz sześcienny

squ

wybierz pierwiastek kwadratowy

cbr

wybierz pierwiastek sześcienny

par

wybierz parabolę

exp

wybierz wykładniczy

iqsin

wybierz odwróconą ćwiartkę sinusoidy

ihsin

wybierz odwróconą połowę sinusoidy

dese

wybierz podwójne wykładnicze miejsce

desi

wybierz sigmoid podwójnie wykładniczy

losi

wybierz sigmoid logistyczny

sinc

wybierz funkcję kardynalną sinus

isinc

wybierz odwróconą funkcję sinusoidalną

nofade

nie zastosowano zanikania

8.20.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

8.20.2 Examples

  • Zanikanie w pierwszych 15 sekundach dźwięku:
    afade=t=in:ss=0:d=15
    
  • Wycisz ostatnie 25 sekund 900-sekundowego dźwięku:
    afade=t=out:st=875:d=25
    

8.21 afftdn

Odszumianie próbek audio za pomocą FFT.

Poniżej znajduje się opis akceptowanych parametrów.

noise_reduction, nr

Ustaw redukcję szumów w dB, dozwolony zakres to 0,01 do 97. Wartość domyślna to 12 dB.

noise_floor, nf

Ustaw poziom szumów w dB, dopuszczalny zakres to -80 do -20. Wartość domyślna to -50 dB.

noise_type, nt

Ustaw typ szumu.

Przyjmuje następujące wartości:

white, w

Wybierz biały szum.

vinyl, v

Wybierz szum winylu.

shellac, s

Wybierz szum szelakowy.

custom, c

Wybierz niestandardowy szum, zdefiniowany w bnopcji.

Wartość domyślna to biały szum.

band_noise, bn

Ustaw niestandardowy profil szumu pasma dla każdego z 15 pasm. Pasma są oddzielone ' ' lub '|'.

residual_floor, rf

Ustaw resztkową podłogę w dB, dozwolony zakres to -80 do -20. Wartość domyślna to -38 dB.

track_noise, tn

Włącz śledzenie szumów tła. Domyślnie jest wyłączona. Gdy ta opcja jest włączona, poziom szumów jest dostosowywany automatycznie.

track_residual, tr

Włącz śledzenie pozostałości. Domyślnie jest wyłączona.

output_mode, om

Ustaw tryb wyjściowy.

Przyjmuje następujące wartości:

input, i

Wejście bez zmian.

output, o

Odfiltrowane szumy.

noise, n

Przekaż tylko hałas.

Wartość domyślna to output.

adaptivity, ad

Ustaw współczynnik adaptacyjności używany, jak szybko dostosować korekty wzmocnienia dla każdego przedziału częstotliwości. Wartość 0umożliwia natychmiastową adaptację, podczas gdy wyższe wartości reagują znacznie wolniej. Dozwolony zakres to od 0do 1. Wartość domyślna to 0.5.

floor_offset, fo

Ustaw współczynnik odsunięcia poziomu szumu. Ta opcja służy do dostosowania przesunięcia zastosowanego do zmierzonego poziomu szumów. Działa tylko wtedy, gdy włączone jest śledzenie szumu tła. Dozwolony zakres to od -2.0do 2.0. Wartość domyślna to 1.0.

noise_link, nl

Ustaw łącze szumu używane dla dźwięku wielokanałowego.

Przyjmuje następujące wartości:

none

Użyj niezmienionego poziomu szumów kanału.

min

Użyj zmierzonego minimalnego poziomu szumów wszystkich kanałów.

max

Użyj zmierzonego maksymalnego poziomu szumów wszystkich kanałów.

average

Użyj zmierzonego średniego poziomu szumów wszystkich kanałów.

Wartość domyślna to min.

band_multiplier, bm

Ustaw mnożnik pasma, używany do rozłożenia pasm w przedziałach częstotliwości. Dozwolony zakres to od 0.2do 5. Wartość domyślna to 1.25.

sample_noise, sn

Przełącz przechwytywanie i pomiar profilu szumu z wejściowego dźwięku.

Przyjmuje następujące wartości:

start, begin

Rozpocznij przechwytywanie szumu próbki.

stop, end

Zatrzymaj przechwytywanie szumu próbki i zmierz nowy profil pasma szumu.

Wartość domyślna to none.

gain_smooth, gs

Ustaw gładki promień przestrzenny wzmocnienia, używany do wygładzania wzmocnień zastosowanych do każdego przedziału częstotliwości. Przydatne do redukcji losowych artefaktów związanych z szumem muzyki. Wyższe wartości zwiększają wygładzanie wzmocnień. Dozwolony zakres to od 0do 50. Wartość domyślna to 0.

8.21.1 Commands

Ten filtr obsługuje niektóre z wyżej wymienionych opcji jako komendy .

8.21.2 Examples

  • Zmniejsz biały szum o 10dB i użyj wcześniej zmierzonego poziomu szumów na poziomie -40dB:
    afftdn=nr=10:nf=-40
    
  • Zmniejsz biały szum o 10dB, ustaw również początkowy poziom szumu na -80dB i włącz automatyczne śledzenie poziomu szumu, aby poziom szumu stopniowo się zmieniał podczas przetwarzania:
    afftdn=nr=10:nf=-80:tn=1
    
  • Zmniejsz hałas o 20dB, korzystając z poziomu szumów na poziomie -40dB i używając poleceń do wykonania profilu szumów z pierwszych 0,4 sekundy wejściowego dźwięku:
    asendcmd=0.0 afftdn sn start,asendcmd=0.4 afftdn sn stop,afftdn=nr=20:nf=-40
    

8.22 afftfilt

Zastosuj dowolne wyrażenia do próbek w domenie częstotliwości.

real

Ustaw wyrażenie rzeczywiste w domenie częstotliwości dla każdego oddzielnego kanału oddzielonego znakiem '|'. Wartość domyślna to „re”. Jeśli liczba kanałów wejściowych jest większa niż liczba wyrażeń, ostatnie określone wyrażenie jest używane dla pozostałych kanałów wyjściowych.

imag

Ustaw urojone wyrażenie w domenie częstotliwości dla każdego oddzielnego kanału oddzielonego znakiem „|”. Wartość domyślna to „im”.

Każde wyrażenie w reali imagmoże zawierać następujące stałe i funkcje:

sr

próbna stawka

b

aktualny numer przedziału częstotliwości

nb

liczba dostępnych pojemników

ch

numer kanału bieżącego wyrażenia

chs

Liczba kanałów

pts

bieżąca klatka w pkt

re

aktualna rzeczywista część przedziału częstotliwości bieżącego kanału

im

aktualna część urojona przedziału częstotliwości bieżącego kanału

real(b, ch)

Zwróć wartość rzeczywistej części przedziału częstotliwości w lokalizacji ( bin, channel)

imag(b, ch)

Zwróć wartość części urojonej przedziału częstotliwości w lokalizacji ( bin, channel)

win_size

Ustaw rozmiar okna. Dozwolony zakres to od 16 do 131072. Domyślnie4096

win_func

Ustaw funkcję okna.

Przyjmuje następujące wartości:

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

Wartość domyślna to hann.

overlap

Ustaw nakładanie się okien. Jeśli jest ustawiony na 1, wybrane zostanie zalecane nakładanie się dla wybranej funkcji okna. Wartość domyślna to 0.75.

8.22.1 Examples

  • Pozostaw w dźwięku prawie tylko niskie częstotliwości:
    afftfilt="'real=re * (1-clip((b/nb)*b,0,1))':imag='im * (1-clip((b/nb)*b,0,1))'"
    
  • Zastosuj efekt robotyzacji:
    afftfilt="real='hypot(re,im)*sin(0)':imag='hypot(re,im)*cos(0)':win_size=512:overlap=0.75"
    
  • Zastosuj efekt szeptu:
    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

Zastosuj dowolny filtr o skończonej odpowiedzi impulsowej.

Ten filtr jest przeznaczony do nakładania długich filtrów FIR, do 60 sekund.

Może być używany jako komponent do cyfrowych filtrów zwrotnicy, korekcji pomieszczenia, tłumienia przesłuchów, syntezy pola falowego, auralizacji, ambiofonii, ambisoniki i uprzestrzenniania.

Ten filtr wykorzystuje jako współczynniki FIR strumienie wyższe niż pierwszy. Jeśli strumień inny niż pierwszy zawiera pojedynczy kanał, będzie on używany dla wszystkich kanałów wejściowych w strumieniu pierwszym, w przeciwnym razie liczba kanałów w strumieniu innym niż pierwszy musi być taka sama jak liczba kanałów w strumieniu pierwszym.

Przyjmuje następujące parametry:

dry

Ustaw suchy zysk. Ustawia to wzmocnienie wejściowe.

wet

Ustaw mokre wzmocnienie. Ustawia to końcowe wzmocnienie wyjściowe.

length

Ustaw długość filtra odpowiedzi impulsowej. Wartość domyślna to 1, co oznacza, że ​​przetwarzana jest cała IR.

gtype

Włącz stosowanie wzmocnienia mierzonego od mocy IR.

Ustaw podejście do automatycznego pomiaru wzmocnienia.

none

Nie stosuj żadnego wzmocnienia.

peak

wybierz wzmocnienie szczytowe, bardzo konserwatywne podejście. To jest wartość domyślna.

dc

wybierz wzmocnienie DC, ograniczone zastosowanie.

gn

wybierz podejście wzmocnienie do szumu, to jest najbardziej popularne.

irgain

Ustaw wzmocnienie, które ma być zastosowane do współczynników IR przed filtrowaniem. Dozwolony zakres to 0 do 1. To wzmocnienie jest stosowane po każdym wzmocnieniu zastosowanym z gtypeopcją.

irfmt

Ustaw format strumienia IR. Może być monolub input. Wartość domyślna to input.

maxir

Ustaw maksymalny dozwolony czas trwania filtra odpowiedzi impulsowej w sekundach. Wartość domyślna to 30 sekund. Dozwolony zakres to 0,1 do 60 sekund.

response

Pokaż pasmo przenoszenia IR, wielkość (magenta), fazę (zielony) i opóźnienie grupowe (żółty) w dodatkowym strumieniu wideo. Domyślnie jest wyłączony.

channel

Ustaw, dla którego kanału podczerwieni wyświetlane jest pasmo przenoszenia. Domyślnie wyświetlany jest pierwszy kanał. Ta opcja jest używana tylko wtedy, gdy responsejest włączona.

size

Ustaw rozmiar strumienia wideo. Ta opcja jest używana tylko wtedy, gdy responsejest włączona.

rate

Ustaw szybkość klatek strumienia wideo. Ta opcja jest używana tylko wtedy, gdy responsejest włączona.

minp

Ustaw minimalny rozmiar partycji używany do konwolucji. Wartość domyślna to 8192. Dozwolony zakres to od 1do 32768. Niższe wartości zmniejszają opóźnienie kosztem większego wykorzystania procesora.

maxp

Ustaw maksymalny rozmiar partycji używany do konwolucji. Wartość domyślna to 8192. Dozwolony zakres to od 8do 32768. Niższe wartości mogą zwiększyć użycie procesora.

nbirs

Ustaw liczbę wejściowych strumieni odpowiedzi impulsowych, które będą przełączane w czasie pracy. Dozwolony zakres to od 1do 32. Wartość domyślna to 1.

ir

Ustawiony strumień IR, który będzie używany do splotu, począwszy od 0, powinien zawsze być niższy od wartości podanej przez nbirsopcję. Wartość domyślna to 0. Tę opcję można zmienić w czasie wykonywania za pomocą poleceń .

precision

Ustaw precyzję, która ma być używana podczas przetwarzania próbek.

auto

Automatycznie wybierz wewnętrzny format próbki w zależności od innych filtrów.

float

Zawsze używaj formatu próbki z dokładnością do pojedynczej liczby zmiennoprzecinkowej.

double

Zawsze używaj formatu próbki o podwójnej precyzji zmiennoprzecinkowej.

Wartość domyślna to auto.

8.23.1 Examples

  • Zastosuj pogłos do strumienia, używając pliku mono IR jako drugiego wejścia, uzupełnij polecenie za pomocą ffmpeg:
    ffmpeg -i input.wav -i middle_tunnel_1way_mono.wav -lavfi afir output.wav
    

8.24 aformat

Ustaw ograniczenia formatu wyjściowego dla dźwięku wejściowego. Framework wynegocjuje najbardziej odpowiedni format, aby zminimalizować konwersje.

Przyjmuje następujące parametry:

sample_fmts, f

Lista żądanych formatów przykładowych rozdzielonych '|'.

sample_rates, r

Lista żądanych częstotliwości próbkowania rozdzielonych '|'.

channel_layouts, cl

Lista żądanych układów kanałów rozdzielonych '|'.

Zobacz (ffmpeg-utils) sekcję Channel Layout w podręczniku ffmpeg-utils(1) , aby poznać wymaganą składnię.

Jeśli parametr zostanie pominięty, wszystkie wartości są dozwolone.

Wymuś wyjście jako stereofoniczne 8-bitowe bez znaku lub 16-bitowe ze znakiem

aformat=sample_fmts=u8|s16:channel_layouts=stereo

8.25 afreqshift

Zastosuj przesunięcie częstotliwości do wejściowych próbek audio.

Filtr akceptuje następujące opcje:

shift

Określ przesunięcie częstotliwości. Dozwolony zakres to -INT_MAX do INT_MAX. Wartość domyślna to 0,0.

level

Ustaw wzmocnienie wyjściowe zastosowane do końcowego wyjścia. Dozwolony zakres to od 0,0 do 1,0. Wartość domyślna to 1.0.

order

Ustaw kolejność filtrów używaną do filtrowania. Dozwolony zakres to od 1 do 16. Wartość domyślna to 8.

8.25.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

8.26 afwtdn

Zmniejsz szum szerokopasmowy z próbek wejściowych za pomocą Wavelets.

Poniżej znajduje się opis akceptowanych opcji.

sigma

Ustaw sigma szumu, dozwolony zakres to od 0 do 1. Domyślna wartość to 0. Ta opcja kontroluje siłę odszumiania próbek wejściowych. Najbardziej użytecznym sposobem ustawienia tej opcji jest użycie decybeli, np. -45dB.

levels

Ustaw liczbę poziomów rozkładu falkowego. Dozwolony zakres to od 1 do 12. Wartość domyślna to 10. Ustawienie zbyt niskiego powoduje bardzo niską wydajność odszumiania.

wavet

Ustaw typ falki do dekompozycji ramki wejściowej. Są one sortowane według liczby współczynników, od najniższego do najwyższego. Więcej współczynników oznacza gorszą szybkość filtrowania, ale ogólnie lepszą jakość. Dostępne falki to:

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

Ustaw procent pełnego odszumiania. Dozwolony zakres to od 0 do 100 procent. Wartość domyślna to 85 procent lub częściowe odszumianie.

profile

Jeśli ta opcja jest włączona, jako profil szumu zostanie użyta pierwsza ramka wejściowa. Jeśli pierwsze próbki klatek zawierają brak szumów, wydajność będzie bardzo słaba.

adaptive

Jeśli ta opcja jest włączona, ramki wejściowe są analizowane pod kątem obecności szumu. Jeśli szum zostanie wykryty z dużym prawdopodobieństwem, wówczas profil ramki wejściowej będzie używany do przetwarzania kolejnych ramek, aż do wykrycia nowej ramki szumu.

samples

Ustaw rozmiar pojedynczej klatki w liczbie próbek. Dozwolony zakres to od 512 do 65536. Domyślny rozmiar ramki to 8192 próbki.

softness

Ustaw miękkość zastosowaną w funkcji progowania. Dozwolony zakres to od 0 do 10. Domyślna miękkość to 1.

8.26.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

8.27 agate

Bramka służy głównie do redukcji niższych części sygnału. Ten rodzaj przetwarzania sygnału redukuje zakłócający szum między użytecznymi sygnałami.

Bramkowanie odbywa się poprzez wykrycie głośności poniżej wybranego poziomu threshold i podzielenie jej przez współczynnik ustawiony za pomocą ratio. Dolny poziom szumu ustawia się za pomocą range. Ponieważ dokładna manipulacja sygnałem spowodowałaby zniekształcenie przebiegu, redukcja może być niwelowana w czasie. Odbywa się to poprzez ustawienie attacki release.

attackokreśla, jak długo sygnał musi spaść poniżej progu, zanim nastąpi jakakolwiek redukcja, i releaseustawia czas, w którym sygnał musi wzrosnąć powyżej progu, aby ponownie zmniejszyć redukcję. Sygnały krótsze niż wybrany czas ataku pozostaną nietknięte.

level_in

Ustaw poziom wejściowy przed filtrowaniem. Wartość domyślna to 1. Dozwolony zakres to od 0,015625 do 64.

mode

Ustaw tryb działania. Może być upwardlub downward. Wartość domyślna to downward. Jeśli ustawiony jest na upwardtryb, wyższe partie sygnału będą wzmacniane, rozszerzając zakres dynamiki w górę. W przeciwnym razie w przypadku downwardniższych partii sygnał zostanie zmniejszony.

range

Ustaw poziom redukcji wzmocnienia, gdy sygnał jest poniżej progu. Wartość domyślna to 0,06125. Dozwolony zakres to od 0 do 1. Ustawienie tego na 0 wyłącza redukcję i wtedy filtr zachowuje się jak ekspander.

threshold

Jeśli sygnał wzrośnie powyżej tego poziomu, redukcja wzmocnienia jest zwalniana. Wartość domyślna to 0,125. Dozwolony zakres to od 0 do 1.

ratio

Ustaw współczynnik redukcji sygnału. Wartość domyślna to 2. Dozwolony zakres to od 1 do 9000.

attack

Ilość milisekund, przez którą sygnał musi wzrosnąć powyżej wartości progowej, zanim redukcja wzmocnienia zostanie zatrzymana. Wartość domyślna to 20 milisekund. Dozwolony zakres to od 0,01 do 9000.

release

Ilość milisekund, przez którą sygnał musi spaść poniżej progu, zanim redukcja zostanie ponownie zwiększona. Wartość domyślna to 250 milisekund. Dozwolony zakres to od 0,01 do 9000.

makeup

Ustawia wielkość wzmocnienia sygnału po przetworzeniu. Wartość domyślna to 1. Dozwolony zakres to od 1 do 64.

knee

Zakręć ostre kolano wokół progu, aby łagodniej wejść w redukcję wzmocnienia. Wartość domyślna to 2.828427125. Dozwolony zakres to od 1 do 8.

detection

Wybierz, czy do wykrywania ma być pobierany dokładny sygnał, czy podobny do RMS. Wartość domyślna to rms. Może być peaklub rms.

link

Wybierz, czy średni poziom między wszystkimi kanałami, czy głośniejszy kanał ma wpływ na redukcję. Wartość domyślna to average. Może być averagelub maximum.

8.27.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

8.28 aiir

Zastosuj dowolny filtr Nieskończonej odpowiedzi impulsowej.

Przyjmuje następujące parametry:

zeros, z

Ustaw B/licznik/zera/współczynniki odbicia.

poles, p

Ustaw współczynniki A/mianownik/bieguny/drabina.

gains, k

Ustaw wzmocnienia kanałów.

dry_gain

Ustaw wzmocnienie wejścia.

wet_gain

Ustaw wzmocnienie wyjściowe.

format, f

Ustaw format współczynników.

'll'

funkcja kraty-drabiny

'sf'

funkcja transferu analogowego

'tf'

funkcja transferu cyfrowego

'zp'

Zera/bieguny w płaszczyźnie Z, kartezjańskie (domyślne)

'pr'

Zera/bieguny w płaszczyźnie Z, radiany biegunowe

'pd'

Zera/bieguny w płaszczyźnie Z, stopnie biegunowe

'sp'

Zera/bieguny w płaszczyźnie S

process, r

Ustaw typ przetwarzania.

'd'

przetwarzanie bezpośrednie

's'

przetwarzanie seryjne

'p'

przetwarzanie równoległe

precision, e

Ustaw precyzję filtrowania.

'dbl'

zmiennoprzecinkowa podwójnej precyzji (domyślnie)

'flt'

zmiennoprzecinkowa pojedynczej precyzji

'i32'

32-bitowe liczby całkowite

'i16'

16-bitowe liczby całkowite

normalize, n

Normalizuj współczynniki filtrów, domyślnie jest włączone. Włączenie go znormalizuje odpowiedź amplitudy przy DC do 0dB.

mix

Ile użyć przefiltrowanego sygnału na wyjściu. Wartość domyślna to 1. Zakres wynosi od 0 do 1.

response

Pokaż pasmo przenoszenia IR, wielkość (magenta), fazę (zielony) i opóźnienie grupowe (żółty) w dodatkowym strumieniu wideo. Domyślnie jest wyłączony.

channel

Ustaw, dla którego kanału podczerwieni wyświetlane jest pasmo przenoszenia. Domyślnie wyświetlany jest pierwszy kanał. Ta opcja jest używana tylko wtedy, gdy responsejest włączona.

size

Ustaw rozmiar strumienia wideo. Ta opcja jest używana tylko wtedy, gdy responsejest włączona.

Współczynniki tfi sfformat są oddzielone spacjami i są w porządku rosnącym.

Współczynniki w zpformacie są oddzielone spacjami, a kolejność współczynników nie ma znaczenia. Współczynniki w zpformacie są liczbami zespolonymi z i jednostką urojoną.

Dla każdego kanału można podać różne współczynniki i wzmocnienia, w takim przypadku użyj '|' do oddzielenia współczynników lub zysków. Ostatnio podane współczynniki zostaną użyte dla wszystkich pozostałych kanałów.

8.28.1 Examples

  • Zastosuj 2-biegunowe wycięcie eliptyczne przy około 5000 Hz dla częstotliwości próbkowania 48000 Hz:
    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
    
  • Tak samo jak powyżej, ale w zpformacie:
    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
    
  • Zastosuj analogowy znormalizowany filtr dolnoprzepustowy Butterwortha trzeciego rzędu, używając formatu funkcji transferu analogowego:
    aiir=z=1.3057 0 0 0:p=1.3057 2.3892 2.1860 1:f=sf:r=d
    

8.29 alimiter

Ogranicznik zapobiega wzrostowi sygnału wejściowego powyżej pożądanego progu. Ten ogranicznik wykorzystuje technologię lookahead, aby zapobiec zniekształceniom sygnału. Oznacza to, że po przetworzeniu sygnału występuje niewielkie opóźnienie. Pamiętaj, że opóźnienie, które generuje, to ustawiony przez Ciebie czas ataku.

Filtr akceptuje następujące opcje:

level_in

Ustaw wzmocnienie wejścia. Wartość domyślna to 1.

level_out

Ustaw wzmocnienie wyjściowe. Wartość domyślna to 1.

limit

Nie pozwól, aby sygnały powyżej tego poziomu przekroczyły limiter. Wartość domyślna to 1.

attack

Limiter osiągnie swój poziom tłumienia w tym czasie w milisekundach. Wartość domyślna to 5 milisekund.

release

Wróć od ograniczania do tłumienia 1.0 w tej ilości milisekund. Wartość domyślna to 50 milisekund.

asc

Gdy redukcja wzmocnienia jest zawsze potrzebna, ASC zajmuje się zwalnianiem do średniego poziomu redukcji, zamiast osiągania redukcji 0 w czasie zwalniania.

asc_level

Wybierz, w jakim stopniu ASC wpływa na czas wydania, 0 oznacza prawie brak zmian w czasie wydania, podczas gdy 1 daje dłuższe czasy wydania.

level

Sygnał wyjściowy poziomu automatycznego. Domyślnie jest włączone. To normalizuje dźwięk z powrotem do 0 dB, jeśli jest włączony.

latency

Skompensuj wprowadzone opóźnienie za pomocą zestawu bufora lookahead z parametrem ataku. Również opróżnij prawidłowe dane audio w buforze lookahead, gdy strumień osiągnie EOF.

W zależności od wybranego ustawienia zaleca się upsamplowanie wejścia 2x lub 4x z aresamplem przed zastosowaniem tego filtra.

8.30 allpass

Zastosuj dwubiegunowy filtr wszechprzepustowy z częstotliwością środkową (w Hz) frequencyi szerokością filtra width. Filtr wszechprzepustowy zmienia relację częstotliwości do fazy dźwięku bez zmiany relacji częstotliwości do amplitudy.

Filtr akceptuje następujące opcje:

frequency, f

Ustaw częstotliwość w Hz.

width_type, t

Ustaw metodę, aby określić szerokość pasma filtra.

h

Hz

q

Współczynnik Q

o

oktawa

s

nachylenie

k

kHz

width, w

Określ szerokość pasma filtru w jednostkach typ_szerokości.

mix, m

Ile użyć przefiltrowanego sygnału na wyjściu. Wartość domyślna to 1. Zakres wynosi od 0 do 1.

channels, c

Określ, które kanały do ​​filtrowania, domyślnie wszystkie dostępne są filtrowane.

normalize, n

Normalizuj współczynniki biquad, domyślnie jest wyłączone. Włączenie go znormalizuje odpowiedź amplitudy przy DC do 0dB.

order, o

Ustaw kolejność filtrów, może wynosić 1 lub 2. Domyślna wartość to 2.

transform, a

Ustaw typ transformacji filtru IIR.

di
dii
tdi
tdii
latt
svf
zdf
precision, r

Ustaw precyzję filtrowania.

auto

Wybierz automatyczny format sampli w zależności od filtrów surround.

s16

Zawsze używaj podpisu 16-bitowego.

s32

Zawsze używaj podpisu 32-bitowego.

f32

Zawsze używaj 32-bitowego zmiennoprzecinkowego.

f64

Zawsze używaj zmiennoprzecinkowej 64-bitowej.

8.30.1 Commands

Ten filtr obsługuje następujące polecenia:

frequency, f

Zmień częstotliwość wszechprzepustową. Składnia polecenia to: „ frequency

width_type, t

Zmień allpass width_type. Składnia polecenia to: „ width_type

width, w

Zmień szerokość przejścia. Składnia polecenia to: „ width

mix, m

Zmień miks allpass. Składnia polecenia to: „ mix

8.31 aloop

Zapętlaj próbki audio.

Filtr akceptuje następujące opcje:

loop

Ustaw liczbę pętli. Ustawienie tej wartości na -1 spowoduje powstanie nieskończonych pętli. Wartość domyślna to 0.

size

Ustaw maksymalną liczbę próbek. Wartość domyślna to 0.

start

Ustaw pierwszą próbkę pętli. Wartość domyślna to 0.

8.32 amerge

Połącz dwa lub więcej strumieni audio w jeden wielokanałowy strumień.

Filtr akceptuje następujące opcje:

inputs

Ustaw liczbę wejść. Wartość domyślna to 2.

Jeśli układy kanałów wejść są rozłączne, a zatem kompatybilne, układ kanałów wyjściowych zostanie odpowiednio ustawiony, a kolejność kanałów zostanie zmieniona w razie potrzeby. Jeśli układy kanałów wejść nie są rozłączne, na wyjściu będą znajdować się wszystkie kanały pierwszego wejścia, następnie wszystkie kanały drugiego wejścia, w tej kolejności, a układ kanałów wyjścia będzie wartością domyślną odpowiadającą łączna liczba kanałów.

Na przykład, jeśli pierwsze wejście jest w 2.1 (FL+FR+LF), a drugie wejście to FC+BL+BR, to wyjście będzie w 5.1, z kanałami w następującej kolejności: a1, a2, b1, a3, b2, b3 (a1 to pierwszy kanał pierwszego wejścia, b1 to pierwszy kanał drugiego wejścia).

Z drugiej strony, jeśli oba wejścia są w stereo, kanały wyjściowe będą w domyślnej kolejności: a1, a2, b1, b2, a układ kanałów zostanie arbitralnie ustawiony na 4.0, co może, ale nie musi być oczekiwaną wartością .

Wszystkie wejścia muszą mieć tę samą częstotliwość próbkowania i format.

Jeżeli wejścia nie mają tego samego czasu trwania, wyjście zatrzyma się najkrócej.

8.32.1 Examples

  • Połącz dwa pliki mono w strumień stereo:
    amovie=left.wav [l] ; amovie=right.mp3 [r] ; [l] [r] amerge
    
  • Wiele połączeń, zakładając 1 strumień wideo i 6 strumieni audio winput.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

Miksuje wiele wejść audio w jedno wyjście.

Zauważ, że ten filtr obsługuje tylko próbki zmiennoprzecinkowe ( filtry amerge i panaudio obsługują wiele formatów). Jeśli amix wejście zawiera próbki całkowite, to aresample zostanie automatycznie wstawiony, aby wykonać konwersję na próbki zmiennoprzecinkowe.

Na przykład

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

zmiksuje 3 strumienie wejściowe audio z jednym wyjściem o takim samym czasie trwania jak pierwsze wejście i czasie przejścia do 3 sekund.

Przyjmuje następujące parametry:

inputs

Liczba wejść. Jeśli nie jest określony, domyślnie wynosi 2.

duration

Jak określić koniec strumienia.

longest

Czas trwania najdłuższego wejścia. (domyślna)

shortest

Czas trwania najkrótszego wejścia.

first

Czas trwania pierwszego wejścia.

dropout_transition

Czas przejścia (w sekundach) na renormalizację głośności po zakończeniu strumienia wejściowego. Wartość domyślna to 2 sekundy.

weights

Określ wagę każdego wejściowego strumienia audio jako sekwencji. Każda waga jest oddzielona spacją. Domyślnie wszystkie wejścia mają tę samą wagę.

normalize

Zawsze skaluj dane wejściowe zamiast tylko sumować próbki. Uważaj na silne obcinanie, jeśli dane wejściowe nie są znormalizowane przed lub po filtrowaniu przez ten filtr, jeśli ta opcja jest wyłączona. Domyślnie jest włączony.

8.33.1 Commands

Ten filtr obsługuje następujące polecenia:

weights
normalize

Składnia jest taka sama jak opcja o tej samej nazwie.

8.34 amultiply

Pomnóż pierwszy strumień audio przez drugi strumień audio i zapisz wynik w wyjściowym strumieniu audio. Mnożenie odbywa się poprzez pomnożenie każdej próbki z pierwszego strumienia z próbką w tej samej pozycji z drugiego strumienia.

Dzięki temu elementowemu mnożeniu można tworzyć zaniki amplitudy i modulacje amplitudy.

8.35 anequalizer

Wielopasmowy korektor parametryczny wysokiej klasy dla każdego kanału.

Przyjmuje następujące parametry:

params

Ta opcja ma format: "c chnf= cfw= wg= gt= f| ..." Każde pasmo korektora jest oddzielone znakiem '|'.

chn

Ustaw numer kanału, do którego zostanie zastosowana korekcja. Jeśli wejście nie ma tego kanału, wpis jest ignorowany.

f

Ustaw częstotliwość środkową dla pasma. Jeśli wejście nie ma tej częstotliwości, wpis jest ignorowany.

w

Ustaw szerokość pasma w hercach.

g

Ustaw wzmocnienie pasma w dB.

t

Ustaw typ filtra dla pasma, opcjonalnie, może być:

'0'

Butterworth, to jest domyślne.

'1'

Czebyszew typ 1.

'2'

Czebyszew typ 2.

curves

Po włączeniu tej opcji w strumieniu wideo wyświetlana jest charakterystyka częstotliwościowa korektora.

size

Ustaw rozmiar strumienia wideo. Użyteczne tylko wtedy, gdy aktywna jest opcja krzywe.

mgain

Ustaw maksymalne wzmocnienie, które będzie wyświetlane. Użyteczne tylko wtedy, gdy aktywna jest opcja krzywe. Ustawienie tego na rozsądną wartość umożliwia wyświetlenie wzmocnienia, które pochodzi z sąsiednich pasm, które są zbyt blisko siebie, a zatem wytwarzają większe wzmocnienie, gdy oba są aktywowane.

fscale

Ustaw skalę częstotliwości używaną do rysowania odpowiedzi częstotliwościowej na wyjściu wideo. Może być liniowy lub logarytmiczny. Domyślnie jest logarytmiczny.

colors

Ustaw kolor dla każdej krzywej kanału, która będzie wyświetlana w strumieniu wideo. To jest lista nazw kolorów oddzielonych spacją lub znakiem '|'. Nierozpoznane lub brakujące kolory zostaną zastąpione kolorem białym.

8.35.1 Examples

  • Niższe wzmocnienie o 10 częstotliwości środkowej 200 Hz i szerokości 100 Hz dla pierwszych 2 kanałów przy użyciu filtra Czebyszewa typu 1:
    anequalizer=c0 f=200 w=100 g=-10 t=1|c1 f=200 w=100 g=-10 t=1
    

8.35.2 Commands

Ten filtr obsługuje następujące polecenia:

change

Zmień istniejące parametry filtra. Składnia poleceń to: " fN|f= freq|w= width|g= gain"

fNjest numerem istniejącego filtra, zaczynając od 0, jeśli taki filtr nie jest dostępny, zwracany jest błąd. frequstaw nowy parametr częstotliwości. widthustaw nowy parametr szerokości w hercach. gainustaw nowy parametr wzmocnienia w dB.

Pełne wywołanie filtra za pomocą asendcmd może wyglądać tak: asendcmd=c='4.0 zmiana anequalizera 0|f=200|w=50|g=1',anequalizer=...

8.36 anlmdn

Zmniejsz szum szerokopasmowy w próbkach audio za pomocą algorytmu Nielokalnych Średnich.

Każda próbka jest dostosowywana poprzez wyszukiwanie innych próbek o podobnym kontekście. To podobieństwo kontekstu jest definiowane przez porównanie otaczających ich łat o rozmiarze p. Plastry są przeszukiwane na obszarzerwokół próbki.

Filtr akceptuje następujące opcje:

strength, s

Ustaw siłę odszumiania. Dozwolony zakres to 0,00001 do 10000. Wartość domyślna to 0,00001.

patch, p

Ustaw czas trwania promienia łatki. Dozwolony zakres to od 1 do 100 milisekund. Wartość domyślna to 2 milisekundy.

research, r

Ustaw czas trwania promienia badań. Dozwolony zakres to od 2 do 300 milisekund. Wartość domyślna to 6 milisekund.

output, o

Ustaw tryb wyjściowy.

Przyjmuje następujące wartości:

i

Wejście bez zmian.

o

Odfiltrowane szumy.

n

Przekaż tylko hałas.

Wartość domyślna to o.

smooth, m

Ustaw współczynnik gładkości. Wartość domyślna to 11. Dozwolony zakres to od 1do 1000.

8.36.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

8.37 anlmf, anlms

Zastosuj znormalizowany algorytm najmniejszej średniej (kwadraty|czwarty) do pierwszego strumienia audio przy użyciu drugiego strumienia audio.

Ten filtr adaptacyjny jest używany do naśladowania pożądanego filtra poprzez znalezienie współczynników filtra, które odnoszą się do wytwarzania najmniejszego średniego kwadratu sygnału błędu (różnica między pożądanym, drugim wejściowym strumieniem audio a rzeczywistym sygnałem, pierwszym wejściowym strumieniem audio).

Poniżej znajduje się opis akceptowanych opcji.

order

Ustaw kolejność filtrów.

mu

Ustaw filtr mu.

eps

Ustaw filtr eps.

leakage

Ustaw wyciek filtra.

out_mode

Przyjmuje następujące wartości:

i

Przekaż pierwsze wejście.

d

Przekaż drugie wejście.

o

Przepuścić przefiltrowane próbki.

n

Przepuścić różnicę między próbkami pożądanymi i przefiltrowanymi.

Wartość domyślna to o.

8.37.1 Examples

  • Jednym z wielu zastosowań tego filtra jest redukcja szumów, dźwięk wejściowy jest filtrowany za pomocą tych samych próbek, które są opóźnione o ustaloną wartość, jednym z takich przykładów dla dźwięku stereo jest:
    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

Ten filtr obsługuje te same polecenia co opcje, z wyjątkiem opcji order.

8.38 anull

Przekaż niezmienione źródło dźwięku do wyjścia.

8.39 apad

Wypełnij koniec strumienia audio ciszą.

Może być używany razem zffmpeg -shortestaby rozszerzyć strumienie audio do tej samej długości co strumień wideo.

Poniżej znajduje się opis akceptowanych opcji.

packet_size

Ustaw rozmiar pakietu ciszy. Wartość domyślna to 4096.

pad_len

Ustaw liczbę próbek ciszy do dodania na koniec. Po osiągnięciu wartości strumień zostaje zakończony. Ta opcja wyklucza się wzajemnie zwhole_len.

whole_len

Ustaw minimalną całkowitą liczbę próbek w wyjściowym strumieniu audio. Jeśli wartość jest dłuższa niż długość wejściowego dźwięku, na końcu dodawana jest cisza, aż do osiągnięcia wartości. Ta opcja wyklucza się wzajemnie zpad_len.

pad_dur

Określ czas trwania próbek ciszy do dodania. Zobacz (ffmpeg-utils) sekcję Czas trwania w podręczniku ffmpeg-utils(1), aby poznać akceptowaną składnię. Używany tylko wtedy, gdy jest ustawiony na wartość nieujemną.

whole_dur

Określ minimalny całkowity czas trwania w wyjściowym strumieniu audio. Zobacz (ffmpeg-utils) sekcję Czas trwania w podręczniku ffmpeg-utils(1), aby poznać akceptowaną składnię. Używany tylko wtedy, gdy jest ustawiony na wartość nieujemną. Jeśli wartość jest dłuższa niż długość wejściowego dźwięku, na końcu dodawana jest cisza, aż do osiągnięcia wartości. Ta opcja wyklucza się wzajemnie zpad_dur

Jeśli żadnepad_lenaniwhole_lenanipad_dur aniwhole_duropcja jest ustawiona, filtr doda ciszę na końcu strumienia wejściowego w nieskończoność.

Zauważ, że dla ffmpeg 4.4 i wcześniejszych zeropad_durlub whole_durspowodowało również, że filtr dodawał ciszę w nieskończoność.

8.39.1 Examples

  • Dodaj 1024 próbki ciszy na końcu wejścia:
    apad=pad_len=1024
    
  • Upewnij się, że wyjście audio będzie zawierać co najmniej 10000 próbek, w razie potrzeby dopełnij wejście ciszą:
    apad=whole_len=10000
    
  • Służy ffmpegdo dopełniania wejścia audio ciszą, aby strumień wideo zawsze był najkrótszy i był konwertowany do końca w pliku wyjściowym przy użyciushortest opcja:
    ffmpeg -i VIDEO -i AUDIO -filter_complex "[1:0]apad" -shortest OUTPUT
    

8.40 aphaser

Dodaj efekt fazowania do wejściowego dźwięku.

Filtr fazerowy tworzy serie szczytów i dołków w widmie częstotliwości. Położenie szczytów i dolin jest modulowane, aby zmieniały się w czasie, tworząc efekt omiatania.

Poniżej znajduje się opis akceptowanych parametrów.

in_gain

Ustaw wzmocnienie wejścia. Wartość domyślna to 0,4.

out_gain

Ustaw wzmocnienie wyjściowe. Wartość domyślna to 0,74

delay

Ustaw opóźnienie w milisekundach. Wartość domyślna to 3.0.

decay

Ustaw rozkład. Wartość domyślna to 0,4.

speed

Ustaw prędkość modulacji w Hz. Wartość domyślna to 0,5.

type

Ustaw typ modulacji. Domyślnie jest trójkątny.

Przyjmuje następujące wartości:

'triangular, t'
'sinusoidal, s'

8.41 aphaseshift

Zastosuj przesunięcie fazowe do wejściowych próbek audio.

Filtr akceptuje następujące opcje:

shift

Określ przesunięcie fazowe. Dozwolony zakres to od -1,0 do 1,0. Wartość domyślna to 0,0.

level

Ustaw wzmocnienie wyjściowe zastosowane do końcowego wyjścia. Dozwolony zakres to od 0,0 do 1,0. Wartość domyślna to 1.0.

order

Ustaw kolejność filtrów używaną do filtrowania. Dozwolony zakres to od 1 do 16. Wartość domyślna to 8.

8.41.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

8.42 apsyclip

Zastosuj maszynkę psychoakustyczną do wejściowego strumienia audio.

Filtr akceptuje następujące opcje:

level_in

Ustaw wzmocnienie wejścia. Domyślnie jest to 1. Zakres to [0.015625 - 64].

level_out

Ustaw wzmocnienie wyjściowe. Domyślnie jest to 1. Zakres to [0.015625 - 64].

clip

Ustaw wartość początkową przycinania. Wartość domyślna to 0dBFS lub 1.

diff

Wyprowadzaj tylko próbki różnicowe, przydatne do usłyszenia wprowadzonych zniekształceń. Domyślnie jest wyłączona.

adaptive

Ustaw siłę zastosowanego zniekształcenia adaptacyjnego. Wartość domyślna to 0,5. Dozwolony zakres to od 0 do 1.

iterations

Ustaw liczbę iteracji maszynki psychoakustycznej. Dozwolony zakres to od 1 do 20. Wartość domyślna to 10.

level

Sygnał wyjściowy poziomu automatycznego. Domyślnie jest wyłączone. To normalizuje dźwięk z powrotem do 0dBFS, jeśli jest włączony.

8.42.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

8.43 apulsator

Pulsator audio to coś pomiędzy autopannerem a tremolo. Ale może również tworzyć zabawne efekty stereo. Pulsator zmienia głośność lewego i prawego kanału w oparciu o LFO (oscylator niskiej częstotliwości) z różnymi przebiegami i przesuniętymi fazami. Ten filtr ma możliwość zdefiniowania przesunięcia między lewym i prawym kanałem. Przesunięcie 0 oznacza, że ​​oba kształty LFO pasują do siebie. Kanał lewy i prawy są jednakowo zmieniane - konwencjonalne tremolo. Przesunięcie o 50% oznacza, że ​​kształt prawego kanału jest dokładnie przesunięty w fazie (lub cofnięty o około połowę częstotliwości) – pulsator działa jak autopanner. Przy 1 obie krzywe ponownie się pokrywają. Każde ustawienie pomiędzy nimi przesuwa przesunięcie fazowe bez przerw między wszystkimi etapami i wytwarza pewne „omijające” dźwięki z przebiegami sinusoidalnymi i trójkątnymi.

Filtr akceptuje następujące opcje:

level_in

Ustaw wzmocnienie wejścia. Domyślnie jest to 1. Zakres to [0.015625 - 64].

level_out

Ustaw wzmocnienie wyjściowe. Domyślnie jest to 1. Zakres to [0.015625 - 64].

mode

Ustaw kształt fali, który będzie używany przez LFO. Może być jednym z: sinus, trójkąt, kwadrat, sawup lub sawdown. Wartość domyślna to sinus.

amount

Ustaw modulację. Określ, jak duży wpływ na oryginalny sygnał ma LFO.

offset_l

Ustaw przesunięcie lewego kanału. Wartość domyślna to 0. Dozwolony zakres to [0 - 1].

offset_r

Ustaw przesunięcie prawego kanału. Wartość domyślna to 0,5. Dozwolony zakres to [0 - 1].

width

Ustaw szerokość impulsu. Wartość domyślna to 1. Dozwolony zakres to [0 - 2].

timing

Ustaw możliwy tryb pomiaru czasu. Może być jednym z: bpm, ms lub Hz. Domyślnie jest to Hz.

bpm

Ustaw uderzenia na minutę. Wartość domyślna to 120. Dozwolony zakres to [30 - 300]. Używany tylko wtedy, gdy taktowanie jest ustawione na bpm.

ms

Ustaw ms. Wartość domyślna to 500. Dozwolony zakres to [10 - 2000]. Używany tylko wtedy, gdy czas jest ustawiony na ms.

hz

Ustaw częstotliwość w Hz. Wartość domyślna to 2. Dozwolony zakres to [0,01 – 100]. Używany tylko wtedy, gdy czas jest ustawiony na Hz.

8.44 aresample

Ponownie próbkuj dźwięk wejściowy do określonych parametrów, korzystając z biblioteki libswresample. Jeśli żaden nie zostanie określony, filtr automatycznie przekonwertuje dane wejściowe i wyjściowe.

Ten filtr może również rozciągać/ściskać dane audio, aby dopasować je do znaczników czasu lub wstrzykiwać ciszę/wycinać dźwięk, aby pasowały do ​​znaczników czasu, wykonać kombinację obu lub żadnego z nich.

Filtr akceptuje składnię [ sample_rate:] resampler_options, gdzie sample_rate wyraża częstotliwość próbkowania i resampler_optionsjest listą par key= valueoddzielonych znakiem ":". Zobacz sekcję (ffmpeg-resampler)"Resampler Options" w podręczniku ffmpeg-resampler(1), aby zapoznać się z pełną listą obsługiwanych opcji.

8.44.1 Examples

  • Przeprowadź ponowne próbkowanie sygnału wejściowego do 44100 Hz:
    aresample=44100
    
  • Rozciągnij/ściśnij próbki do podanych znaczników czasu, z maksymalną kompensacją 1000 próbek na sekundę:
    aresample=async=1000
    

8.45 areverse

Odwróć klip audio.

Ostrzeżenie: ten filtr wymaga pamięci do buforowania całego klipu, dlatego sugeruje się przycinanie.

8.45.1 Examples

  • Weź pierwsze 5 sekund klipu i odwróć go.
    atrim=end=5,areverse
    

8.46 arnndn

Zmniejsz hałas z mowy dzięki Recurrent Neural Networks.

Ten filtr akceptuje następujące opcje:

model, m

Ustaw plik modelu pociągu do wczytania. Ta opcja jest zawsze wymagana.

mix

Ustaw, ile zmieszać przefiltrowanych próbek z końcowym wynikiem. Dozwolony zakres to od -1 do 1. Wartość domyślna to 1. Wartości ujemne są specjalne, określają, jak bardzo filtrowany szum ma pozostać w końcowym wyjściu filtra. Ustaw tę opcję na -1, aby usłyszeć rzeczywisty szum usunięty z sygnału wejściowego.

8.46.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

8.47 asdr

Zmierz stosunek sygnału audio do zniekształceń.

Ten filtr pobiera dwa strumienie audio na wejście i wyprowadza pierwszy strumień audio. Wyniki są podane w dB na kanał na końcu każdego wejścia.

8.48 asetnsamples

Ustaw liczbę próbek na każdą wyjściową ramkę audio.

Ostatni pakiet wyjściowy może zawierać inną liczbę próbek, ponieważ filtr wypłucze wszystkie pozostałe próbki, gdy wejściowy sygnał audio zasygnalizuje jego koniec.

Filtr akceptuje następujące opcje:

nb_out_samples, n

Ustaw liczbę klatek na każdą wyjściową ramkę audio. Liczba jest rozumiana jako liczba próbek na każdy kanał . Wartość domyślna to 1024.

pad, p

Jeśli jest ustawiony na 1, filtr wypełni ostatnią ramkę audio zerami, tak aby ostatnia ramka zawierała taką samą liczbę próbek jak poprzednie. Wartość domyślna to 1.

Na przykład, aby ustawić liczbę próbek na klatkę na 1234 i wyłączyć dopełnienie dla ostatniej klatki, użyj:

asetnsamples=n=1234:p=0

8.49 asetrate

Ustaw częstotliwość próbkowania bez zmiany danych PCM. Spowoduje to zmianę prędkości i wysokości tonu.

Filtr akceptuje następujące opcje:

sample_rate, r

Ustaw wyjściową częstotliwość próbkowania. Wartość domyślna to 44100 Hz.

8.50 ashowinfo

Pokaż linię zawierającą różne informacje dla każdej wejściowej ramki audio. Dźwięk wejściowy nie jest modyfikowany.

Pokazany wiersz zawiera sekwencję par klucz/wartość postaci key: value.

Na wyjściu pokazane są następujące wartości:

n

Numer (sekwencyjny) ramki wejściowej, zaczynając od 0.

pts

Znacznik czasu prezentacji ramki wejściowej w jednostkach podstawy czasu; podstawa czasu zależy od wkładki wejściowej filtra i zwykle wynosi 1/ sample_rate.

pts_time

Znacznik czasu prezentacji ramki wejściowej w sekundach.

pos

pozycja ramki w strumieniu wejściowym, -1 jeśli ta informacja jest niedostępna i/lub nie ma znaczenia (np. w przypadku dźwięku syntetycznego)

fmt

Przykładowy format.

chlayout

Układ kanałów.

rate

Częstotliwość próbkowania dla ramki audio.

nb_samples

Liczba próbek (na kanał) w ramce.

checksum

Suma kontrolna Adler-32 (wydrukowana w systemie szesnastkowym) danych audio. W przypadku dźwięku planarnego dane są traktowane tak, jakby wszystkie płaszczyzny były połączone.

plane_checksums

Lista sum kontrolnych Adler-32 dla każdej płaszczyzny danych.

8.51 asoftclip

Zastosuj miękkie przycinanie dźwięku.

Miękkie przycinanie to rodzaj efektu zniekształcenia, w którym amplituda sygnału jest nasycona wzdłuż gładkiej krzywej, a nie nagłego kształtu ostrego przycinania.

Ten filtr akceptuje następujące opcje:

type

Ustaw rodzaj miękkiego docinania.

Przyjmuje następujące wartości:

hard
tanh
atan
cubic
exp
alg
quintic
sin
erf
threshold

Ustaw próg, od którego rozpocząć przycinanie. Wartość domyślna to 0dB lub 1.

output

Ustaw wzmocnienie zastosowane do wyjścia. Wartość domyślna to 0dB lub 1.

param

Ustaw dodatkowy parametr sterujący funkcją sigmoidalną.

oversample

Ustaw współczynnik nadpróbkowania.

8.51.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

8.52 aspectralstats

Wyświetlaj informacje statystyczne w dziedzinie częstotliwości o kanałach audio. Statystyki są obliczane i przechowywane jako metadane dla każdego kanału audio i dla każdej ramki audio.

Akceptuje następującą opcję:

win_size

Ustaw długość okna w próbkach. Wartość domyślna to 2048. Dozwolony zakres to od 32 do 65536.

win_func

Ustaw funkcję okna.

Przyjmuje następujące wartości:

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

Wartość domyślna to hann.

overlap

Ustaw nakładanie się okien. Dozwolony zakres to od 0 do 1. Wartość domyślna to 0.5.

Lista każdego klucza metadanych jest następująca:

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

8.53 asr

Automatyczne rozpoznawanie mowy

Ten filtr wykorzystuje PocketSphinx do rozpoznawania mowy. Aby umożliwić kompilację tego filtra, musisz skonfigurować FFmpeg za pomocą --enable-pocketsphinx.

Akceptuje następujące opcje:

rate

Ustaw częstotliwość próbkowania wejściowego dźwięku. Wartość domyślna to 16000. To musi pasować do modeli mowy, w przeciwnym razie uzyska się słabe wyniki.

hmm

Ustaw słownik zawierający pliki modeli akustycznych.

dict

Ustaw słownik wymowy.

lm

Ustaw plik modelu języka.

lmctl

Ustaw zestaw modelu języka.

lmname

Ustaw model języka, którego chcesz użyć.

logfn

Ustaw wyjście dla komunikatów dziennika.

Filtr eksportuje rozpoznaną mowę jako metadane ramki lavfi.asr.text.

8.54 astats

Wyświetlaj informacje statystyczne w dziedzinie czasu o kanałach audio. Statystyki są obliczane i wyświetlane dla każdego kanału audio oraz, w stosownych przypadkach, podana jest również ogólna liczba.

Akceptuje następującą opcję:

length

Krótka długość okna w sekundach, używana do pomiaru wartości szczytowej i minimalnej RMS. Wartość domyślna to 0.05(50 milisekund). Dozwolony zakres to [0 - 10].

metadata

Ustaw wstrzykiwanie metadanych. Wszystkie klucze metadanych są poprzedzone prefiksem lavfi.astats.X, gdzie Xjest numerem kanału zaczynającym się od 1 lub ciągiem znaków Overall. Domyślnie jest wyłączone.

Dostępne klucze dla każdego kanału to: Przesunięcie DC Min_poziom Maks_poziom Min_różnicę Maks_różnicę Różnica_średnia Różnica_RMS Poziom_szczytu RMS_szczyt RMS_dołek Współczynnik szczytu Współczynnik_szczytu Współczynnik_szczytu Liczba_hałasu_podłoga Hałas_liczba_podłogi Entropia Głębokość_bitowa Zakres_dynamiczny_Zerowe_przekroczenia_Prędkość_Zerowa Liczba_przekroczeń_Normalna Liczba_przekroczeń_Normalna

i dla Ogólnie: Przesunięcie DC Min_poziom Maks_poziom Min_różnic Maks_różnic Średnia_różnica RMS_różnica Poziom_szczytu RMS_poziom RMS_szczyt RMS_dołek Płaski współczynnik Liczba_szczytów Hałas_podłogowy Hałas_ilość_podłogowych Entropia Głębokość_bitowa Liczba_próbek Liczba_NaNs Liczba_inf.

Na przykład pełny klucz wygląda tak lavfi.astats.1.DC_offsetlub tak lavfi.astats.Overall.Peak_count.

Aby uzyskać opis, co oznacza każdy klucz, przeczytaj poniżej.

reset

Ustaw liczbę klatek, dla których obliczane są skumulowane statystyki przed zresetowaniem Domyślnie wyłączone.

measure_perchannel

Wybierz parametry, które są mierzone na kanał. Klucze metadanych mogą być używane jako flagi, domyślnieallktóry mierzy wszystko. nonewyłącza wszystkie pomiary na kanał.

measure_overall

Wybierz parametry, które są mierzone ogólnie. Klucze metadanych mogą być używane jako flagi, domyślnieallktóry mierzy wszystko. nonewyłącza wszystkie ogólne pomiary.

Poniżej znajduje się opis każdego pokazanego parametru:

DC offset

Średnie przesunięcie amplitudy od zera.

Min level

Minimalny poziom próbki.

Max level

Maksymalny poziom próbki.

Min difference

Minimalna różnica między dwiema kolejnymi próbkami.

Max difference

Maksymalna różnica między dwiema kolejnymi próbkami.

Mean difference

Średnia różnica między dwiema kolejnymi próbkami. Średnia z każdej różnicy między dwiema kolejnymi próbkami.

RMS difference

Różnica średniokwadratowa między dwiema kolejnymi próbkami.

Peak level dB
RMS level dB

Standardowy poziom szczytowy i RMS mierzony w dBFS.

RMS peak dB
RMS trough dB

Wartości szczytowe i minimalne dla poziomu RMS mierzone w krótkim oknie.

Crest factor

Standardowy stosunek wartości szczytowej do poziomu RMS (uwaga: nie w dB).

Flat factor

Płaskość (tj. kolejne próbki o tej samej wartości) sygnału na jego poziomach szczytowych (tj. albo Min levellub Max level).

Peak count

Liczba przypadków (nie liczba próbek), w których sygnał osiągnął albo Min levellub Max level.

Noise floor dB

Minimalny lokalny szczyt mierzony w dBFS w krótkim oknie.

Noise floor count

Liczba przypadków (nie liczba próbek), w których uzyskano sygnał Noise floor.

Entropy

Entropia mierzona w całym dźwięku. Entropia o wartości bliskiej 1,0 jest zwykle mierzona dla białego szumu.

Bit depth

Ogólna głębia bitowa dźwięku. Liczba bitów użytych dla każdej próbki.

Dynamic range

Zmierzony zakres dynamiki dźwięku w dB.

Zero crossings

Liczba punktów, w których przebieg przecina oś poziomu zerowego.

Zero crossings rate

Szybkość przejść przez zero i liczba próbek audio.

8.55 asubboost

Zwiększ częstotliwości subwoofera.

Filtr akceptuje następujące opcje:

dry

Ustaw suche wzmocnienie, ile oryginalnego sygnału zostanie zachowane. Dozwolony zakres to od 0 do 1. Wartość domyślna to 1.0.

wet

Ustaw wzmocnienie mokre, ile przefiltrowanego sygnału zostanie zachowane. Dozwolony zakres to od 0 do 1. Wartość domyślna to 1.0.

boost

Ustaw maksymalny współczynnik wzmocnienia. Dozwolony zakres to od 1 do 12. Wartość domyślna to 2.

decay

Ustaw wartość wzmocnienia zaniku linii opóźniającej. Dozwolony zakres to od 0 do 1. Wartość domyślna to 0,0.

feedback

Ustaw wartość wzmocnienia sprzężenia zwrotnego linii opóźniającej. Dozwolony zakres to od 0 do 1. Wartość domyślna to 0,9.

cutoff

Ustaw częstotliwość graniczną w hercach. Dozwolony zakres to 50 do 900. Wartość domyślna to 100.

slope

Ustaw wielkość nachylenia dla częstotliwości odcięcia. Dozwolony zakres to 0,0001 do 1. Wartość domyślna to 0,5.

delay

Ustaw opóźnienie. Dozwolony zakres to od 1 do 100. Wartość domyślna to 20.

channels

Ustaw kanały do ​​przetworzenia. Wszystkie wartości domyślne są dostępne.

8.55.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

8.56 asubcut

Wytnij częstotliwości subwoofera.

Filtr ten pozwala na ustawienie niestandardowego, bardziej stromego odchylenia niż filtr górnoprzepustowy, a tym samym jest w stanie bardziej stłumić zawartość częstotliwości w paśmie zaporowym.

Filtr akceptuje następujące opcje:

cutoff

Ustaw częstotliwość graniczną w hercach. Dozwolony zakres to 2 do 200. Wartość domyślna to 20.

order

Ustaw kolejność filtrów. Dostępne wartości to od 3 do 20. Wartość domyślna to 10.

level

Ustaw poziom wzmocnienia wejściowego. Dozwolony zakres to od 0 do 1. Wartość domyślna to 1.

8.56.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

8.57 asupercut

Wytnij super częstotliwości.

Filtr akceptuje następujące opcje:

cutoff

Ustaw częstotliwość graniczną w hercach. Dozwolony zakres to 20000 do 192000. Wartość domyślna to 20000.

order

Ustaw kolejność filtrów. Dostępne wartości to od 3 do 20. Wartość domyślna to 10.

level

Ustaw poziom wzmocnienia wejściowego. Dozwolony zakres to od 0 do 1. Wartość domyślna to 1.

8.57.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

8.58 asuperpass

Zastosuj filtr pasmowoprzepustowy wysokiego rzędu Butterwortha.

Filtr akceptuje następujące opcje:

centerf

Ustaw częstotliwość środkową w hercach. Dozwolony zakres to 2 do 999999. Wartość domyślna to 1000.

order

Ustaw kolejność filtrów. Dostępne wartości to od 4 do 20. Wartość domyślna to 4.

qfactor

Ustaw współczynnik Q. Dozwolony zakres to od 0,01 do 100. Wartość domyślna to 1.

level

Ustaw poziom wzmocnienia wejściowego. Dozwolony zakres to od 0 do 2. Wartość domyślna to 1.

8.58.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

8.59 asuperstop

Zastosuj filtr pasmowy wysokiego rzędu Butterwortha.

Filtr akceptuje następujące opcje:

centerf

Ustaw częstotliwość środkową w hercach. Dozwolony zakres to 2 do 999999. Wartość domyślna to 1000.

order

Ustaw kolejność filtrów. Dostępne wartości to od 4 do 20. Wartość domyślna to 4.

qfactor

Ustaw współczynnik Q. Dozwolony zakres to od 0,01 do 100. Wartość domyślna to 1.

level

Ustaw poziom wzmocnienia wejściowego. Dozwolony zakres to od 0 do 2. Wartość domyślna to 1.

8.59.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

8.60 atempo

Dostosuj tempo dźwięku.

Filtr akceptuje dokładnie jeden parametr, tempo audio. Jeśli nie zostanie określony, filtr przyjmie nominalne tempo 1.0. Tempo musi mieścić się w zakresie [0,5, 100,0].

Zwróć uwagę, że tempo większe niż 2 spowoduje pominięcie niektórych próbek, zamiast ich zmieszania. Jeśli z jakiegoś powodu jest to problem, zawsze możliwe jest połączenie łańcuchowe kilku wystąpień atempo w celu uzyskania pożądanego tempa produktu.

8.60.1 Examples

  • Zwolnij dźwięk do 80% tempa:
    atempo=0.8
    
  • Aby przyspieszyć dźwięk do 300% tempa:
    atempo=3
    
  • Aby przyspieszyć dźwięk do tempa 300% poprzez połączenie łańcuchowe dwóch instancji atempo:
    atempo=sqrt(3),atempo=sqrt(3)
    

8.60.2 Commands

Ten filtr obsługuje następujące polecenia:

tempo

Zmień współczynnik skali tempa filtra. Składnia polecenia to: „ tempo

8.61 atilt

Zastosuj filtr nachylenia widma do strumienia audio.

Filtr ten stosuje dowolne zbocze spadku widma w dowolnym określonym paśmie częstotliwości.

Filtr akceptuje następujące opcje:

freq

Ustaw centralną częstotliwość pochylenia w Hz. Wartość domyślna to 10000 Hz.

slope

Ustaw kierunek nachylenia nachylenia. Wartość domyślna to 0. Dozwolony zakres to od -1 do 1.

width

Ustaw szerokość pochylenia. Wartość domyślna to 1000. Dozwolony zakres to od 100 do 10000.

order

Ustaw kolejność filtra pochylenia.

level

Ustaw poziom głośności wejściowej. Dozwolony zakres to od 0 do 4. Domyślna wartość to 1.

8.61.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

8.62 atrim

Przytnij dane wejściowe tak, aby dane wyjściowe zawierały jedną ciągłą podczęść danych wejściowych.

Przyjmuje następujące parametry:

start

Znacznik czasu (w sekundach) początku odcinka do zachowania. Oznacza to, że próbka audio ze znacznikiem czasu startbędzie pierwszą próbką na wyjściu.

end

Określ czas pierwszej próbki audio, która zostanie usunięta, tzn. próbka audio bezpośrednio poprzedzająca próbkę ze znacznikiem czasu endbędzie ostatnią próbką w wyjściu.

start_pts

Tak samo jak start, z tą różnicą, że ta opcja ustawia początkowy znacznik czasu w próbkach zamiast sekund.

end_pts

Tak samo jak end, z tą różnicą, że ta opcja ustawia znacznik czasu końca w próbkach, a nie w sekundach.

duration

Maksymalny czas trwania wyjścia w sekundach.

start_sample

Numer pierwszej próbki, która powinna zostać wyprowadzona.

end_sample

Numer pierwszej próbki, która powinna zostać upuszczona.

start,end, orazdurationsą wyrażone jako specyfikacje czasu trwania; zobacz (ffmpeg-utils) sekcję Czas trwania w podręczniku ffmpeg-utils(1) .

Zwróć uwagę, że pierwsze dwa zestawy opcji początku/końca orazduration opcja spójrz na znacznik czasu ramki, podczas gdy opcje _sample po prostu zliczają próbki, które przechodzą przez filtr. Tak więc start/end_pts i start/end_sample dadzą różne wyniki, gdy znaczniki czasu są błędne, niedokładne lub nie zaczynają się od zera. Pamiętaj też, że ten filtr nie modyfikuje znaczników czasu. Jeśli chcesz, aby wyjściowe znaczniki czasu zaczynały się od zera, wstaw filtr assetpts po filtrze atrim.

Jeśli ustawiono wiele opcji początku lub końca, ten filtr próbuje być zachłanny i zachować wszystkie próbki, które pasują do co najmniej jednego z określonych ograniczeń. Aby jednocześnie zachować tylko tę część, która pasuje do wszystkich wiązań, połącz wiele filtrów atrim.

Wartości domyślne są takie, że wszystkie dane wejściowe są zachowywane. Można więc ustawić np. tylko wartości końcowe, aby zachować wszystko przed określonym czasem.

Przykłady:

  • Upuść wszystko z wyjątkiem drugiej minuty wprowadzania danych:
    ffmpeg -i INPUT -af atrim=60:120
    
  • Zachowaj tylko pierwsze 1000 próbek:
    ffmpeg -i INPUT -af atrim=end_sample=1000
    

8.63 axcorrelate

Oblicz znormalizowaną okienkową korelację krzyżową między dwoma wejściowymi strumieniami audio.

Otrzymane próbki zawsze mieszczą się w przedziale od -1 do 1 włącznie. Jeśli wynik wynosi 1, oznacza to, że dwie próbki wejściowe są silnie skorelowane w tym wybranym segmencie. Wynik 0 oznacza, że ​​w ogóle nie są skorelowane. Jeśli wynik wynosi -1, oznacza to, że dwie próbki wejściowe są przesunięte w fazie, co oznacza, że ​​wzajemnie się znoszą.

Filtr akceptuje następujące opcje:

size

Ustaw rozmiar segmentu, dla którego obliczana jest korelacja krzyżowa. Wartość domyślna to 256. Dozwolony zakres to od 2 do 131072.

algo

Ustaw algorytm korelacji krzyżowej. Może być slowlub fast. Wartość domyślna to slow. Szybki algorytm zakłada, że ​​średnie wartości w danym segmencie są zawsze zerowe, a zatem wymagają znacznie mniej obliczeń. Generalnie nie jest to prawdą, ale dotyczy typowych strumieni audio.

8.63.1 Examples

  • Oblicz korelację między kanałami w strumieniu dźwięku stereo:
    ffmpeg -i stereo.wav -af channelsplit,axcorrelate=size=1024:algo=fast correlation.wav
    

8.64 bandpass

Zastosuj dwubiegunowy filtr pasmowoprzepustowy Butterwortha z częstotliwością środkową frequencyi szerokością pasma (punkt 3dB). Opcja csgwybiera stałe wzmocnienie spódnicy (wzmocnienie szczytowe = Q) zamiast domyślnego: stałe wzmocnienie szczytowe 0 dB. Filtr rozwija się przy 6dB na oktawę (20dB na dekadę).

Filtr akceptuje następujące opcje:

frequency, f

Ustaw centralną częstotliwość filtra. Wartość domyślna to 3000.

csg

Stałe wzmocnienie spódnicy, jeśli ustawione na 1. Domyślnie 0.

width_type, t

Ustaw metodę, aby określić szerokość pasma filtra.

h

Hz

q

Współczynnik Q

o

oktawa

s

nachylenie

k

kHz

width, w

Określ szerokość pasma filtru w jednostkach typ_szerokości.

mix, m

Ile użyć przefiltrowanego sygnału na wyjściu. Wartość domyślna to 1. Zakres wynosi od 0 do 1.

channels, c

Określ, które kanały do ​​filtrowania, domyślnie wszystkie dostępne są filtrowane.

normalize, n

Normalizuj współczynniki biquad, domyślnie jest wyłączone. Włączenie go znormalizuje odpowiedź amplitudy przy DC do 0dB.

transform, a

Ustaw typ transformacji filtru IIR.

di
dii
tdi
tdii
latt
svf
zdf
precision, r

Ustaw precyzję filtrowania.

auto

Wybierz automatyczny format sampli w zależności od filtrów surround.

s16

Zawsze używaj podpisu 16-bitowego.

s32

Zawsze używaj podpisu 32-bitowego.

f32

Zawsze używaj 32-bitowego zmiennoprzecinkowego.

f64

Zawsze używaj zmiennoprzecinkowej 64-bitowej.

block_size, b

Ustaw rozmiar bloku używanego do odwrotnego przetwarzania IIR. Jeśli ta wartość jest ustawiona na wystarczająco wysoką wartość (większą niż długość odpowiedzi impulsowej skrócona, gdy osiągnie wartości bliskie zeru), filtrowanie stanie się fazą liniową, w przeciwnym razie, jeśli nie będzie wystarczająco duże, będzie wytwarzać nieprzyjemne artefakty.

Zauważ, że opóźnienie filtra będzie dokładnie tyle próbek, gdy zostanie ustawione na wartość niezerową.

8.64.1 Commands

Ten filtr obsługuje następujące polecenia:

frequency, f

Zmień częstotliwość pasma. Składnia polecenia to: „ frequency

width_type, t

Zmień szerokość_typu bandpass. Składnia polecenia to: „ width_type

width, w

Zmień szerokość pasma. Składnia polecenia to: „ width

mix, m

Zmień miks pasmowy. Składnia polecenia to: „ mix

8.65 bandreject

Zastosuj dwubiegunowy filtr pasmowy Butterwortha z częstotliwością środkową frequencyi szerokością pasma (punkt 3 dB) width. Filtr rozwija się przy 6dB na oktawę (20dB na dekadę).

Filtr akceptuje następujące opcje:

frequency, f

Ustaw centralną częstotliwość filtra. Wartość domyślna to 3000.

width_type, t

Ustaw metodę, aby określić szerokość pasma filtra.

h

Hz

q

Współczynnik Q

o

oktawa

s

nachylenie

k

kHz

width, w

Określ szerokość pasma filtru w jednostkach typ_szerokości.

mix, m

Ile użyć przefiltrowanego sygnału na wyjściu. Wartość domyślna to 1. Zakres wynosi od 0 do 1.

channels, c

Określ, które kanały do ​​filtrowania, domyślnie wszystkie dostępne są filtrowane.

normalize, n

Normalizuj współczynniki biquad, domyślnie jest wyłączone. Włączenie go znormalizuje odpowiedź amplitudy przy DC do 0dB.

transform, a

Ustaw typ transformacji filtru IIR.

di
dii
tdi
tdii
latt
svf
zdf
precision, r

Ustaw precyzję filtrowania.

auto

Wybierz automatyczny format sampli w zależności od filtrów surround.

s16

Zawsze używaj podpisu 16-bitowego.

s32

Zawsze używaj podpisu 32-bitowego.

f32

Zawsze używaj 32-bitowego zmiennoprzecinkowego.

f64

Zawsze używaj zmiennoprzecinkowej 64-bitowej.

block_size, b

Ustaw rozmiar bloku używanego do odwrotnego przetwarzania IIR. Jeśli ta wartość jest ustawiona na wystarczająco wysoką wartość (większą niż długość odpowiedzi impulsowej skrócona, gdy osiągnie wartości bliskie zeru), filtrowanie stanie się fazą liniową, w przeciwnym razie, jeśli nie będzie wystarczająco duże, będzie wytwarzać nieprzyjemne artefakty.

Zauważ, że opóźnienie filtra będzie dokładnie tyle próbek, gdy zostanie ustawione na wartość niezerową.

8.65.1 Commands

Ten filtr obsługuje następujące polecenia:

frequency, f

Zmień częstotliwość odrzucania pasma. Składnia polecenia to: „ frequency

width_type, t

Zmień bandreject width_type. Składnia polecenia to: „ width_type

width, w

Zmień szerokość bandreject. Składnia polecenia to: „ width

mix, m

Zmień miks bandreject. Składnia polecenia to: „ mix

8.66 bass, lowshelf

Wzmocnij lub wytnij niskie (niższe) częstotliwości dźwięku za pomocą dwubiegunowego filtra półkowego o reakcji podobnej do standardowej kontroli tonów hi-fi. Jest to również znane jako wyrównywanie półek (EQ).

Filtr akceptuje następujące opcje:

gain, g

Podaj wzmocnienie przy 0 Hz. Jego użyteczny zasięg to około -20 (dla dużego cięcia) do +20 (dla dużego wzmocnienia). Uważaj na przycinanie podczas korzystania z dodatniego wzmocnienia.

frequency, f

Ustaw centralną częstotliwość filtra, dzięki czemu można go używać do rozszerzania lub zmniejszania zakresu częstotliwości, który ma być wzmocniony lub obcięty. Wartość domyślna to 100Hz.

width_type, t

Ustaw metodę, aby określić szerokość pasma filtra.

h

Hz

q

Współczynnik Q

o

oktawa

s

nachylenie

k

kHz

width, w

Określ, jak strome jest przejście półki filtra.

poles, p

Ustaw liczbę biegunów. Wartość domyślna to 2.

mix, m

Ile użyć przefiltrowanego sygnału na wyjściu. Wartość domyślna to 1. Zakres wynosi od 0 do 1.

channels, c

Określ, które kanały do ​​filtrowania, domyślnie wszystkie dostępne są filtrowane.

normalize, n

Normalizuj współczynniki biquad, domyślnie jest wyłączone. Włączenie go znormalizuje odpowiedź amplitudy przy DC do 0dB.

transform, a

Ustaw typ transformacji filtru IIR.

di
dii
tdi
tdii
latt
svf
zdf
precision, r

Ustaw precyzję filtrowania.

auto

Wybierz automatyczny format sampli w zależności od filtrów surround.

s16

Zawsze używaj podpisu 16-bitowego.

s32

Zawsze używaj podpisu 32-bitowego.

f32

Zawsze używaj 32-bitowego zmiennoprzecinkowego.

f64

Zawsze używaj zmiennoprzecinkowej 64-bitowej.

block_size, b

Ustaw rozmiar bloku używanego do odwrotnego przetwarzania IIR. Jeśli ta wartość jest ustawiona na wystarczająco wysoką wartość (większą niż długość odpowiedzi impulsowej skrócona, gdy osiągnie wartości bliskie zeru), filtrowanie stanie się fazą liniową, w przeciwnym razie, jeśli nie będzie wystarczająco duże, będzie wytwarzać nieprzyjemne artefakty.

Zauważ, że opóźnienie filtra będzie dokładnie tyle próbek, gdy zostanie ustawione na wartość niezerową.

8.66.1 Commands

Ten filtr obsługuje następujące polecenia:

frequency, f

Zmień częstotliwość basów. Składnia polecenia to: „ frequency

width_type, t

Zmień szerokość_typu basu. Składnia polecenia to: „ width_type

width, w

Zmień szerokość basu. Składnia polecenia to: „ width

gain, g

Zmień wzmocnienie basów. Składnia polecenia to: „ gain

mix, m

Zmień miks basowy. Składnia polecenia to: „ mix

8.67 biquad

Zastosuj biquad filtr IIR o podanych współczynnikach. Gdzie b0, i b1, to odpowiednio współczynniki licznika i mianownika. i określić , które kanały do ​​filtrowania, domyślnie wszystkie dostępne są filtrowane. b2a0a1a2channelsc

8.67.1 Commands

Ten filtr obsługuje następujące polecenia:

a0
a1
a2
b0
b1
b2

Zmień parametr biquad. Składnia polecenia to: „ value

mix, m

Ile użyć przefiltrowanego sygnału na wyjściu. Wartość domyślna to 1. Zakres wynosi od 0 do 1.

channels, c

Określ, które kanały do ​​filtrowania, domyślnie wszystkie dostępne są filtrowane.

normalize, n

Normalizuj współczynniki biquad, domyślnie jest wyłączone. Włączenie go znormalizuje odpowiedź amplitudy przy DC do 0dB.

transform, a

Ustaw typ transformacji filtru IIR.

di
dii
tdi
tdii
latt
svf
zdf
precision, r

Ustaw precyzję filtrowania.

auto

Wybierz automatyczny format sampli w zależności od filtrów surround.

s16

Zawsze używaj podpisu 16-bitowego.

s32

Zawsze używaj podpisu 32-bitowego.

f32

Zawsze używaj 32-bitowego zmiennoprzecinkowego.

f64

Zawsze używaj zmiennoprzecinkowej 64-bitowej.

block_size, b

Ustaw rozmiar bloku używanego do odwrotnego przetwarzania IIR. Jeśli ta wartość jest ustawiona na wystarczająco wysoką wartość (większą niż długość odpowiedzi impulsowej skrócona, gdy osiągnie wartości bliskie zeru), filtrowanie stanie się fazą liniową, w przeciwnym razie, jeśli nie będzie wystarczająco duże, będzie wytwarzać nieprzyjemne artefakty.

Zauważ, że opóźnienie filtra będzie dokładnie tyle próbek, gdy zostanie ustawione na wartość niezerową.

8.68 bs2b

Bauer stereo do transformacji binauralnej, która poprawia słuchanie stereofonicznych nagrań audio.

Aby umożliwić kompilację tego filtra musisz skonfigurować FFmpeg z --enable-libbs2b.

Przyjmuje następujące parametry:

profile

Wstępnie zdefiniowany poziom posuwu krzyżowego.

default

Poziom domyślny (fcut=700, feed=50).

cmoy

Obwód Chu Moy (fcut=700, feed=60).

jmeier

Obwód Jana Meiera (fcut=650, feed=95).

fcut

Częstotliwość cięcia (w Hz).

feed

Poziom paszy (w Hz).

8.69 channelmap

Zmień mapowanie kanałów wejściowych na nowe lokalizacje.

Przyjmuje następujące parametry:

map

Mapuj kanały od wejścia do wyjścia. Argumentem jest lista oddzielonych '|' mapowań, każde w formie lub . może być nazwą kanału wejściowego (np. FL dla przedniego lewego) lub jego indeksem w układzie kanału wejściowego. to nazwa kanału wyjściowego lub jego indeks w układzie kanału wyjściowego. Jeśli nie jest podany, jest to niejawny indeks, rozpoczynający się od zera i zwiększający się o jeden dla każdego mapowania. in_channel-out_channelin_channelin_channelout_channelout_channel

channel_layout

Układ kanałów strumienia wyjściowego.

Jeśli nie ma mapowania, filtr domyślnie mapuje kanały wejściowe na kanały wyjściowe, zachowując indeksy.

8.69.1 Examples

  • Na przykład zakładając, że plik wejściowy MOV 5.1+downmix,
    ffmpeg -i in.mov -filter 'channelmap=map=DL-FL|DR-FR' out.wav
    

    utworzy wyjściowy plik WAV oznaczony jako stereo z kanałów downmixu na wejściu.

  • Aby naprawić plik 5.1 WAV nieprawidłowo zakodowany w natywnej kolejności kanałów AAC
    ffmpeg -i in.wav -filter 'channelmap=1|2|0|5|3|4:5.1' out.wav
    

8.70 channelsplit

Podziel każdy kanał z wejściowego strumienia audio na osobny strumień wyjściowy.

Przyjmuje następujące parametry:

channel_layout

Układ kanału strumienia wejściowego. Wartość domyślna to „stereo”.

channels

Układ kanałów opisujący kanały, które mają być wyodrębnione jako oddzielne strumienie wyjściowe lub „wszystkie”, aby wyodrębnić każdy kanał wejściowy jako osobny strumień. Wartość domyślna to „wszystkie”.

Wybranie kanałów nieobecnych w układzie kanałów na wejściu spowoduje błąd.

8.70.1 Examples

  • Na przykład, zakładając plik MP3 z wejściem stereo,
    ffmpeg -i in.mp3 -filter_complex channelsplit out.mkv
    

    utworzy wyjściowy plik Matroska z dwoma strumieniami audio, jeden zawierający tylko lewy kanał, a drugi prawy kanał.

  • Split a 5.1 WAV file into per-channel files:
    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
    
  • Wyodrębnij tylko LFE z pliku 5.1 WAV:
    ffmpeg -i in.wav -filter_complex 'channelsplit=channel_layout=5.1:channels=LFE[LFE]'
    -map '[LFE]' lfe.wav
    

8.71 chorus

Dodaj efekt chóru do dźwięku.

Może sprawić, że pojedynczy wokal zabrzmi jak refren, ale można go również zastosować do instrumentacji.

Chorus przypomina efekt echa z krótkim opóźnieniem, ale podczas gdy w przypadku echa opóźnienie jest stałe, w przypadku chóru jest ono zmieniane za pomocą modulacji sinusoidalnej lub trójkątnej. Głębokość modulacji określa zakres, w jakim modulowane opóźnienie jest odtwarzane przed lub po opóźnieniu. W związku z tym opóźniony dźwięk będzie brzmiał wolniej lub szybciej, to znaczy opóźniony dźwięk dostrojony do oryginalnego, jak w refrenie, w którym niektóre wokale są nieco nieodpowiednie.

Przyjmuje następujące parametry:

in_gain

Ustaw wzmocnienie wejścia. Wartość domyślna to 0,4.

out_gain

Ustaw wzmocnienie wyjściowe. Wartość domyślna to 0,4.

delays

Ustaw opóźnienia. Typowe opóźnienie wynosi około 40ms do 60ms.

decays

Zestaw rozpadów.

speeds

Ustaw prędkości.

depths

Ustaw głębokości.

8.71.1 Examples

  • Pojedyncze opóźnienie:
    chorus=0.7:0.9:55:0.4:0.25:2
    
  • Dwa opóźnienia:
    chorus=0.6:0.9:50|60:0.4|0.32:0.25|0.4:2|1.3
    
  • Pełniej brzmiący refren z trzema opóźnieniami:
    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

Kompresuj lub rozszerzaj zakres dynamiki dźwięku.

Przyjmuje następujące parametry:

attacks
decays

Lista czasów w sekundach dla każdego kanału, przez które uśredniany jest chwilowy poziom sygnału wejściowego w celu określenia jego głośności. attacksodnosi się do zwiększenia głośności i decaysodnosi się do zmniejszenia głośności. W większości sytuacji czas ataku (odpowiedź na głośniejszy dźwięk) powinien być krótszy niż czas zanikania, ponieważ ludzkie ucho jest bardziej wrażliwe na nagły głośny dźwięk niż nagły cichy dźwięk. Typowa wartość ataku to 0,3 sekundy, a typowa wartość rozpadu to 0,8 sekundy. Jeśli określona liczba ataków i zaników jest mniejsza niż liczba kanałów, ostatni zestaw ataków/zaników zostanie użyty dla wszystkich pozostałych kanałów.

points

Lista punktów dla transmitancji, określona w dB w stosunku do maksymalnej możliwej amplitudy sygnału. Każda lista punktów kluczowych musi być zdefiniowana przy użyciu następującej składni: x0/y0|x1/y1|x2/y2|....lub x0/y0 x1/y1 x2/y2 ....

Wartości wejściowe muszą być w porządku ściśle rosnącym, ale transmitancja nie musi być monotonicznie rosnąca. Punkt 0/0jest zakładany, ale można go zastąpić (przez 0/out-dBn). Typowe wartości transmitancji to -70/-70|-60/-20|1/0.

soft-knee

Ustaw promień łuku w dB dla wszystkich połączeń. Wartość domyślna to 0,01.

gain

Ustaw dodatkowe wzmocnienie w dB, które ma być zastosowane we wszystkich punktach funkcji transferu. Pozwala to na łatwą regulację ogólnego wzmocnienia. Domyślnie jest to 0.

volume

Ustaw początkową głośność w dB, którą należy przyjąć dla każdego kanału, gdy rozpocznie się filtrowanie. Pozwala to użytkownikowi na dostarczenie początkowego poziomu nominalnego, tak że na przykład bardzo duże wzmocnienie nie jest stosowane do początkowych poziomów sygnału, zanim sprzężenie zacznie działać. Typowa wartość dla dźwięku, który jest początkowo cichy, wynosi -90 dB. Domyślnie jest to 0.

delay

Ustaw opóźnienie w sekundach. Dźwięk wejściowy jest analizowany natychmiast, ale dźwięk jest opóźniany przed przekazaniem do regulatora głośności. Określenie opóźnienia w przybliżeniu równego czasom ataku/zaniku umożliwia efektywne działanie filtra w trybie predykcyjnym, a nie reaktywnym. Domyślnie jest to 0.

8.72.1 Examples

  • Twórz muzykę zarówno w cichych, jak i głośnych fragmentach, odpowiednich do słuchania w hałaśliwym otoczeniu:
    compand=.3|.3:1|1:-90/-60|-60/-40|-40/-30|-20/-20:6:0:-90:0.2
    

    Kolejny przykład dźwięku z częściami szeptu i eksplozji:

    compand=0|0:1|1:-90/-900|-70/-70|-30/-9|0/-3:6:0:0:0
    
  • Bramka szumów, gdy szum jest na niższym poziomie niż sygnał:
    compand=.1|.1:.2|.2:-900/-900|-50.1/-900|-50/-50:.01:0:-90:.1
    
  • Oto kolejna bramka szumów, tym razem dla sytuacji, gdy szum jest wyższy niż sygnał (co pod pewnymi względami przypomina squelch):
    compand=.1|.1:.1|.1:-45.1/-45.1|-45/-900|0/-900:.01:45:-90:.1
    
  • Kompresja 2:1 od -6dB:
    compand=points=-80/-80|-6/-6|0/-3.8|20/3.5
    
  • Kompresja 2:1 od -9dB:
    compand=points=-80/-80|-9/-9|0/-5.3|20/2.9
    
  • Kompresja 2:1 od -12dB:
    compand=points=-80/-80|-12/-12|0/-6.8|20/1.9
    
  • Kompresja 2:1 od -18dB:
    compand=points=-80/-80|-18/-18|0/-9.8|20/0.7
    
  • Kompresja 3:1 od -15dB:
    compand=points=-80/-80|-15/-15|0/-10.8|20/-5.2
    
  • Kompresor/Brama:
    compand=points=-80/-105|-62/-80|-15.4/-15.4|0/-12|20/-7.6
    
  • Ekspander:
    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
    
  • Twardy ogranicznik przy -6dB:
    compand=attacks=0:points=-80/-80|-6/-6|20/-6
    
  • Twardy ogranicznik przy -12dB:
    compand=attacks=0:points=-80/-80|-12/-12|20/-12
    
  • Bramka szumów twardych przy -35 dB:
    compand=attacks=0:points=-80/-115|-35.1/-80|-35/-35|20/20
    
  • Miękki ogranicznik:
    compand=attacks=0:points=-80/-80|-12.4/-12.4|-6/-8|0/-6.8|20/-2.8
    

8.73 compensationdelay

Linia opóźnienia kompensacji to opóźnienie oparte na jednostkach metrycznych, które skompensuje różne pozycje mikrofonów lub głośników.

Na przykład nagrałeś gitarę z dwoma mikrofonami umieszczonymi w różnych miejscach. Ponieważ przód fali dźwiękowej ma stałą prędkość w normalnych warunkach, fazowanie mikrofonów może się różnić i zależy od ich położenia i położenia. Najlepszy miks dźwięków można osiągnąć, gdy te mikrofony są w fazie (zsynchronizowane). Zwróć uwagę, że odległość ~30 cm między mikrofonami powoduje, że jeden mikrofon przechwytuje sygnał w przeciwfazie do drugiego mikrofonu. To sprawia, że ​​końcowy miks brzmi nastrojowo. Ten filtr pomaga rozwiązywać problemy związane z fazowaniem, dodając różne opóźnienia do każdej ścieżki mikrofonu i synchronizując je.

Najlepszy wynik można osiągnąć, gdy weźmiesz jeden utwór jako bazę i zsynchronizujesz z nim inne utwory jeden po drugim. Pamiętaj, że tolerancja synchronizacji/opóźnień zależy również od częstotliwości próbkowania. Wyższe częstotliwości próbkowania dają większą tolerancję.

Filtr akceptuje następujące parametry:

mm

Ustaw odległość w milimetrach. Jest to odległość kompensacji do precyzyjnego dostrajania. Wartość domyślna to 0.

cm

Ustaw odległość w cm. Jest to odległość kompensacji dla ustawienia odległości dokręcania. Wartość domyślna to 0.

m

Ustaw odległość w metrach. Jest to odległość kompensacyjna dla ustawienia twardej odległości. Wartość domyślna to 0.

dry

Ustaw suchą ilość. Ilość nieprzetworzonego (suchego) sygnału. Wartość domyślna to 0.

wet

Ustaw mokrą ilość. Ilość przetworzonego (mokrego) sygnału. Wartość domyślna to 1.

temp

Ustaw temperaturę w stopniach Celsjusza. To jest temperatura otoczenia. Wartość domyślna to 20.

8.73.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

8.74 crossfeed

Zastosuj filtr skrośny słuchawek.

Crossfeed to proces łączenia lewego i prawego kanału stereofonicznego nagrywania dźwięku. Stosowany jest głównie w celu zmniejszenia ekstremalnej separacji stereo niskich częstotliwości.

Celem jest wytworzenie większej ilości dźwięku przypominającego głośniki dla słuchacza.

Filtr akceptuje następujące opcje:

strength

Ustaw siłę posuwu poprzecznego. Wartość domyślna to 0,2. Dozwolony zakres to od 0 do 1. Ustawia wzmocnienie filtra niskiej półki dla bocznej części obrazu stereo. Wartość domyślna to -6dB. Maksymalna dozwolona wartość to -30db, gdy siła jest ustawiona na 1.

range

Ustaw szerokość sceny dźwiękowej. Wartość domyślna to 0,5. Dozwolony zakres to od 0 do 1. Ustawia częstotliwość odcięcia filtra niskiej półki. Domyślnie jest odcięty w pobliżu 1550 Hz. Przy zakresie ustawionym na 1 częstotliwość odcięcia jest ustawiona na 2100 Hz.

slope

Ustaw nachylenie krzywej filtra niskiej półki. Wartość domyślna to 0,5. Dozwolony zakres to od 0,01 do 1.

level_in

Ustaw wzmocnienie wejścia. Wartość domyślna to 0,9.

level_out

Ustaw wzmocnienie wyjściowe. Wartość domyślna to 1.

block_size

Ustaw rozmiar bloku używanego do odwrotnego przetwarzania IIR. Jeśli ta wartość jest ustawiona na wystarczająco wysoką wartość (większą niż długość odpowiedzi impulsowej skrócona, gdy osiągnie wartości bliskie zeru), filtrowanie stanie się fazą liniową, w przeciwnym razie, jeśli nie będzie wystarczająco duże, będzie wytwarzać nieprzyjemne artefakty.

Zauważ, że opóźnienie filtra będzie dokładnie tyle próbek, gdy zostanie ustawione na wartość niezerową.

8.74.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

8.75 crystalizer

Prosty algorytm wyostrzania szumów audio.

Ten filtr liniowo zwiększa różnice między każdą próbką audio.

Filtr akceptuje następujące opcje:

i

Ustawia intensywność efektu (domyślnie: 2.0). Musi mieścić się w zakresie od -10,0 do 0 (dźwięk niezmieniony) do 10,0 (efekt maksymalny). Aby odwrócić filtrowanie, użyj wartości ujemnej.

c

Włącz przycinanie. Domyślnie jest włączony.

8.75.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

8.76 dcshift

Zastosuj przesunięcie DC do dźwięku.

Może to być przydatne do usunięcia przesunięcia DC (spowodowanego być może przez problem sprzętowy w łańcuchu nagrywania) z dźwięku. Efektem przesunięcia DC jest zmniejszony zapas, a tym samym głośność. Filtr astats może być użyty do określenia, czy sygnał ma przesunięcie DC.

shift

Ustaw przesunięcie DC, dozwolony zakres to [-1, 1]. Wskazuje wielkość przesunięcia dźwięku.

limitergain

Opcjonalny. Powinien mieć wartość znacznie mniejszą niż 1 (np. 0,05 lub 0,02) i służy do zapobiegania obcinaniu.

8.77 deesser

Zastosuj usuwanie esencji do próbek audio.

i

Ustaw intensywność wyzwalania odsysania. Dozwolony zakres to od 0 do 1. Wartość domyślna to 0.

m

Ustaw ilość tłumienia na części wysokich tonów. Dozwolony zakres to od 0 do 1. Wartość domyślna to 0,5.

f

Ile oryginalnej zawartości częstotliwości zachować podczas usuwania esencji. Dozwolony zakres to od 0 do 1. Wartość domyślna to 0,5.

s

Ustaw tryb wyjściowy.

Przyjmuje następujące wartości:

i

Wejście bez zmian.

o

Przepustka odfiltrowana.

e

Podaj tylko egzamin.

Wartość domyślna to o.

8.78 dialoguenhance

Wzmocnij dialog w dźwięku stereo.

Ten filtr akceptuje wejście stereo i generuje wyjście kanałów surround (3.0). Nowo wyprodukowany przedni kanał centralny ma ulepszony dialog mowy, pierwotnie dostępny w obu kanałach stereo. Ten filtr wyprowadza kanały przedni lewy i przedni prawy takie same, jak dostępne na wejściu stereo.

Filtr akceptuje następujące opcje:

original

Ustaw oryginalny współczynnik centralny, aby zachować wyjście przedniego kanału centralnego. Dozwolony zakres to od 0 do 1. Wartość domyślna to 1.

enhance

Ustaw współczynnik wzmocnienia dialogów, aby umieścić wyjście przedniego kanału środkowego. Dozwolony zakres to od 0 do 3. Wartość domyślna to 1.

voice

Ustaw współczynnik wykrywania głosu. Dozwolony zakres to od 2 do 32. Wartość domyślna to 2.

8.78.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

8.79 drmeter

Zmierz zakres dynamiki dźwięku.

Wartości DR wynoszące 14 i wyższe występują w bardzo dynamicznym materiale. DR od 8 do 13 znajduje się w materiale przejściowym. A wszystko poniżej 8 ma bardzo słabą dynamikę i jest mocno skompresowane.

Filtr akceptuje następujące opcje:

length

Ustaw długość okna w sekundach, która służy do dzielenia dźwięku na segmenty o równej długości. Wartość domyślna to 3 sekundy.

8.80 dynaudnorm

Dynamiczny normalizator dźwięku.

Filtr ten stosuje pewną ilość wzmocnienia do wejściowego dźwięku w celu doprowadzenia jego szczytowej wielkości do poziomu docelowego (np. 0 dBFS). Jednak w przeciwieństwie do bardziej „prostych” algorytmów normalizacji, Dynamic Audio Normalizer *dynamicznie* ponownie dostosowuje współczynnik wzmocnienia do wejściowego dźwięku. Pozwala to na zastosowanie dodatkowego wzmocnienia do „cichych” sekcji dźwięku, unikając jednocześnie zniekształceń lub przycinania „głośnych” sekcji. Innymi słowy: Dynamic Audio Normalizer „wyrównuje” głośność sekcji cichych i głośnych, w tym sensie, że głośność każdej sekcji jest doprowadzona do tego samego poziomu docelowego. Należy jednak zauważyć, że Dynamic Audio Normalizer osiąga ten cel *bez* stosowania „kompresji zakresu dynamiki”. Zachowa 100% zakresu dynamiki *w* każdej sekcji pliku audio.

framelen, f

Ustaw długość ramki w milisekundach. W zakresie od 10 do 8000 milisekund. Wartość domyślna to 500 milisekund. Dynamiczny normalizator dźwięku przetwarza dźwięk wejściowy w małych fragmentach, zwanych ramkami. Jest to wymagane, ponieważ wielkość szczytowa nie ma znaczenia tylko dla pojedynczej wartości próbki. Zamiast tego musimy określić szczytową wielkość dla ciągłej sekwencji wartości próbki. Podczas gdy „standardowy” normalizator używałby po prostu szczytowej wielkości całego pliku, Dynamic Audio Normalizer określa szczytową wielkość indywidualnie dla każdej klatki. Długość ramki podawana jest w milisekundach. Domyślnie Dynamic Audio Normalizer używa klatki o długości 500 milisekund, co daje dobre wyniki w przypadku większości plików. Zwróć uwagę, że dokładna długość ramki w liczbie próbek zostanie określona automatycznie,

gausssize, g

Ustaw rozmiar okna filtru Gaussa. W zakresie od 3 do 301 musi być liczbą nieparzystą. Wartość domyślna to 31. Prawdopodobnie najważniejszym parametrem Dynamic Audio Normalizer jest window sizefiltru wygładzania Gaussa. Rozmiar okna filtra jest określony w ramkach, wyśrodkowany wokół bieżącej ramki. Dla uproszczenia musi to być liczba nieparzysta. W konsekwencji domyślna wartość 31 uwzględnia bieżącą ramkę, a także 15 poprzednich ramek i 15 kolejnych ramek. Użycie większego okna skutkuje silniejszym efektem wygładzania, a tym samym mniejszą zmiennością wzmocnienia, tj. wolniejszą adaptacją wzmocnienia. I odwrotnie, użycie mniejszego okna skutkuje słabszym efektem wygładzania, a tym samym większą zmiennością wzmocnienia, tj. szybszą adaptacją wzmocnienia. Innymi słowy, im bardziej zwiększysz tę wartość, tym bardziej Dynamiczny Normalizator dźwięku będzie zachowywał się jak „tradycyjny” filtr normalizacyjny. Wręcz przeciwnie, im bardziej zmniejszysz tę wartość, tym bardziej Dynamic Audio Normalizer będzie zachowywał się jak kompresor zakresu dynamiki.

peak, p

Ustaw docelową wartość szczytową. Określa najwyższy dopuszczalny poziom amplitudy dla znormalizowanego wejścia audio. Ten filtr będzie próbował zbliżyć się do docelowej wartości szczytowej tak blisko, jak to możliwe, ale jednocześnie zapewnia, że ​​znormalizowany sygnał nigdy nie przekroczy wartości szczytowej. Maksymalny lokalny współczynnik wzmocnienia ramki jest narzucany bezpośrednio przez docelową wielkość szczytową. Domyślna wartość to 0,95, a zatem pozostawia zapas 5%*. Nie zaleca się przekraczania tej wartości.

maxgain, m

Ustaw maksymalny współczynnik wzmocnienia. W zakresie od 1,0 do 100,0. Wartość domyślna to 10,0. Dynamiczny normalizator dźwięku określa maksymalny możliwy (lokalny) współczynnik wzmocnienia dla każdej ramki wejściowej, tj. maksymalny współczynnik wzmocnienia, który nie powoduje obcinania lub zniekształceń. Maksymalny współczynnik wzmocnienia jest określany przez próbkę o najwyższej wielkości w ramce. Jednak Dynamic Audio Normalizer dodatkowo ogranicza maksymalny współczynnik wzmocnienia ramki przez z góry określony (globalny) maksymalny współczynnik wzmocnienia. Odbywa się to w celu uniknięcia nadmiernych współczynników wzmocnienia w „cichych” lub prawie cichych klatkach. Domyślnie maksymalny współczynnik wzmocnienia wynosi 10,0. Dla większości wejść wartość domyślna powinna być wystarczająca i zwykle nie zaleca się zwiększania tej wartości. Chociaż w przypadku sygnału wejściowego o wyjątkowo niskim poziomie głośności może być konieczne dopuszczenie jeszcze wyższych współczynników wzmocnienia. Notatka, jednak, że Dynamic Audio Normalizer nie stosuje po prostu „twardego” progu (tj. wartości odcięcia powyżej progu). Zamiast tego zostanie zastosowana „sigmoidalna” funkcja progowa. W ten sposób współczynniki wzmocnienia będą płynnie zbliżać się do wartości progowej, ale nigdy nie przekroczą tej wartości.

targetrms, r

Ustaw docelowy RMS. W zakresie od 0,0 do 1,0. Domyślnie 0,0 - wyłączone. Domyślnie Dynamic Audio Normalizer wykonuje normalizację „szczytu”. Oznacza to, że maksymalny lokalny współczynnik wzmocnienia dla każdej ramki jest zdefiniowany (tylko) przez najwyższą próbkę ramki. W ten sposób próbki mogą być maksymalnie wzmocnione bez przekraczania maksymalnego poziomu sygnału, czyli bez przesterowania. Opcjonalnie jednak Dynamic Audio Normalizer może również uwzględniać średnią kwadratową klatki, w skrócie RMS. W elektrotechnice RMS jest powszechnie używany do określania mocy sygnału zmiennego w czasie. Dlatego uważa się, że RMS jest lepszym przybliżeniem „postrzeganej głośności” niż tylko patrzenie na szczytową wielkość sygnału. W związku z tym, dostosowując wszystkie ramki do stałej wartości RMS, jednolity "

coupling, n

Włącz łączenie kanałów. Domyślnie jest włączony. Domyślnie Dynamic Audio Normalizer wzmacnia wszystkie kanały o taką samą wartość. Oznacza to, że ten sam współczynnik wzmocnienia zostanie zastosowany do wszystkich kanałów, tj. maksymalny możliwy współczynnik wzmocnienia jest określany przez „najgłośniejszy” kanał. Jednak w niektórych nagraniach może się zdarzyć, że głośność różnych kanałów jest nierówna, np. jeden kanał może być „cichszy” niż drugi. W takim przypadku ta opcja może być wykorzystana do wyłączenia sprzęgania kanałów. W ten sposób współczynnik wzmocnienia będzie określany niezależnie dla każdego kanału, w zależności tylko od próbki o najwyższej wartości w danym kanale. Pozwala to na harmonizację głośności różnych kanałów.

correctdc, c

Włącz korekcję odchylenia DC. Domyślnie jest wyłączona. Sygnał audio (w dziedzinie czasu) to sekwencja wartości próbek. W Dynamic Audio Normalizer te wartości próbek są reprezentowane w zakresie od -1,0 do 1,0, niezależnie od oryginalnego formatu wejściowego. Normalnie sygnał audio lub „przebieg” powinien być wyśrodkowany wokół punktu zerowego. Oznacza to, że jeśli obliczymy średnią wartość wszystkich próbek w pliku lub w pojedynczej klatce, wynik powinien wynosić 0,0 lub co najmniej bardzo zbliżone do tej wartości. Jeśli jednak występuje znaczne odchylenie średniej wartości od 0,0, w kierunku dodatnim lub ujemnym, określa się to jako przesunięcie DC lub przesunięcie DC. Ponieważ odchylenie DC jest wyraźnie niepożądane, Dynamic Audio Normalizer zapewnia opcjonalną korekcję odchylenia DC. Z włączoną korekcją prądu stałego, Dynamic Audio Normalizer określi średnią wartość lub przesunięcie „korekty DC” każdej ramki wejściowej i odejmie tę wartość od wszystkich wartości próbek ramki, co zapewnia, że ​​próbki te są ponownie wyśrodkowane wokół wartości 0,0. Ponadto, aby uniknąć „luk” na granicach ramki, wartości przesunięcia korekcji DC będą interpolowane płynnie między sąsiednimi ramkami.

altboundary, b

Włącz alternatywny tryb granic. Domyślnie jest wyłączona. Dynamiczny normalizator dźwięku uwzględnia pewne otoczenie wokół każdej klatki. Dotyczy to zarówno poprzednich ramek, jak i kolejnych ramek. Jednak dla ramek „granicznych”, znajdujących się na samym początku i na samym końcu pliku audio, nie wszystkie sąsiednie ramki są dostępne. W szczególności, dla pierwszych kilku klatek w pliku audio, poprzednie klatki nie są znane. I podobnie dla kilku ostatnich klatek w pliku audio, kolejne klatki nie są znane. Powstaje zatem pytanie, jakie współczynniki wzmocnienia należy przyjąć dla brakujących ramek w obszarze „granicznym”. Dynamiczny normalizator dźwięku implementuje dwa tryby radzenia sobie z tą sytuacją. Domyślny tryb graniczny zakłada współczynnik wzmocnienia równy dokładnie 1,0 dla brakujących klatek,

compress, s

Ustaw współczynnik kompresji. W zakresie od 0,0 do 30,0. Wartość domyślna to 0,0. Domyślnie Dynamic Audio Normalizer nie stosuje „tradycyjnej” kompresji. Oznacza to, że szczyty sygnału nie zostaną usunięte, a zatem w każdym lokalnym sąsiedztwie zostanie zachowany pełny zakres dynamiki. Jednak w niektórych przypadkach może być pożądane połączenie algorytmu normalizacji Dynamic Audio Normalizer z bardziej „tradycyjną” kompresją. W tym celu Dynamic Audio Normalizer zapewnia opcjonalną funkcję kompresji (progowania). Jeśli (i tylko jeśli) funkcja kompresji jest włączona, wszystkie klatki wejściowe zostaną przetworzone przez funkcję progową miękkiego kolana przed właściwym procesem normalizacji. Mówiąc prościej, funkcja progowania usuwa wszystkie próbki, których wielkość przekracza określoną wartość progową. Jednakże, Dynamic Audio Normalizer nie stosuje po prostu stałej wartości progowej. Zamiast tego wartość progowa zostanie dostosowana dla każdej pojedynczej klatki. Generalnie mniejsze parametry skutkują silniejszą kompresją i odwrotnie. Wartości poniżej 3.0 nie są zalecane, ponieważ mogą pojawić się słyszalne zniekształcenia.

threshold, t

Ustaw docelową wartość progową. Określa najniższy dopuszczalny poziom wielkości sygnału wejściowego audio, który zostanie znormalizowany. Jeśli głośność klatki wejściowej przekroczy tę wartość, ramka zostanie znormalizowana. W przeciwnym razie ramka może w ogóle nie zostać znormalizowana. Domyślna wartość to 0, co oznacza, że ​​wszystkie ramki wejściowe zostaną znormalizowane. Ta opcja jest szczególnie przydatna, gdy szum cyfrowy nie ma być wzmacniany.

channels, h

Określ, które kanały filtrować, domyślnie filtrowane są wszystkie dostępne kanały.

overlap, o

Określ nakładanie się ramek. Jeśli jest ustawiony na 0 (domyślnie), nie jest wykonywane nakładanie się ramek. Użycie wartości >0 i <1 spowoduje mniej konserwatywne dostosowanie wzmocnienia, na przykład gdy opcja framelen jest ustawiona na mniejszą wartość, jeśli wartość opcji framelen jest skompensowana za niezerowe nakładanie się, to regulacja wzmocnienia będzie płynniejsza w czasie w porównaniu z przypadkiem zerowego nakładania się.

8.80.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

8.81 earwax

Ułatw sobie słuchanie dźwięku na słuchawkach.

Ten filtr dodaje „wskazówki” do dźwięku stereo 44,1 kHz (tj. w formacie audio CD), dzięki czemu podczas słuchania na słuchawkach obraz stereo przesuwa się z wnętrza głowy (standard dla słuchawek) na zewnątrz i przed słuchacza (standard dla głośników ).

Przeniesiony z SoX.

8.82 equalizer

Zastosuj dwubiegunowy filtr korekcji szczytowej (EQ). Dzięki temu filtrowi poziom sygnału na wybranej częstotliwości i wokół niej może zostać zwiększony lub zmniejszony, podczas gdy (w przeciwieństwie do filtrów pasmowoprzepustowych i pasmowych) poziom sygnału na wszystkich innych częstotliwościach pozostaje niezmieniony.

Aby wytworzyć złożone krzywe korekcji, filtr ten można podać kilka razy, każdy z inną częstotliwością środkową.

Filtr akceptuje następujące opcje:

frequency, f

Ustaw centralną częstotliwość filtra w Hz.

width_type, t

Ustaw metodę, aby określić szerokość pasma filtra.

h

Hz

q

Współczynnik Q

o

oktawa

s

nachylenie

k

kHz

width, w

Określ szerokość pasma filtru w jednostkach typ_szerokości.

gain, g

Ustaw wymagane wzmocnienie lub tłumienie w dB. Uważaj na przycinanie podczas korzystania z dodatniego wzmocnienia.

mix, m

Ile użyć przefiltrowanego sygnału na wyjściu. Wartość domyślna to 1. Zakres wynosi od 0 do 1.

channels, c

Określ, które kanały do ​​filtrowania, domyślnie wszystkie dostępne są filtrowane.

normalize, n

Normalizuj współczynniki biquad, domyślnie jest wyłączone. Włączenie go znormalizuje odpowiedź amplitudy przy DC do 0dB.

transform, a

Ustaw typ transformacji filtru IIR.

di
dii
tdi
tdii
latt
svf
zdf
precision, r

Ustaw precyzję filtrowania.

auto

Wybierz automatyczny format sampli w zależności od filtrów surround.

s16

Zawsze używaj podpisu 16-bitowego.

s32

Zawsze używaj podpisu 32-bitowego.

f32

Zawsze używaj 32-bitowego zmiennoprzecinkowego.

f64

Zawsze używaj zmiennoprzecinkowej 64-bitowej.

block_size, b

Ustaw rozmiar bloku używanego do odwrotnego przetwarzania IIR. Jeśli ta wartość jest ustawiona na wystarczająco wysoką wartość (większą niż długość odpowiedzi impulsowej skrócona, gdy osiągnie wartości bliskie zeru), filtrowanie stanie się fazą liniową, w przeciwnym razie, jeśli nie będzie wystarczająco duże, będzie wytwarzać nieprzyjemne artefakty.

Zauważ, że opóźnienie filtra będzie dokładnie tyle próbek, gdy zostanie ustawione na wartość niezerową.

8.82.1 Examples

  • Tłumienie 10 dB przy 1000 Hz, przy szerokości pasma 200 Hz:
    equalizer=f=1000:t=h:width=200:g=-10
    
  • Zastosuj wzmocnienie 2 dB przy 1000 Hz z Q 1 i stłumij 5 dB przy 100 Hz z Q 2:
    equalizer=f=1000:t=q:w=1:g=2,equalizer=f=100:t=q:w=2:g=-5
    

8.82.2 Commands

Ten filtr obsługuje następujące polecenia:

frequency, f

Zmień częstotliwość korektora. Składnia polecenia to: „ frequency

width_type, t

Zmień korektor width_type. Składnia polecenia to: „ width_type

width, w

Zmień szerokość korektora. Składnia polecenia to: „ width

gain, g

Zmień wzmocnienie korektora. Składnia polecenia to: „ gain

mix, m

Zmień mikser korektora. Składnia polecenia to: „ mix

8.83 extrastereo

Liniowo zwiększa różnicę między lewym i prawym kanałem, co dodaje pewien rodzaj efektu „na żywo” do odtwarzania.

Filtr akceptuje następujące opcje:

m

Ustawia współczynnik różnicy (domyślnie: 2,5). 0.0 oznacza dźwięk mono (średnia z obu kanałów), przy dźwięku 1.0 pozostanie niezmieniony, przy -1,0 lewy i prawy kanał zostaną zamienione.

c

Włącz przycinanie. Domyślnie jest włączony.

8.83.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

8.84 firequalizer

Zastosuj wyrównywanie FIR przy użyciu dowolnej odpowiedzi częstotliwościowej.

Filtr akceptuje następującą opcję:

gain

Ustaw równanie krzywej wzmocnienia (w dB). Wyrażenie może zawierać zmienne:

f

oceniana częstotliwość

sr

próbna stawka

ch

numer kanału, ustawiony na 0, gdy ocena wielokanałowa jest wyłączona

chid

identyfikator kanału, patrz libavutil/channel_layout.h, ustawiony na pierwszy identyfikator kanału, gdy ocena wielokanałowa jest wyłączona

chs

Liczba kanałów

chlayout

channel_layout, zobacz libavutil/channel_layout.h

i funkcje:

gain_interpolate(f)

interpolować wzmocnienie na częstotliwości f na podstawie gain_entry

cubic_interpolate(f)

tak samo jak gain_interpolate, ale płynniej

Ta opcja jest również dostępna jako polecenie. Wartość domyślna to gain_interpolate(f).

gain_entry

Ustaw wejście wzmocnienia dla funkcji gain_interpolate. Wyrażenie może zawierać funkcje:

entry(f, g)

zapisz wejście wzmocnienia przy częstotliwości f o wartości g

Ta opcja jest również dostępna jako polecenie.

delay

Ustaw opóźnienie filtra w sekundach. Wyższa wartość oznacza większą dokładność. Wartość domyślna to 0.01.

accuracy

Ustaw dokładność filtra w Hz. Niższa wartość oznacza dokładniejsze. Wartość domyślna to 5.

wfunc

Ustaw funkcję okna. Dopuszczalne wartości to:

rectangular

prostokątne okno, przydatne, gdy krzywa wzmocnienia jest już gładka

hann

okno Hanna (domyślne)

hamming

walić okno

blackman

okno czarnoskórego

nuttall3

3-składnikowa ciągła 1-sza pochodna okno nuttala

mnuttall3

minimum 3-okresowe nieciągłe okno orzechowe

nuttall

4-składnikowa ciągła 1-sza pochodna okno nuttala

bnuttall

minimum 4-okresowe nieciągłe okienko nuttall (blackman-nuttall)

bharris

okno blackman-harris

tukey

okno Tukey

fixed

Jeśli włączone, użyj stałej liczby próbek audio. Poprawia to szybkość filtrowania z dużym opóźnieniem. Domyślnie jest wyłączone.

multi

Włącz wielokanałową ocenę wzmocnienia. Domyślnie jest wyłączone.

zero_phase

Włącz tryb fazy zerowej, odejmując znacznik czasu, aby skompensować opóźnienie. Domyślnie jest wyłączone.

scale

Ustaw skalę używaną przez wzmocnienie. Dopuszczalne wartości to:

linlin

częstotliwość liniowa, wzmocnienie liniowe

linlog

częstotliwość liniowa, wzmocnienie logarytmiczne (w dB) (domyślnie)

loglin

częstotliwość logarytmiczna (w skali oktawowej, gdzie 20 Hz to 0), wzmocnienie liniowe

loglog

częstotliwość logarytmiczna, wzmocnienie logarytmiczne

dumpfile

Ustaw plik do zrzucenia, odpowiedni do gnuplot.

dumpscale

Ustaw skalę pliku zrzutu. Dopuszczalne wartości są takie same jak w przypadku opcji skalowania. Domyślnie jest linlog.

fft2

Włącz 2-kanałową konwolucję przy użyciu złożonej FFT. To znacznie poprawia prędkość. Domyślnie jest wyłączone.

min_phase

Włącz minimalną fazową odpowiedź impulsową. Domyślnie jest wyłączone.

8.84.1 Examples

  • dolnoprzepustowy przy 1000 Hz:
    firequalizer=gain='if(lt(f,1000), 0, -INF)'
    
  • dolnoprzepustowy przy 1000 Hz z gain_entry:
    firequalizer=gain_entry='entry(1000,0); entry(1001, -INF)'
    
  • niestandardowe wyrównanie:
    firequalizer=gain_entry='entry(100,0); entry(400, -4); entry(1000, -6); entry(2000, 0)'
    
  • większe opóźnienie z zerową fazą w celu skompensowania opóźnienia:
    firequalizer=delay=0.1:fixed=on:zero_phase=on
    
  • dolnoprzepustowy na lewym kanale, górnoprzepustowy na prawym kanale:
    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

Zastosuj do dźwięku efekt wyginania.

Filtr akceptuje następujące opcje:

delay

Ustaw opóźnienie bazowe w milisekundach. Zakres od 0 do 30. Wartość domyślna to 0.

depth

Ustaw dodatkowe opóźnienie przemiatania w milisekundach. Zakres od 0 do 10. Wartość domyślna to 2.

regen

Ustaw procentową regenerację (opóźniony sygnał zwrotny). Zakres od -95 do 95. Wartość domyślna to 0.

width

Ustaw procent opóźnionego sygnału zmieszanego z oryginałem. Zakres od 0 do 100. Wartość domyślna to 71.

speed

Ustaw przemiatania na sekundę (Hz). Zakres od 0,1 do 10. Wartość domyślna to 0,5.

shape

Ustaw kształt fali skośnej, może być triangularlub sinusoidal. Wartość domyślna to sinusoidal.

phase

Ustaw procentowe przesunięcie fali przemiatanej dla wielu kanałów. Zakres od 0 do 100. Wartość domyślna to 25.

interp

Ustaw interpolację linii opóźniającej linearlub quadratic. Wartość domyślna to linear.

8.86 haas

Zastosuj efekt Haas do dźwięku.

Zauważ, że najbardziej sensowne jest zastosowanie do sygnałów mono. Dzięki temu filtrowi zastosowanemu do sygnałów mono nadaje on pewną kierunkowość i rozciąga swój obraz stereo.

Filtr akceptuje następujące opcje:

level_in

Ustaw poziom wejściowy. Domyślnie jest to 1, lub 0dB

level_out

Ustaw poziom wyjściowy. Domyślnie jest to 1lub 0dB.

side_gain

Ustaw wzmocnienie zastosowane do bocznej części sygnału. Domyślnie jest to 1.

middle_source

Ustaw rodzaj środkowego źródła. Może być jednym z następujących:

'left'

Wybierz lewy kanał.

'right'

Wybierz właściwy kanał.

'mid'

Wybierz środkową część sygnału obrazu stereo.

'side'

Wybierz sygnał części bocznej obrazu stereo.

middle_phase

Zmień fazę środkową. Domyślnie jest wyłączona.

left_delay

Ustaw opóźnienie lewego kanału. Domyślnie są to 2.05milisekundy.

left_balance

Ustaw balans lewego kanału. Domyślnie jest to -1.

left_gain

Ustaw wzmocnienie lewego kanału. Domyślnie jest to 1.

left_phase

Zmień lewą fazę. Domyślnie jest wyłączona.

right_delay

Ustaw opóźnienie prawego kanału. Domyślnie jest to 2.12milisekundy.

right_balance

Ustaw balans prawego kanału. Domyślnie jest to 1.

right_gain

Ustaw wzmocnienie prawego kanału. Domyślnie jest to 1.

right_phase

Zmień właściwą fazę. Domyślnie jest włączony.

8.87 hdcd

Dekoduje dane cyfrowe zgodne ze standardem High Definition (HDCD). 16-bitowy strumień PCM z osadzonymi kodami HDCD jest rozszerzany do 20-bitowego strumienia PCM.

Filtr obsługuje funkcje Peak Extend i Low-level Gain Adjustment funkcji HDCD i wykrywa flagę Transient Filter.

ffmpeg -i HDCD16.flac -af hdcd OUT24.flac

Używając filtra z wav, zauważ, że domyślne kodowanie dla wav to 16-bitowe, więc wynikowy strumień 20-bitowy zostanie obcięty z powrotem do 16-bitowego. Użyj czegoś takiego jak -acodec pcm_s24lepo filtrze, aby uzyskać 24-bitowe wyjście PCM.

ffmpeg -i HDCD16.wav -af hdcd OUT16.wav
ffmpeg -i HDCD16.wav -af hdcd -c:a pcm_s24le OUT24.wav

Filtr akceptuje następujące opcje:

disable_autoconvert

Wyłącz automatyczną konwersję formatu lub ponowne próbkowanie na wykresie filtra.

process_stereo

Przetwarzaj razem kanały stereo. Jeśli target_gain nie pasuje między kanałami, uznaj to za nieprawidłowe i użyj ostatniego poprawnego target_gain.

cdt_ms

Ustaw okres czasu wykrywania kodu w ms.

force_pe

Zawsze rozszerzaj piki powyżej -3dBFS, nawet jeśli PE nie jest sygnalizowany.

analyze_mode

Zastąp dźwięk solidnym tonem i dostosuj amplitudę, aby zasygnalizować określony aspekt procesu dekodowania. Plik wyjściowy można załadować do edytora audio wraz z oryginałem, aby ułatwić analizę.

analyze_mode=pe:force_pe=truemoże być użyty do obejrzenia wszystkich próbek powyżej poziomu PE.

Tryby to:

'0, off'

Wyłączone

'1, lle'

Wzmocnij poziom dopasowania dla każdej próbki

'2, pe'

Próbki, w których występuje rozszerzenie piku

'3, cdt'

Próbki, w których aktywny jest timer wykrywania kodu

'4, tgm'

Próbki, w których wzmocnienie docelowe nie pasuje między kanałami

8.88 headphone

Zastosuj funkcje przenoszenia związane z głową (HRTF), aby stworzyć wirtualne głośniki wokół użytkownika do binauralnego słuchania przez słuchawki. HRIR są dostarczane przez dodatkowe strumienie, dla każdego kanału potrzebny jest jeden stereofoniczny strumień wejściowy.

Filtr akceptuje następujące opcje:

map

Ustaw mapowanie strumieni wejściowych do splotu. Argumentem jest lista nazw kanałów oddzielonych '|' w kolejności, ponieważ są one podane jako dodatkowe dane wejściowe strumienia dla filtra. Określa to również liczbę strumieni wejściowych. Liczba strumieni wejściowych nie może być mniejsza niż liczba kanałów w pierwszym strumieniu plus jeden.

gain

Ustaw wzmocnienie zastosowane do dźwięku. Wartość jest w dB. Wartość domyślna to 0.

type

Ustaw typ przetwarzania. Może być timelub freq. timeprzetwarza dźwięk w dziedzinie czasu, który jest wolny. freqprzetwarza dźwięk w dziedzinie częstotliwości, która jest szybka. Wartość domyślna to freq.

lfe

Ustaw niestandardowe wzmocnienie dla kanałów LFE. Wartość jest w dB. Wartość domyślna to 0.

size

Ustaw rozmiar ramki w liczbie próbek, które będą przetwarzane jednocześnie. Wartość domyślna to 1024. Dozwolony zakres to od 1024 do 96000.

hrir

Ustaw format strumienia hrir. Wartość domyślna to stereo. Wartość alternatywna to multich. Jeśli wartość jest ustawiona na stereo, liczba dodatkowych strumieni powinna być większa lub równa liczbie kanałów wejściowych w pierwszym strumieniu wejściowym. Również każdy dodatkowy strumień powinien mieć stereofoniczną liczbę kanałów. Jeśli wartość jest ustawiona na multich, liczba dodatkowych strumieni powinna wynosić dokładnie jeden. Również liczba kanałów wejściowych strumienia dodatkowego powinna być równa lub większa od dwukrotności liczby kanałów pierwszego strumienia wejściowego.

8.88.1 Examples

  • Pełny przykład użycia plików wav jako współczynników z filtrami amovie dla downmixu 7.1, każdy filtr amovie używa pliku stereo ze współczynnikami IR jako dane wejściowe. Pliki podają współczynniki dla każdej pozycji wirtualnego głośnika:
    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
    
  • Pełny przykład użycia plików wav jako współczynników z filtrami amovie dla downmixu 7.1, ale teraz w formacie. 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

Zastosuj filtr górnoprzepustowy o częstotliwości punktowej 3dB. Filtr może być jednobiegunowy lub dwubiegunowy (domyślnie). Filtr rozwija się przy 6dB na biegun na oktawę (20dB na biegun na dekadę).

Filtr akceptuje następujące opcje:

frequency, f

Ustaw częstotliwość w Hz. Wartość domyślna to 3000.

poles, p

Ustaw liczbę biegunów. Wartość domyślna to 2.

width_type, t

Ustaw metodę, aby określić szerokość pasma filtra.

h

Hz

q

Współczynnik Q

o

oktawa

s

nachylenie

k

kHz

width, w

Określ szerokość pasma filtru w jednostkach typ_szerokości. Dotyczy tylko filtra dwubiegunowego. Wartość domyślna to 0,707q i daje odpowiedź Butterwortha.

mix, m

Ile użyć przefiltrowanego sygnału na wyjściu. Wartość domyślna to 1. Zakres wynosi od 0 do 1.

channels, c

Określ, które kanały do ​​filtrowania, domyślnie wszystkie dostępne są filtrowane.

normalize, n

Normalizuj współczynniki biquad, domyślnie jest wyłączone. Włączenie go znormalizuje odpowiedź amplitudy przy DC do 0dB.

transform, a

Ustaw typ transformacji filtru IIR.

di
dii
tdi
tdii
latt
svf
zdf
precision, r

Ustaw precyzję filtrowania.

auto

Wybierz automatyczny format sampli w zależności od filtrów surround.

s16

Zawsze używaj podpisu 16-bitowego.

s32

Zawsze używaj podpisu 32-bitowego.

f32

Zawsze używaj 32-bitowego zmiennoprzecinkowego.

f64

Zawsze używaj zmiennoprzecinkowej 64-bitowej.

block_size, b

Ustaw rozmiar bloku używanego do odwrotnego przetwarzania IIR. Jeśli ta wartość jest ustawiona na wystarczająco wysoką wartość (większą niż długość odpowiedzi impulsowej skrócona, gdy osiągnie wartości bliskie zeru), filtrowanie stanie się fazą liniową, w przeciwnym razie, jeśli nie będzie wystarczająco duże, będzie wytwarzać nieprzyjemne artefakty.

Zauważ, że opóźnienie filtra będzie dokładnie tyle próbek, gdy zostanie ustawione na wartość niezerową.

8.89.1 Commands

Ten filtr obsługuje następujące polecenia:

frequency, f

Zmień częstotliwość górnoprzepustową. Składnia polecenia to: „ frequency

width_type, t

Zmień górnoprzepustowy width_type. Składnia polecenia to: „ width_type

width, w

Zmień szerokość górnoprzepustową. Składnia polecenia to: „ width

mix, m

Zmień miks górnoprzepustowy. Składnia polecenia to: „ mix

8.90 join

Połącz wiele strumieni wejściowych w jeden wielokanałowy strumień.

Przyjmuje następujące parametry:

inputs

Liczba strumieni wejściowych. Wartość domyślna to 2.

channel_layout

Żądany układ kanału wyjściowego. Domyślnie jest to stereo.

map

Mapuj kanały od wejść do wyjść. Argumentem jest rozdzielona '|' lista odwzorowań, każde w formie. jest indeksem liczonym od 0 strumienia wejściowego. może być nazwą kanału wejściowego (np. FL dla przedniego lewego) lub jego indeksem w określonym strumieniu wejściowym. to nazwa kanału wyjściowego. input_idx.in_channel-out_channelinput_idxin_channelout_channel

Filtr spróbuje odgadnąć mapowania, jeśli nie zostaną one wyraźnie określone. Robi to, najpierw próbując znaleźć nieużywany pasujący kanał wejściowy, a jeśli to się nie powiedzie, wybiera pierwszy nieużywany kanał wejściowy.

Dołącz 3 wejścia (z odpowiednio ustawionymi układami kanałów):

ffmpeg -i INPUT1 -i INPUT2 -i INPUT3 -filter_complex join=inputs=3 OUTPUT

Zbuduj wyjście 5.1 z 6 strumieni jednokanałowych:

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

Załaduj wtyczkę LADSPA (Linux Audio Developer's Simple Plugin API).

Aby umożliwić kompilację tego filtra musisz skonfigurować FFmpeg z --enable-ladspa.

file, f

Określa nazwę biblioteki wtyczek LADSPA do załadowania. Jeśli zmienna środowiskowa LADSPA_PATHjest zdefiniowana, wtyczka LADSPA jest przeszukiwana w każdym z katalogów określonych przez listę oddzieloną dwukropkami w LADSPA_PATH, w przeciwnym razie w standardowych ścieżkach LADSPA, które są w następującej kolejności:HOME/.ladspa/lib/,/usr/local/lib/ladspa/, /usr/lib/ladspa/.

plugin, p

Określa wtyczkę w bibliotece. Niektóre biblioteki zawierają tylko jedną wtyczkę, ale inne zawierają ich wiele. Jeśli nie jest ustawione, filtr wyświetli listę wszystkich dostępnych wtyczek w określonej bibliotece.

controls, c

Ustaw „|” oddzielona lista kontrolek, które mają zero lub więcej wartości zmiennoprzecinkowych, które określają zachowanie załadowanej wtyczki (na przykład opóźnienie, próg lub wzmocnienie). Kontrolki należy zdefiniować przy użyciu następującej składni: c0= value0|c1= value1|c2= value2|..., gdzie valueijest wartością ustawioną na i-tej kontrolce. Alternatywnie można je również zdefiniować za pomocą następującej składni: value0| value1| value2|..., gdzie valueijest wartością ustawioną na i-tej kontrolce. Jeślicontrolsjest ustawiona na help, drukowane są wszystkie dostępne kontrolki i ich prawidłowe zakresy.

sample_rate, s

Określ częstotliwość próbkowania, domyślnie 44100. Używana tylko wtedy, gdy wtyczka ma zero wejść.

nb_samples, n

Ustaw liczbę próbek na kanał na każdą klatkę wyjściową, domyślnie 1024. Używany tylko wtedy, gdy wtyczka ma zero wejść.

duration, d

Ustaw minimalny czas trwania źródła dźwięku. Zobacz (ffmpeg-utils) sekcję Czas trwania w podręczniku ffmpeg-utils(1), aby poznać akceptowaną składnię. Zauważ, że wynikowy czas trwania może być dłuższy niż określony, ponieważ wygenerowany dźwięk jest zawsze cięty na końcu pełnej klatki. Jeśli nie zostanie określony lub podany czas trwania jest ujemny, dźwięk ma być generowany na zawsze. Używany tylko wtedy, gdy wtyczka ma zero wejść.

latency, l

Włącz kompensację opóźnień, domyślnie jest wyłączona. Używane tylko wtedy, gdy wtyczka ma wejścia.

8.91.1 Examples

  • Lista wszystkich dostępnych wtyczek w bibliotece amp (przykładowa wtyczka LADSPA):
    ladspa=file=amp
    
  • Wymień wszystkie dostępne kontrolki i ich prawidłowe zakresy dla vcf_notch wtyczki z VCFbiblioteki:
    ladspa=f=vcf:p=vcf_notch:c=help
    
  • Symuluj sprzęt audio niskiej jakości za pomocą Computer Music Toolkitbiblioteki wtyczek (CMT):
    ladspa=file=cmt:plugin=lofi:controls=c0=22|c1=12|c2=12
    
  • Dodaj pogłos do dźwięku za pomocą wtyczek TAP (wtyczki Tom's Audio Processing):
    ladspa=file=tap_reverb:tap_reverb
    
  • Generuj biały szum o amplitudzie 0,2:
    ladspa=file=cmt:noise_source_white:c=c0=.2
    
  • Generuj kliknięcia 20 bpm za pomocą wtyczki C* Click - Metronomez C* Audio Plugin Suitebiblioteki (CAPS):
    ladspa=file=caps:Click:c=c1=20'
    
  • Zastosuj C* Eq10X2 - Stereo 10-band equaliserefekt:
    ladspa=caps:Eq10X2:c=c0=-48|c9=-24|c3=12|c4=2
    
  • Zwiększ głośność o 20dB za pomocą szybkiego lookahead limitera z SWH Pluginskolekcji Steve'a Harrisa:
    ladspa=fast_lookahead_limiter_1913:fastLookaheadLimiter:20|0|2
    
  • SWH PluginsTłumienie niskich częstotliwości za pomocą Multiband EQ z kolekcji Steve'a Harrisa :
    ladspa=mbeq_1197:mbeq:-24|-24|-24|0|0|0|0|0|0|0|0|0|0|0|0
    
  • Zmniejsz obraz stereo za pomocą Narrowerbiblioteki C* Audio Plugin Suite (CAPS):
    ladspa=caps:Narrower
    
  • Kolejny biały szum, teraz używający C* Audio Plugin Suitebiblioteki (CAPS):
    ladspa=caps:White:.2
    
  • Trochę szumu fraktalnego przy użyciu C* Audio Plugin Suitebiblioteki (CAPS):
    ladspa=caps:Fractal:c=c1=1
    
  • Dynamiczna normalizacja głośności za pomocą VLevelwtyczki:
    ladspa=vlevel-ladspa:vlevel_mono
    

8.91.2 Commands

Ten filtr obsługuje następujące polecenia:

cN

Zmodyfikuj N-tą wartość kontrolną.

Jeśli określona wartość jest nieprawidłowa, jest ignorowana i zachowywana jest poprzednia.

8.92 loudnorm

Normalizacja głośności EBU R128. Zawiera zarówno dynamiczne, jak i liniowe tryby normalizacji. Obsługa zarówno trybów jednoprzebiegowych (transmisje na żywo, pliki), jak i dwuprzebiegowych (pliki). Ten algorytm może celować w IL, LRA i maksymalny prawdziwy pik. W trybie dynamicznym, aby dokładnie wykryć prawdziwe szczyty, strumień audio zostanie upsamplowany do 192 kHz. Użyj -aropcji lub aresamplefiltru, aby jawnie ustawić wyjściową częstotliwość próbkowania.

Filtr akceptuje następujące opcje:

I, i

Ustaw zintegrowany docelowy poziom głośności. Zakres to -70,0 - -5,0. Wartość domyślna to -24,0.

LRA, lra

Ustaw docelowy zakres głośności. Zakres wynosi 1,0 - 50,0. Wartość domyślna to 7,0.

TP, tp

Ustaw maksymalny prawdziwy szczyt. Zakres to -9,0 - +0,0. Wartość domyślna to -2,0.

measured_I, measured_i

Zmierzona IL pliku wejściowego. Zakres to -99,0 - +0,0.

measured_LRA, measured_lra

Zmierzone LRA pliku wejściowego. Zakres wynosi 0,0 - 99,0.

measured_TP, measured_tp

Zmierzony prawdziwy szczyt pliku wejściowego. Zakres to -99,0 - +99,0.

measured_thresh

Zmierzony próg pliku wejściowego. Zakres to -99,0 - +0,0.

offset

Ustaw wzmocnienie przesunięcia. Wzmocnienie jest stosowane przed limiterem true-peak. Zakres to -99,0 - +99,0. Wartość domyślna to +0.0.

linear

Normalizuj, skalując liniowo dźwięk źródłowy. measured_I, measured_LRA, measured_TPi measured_threshmuszą być określone. Docelowy LRA nie powinien być niższy niż źródłowy LRA, a zmiana głośności całkowanej nie powinna skutkować prawdziwym szczytem, ​​który przekracza docelową wartość TP. Jeśli którykolwiek z tych warunków nie zostanie spełniony, tryb normalizacji zostanie przywrócony do dynamic. Dostępne opcje to truelub false. Wartość domyślna to true.

dual_mono

Traktuj pliki wejściowe mono jako „dual-mono”. Jeśli plik mono jest przeznaczony do odtwarzania w systemie stereo, jego pomiar EBU R128 będzie percepcyjnie nieprawidłowy. Jeśli jest ustawiona na true, ta opcja zrekompensuje ten efekt. Ta opcja nie ma wpływu na wielokanałowe pliki wejściowe. Opcje są prawdziwe lub fałszywe. Wartość domyślna to fałsz.

print_format

Ustaw format wydruku statystyk. Dostępne opcje to podsumowanie, json lub brak. Wartość domyślna to brak.

8.93 lowpass

Zastosuj filtr dolnoprzepustowy o częstotliwości punktowej 3dB. Filtr może być jednobiegunowy lub dwubiegunowy (domyślnie). Filtr rozwija się przy 6dB na biegun na oktawę (20dB na biegun na dekadę).

Filtr akceptuje następujące opcje:

frequency, f

Ustaw częstotliwość w Hz. Wartość domyślna to 500.

poles, p

Ustaw liczbę biegunów. Wartość domyślna to 2.

width_type, t

Ustaw metodę, aby określić szerokość pasma filtra.

h

Hz

q

Współczynnik Q

o

oktawa

s

nachylenie

k

kHz

width, w

Określ szerokość pasma filtru w jednostkach typ_szerokości. Dotyczy tylko filtra dwubiegunowego. Wartość domyślna to 0,707q i daje odpowiedź Butterwortha.

mix, m

Ile użyć przefiltrowanego sygnału na wyjściu. Wartość domyślna to 1. Zakres wynosi od 0 do 1.

channels, c

Określ, które kanały do ​​filtrowania, domyślnie wszystkie dostępne są filtrowane.

normalize, n

Normalizuj współczynniki biquad, domyślnie jest wyłączone. Włączenie go znormalizuje odpowiedź amplitudy przy DC do 0dB.

transform, a

Ustaw typ transformacji filtru IIR.

di
dii
tdi
tdii
latt
svf
zdf
precision, r

Ustaw precyzję filtrowania.

auto

Wybierz automatyczny format sampli w zależności od filtrów surround.

s16

Zawsze używaj podpisu 16-bitowego.

s32

Zawsze używaj podpisu 32-bitowego.

f32

Zawsze używaj 32-bitowego zmiennoprzecinkowego.

f64

Zawsze używaj zmiennoprzecinkowej 64-bitowej.

block_size, b

Ustaw rozmiar bloku używanego do odwrotnego przetwarzania IIR. Jeśli ta wartość jest ustawiona na wystarczająco wysoką wartość (większą niż długość odpowiedzi impulsowej skrócona, gdy osiągnie wartości bliskie zeru), filtrowanie stanie się fazą liniową, w przeciwnym razie, jeśli nie będzie wystarczająco duże, będzie wytwarzać nieprzyjemne artefakty.

Zauważ, że opóźnienie filtra będzie dokładnie tyle próbek, gdy zostanie ustawione na wartość niezerową.

8.93.1 Examples

  • Dolnoprzepustowy tylko kanał LFE, jeśli LFE nie jest obecny, nic nie robi:
    lowpass=c=LFE
    

8.93.2 Commands

Ten filtr obsługuje następujące polecenia:

frequency, f

Zmień częstotliwość dolnoprzepustową. Składnia polecenia to: „ frequency

width_type, t

Zmień szerokość_typu dolnoprzepustowego. Składnia polecenia to: „ width_type

width, w

Zmień szerokość dolnoprzepustu. Składnia polecenia to: „ width

mix, m

Zmień miks dolnoprzepustowy. Składnia polecenia to: „ mix

8.94 lv2

Załaduj wtyczkę LV2 (LADSPA w wersji 2).

Aby umożliwić kompilację tego filtra musisz skonfigurować FFmpeg z --enable-lv2.

plugin, p

Określa identyfikator URI wtyczki. Być może trzeba będzie uciec przed ':'.

controls, c

Ustaw „|” oddzielona lista kontrolek, które mają zero lub więcej wartości zmiennoprzecinkowych, które określają zachowanie załadowanej wtyczki (na przykład opóźnienie, próg lub wzmocnienie). Jeślicontrolsjest ustawiona na help, drukowane są wszystkie dostępne kontrolki i ich prawidłowe zakresy.

sample_rate, s

Określ częstotliwość próbkowania, domyślnie 44100. Używana tylko wtedy, gdy wtyczka ma zero wejść.

nb_samples, n

Ustaw liczbę próbek na kanał na każdą klatkę wyjściową, domyślnie 1024. Używany tylko wtedy, gdy wtyczka ma zero wejść.

duration, d

Ustaw minimalny czas trwania źródła dźwięku. Zobacz (ffmpeg-utils) sekcję Czas trwania w podręczniku ffmpeg-utils(1), aby poznać akceptowaną składnię. Zauważ, że wynikowy czas trwania może być dłuższy niż określony, ponieważ wygenerowany dźwięk jest zawsze cięty na końcu pełnej klatki. Jeśli nie zostanie określony lub podany czas trwania jest ujemny, dźwięk ma być generowany na zawsze. Używany tylko wtedy, gdy wtyczka ma zero wejść.

8.94.1 Examples

  • Zastosuj wtyczkę wzmacniacza basu od Calf:
    lv2=p=http\\\\://calf.sourceforge.net/plugins/BassEnhancer:c=amount=2
    
  • Zastosuj wtyczkę winylową od Calf:
    lv2=p=http\\\\://calf.sourceforge.net/plugins/Vinyl:c=drone=0.2|aging=0.5
    
  • Zastosuj wtyczkę bit Crusher z ArtyFX:
    lv2=p=http\\\\://www.openavproductions.com/artyfx#bitta:c=crush=0.3
    

8.94.2 Commands

Ten filtr obsługuje wszystkie opcje, które są eksportowane przez wtyczkę jako polecenia.

8.95 mcompand

Multiband Kompresuj lub rozszerzaj zakres dynamiki dźwięku.

Dźwięk wejściowy jest podzielony na pasma przy użyciu IIR Linkwitz-Riley czwartego rzędu. Jest to podobne do zwrotnicy głośnika i skutkuje płaską charakterystyką częstotliwościową, gdy nie ma działania kompandera.

Przyjmuje następujące parametry:

args

Składnia tej opcji jest następująca: atak,zanik,[atak,zanik..] punkty miękkiego kolana crossover_frequency [opóźnienie [początkowa_objętość [wzmocnienie]]] | atak, zanik ... Aby uzyskać wyjaśnienie każdego elementu, zapoznaj się z dokumentacją filtra Compand.

8.96 pan

Miksuj kanały z określonymi poziomami wzmocnienia. Filtr akceptuje układ kanału wyjściowego, po którym następuje zestaw definicji kanałów.

Ten filtr jest również przeznaczony do wydajnej zmiany mapowania kanałów strumienia audio.

Filtr przyjmuje parametry postaci: " l| outdef| outdef|..."

l

układ kanału wyjściowego lub liczba kanałów

outdef

specyfikacja kanału wyjściowego, w postaci: " out_name=[ gain*] in_name[(+-)[ gain*] in_name...]"

out_name

kanał wyjściowy do zdefiniowania nazwy kanału (FL, FR itd.) lub numeru kanału (c0, c1 itd.)

gain

współczynnik mnożnikowy dla kanału, 1 pozostawiając niezmienioną głośność

in_name

kanał wejściowy do użycia, zobacz out_name po szczegóły; nie można mieszać nazwanych i numerowanych kanałów wejściowych

Jeśli '=" w specyfikacji kanału zostanie zastąpione przez '<', wtedy wzmocnienia dla tej specyfikacji zostaną zrenormalizowane tak, że suma wynosi 1, unikając w ten sposób szumów obcinania.

8.96.1 Mixing examples

Na przykład, jeśli chcesz zmiksować ze stereo do mono, ale z większym współczynnikiem dla lewego kanału:

pan=1c|c0=0.9*c0+0.1*c1

Dostosowany downmix do stereo, który działa automatycznie dla 3-, 4-, 5- i 7-kanałowego dźwięku przestrzennego:

pan=stereo| FL < FL + 0.5*FC + 0.6*BL + 0.6*SL | FR < FR + 0.5*FC + 0.6*BR + 0.6*SR

Zauważ, że ffmpegintegruje domyślny system miksowania (i miksowania), który powinien być preferowany (patrz opcja "-ac"), chyba że masz bardzo specyficzne potrzeby.

8.96.2 Remapping examples

Zmiana mapowania kanałów będzie skuteczna wtedy i tylko wtedy, gdy:

  • współczynniki wzmocnienia są zerami lub jedynkami,
  • tylko jedno wejście na wyjście kanału,

Jeśli wszystkie te warunki są spełnione, filtr powiadomi użytkownika ("Wykryto mapowanie czystego kanału") i użyje zoptymalizowanej i bezstratnej metody do ponownego mapowania.

Na przykład, jeśli masz źródło 5.1 i chcesz stereofoniczny strumień audio, upuszczając dodatkowe kanały:

pan="stereo| c0=FL | c1=FR"

Mając to samo źródło, możesz również przełączać przedni lewy i przedni prawy kanał i zachować układ kanałów wejściowych:

pan="5.1| c0=c1 | c1=c0 | c2=c2 | c3=c3 | c4=c4 | c5=c5"

Jeśli wejście jest strumieniem dźwięku stereo, możesz wyciszyć lewy przedni kanał (z zachowaniem układu kanałów stereo) za pomocą:

pan="stereo|c1=c1"

Nadal z wejściem stereofonicznego strumienia audio, możesz skopiować prawy kanał zarówno z przodu, z lewej, jak i z prawej strony:

pan="stereo| c0=FR | c1=FR"

8.97 replaygain

Filtr skanera ReplayGain. Ten filtr pobiera strumień audio jako wejście i wyprowadza go bez zmian. Pod koniec filtrowania wyświetla się track_gaini track_peak.

8.98 resample

Konwertuj format próbki audio, częstotliwość próbkowania i układ kanałów. Nie jest przeznaczony do bezpośredniego użycia.

8.99 rubberband

Zastosuj rozciąganie w czasie i zmianę wysokości dźwięku za pomocą librubberband.

Aby umożliwić kompilację tego filtra, musisz skonfigurować FFmpeg za pomocą --enable-librubberband.

Filtr akceptuje następujące opcje:

tempo

Ustaw współczynnik skali tempa.

pitch

Ustaw współczynnik skali skoku.

transients

Ustaw detektor transjentów. Możliwe wartości to:

crisp
mixed
smooth
detector

Ustaw detektor. Możliwe wartości to:

compound
percussive
soft
phase

Ustaw fazę. Możliwe wartości to:

laminar
independent
window

Ustaw rozmiar okna przetwarzania. Możliwe wartości to:

standard
short
long
smoothing

Ustaw wygładzanie. Możliwe wartości to:

off
on
formant

Włącz zachowywanie formantów podczas zmiany skoku. Możliwe wartości to:

shifted
preserved
pitchq

Ustaw jakość dźwięku. Możliwe wartości to:

quality
speed
consistency
channels

Ustaw kanały. Możliwe wartości to:

apart
together

8.99.1 Commands

Ten filtr obsługuje następujące polecenia:

tempo

Zmień współczynnik skali tempa filtra. Składnia polecenia to: „ tempo

pitch

Zmień współczynnik skali skoku filtra. Składnia polecenia to: „ pitch

8.100 sidechaincompress

Ten filtr działa jak normalny kompresor, ale ma możliwość kompresji wykrytego sygnału za pomocą drugiego sygnału wejściowego. Potrzebuje dwóch strumieni wejściowych i zwraca jeden strumień wyjściowy. Pierwszy strumień wejściowy będzie przetwarzany w zależności od sygnału drugiego strumienia. Przefiltrowany sygnał można następnie przefiltrować za pomocą innych filtrów w późniejszych etapach przetwarzania. Zobacz filtr panoramowania i amerge .

Filtr akceptuje następujące opcje:

level_in

Ustaw wzmocnienie wejścia. Wartość domyślna to 1. Zakres wynosi od 0,015625 do 64.

mode

Ustaw tryb pracy sprężarki. Może być upwardlub downward. Wartość domyślna to downward.

threshold

Jeśli sygnał drugiego strumienia wzrośnie powyżej tego poziomu, wpłynie to na redukcję wzmocnienia pierwszego strumienia. Domyślna wartość to 0,125. Zakres wynosi od 0,00097563 do 1.

ratio

Ustaw współczynnik redukcji sygnału. 1:2 oznacza, że ​​jeśli poziom podniósł się o 4dB powyżej progu, to po redukcji będzie tylko 2dB powyżej. Wartość domyślna to 2. Zakres wynosi od 1 do 20.

attack

Ilość milisekund, przez którą sygnał musi wzrosnąć powyżej progu, zanim rozpocznie się redukcja wzmocnienia. Wartość domyślna to 20. Zakres wynosi od 0,01 do 2000.

release

Ilość milisekund, przez którą sygnał musi spaść poniżej progu, zanim redukcja zostanie ponownie zmniejszona. Wartość domyślna to 250. Zakres wynosi od 0,01 do 9000.

makeup

Ustaw ilość, o jaką sygnał zostanie wzmocniony po przetworzeniu. Wartość domyślna to 1. Zakres wynosi od 1 do 64.

knee

Zakręć ostre kolano wokół progu, aby łagodniej wejść w redukcję wzmocnienia. Wartość domyślna to 2.82843. Zakres wynosi od 1 do 8.

link

Wybierz, czy averagepoziom pomiędzy wszystkimi kanałami strumienia w łańcuchu bocznym, czy głośniejszy( maximum) kanał strumienia w łańcuchu bocznym ma wpływ na redukcję. Wartość domyślna to average.

detection

Czy należy odbierać dokładny sygnał w przypadku peaklub RMS w przypadku rms. Domyślnie jest rmsto głównie płynniejsze.

level_sc

Ustaw wzmocnienie łańcucha bocznego. Wartość domyślna to 1. Zakres wynosi od 0,015625 do 64.

mix

Ile użyć skompresowanego sygnału na wyjściu. Wartość domyślna to 1. Zakres wynosi od 0 do 1.

8.100.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

8.100.2 Examples

  • Pełny przykład ffmpeg z 2 wejściami audio, 1. wejście do kompresji w zależności od sygnału 2. wejścia i później skompresowany sygnał do połączenia z 2. wejściem:
    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

Bramka łańcucha bocznego działa jak normalna (szerokopasmowa) bramka, ale ma możliwość filtrowania wykrytego sygnału przed wysłaniem go do etapu redukcji wzmocnienia. Zwykle bramka wykorzystuje sygnał pełnego zakresu do wykrycia poziomu powyżej progu. Na przykład: Jeśli odetniesz wszystkie niższe częstotliwości z sygnału łańcucha bocznego, bramka zmniejszy głośność ścieżki tylko wtedy, gdy pojawi się niewystarczająca liczba wysokich. Dzięki tej technice jesteś w stanie zredukować rezonans naturalnego bębna lub usunąć „dudnienie” stłumionych uderzeń z mocno przesterowanej gitary. Potrzebuje dwóch strumieni wejściowych i zwraca jeden strumień wyjściowy. Pierwszy strumień wejściowy będzie przetwarzany w zależności od sygnału drugiego strumienia.

Filtr akceptuje następujące opcje:

level_in

Ustaw poziom wejściowy przed filtrowaniem. Wartość domyślna to 1. Dozwolony zakres to od 0,015625 do 64.

mode

Ustaw tryb działania. Może być upwardlub downward. Wartość domyślna to downward. Jeśli ustawiony jest na upwardtryb, wyższe partie sygnału będą wzmacniane, rozszerzając zakres dynamiki w górę. W przeciwnym razie w przypadku downwardniższych partii sygnał zostanie zmniejszony.

range

Ustaw poziom redukcji wzmocnienia, gdy sygnał jest poniżej progu. Wartość domyślna to 0,06125. Dozwolony zakres to od 0 do 1. Ustawienie tego na 0 wyłącza redukcję i wtedy filtr zachowuje się jak ekspander.

threshold

Jeśli sygnał wzrośnie powyżej tego poziomu, redukcja wzmocnienia jest zwalniana. Wartość domyślna to 0,125. Dozwolony zakres to od 0 do 1.

ratio

Ustaw współczynnik redukcji sygnału. Wartość domyślna to 2. Dozwolony zakres to od 1 do 9000.

attack

Ilość milisekund, przez którą sygnał musi wzrosnąć powyżej wartości progowej, zanim redukcja wzmocnienia zostanie zatrzymana. Wartość domyślna to 20 milisekund. Dozwolony zakres to od 0,01 do 9000.

release

Ilość milisekund, przez którą sygnał musi spaść poniżej progu, zanim redukcja zostanie ponownie zwiększona. Wartość domyślna to 250 milisekund. Dozwolony zakres to od 0,01 do 9000.

makeup

Ustawia wielkość wzmocnienia sygnału po przetworzeniu. Wartość domyślna to 1. Dozwolony zakres to od 1 do 64.

knee

Zakręć ostre kolano wokół progu, aby łagodniej wejść w redukcję wzmocnienia. Wartość domyślna to 2.828427125. Dozwolony zakres to od 1 do 8.

detection

Wybierz, czy do wykrywania ma być pobierany dokładny sygnał, czy podobny do RMS. Wartość domyślna to rms. Może być szczytem lub rms.

link

Wybierz, czy średni poziom między wszystkimi kanałami, czy głośniejszy kanał ma wpływ na redukcję. Wartość domyślna to średnia. Może być średnia lub maksymalna.

level_sc

Ustaw wzmocnienie łańcucha bocznego. Wartość domyślna to 1. Zakres wynosi od 0,015625 do 64.

8.101.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

8.102 silencedetect

Wykryj ciszę w strumieniu audio.

Ten filtr rejestruje komunikat, gdy wykryje, że głośność wejściowego dźwięku jest mniejsza lub równa wartości tolerancji szumu przez czas dłuższy lub równy minimalnemu wykrytemu czasowi trwania szumu.

Wydrukowane czasy i czas trwania są wyrażone w sekundach. lavfi.silence_startKlucz metadanych lub jest lavfi.silence_start.Xustawiany w pierwszej ramce, której znacznik czasu jest równy lub przekracza czas trwania wykrywania i zawiera znacznik czasu pierwszej ramki ciszy.

Klucze metadanych lavfi.silence_durationlub lavfi.silence_duration.X i lavfi.silence_endlub lavfi.silence_end.Xsą ustawiane w pierwszej ramce po ciszy. Jeślimonojest włączony, a każdy kanał jest oceniany osobno, .X używane są klawisze z przyrostkami i Xodpowiadają numerowi kanału.

Filtr akceptuje następujące opcje:

noise, n

Ustaw tolerancję hałasu. Można określić w dB (w przypadku, gdy „dB” jest dołączone do określonej wartości) lub w stosunku amplitudy. Wartość domyślna to -60dB lub 0,001.

duration, d

Ustaw czas trwania ciszy do powiadomienia (domyślnie 2 sekundy). Zobacz (ffmpeg-utils) sekcję Czas trwania w podręczniku ffmpeg-utils(1), aby poznać akceptowaną składnię.

mono, m

Przetwarzaj każdy kanał osobno, zamiast łączyć. Domyślnie jest wyłączona.

8.102.1 Examples

  • Wykryj 5 sekund ciszy z tolerancją hałasu -50dB:
    silencedetect=n=-50dB:d=5
    
  • Kompletny przykład z ffmpegwykrywaniem ciszy z tolerancją hałasu 0,0001 wsilence.mp3:
    ffmpeg -i silence.mp3 -af silencedetect=noise=0.0001 -f null -
    

8.103 silenceremove

Usuń ciszę z początku, środka lub końca dźwięku.

Filtr akceptuje następujące opcje:

start_periods

Ta wartość jest używana do wskazania, czy dźwięk powinien zostać przycięty na początku dźwięku. Wartość zero wskazuje, że cisza nie powinna być przycinana od początku. Podczas określania wartości niezerowej przycina dźwięk, aż znajdzie brak ciszy. Normalnie, podczas przycinania ciszy od początku audio, start_periodsbędzie to możliwe 1, ale można ją zwiększyć do wyższych wartości, aby przyciąć cały dźwięk do określonej liczby okresów braku ciszy. Wartość domyślna to 0.

start_duration

Określ czas, przez który musi zostać wykryty brak ciszy, zanim zakończy się przycinanie dźwięku. Wydłużając czas trwania, wybuchy dźwięków mogą być traktowane jako cisza i przycinane. Wartość domyślna to 0.

start_threshold

Wskazuje to, jaką wartość próbki należy traktować jako ciszę. W przypadku dźwięku cyfrowego wartość 0może być odpowiednia, ale w przypadku dźwięku nagranego analogowo można zwiększyć wartość, aby uwzględnić szum tła. Można określić w dB (w przypadku, gdy „dB” jest dołączone do określonej wartości) lub w stosunku amplitudy. Wartość domyślna to 0.

start_silence

Określ maksymalny czas trwania ciszy na początku, który zostanie zachowany po przycięciu. Wartość domyślna to 0, co jest równe przycinaniu wszystkich próbek wykrytych jako cisza.

start_mode

Określ tryb wykrywania ciszy na początku dźwięku wielokanałowego. Może być anylub all. Wartość domyślna to any. Z any, każda próbka wykryta jako brak ciszy spowoduje zatrzymanie przycinania ciszy. Z all, tylko jeśli wszystkie kanały zostaną wykryte jako brak ciszy spowoduje zatrzymanie przycinania ciszy.

stop_periods

Ustaw liczbę przycinania ciszy od końca dźwięku. Aby usunąć ciszę ze środka pliku, określ a stop_periods , które jest ujemne. Ta wartość jest następnie traktowana jako wartość dodatnia i jest używana do wskazania, że ​​efekt powinien ponownie rozpocząć przetwarzanie zgodnie z opisem start_periods, dzięki czemu jest odpowiedni do usuwania okresów ciszy w środku dźwięku. Wartość domyślna to 0.

stop_duration

Określ czas trwania ciszy, który musi istnieć, zanim dźwięk nie będzie już kopiowany. Określając dłuższy czas trwania, w audio można pozostawić pożądaną ciszę. Wartość domyślna to 0.

stop_threshold

To to samo costart_thresholdale do przycinania ciszy od końca audio. Można określić w dB (w przypadku, gdy „dB” jest dołączone do określonej wartości) lub w stosunku amplitudy. Wartość domyślna to 0.

stop_silence

Określ maksymalny czas trwania ciszy na końcu, który zostanie zachowany po przycięciu. Wartość domyślna to 0, co jest równe przycinaniu wszystkich próbek wykrytych jako cisza.

stop_mode

Określ tryb wykrywania początku ciszy na końcu dźwięku wielokanałowego. Może być anylub all. Wartość domyślna to any. Z any, każda próbka wykryta jako brak ciszy spowoduje zatrzymanie przycinania ciszy. Z all, tylko jeśli wszystkie kanały zostaną wykryte jako brak ciszy spowoduje zatrzymanie przycinania ciszy.

detection

Ustaw sposób wykrywania ciszy. Może być rmslub peak. Drugi jest szybszy i działa lepiej z ciszą cyfrową, która wynosi dokładnie 0. Wartość domyślna to rms.

window

Ustaw czas trwania w sekundach używany do obliczenia rozmiaru okna w liczbie próbek do wykrycia ciszy. Wartość domyślna to 0.02. Dozwolony zakres to od 0do 10.

8.103.1 Examples

  • Poniższy przykład pokazuje, w jaki sposób można użyć tego filtra do rozpoczęcia nagrywania, które nie zawiera opóźnienia na początku, które zwykle występuje między naciśnięciem przycisku nagrywania a rozpoczęciem występu:
    silenceremove=start_periods=1:start_duration=5:start_threshold=0.02
    
  • Przytnij całą ciszę napotkaną od początku do końca tam, gdzie w dźwięku jest więcej niż 1 sekunda ciszy:
    silenceremove=stop_periods=-1:stop_duration=1:stop_threshold=-90dB
    
  • Przytnij wszystkie próbki ciszy cyfrowej, używając wykrywania szczytów, od początku do końca, gdzie jest więcej niż 0 próbek ciszy cyfrowej w audio, a cisza cyfrowa jest wykrywana we wszystkich kanałach w tych samych pozycjach w strumieniu:
    silenceremove=window=0:detection=peak:stop_mode=all:start_mode=all:stop_periods=-1:stop_threshold=0
    

8.104 sofalizer

SOFAlizer wykorzystuje funkcje przenoszenia związane z głową (HRTF) do tworzenia wirtualnych głośników wokół użytkownika do binauralnego słuchania przez słuchawki (obsługiwane formaty audio do 9 kanałów). HRTF są przechowywane w plikach SOFA (patrz http://www.sofacoustics.org/ dla bazy danych). SOFAlizer został opracowany w Instytucie Badań Akustycznych (ARI) Austriackiej Akademii Nauk.

Aby umożliwić kompilację tego filtra musisz skonfigurować FFmpeg z --enable-libmysofa.

Filtr akceptuje następujące opcje:

sofa

Ustaw plik SOFA używany do renderowania.

gain

Ustaw wzmocnienie zastosowane do dźwięku. Wartość jest w dB. Wartość domyślna to 0.

rotation

Ustaw rotację wirtualnych głośników w deg. Wartość domyślna to 0.

elevation

Ustaw podniesienie wirtualnych głośników w deg. Wartość domyślna to 0.

radius

Ustaw odległość w metrach między głośnikami a słuchaczem za pomocą HRTF bliskiego pola. Wartość domyślna to 1.

type

Ustaw typ przetwarzania. Może być timelub freq. timeprzetwarza dźwięk w dziedzinie czasu, który jest wolny. freqprzetwarza dźwięk w dziedzinie częstotliwości, która jest szybka. Wartość domyślna to freq.

speakers

Ustaw niestandardowe pozycje wirtualnych głośników. Składnia tej opcji to: <CH> <AZIM> <ELEV>[|<CH> <AZIM> <ELEV>|...]. Każdy wirtualny głośnik opisany jest krótką nazwą kanału, po której następuje azymut i elewacja w stopniach. Każdy opis wirtualnego głośnika jest oddzielony znakiem „|”. Na przykład, aby zmienić pozycje kanałów lewego przedniego i prawego przedniego, użyj: 'speakers=FL 45 15|FR 345 15'. Opisy z nierozpoznanymi nazwami kanałów są ignorowane.

lfegain

Ustaw niestandardowe wzmocnienie dla kanałów LFE. Wartość jest w dB. Wartość domyślna to 0.

framesize

Ustaw niestandardowy rozmiar ramki w liczbie próbek. Wartość domyślna to 1024. Dozwolony zakres to od 1024 do 96000. Używana tylko wtedy, gdy opcja 'type' jest ustawiony na freq.

normalize

Czy wszystkie IRs powinny być znormalizowane po zaimportowaniu pliku SOFA. Domyślnie jest włączony.

interpolate

Czy najbliższe IR powinny być interpolowane z sąsiednimi IR, jeśli dokładna pozycja nie pasuje. Domyślnie jest wyłączona.

minphase

Minfazuj wszystkie IRs po załadowaniu pliku SOFA. Domyślnie jest wyłączona.

anglestep

Ustaw krok kąta wyszukiwania sąsiadów. Używany tylko wtedy, gdy opcja interpolatejest włączona.

radstep

Ustaw krok promienia wyszukiwania sąsiadów. Używany tylko wtedy, gdy opcja interpolatejest włączona.

8.104.1 Examples

  • Korzystanie z pliku sofy ClubFritz6:
    sofalizer=sofa=/path/to/ClubFritz6.sofa:type=freq:radius=1
    
  • Korzystanie z pilnika do sofy ClubFritz12 i większego promienia z małym obrotem:
    sofalizer=sofa=/path/to/ClubFritz12.sofa:type=freq:radius=2:rotation=5
    
  • Podobnie jak powyżej, ale z niestandardowymi pozycjami głośników dla przedniego lewego, przedniego prawego, tylnego lewego i tylnego prawego, a także z niestandardowym wzmocnieniem:
    "sofalizer=sofa=/path/to/ClubFritz6.sofa:type=freq:radius=2:speakers=FL 45|FR 315|BL 135|BR 225:gain=28"
    

8.105 speechnorm

Normalizator mowy.

Ten filtr rozszerza lub kompresuje każdy półcykl próbek audio (lokalny zestaw próbek powyżej lub poniżej zera i pomiędzy dwoma najbliższymi przejściami przez zero) w zależności od wartości progowej, dzięki czemu dźwięk osiąga docelową wartość szczytową w warunkach kontrolowanych przez poniższe opcje.

Filtr akceptuje następujące opcje:

peak, p

Ustaw docelową wartość szczytową ekspansji. Określa najwyższy dozwolony poziom amplitudy bezwzględnej dla znormalizowanego wejścia audio. Wartość domyślna to 0,95. Dozwolony zakres to od 0,0 do 1,0.

expansion, e

Ustaw maksymalny współczynnik rozszerzalności. Dozwolony zakres wynosi od 1,0 do 50,0. Wartość domyślna to 2,0. Ta opcja kontroluje maksymalny lokalny półcykl ekspansji próbek. Maksymalna ekspansja byłaby taka, że ​​lokalna wartość szczytowa osiąga docelową wartość szczytową, ale nigdy jej nie przekracza, a stosunek między nową i poprzednią wartością szczytową nie przekracza tej wartości opcji.

compression, c

Ustaw maksymalny współczynnik kompresji. Dozwolony zakres wynosi od 1,0 do 50,0. Wartość domyślna to 2,0. Ta opcja kontroluje maksymalny lokalny półcykl kompresji próbek. Ta opcja jest używana tylko wtedy, gdythresholdopcja jest ustawiona na wartość większą niż 0.0, wtedy w przypadku gdy lokalny pik jest mniejszy lub równy wartości ustawionej przezthresholdwszystkie próbki należące do półcyklu tego piku zostaną skompresowane przez aktualny współczynnik kompresji.

threshold, t

Ustaw wartość progową. Wartość domyślna to 0,0. Dozwolony zakres to od 0,0 do 1,0. Ta opcja określa, które półcykle próbek zostaną skompresowane, a które rozszerzone. Wszelkie próbki półcyklowe z lokalną wartością szczytową poniżej lub taką samą jak ta wartość opcji zostaną skompresowane przez bieżący współczynnik kompresji, w przeciwnym razie, jeśli są większe niż wartość progowa, zostaną rozszerzone o współczynnik rozszerzenia, aby mógł osiągnąć szczytową wartość docelową, ale nigdy nie przekroczyć to.

raise, r

Ustawić wielkość wzrostu ekspansji na każde pół cyklu próbek. Wartość domyślna to 0,001. Dozwolony zakres to od 0,0 do 1,0. Kontroluje to, jak szybko zwiększa się współczynnik ekspansji w każdym nowym półcyklu, aż osiągnieexpansionwartość. Ustawienie tej opcji zbyt wysoko może prowadzić do zniekształceń.

fall, f

Ustaw stopień wzrostu kompresji na każde pół cyklu próbek. Wartość domyślna to 0,001. Dozwolony zakres to od 0,0 do 1,0. Kontroluje to, jak szybko współczynnik kompresji jest zwiększany w każdym nowym półcyklu, aż osiągniecompressionwartość.

channels, h

Określ, które kanały filtrować, domyślnie filtrowane są wszystkie dostępne kanały.

invert, i

Włącz filtrowanie odwrócone, domyślnie jest wyłączone. To odwraca interpretacjęthreshold opcja. Po włączeniu dowolny półcykl próbek z lokalną wartością szczytową poniżej lub taką samą jak thresholdopcja zostanie rozwinięta, w przeciwnym razie zostanie skompresowana.

link, l

Łączenie kanałów podczas obliczania wzmocnienia zastosowanego do każdej filtrowanej próbki kanału, domyślnie jest wyłączone. Gdy ta opcja jest wyłączona, obliczanie wzmocnienia każdego filtrowanego kanału jest niezależne, w przeciwnym razie, gdy ta opcja jest włączona, używane jest minimum wszystkich możliwych wzmocnień dla każdego filtrowanego kanału.

8.105.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

8.106 stereotools

Ten filtr ma kilka przydatnych narzędzi do zarządzania sygnałami stereo, do konwersji nagrań stereo M/S na sygnał L/R przy jednoczesnym kontrolowaniu parametrów lub rozprowadzaniu obrazu stereo ścieżki głównej.

Filtr akceptuje następujące opcje:

level_in

Ustaw poziom wejściowy przed filtrowaniem dla obu kanałów. Wartość domyślna to 1. Dozwolony zakres to od 0,015625 do 64.

level_out

Ustaw poziom wyjściowy po filtrowaniu dla obu kanałów. Wartość domyślna to 1. Dozwolony zakres to od 0,015625 do 64.

balance_in

Ustaw balans wejściowy między obydwoma kanałami. Wartość domyślna to 0. Dozwolony zakres to od -1 do 1.

balance_out

Ustaw balans wyjściowy między obydwoma kanałami. Wartość domyślna to 0. Dozwolony zakres to od -1 do 1.

softclip

Włącz softclipping. Powoduje zniekształcenie analogowe zamiast ostrego cyfrowego obcinania 0dB. Domyślnie wyłączone.

mutel

Wycisz lewy kanał. Domyślnie wyłączone.

muter

Wycisz prawy kanał. Domyślnie wyłączone.

phasel

Zmień fazę lewego kanału. Domyślnie wyłączone.

phaser

Zmień fazę prawego kanału. Domyślnie wyłączone.

mode

Ustaw tryb stereo. Dostępne wartości to:

'lr>lr'

Od lewej/prawej do lewej/prawej, jest to ustawienie domyślne.

'lr>ms'

Lewo/prawo do środka/boku.

'ms>lr'

Środek/bok do lewej/prawej.

'lr>ll'

Od lewej/od prawej do lewej/lewej.

'lr>rr'

Od lewej/prawej do prawej/prawej.

'lr>l+r'

Od lewej/od prawej do lewej + od prawej.

'lr>rl'

Od lewej/od prawej do prawej/lewej.

'ms>ll'

Środek/bok w lewo/w lewo.

'ms>rr'

Środek/bok do prawej/prawej.

'ms>rl'

Od środka/boku do prawej/lewej.

'lr>l-r'

Od lewej/od prawej do lewej - w prawo.

slev

Ustaw poziom sygnału bocznego. Wartość domyślna to 1. Dozwolony zakres to od 0,015625 do 64.

sbal

Ustaw balans sygnału bocznego. Wartość domyślna to 0. Dozwolony zakres to od -1 do 1.

mlev

Ustaw poziom środkowego sygnału. Wartość domyślna to 1. Dozwolony zakres to od 0,015625 do 64.

mpan

Ustaw środkową panoramę sygnału. Wartość domyślna to 0. Dozwolony zakres to od -1 do 1.

base

Ustaw podstawę stereo między kanałami mono i odwróconymi. Wartość domyślna to 0. Dozwolony zakres to od -1 do 1.

delay

Ustaw opóźnienie w milisekundach, ile opóźnić w lewo od prawego kanału i na odwrót. Wartość domyślna to 0. Dozwolony zakres to od -20 do 20.

sclevel

Ustaw poziom S/C. Wartość domyślna to 1. Dozwolony zakres to od 1 do 100.

phase

Ustaw fazę stereo w stopniach. Wartość domyślna to 0. Dozwolony zakres to od 0 do 360.

bmode_in, bmode_out

Ustaw tryb balansu dla opcji balance_in/balance_out.

Może być jednym z następujących:

'balance'

Klasyczny tryb balansu. Tłumienie jednego kanału na raz. Zysk wzrasta do 1.

'amplitude'

Podobnie jak w trybie klasycznym powyżej, ale wzmocnienie jest zwiększone do 2.

'power'

Równa dystrybucja mocy, zakres od -6dB do +6dB.

8.106.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

8.106.2 Examples

  • Zastosuj efekt podobny do karaoke:
    stereotools=mlev=0.015625
    
  • Konwertuj sygnał M/S na L/R:
    "stereotools=mode=ms>lr"
    

8.107 stereowiden

Filtr ten wzmacnia efekt stereo, tłumiąc sygnał wspólny dla obu kanałów oraz opóźniając sygnał z lewego do prawego i odwrotnie, tym samym poszerzając efekt stereo.

Filtr akceptuje następujące opcje:

delay

Czas w milisekundach opóźnienia lewego sygnału na prawy i odwrotnie. Wartość domyślna to 20 milisekund.

feedback

Wielkość wzmocnienia w opóźnionym sygnale w prawo i na odwrót. Daje efekt opóźnienia lewego sygnału na prawym wyjściu i odwrotnie, co daje efekt poszerzenia. Wartość domyślna to 0,3.

crossfeed

Posuw krzyżowy od lewej do prawej z odwróconą fazą. Pomaga to w tłumieniu mono. Jeśli wartość wynosi 1, anuluje wszystkie sygnały wspólne dla obu kanałów. Wartość domyślna to 0,3.

drymix

Ustaw poziom sygnału wejściowego oryginalnego kanału. Wartość domyślna to 0,8.

8.107.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje z delaywyjątkiem poleceń .

8.108 superequalizer

Zastosuj 18-pasmowy korektor.

Filtr akceptuje następujące opcje:

1b

Ustaw wzmocnienie pasma 65 Hz.

2b

Ustaw wzmocnienie pasma 92 Hz.

3b

Ustaw wzmocnienie pasma 131 Hz.

4b

Ustaw wzmocnienie pasma 185 Hz.

5b

Ustaw wzmocnienie pasma 262 Hz.

6b

Ustaw wzmocnienie pasma 370Hz.

7b

Ustaw wzmocnienie pasma 523 Hz.

8b

Ustaw wzmocnienie pasma 740 Hz.

9b

Ustaw wzmocnienie pasma 1047Hz.

10b

Ustaw wzmocnienie pasma 1480 Hz.

11b

Ustaw wzmocnienie pasma 2093Hz.

12b

Ustaw wzmocnienie pasma 2960Hz.

13b

Ustaw wzmocnienie pasma 4186Hz.

14b

Ustaw wzmocnienie pasma 5920 Hz.

15b

Ustaw wzmocnienie pasma 8372 Hz.

16b

Ustaw wzmocnienie pasma 11840 Hz.

17b

Ustaw wzmocnienie pasma 16744 Hz.

18b

Ustaw wzmocnienie pasma 20000Hz.

8.109 surround

Zastosuj filtr upmixu dźwięku przestrzennego.

Filtr ten pozwala na wytworzenie wielokanałowego sygnału wyjściowego ze strumienia audio.

Filtr akceptuje następujące opcje:

chl_out

Ustaw układ kanału wyjściowego. Domyślnie jest to 5.1.

Zobacz (ffmpeg-utils) sekcję Channel Layout w podręczniku ffmpeg-utils(1) , aby poznać wymaganą składnię.

chl_in

Ustaw układ kanału wejściowego. Domyślnie jest to stereo.

Zobacz (ffmpeg-utils) sekcję Channel Layout w podręczniku ffmpeg-utils(1) , aby poznać wymaganą składnię.

level_in

Ustaw poziom głośności wejściowej. Domyślnie jest to 1.

level_out

Ustaw poziom głośności wyjściowej. Domyślnie jest to 1.

lfe

Włącz wyjście kanału LFE, jeśli ma go układ kanału wyjściowego. Domyślnie jest to włączone.

lfe_low

Ustaw dolną częstotliwość odcięcia LFE. Domyślnie jest to 128Hz.

lfe_high

Ustaw górną częstotliwość odcięcia LFE. Domyślnie jest to 256Hz.

lfe_mode

Ustaw tryb LFE, może być addlub sub. Wartość domyślna to add. W addtrybie kanał LFE jest tworzony z wejścia audio i dodawany do wyjścia. W subtrybie kanał LFE jest tworzony z wejścia audio i dodawany do wyjścia, ale również wszystkie kanały wyjściowe inne niż LFE są odejmowane z wyjściowym kanałem LFE.

angle

Ustaw kąt transformacji stereo surround, Dozwolony zakres to od 0do 360. Wartość domyślna to 90.

fc_in

Ustaw głośność wejścia przedniego środkowego. Domyślnie jest to 1.

fc_out

Ustaw głośność przedniego środkowego wyjścia. Domyślnie jest to 1.

fl_in

Ustaw głośność wejścia z przodu po lewej stronie. Domyślnie jest to 1.

fl_out

Ustaw głośność lewego przedniego wyjścia. Domyślnie jest to 1.

fr_in

Ustaw głośność wejścia z przodu po prawej stronie. Domyślnie jest to 1.

fr_out

Ustaw głośność prawego przedniego wyjścia. Domyślnie jest to 1.

sl_in

Ustaw głośność wejścia po lewej stronie. Domyślnie jest to 1.

sl_out

Ustaw głośność wyjściową po lewej stronie. Domyślnie jest to 1.

sr_in

Ustaw głośność wejścia po prawej stronie. Domyślnie jest to 1.

sr_out

Ustaw głośność wyjściową po prawej stronie. Domyślnie jest to 1.

bl_in

Ustaw głośność lewego wejścia. Domyślnie jest to 1.

bl_out

Ustaw głośność lewego wyjścia. Domyślnie jest to 1.

br_in

Ustaw z powrotem prawy poziom głośności wejściowej. Domyślnie jest to 1.

br_out

Ustaw z powrotem prawą głośność wyjściową. Domyślnie jest to 1.

bc_in

Ustaw ponownie centralną głośność wejściową. Domyślnie jest to 1.

bc_out

Ustaw ponownie centralną głośność wyjścia. Domyślnie jest to 1.

lfe_in

Ustaw głośność wejścia LFE. Domyślnie jest to 1.

lfe_out

Ustaw głośność wyjściową LFE. Domyślnie jest to 1.

allx

Ustaw rozłożone użycie obrazu stereo na osi X dla wszystkich kanałów. Dozwolony zakres to od -1do 15. Domyślnie ta wartość jest ujemna -1i dlatego nie jest używana.

ally

Ustaw rozłożone użycie obrazu stereo na osi Y dla wszystkich kanałów. Dozwolony zakres to od -1do 15. Domyślnie ta wartość jest ujemna -1i dlatego nie jest używana.

fcx, flx, frx, blx, brx, slx, srx, bcx

Ustaw rozłożone użycie obrazu stereo na osi X dla każdego kanału. Dozwolony zakres to od 0.06do 15. Domyślnie ta wartość to 0.5.

fcy, fly, fry, bly, bry, sly, sry, bcy

Ustaw rozłożone użycie obrazu stereo na osi Y dla każdego kanału. Dozwolony zakres to od 0.06do 15. Domyślnie ta wartość to 0.5.

win_size

Ustaw rozmiar okna. Dozwolony zakres to od 1024do 65536. Rozmiar domyślny to 4096.

win_func

Ustaw funkcję okna.

Przyjmuje następujące wartości:

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

Wartość domyślna to hann.

overlap

Ustaw nakładanie się okien. Jeśli jest ustawiony na 1, wybrane zostanie zalecane nakładanie się dla wybranej funkcji okna. Wartość domyślna to 0.5.

8.110 tiltshelf

Podbijaj lub obcinaj niższe częstotliwości i obcinaj lub podbijaj wyższe częstotliwości dźwięku za pomocą dwubiegunowego filtra półkowego o reakcji podobnej do standardowej kontroli tonów hi-fi. Jest to również znane jako wyrównywanie półek (EQ).

Filtr akceptuje następujące opcje:

gain, g

Podaj wzmocnienie przy 0 Hz. Jego użyteczny zasięg to około -20 (dla dużego cięcia) do +20 (dla dużego wzmocnienia). Uważaj na przycinanie podczas korzystania z dodatniego wzmocnienia.

frequency, f

Ustaw centralną częstotliwość filtra, dzięki czemu można go używać do rozszerzania lub zmniejszania zakresu częstotliwości, który ma być wzmocniony lub obcięty. Wartość domyślna to 3000Hz.

width_type, t

Ustaw metodę, aby określić szerokość pasma filtra.

h

Hz

q

Współczynnik Q

o

oktawa

s

nachylenie

k

kHz

width, w

Określ, jak strome jest przejście półki filtra.

poles, p

Ustaw liczbę biegunów. Wartość domyślna to 2.

mix, m

Ile użyć przefiltrowanego sygnału na wyjściu. Wartość domyślna to 1. Zakres wynosi od 0 do 1.

channels, c

Określ, które kanały do ​​filtrowania, domyślnie wszystkie dostępne są filtrowane.

normalize, n

Normalizuj współczynniki biquad, domyślnie jest wyłączone. Włączenie go znormalizuje odpowiedź amplitudy przy DC do 0dB.

transform, a

Ustaw typ transformacji filtru IIR.

di
dii
tdi
tdii
latt
svf
zdf
precision, r

Ustaw precyzję filtrowania.

auto

Wybierz automatyczny format sampli w zależności od filtrów surround.

s16

Zawsze używaj podpisu 16-bitowego.

s32

Zawsze używaj podpisu 32-bitowego.

f32

Zawsze używaj 32-bitowego zmiennoprzecinkowego.

f64

Zawsze używaj zmiennoprzecinkowej 64-bitowej.

block_size, b

Ustaw rozmiar bloku używanego do odwrotnego przetwarzania IIR. Jeśli ta wartość jest ustawiona na wystarczająco wysoką wartość (większą niż długość odpowiedzi impulsowej skrócona, gdy osiągnie wartości bliskie zeru), filtrowanie stanie się fazą liniową, w przeciwnym razie, jeśli nie będzie wystarczająco duże, będzie wytwarzać nieprzyjemne artefakty.

Zauważ, że opóźnienie filtra będzie dokładnie tyle próbek, gdy zostanie ustawione na wartość niezerową.

8.110.1 Commands

Ten filtr obsługuje niektóre opcje jako polecenia .

8.111 treble, highshelf

Podbijaj lub obcinaj wysokie (górne) częstotliwości dźwięku za pomocą dwubiegunowego filtra półkowego o reakcji podobnej do standardowej kontroli tonów hi-fi. Jest to również znane jako wyrównywanie półek (EQ).

Filtr akceptuje następujące opcje:

gain, g

Podaj wzmocnienie przy którymkolwiek z niższych z ~22 kHz i częstotliwości Nyquista. Jego użyteczny zasięg to około -20 (dla dużego cięcia) do +20 (dla dużego wzmocnienia). Uważaj na przycinanie podczas korzystania z dodatniego wzmocnienia.

frequency, f

Ustaw centralną częstotliwość filtra, dzięki czemu można go używać do rozszerzania lub zmniejszania zakresu częstotliwości, który ma być wzmocniony lub obcięty. Wartość domyślna to 3000Hz.

width_type, t

Ustaw metodę, aby określić szerokość pasma filtra.

h

Hz

q

Współczynnik Q

o

oktawa

s

nachylenie

k

kHz

width, w

Określ, jak strome jest przejście półki filtra.

poles, p

Ustaw liczbę biegunów. Wartość domyślna to 2.

mix, m

Ile użyć przefiltrowanego sygnału na wyjściu. Wartość domyślna to 1. Zakres wynosi od 0 do 1.

channels, c

Określ, które kanały do ​​filtrowania, domyślnie wszystkie dostępne są filtrowane.

normalize, n

Normalizuj współczynniki biquad, domyślnie jest wyłączone. Włączenie go znormalizuje odpowiedź amplitudy przy DC do 0dB.

transform, a

Ustaw typ transformacji filtru IIR.

di
dii
tdi
tdii
latt
svf
zdf
precision, r

Ustaw precyzję filtrowania.

auto

Wybierz automatyczny format sampli w zależności od filtrów surround.

s16

Zawsze używaj podpisu 16-bitowego.

s32

Zawsze używaj podpisu 32-bitowego.

f32

Zawsze używaj 32-bitowego zmiennoprzecinkowego.

f64

Zawsze używaj zmiennoprzecinkowej 64-bitowej.

block_size, b

Ustaw rozmiar bloku używanego do odwrotnego przetwarzania IIR. Jeśli ta wartość jest ustawiona na wystarczająco wysoką wartość (większą niż długość odpowiedzi impulsowej skrócona, gdy osiągnie wartości bliskie zeru), filtrowanie stanie się fazą liniową, w przeciwnym razie, jeśli nie będzie wystarczająco duże, będzie wytwarzać nieprzyjemne artefakty.

Zauważ, że opóźnienie filtra będzie dokładnie tyle próbek, gdy zostanie ustawione na wartość niezerową.

8.111.1 Commands

Ten filtr obsługuje następujące polecenia:

frequency, f

Zmień częstotliwość wysokich tonów. Składnia polecenia to: „ frequency

width_type, t

Zmień treble width_type. Składnia polecenia to: „ width_type

width, w

Zmień szerokość sopranów. Składnia polecenia to: „ width

gain, g

Zmień wzmocnienie tonów wysokich. Składnia polecenia to: „ gain

mix, m

Zmień miks wysokich tonów. Składnia polecenia to: „ mix

8.112 tremolo

Sinusoidalna modulacja amplitudy.

Filtr akceptuje następujące opcje:

f

Częstotliwość modulacji w hercach. Częstotliwości modulacji w zakresie subharmonicznym (20 Hz lub niższym) dadzą efekt tremolo. Filtr ten może być również używany jako modulator pierścieniowy, podając częstotliwość modulacji wyższą niż 20 Hz. Zakres wynosi od 0,1 do 20000,0. Wartość domyślna to 5,0 Hz.

d

Głębokość modulacji w procentach. Zakres to 0,0 - 1,0. Wartość domyślna to 0,5.

8.113 vibrato

Modulacja fazy sinusoidalnej.

Filtr akceptuje następujące opcje:

f

Częstotliwość modulacji w hercach. Zakres wynosi od 0,1 do 20000,0. Wartość domyślna to 5,0 Hz.

d

Głębokość modulacji w procentach. Zakres to 0,0 - 1,0. Wartość domyślna to 0,5.

8.114 virtualbass

Zastosuj filtr wirtualnego basu audio.

Ten filtr akceptuje wejście stereo i tworzy stereo z wyjściem kanałów LFE (2.1). Nowo wyprodukowany kanał LFE ma wzmocniony wirtualny bas uzyskany pierwotnie z obu kanałów stereo. Ten filtr wyprowadza kanały przedni lewy i przedni prawy niezmienione, jako dostępne na wejściu stereo.

Filtr akceptuje następujące opcje:

cutoff

Ustaw wirtualną częstotliwość graniczną basów. Wartość domyślna to 250 Hz. Dozwolony zakres to od 100 do 500 Hz.

strength

Ustaw wirtualną siłę basów. Dozwolony zakres to od 0,5 do 3. Wartość domyślna to 3.

8.115 volume

Dostosuj głośność wejściowego dźwięku.

Przyjmuje następujące parametry:

volume

Ustaw ekspresję głośności dźwięku.

Wartości wyjściowe są przycinane do wartości maksymalnej.

Wyjściowa głośność audio jest określona zależnością:

output_volume = volume * input_volume

Domyślna wartość volumeto „1.0”.

precision

Ten parametr reprezentuje dokładność matematyczną.

Określa, które wejściowe formaty próbek będą dozwolone, co wpływa na precyzję skalowania głośności.

fixed

8-bitowy stałoprzecinkowy; ogranicza to format próbki wejściowej do U8, S16 i S32.

float

32-bitowy zmiennoprzecinkowy; ogranicza to format próbki wejściowej do FLT. (domyślna)

double

64-bitowy zmiennoprzecinkowy; ogranicza to wejściowy format próbki do DBL.

replaygain

Wybierz zachowanie po napotkaniu danych pobocznych ReplayGain w ramkach wejściowych.

drop

Usuń dane boczne ReplayGain, ignorując ich zawartość (domyślnie).

ignore

Zignoruj ​​dane poboczne ReplayGain, ale pozostaw je w ramce.

track

Preferuj wzmocnienie toru, jeśli jest obecne.

album

Preferuj wzmocnienie albumu, jeśli jest obecne.

replaygain_preamp

Wzmocnienie przedwzmacniacza w dB do zastosowania do wybranego wzmocnienia ponownego odtwarzania.

Wartość domyślna dla replaygain_preampto 0,0.

replaygain_noclip

Zapobiegaj przycinaniu, ograniczając zastosowane wzmocnienie.

Domyślna wartość replaygain_noclipto 1.

eval

Ustaw, gdy obliczane jest wyrażenie objętości.

Przyjmuje następujące wartości:

'once'

Oceniaj wyrażenie tylko raz podczas inicjowania filtru lub gdy 'volume'polecenie zostało wysłane

'frame'

oceń wyrażenie dla każdej przychodzącej ramki

Wartość domyślna to 'once„.

Wyrażenie objętości może zawierać następujące parametry.

n

numer klatki (od zera)

nb_channels

Liczba kanałów

nb_consumed_samples

liczba próbek zużytych przez filtr

nb_samples

liczba próbek w bieżącej ramce

pos

oryginalna pozycja ramki w pliku

pts

rama PTS

sample_rate

próbna stawka

startpts

PTS na początku transmisji

startt

czas na początku strumienia

t

czas klatek

tb

podstawa czasowa sygnatury czasowej

volume

ostatnia ustawiona wartość głośności

Zauważ, że kiedyevaljest ustawione na 'once' dostępne są tylko zmienne sample_ratei tb, wszystkie inne zmienne zostaną ocenione jako NAN.

8.115.1 Commands

Ten filtr obsługuje następujące polecenia:

volume

Zmodyfikuj wyrażenie objętości. Polecenie akceptuje tę samą składnię odpowiedniej opcji.

Jeśli podane wyrażenie jest niepoprawne, jest zachowywane z bieżącą wartością.

8.115.2 Examples

  • Zmniejsz o połowę głośność wejściowego dźwięku:
    volume=volume=0.5
    volume=volume=1/2
    volume=volume=-6.0206dB
    

    We wszystkich powyższych przykładach nazwany klucz dovolumemożna pominąć, np. jak w:

    volume=0.5
    
  • Zwiększ wejściową moc dźwięku o 6 decybeli dzięki precyzji stałoprzecinkowej:
    volume=volume=6dB:precision=fixed
    
  • Zanik głośności po czasie 10 z okresem anihilacji wynoszącym 5 sekund:
    volume='if(lt(t,10),1,max(1-(t-10)/5,0))':eval=frame
    

8.116 volumedetect

Wykryj głośność wejściowego wideo.

Filtr nie ma parametrów. Obsługuje tylko 16-bitowe próbki liczb całkowitych ze znakiem, więc dane wejściowe zostaną przekonwertowane w razie potrzeby. Statystyki dotyczące objętości zostaną wydrukowane w dzienniku po osiągnięciu końca strumienia wejściowego.

W szczególności pokaże średnią objętość (średnią kwadratową), maksymalną objętość (w przeliczeniu na próbkę) oraz początek histogramu zarejestrowanych wartości objętości (od wartości maksymalnej do skumulowanej 1/1000 próbek ).

Wszystkie objętości są w decybelach w stosunku do maksymalnej wartości PCM.

8.116.1 Examples

Oto fragment wyjścia:

[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

To znaczy, że:

  • Średnia kwadratowa energia wynosi około -27 dB, czyli 10^-2,7.
  • Największa próbka ma -4 dB, a dokładniej od -4 dB do -5 dB.
  • Jest 6 próbek przy -4 dB, 62 przy -5 dB, 286 przy -6 dB itd.

Innymi słowy podniesienie głośności o +4 dB nie powoduje żadnego obcinania, podniesienie o +5 dB powoduje obcinanie dla 6 próbek itd.

9 Audio Sources

Poniżej znajduje się opis aktualnie dostępnych źródeł dźwięku.

9.1 abuffer

Buforuj ramki audio i udostępniaj je w łańcuchu filtrów.

To źródło jest przeznaczone głównie do użytku programistycznego, w szczególności za pośrednictwem interfejsu zdefiniowanego wlibavfilter/buffersrc.h.

Przyjmuje następujące parametry:

time_base

Podstawa czasowa, która będzie używana do sygnatur czasowych przesłanych ramek. Musi to być liczba zmiennoprzecinkowa lub w formie numerator/ denominator.

sample_rate

Częstotliwość próbkowania przychodzących buforów audio.

sample_fmt

Przykładowy format przychodzących buforów audio. Przykładowa nazwa formatu lub odpowiadająca jej reprezentacja w postaci liczby całkowitej z wyliczenia AVSampleFormat wlibavutil/samplefmt.h

channel_layout

Układ kanałów przychodzących buforów audio. Albo nazwa układu kanału z channel_layout_map w libavutil/channel_layout.club odpowiadającą jej reprezentację w postaci liczby całkowitej z makr AV_CH_LAYOUT_* wlibavutil/channel_layout.h

channels

Liczba kanałów przychodzących buforów audio. Jeśli oba channelsi channel_layoutsą określone, muszą być spójne.

9.1.1 Examples

abuffer=sample_rate=44100:sample_fmt=s16p:channel_layout=stereo

poinstruuje źródło, aby zaakceptowało planarne 16-bitowe podpisane stereo przy 44100 Hz. Ponieważ format próbki o nazwie „s16p” odpowiada numerowi 6, a układ kanału „stereo” odpowiada wartości 0x3, jest to równoważne:

abuffer=sample_rate=44100:sample_fmt=6:channel_layout=0x3

9.2 aevalsrc

Wygeneruj sygnał audio określony przez wyrażenie.

To źródło przyjmuje na wejściu jedno lub więcej wyrażeń (po jednym dla każdego kanału), które są oceniane i wykorzystywane do generowania odpowiedniego sygnału audio.

To źródło akceptuje następujące opcje:

exprs

Ustaw listę wyrażeń rozdzielonych '|' dla każdego oddzielnego kanału. W przypadku channel_layoutopcja nie jest określona, ​​wybrany układ kanału zależy od ilości dostarczonych wyrażeń. W przeciwnym razie ostatnie określone wyrażenie jest stosowane do pozostałych kanałów wyjściowych.

channel_layout, c

Ustaw układ kanałów. Liczba kanałów w określonym układzie musi być równa liczbie określonych wyrażeń.

duration, d

Ustaw minimalny czas trwania źródła dźwięku. Zobacz (ffmpeg-utils) sekcję Czas trwania w podręczniku ffmpeg-utils(1), aby poznać akceptowaną składnię. Zauważ, że wynikowy czas trwania może być dłuższy niż określony, ponieważ wygenerowany dźwięk jest zawsze cięty na końcu pełnej klatki.

Jeśli nie zostanie określony lub podany czas trwania jest ujemny, dźwięk ma być generowany na zawsze.

nb_samples, n

Ustaw liczbę próbek na kanał na każdą ramkę wyjściową, domyślnie 1024.

sample_rate, s

Określ częstotliwość próbkowania, domyślnie 44100.

Każde wyrażenie w exprsmoże zawierać następujące stałe:

n

numer ocenianej próby, począwszy od 0

t

czas ocenianej próbki wyrażony w sekundach, począwszy od 0

s

próbna stawka

9.2.1 Examples

  • Generuj ciszę:
    aevalsrc=0
    
  • Wygeneruj sygnał sin o częstotliwości 440 Hz, ustaw częstotliwość próbkowania na 8000 Hz:
    aevalsrc="sin(440*2*PI*t):s=8000"
    
  • Wygeneruj sygnał dwukanałowy, określ wyraźnie układ kanałów (przedni środek + tylny środek):
    aevalsrc="sin(420*2*PI*t)|cos(430*2*PI*t):c=FC|BC"
    
  • Generuj biały szum:
    aevalsrc="-2+random(0)"
    
  • Wygeneruj sygnał z modulacją amplitudy:
    aevalsrc="sin(10*2*PI*t)*sin(880*2*PI*t)"
    
  • Generuj dudnienia różnicowe 2,5 Hz na nośniku 360 Hz:
    aevalsrc="0.1*sin(2*PI*(360-2.5/2)*t) | 0.1*sin(2*PI*(360+2.5/2)*t)"
    

9.3 afirsrc

Wygeneruj współczynniki FIR za pomocą metody próbkowania częstotliwości.

Otrzymany strumień może być używany z filtrem afir do filtrowania sygnału audio.

Filtr akceptuje następujące opcje:

taps, t

Ustaw liczbę współczynników filtrów w wyjściowym strumieniu audio. Wartość domyślna to 1025.

frequency, f

Ustaw punkty częstotliwości, z których ustawiana jest wielkość i faza. Musi być w kolejności nie malejącej, pierwszy element musi mieć wartość 0, a ostatni element musi mieć wartość 1. Elementy są oddzielone białymi spacjami.

magnitude, m

Ustaw wartość wielkości dla każdego punktu częstotliwości ustawionego przezfrequency. Liczba wartości musi być taka sama jak liczba punktów częstotliwości. Wartości są oddzielone białymi spacjami.

phase, p

Ustaw wartość fazy dla każdego punktu częstotliwości ustawionego przezfrequency. Liczba wartości musi być taka sama jak liczba punktów częstotliwości. Wartości są oddzielone białymi spacjami.

sample_rate, r

Ustaw częstotliwość próbkowania, domyślnie 44100.

nb_samples, n

Ustaw liczbę próbek na każdą klatkę. Wartość domyślna to 1024.

win_func, w

Ustaw funkcję okna. Domyślnie jest czarnoskóry.

9.4 anullsrc

Puste źródło dźwięku zwraca nieprzetworzone ramki audio. Jest to głównie przydatne jako szablon i do wykorzystania w narzędziach do analizy / debugowania lub jako źródło filtrów, które ignorują dane wejściowe (na przykład filtr sox synth).

To źródło akceptuje następujące opcje:

channel_layout, cl

Określa układ kanału i może być liczbą całkowitą lub łańcuchem reprezentującym układ kanału. Domyślna wartość channel_layout to „stereo”.

Sprawdź definicję channel_layout_map w libavutil/channel_layout.cdo mapowania między ciągami a wartościami układu kanału.

sample_rate, r

Określa częstotliwość próbkowania i domyślnie 44100.

nb_samples, n

Ustaw liczbę próbek na żądane ramki.

duration, d

Ustaw czas trwania źródła dźwięku. Zobacz (ffmpeg-utils) sekcję Czas trwania w podręczniku ffmpeg-utils(1), aby poznać akceptowaną składnię.

Jeśli nie zostanie określony lub podany czas trwania jest ujemny, dźwięk ma być generowany na zawsze.

9.4.1 Examples

  • Ustaw częstotliwość próbkowania na 48000 Hz, a układ kanałów na AV_CH_LAYOUT_MONO.
    anullsrc=r=48000:cl=4
    
  • Wykonaj tę samą operację z bardziej oczywistą składnią:
    anullsrc=r=48000:cl=mono
    

Wszystkie parametry muszą być wyraźnie zdefiniowane.

9.5 flite

Zsyntetuj wypowiedź głosową za pomocą biblioteki libflite.

Aby umożliwić kompilację tego filtra musisz skonfigurować FFmpeg z --enable-libflite.

Zauważ, że wersje biblioteki flite wcześniejsze niż 2.0 nie są bezpieczne wątkowo.

Filtr akceptuje następujące opcje:

list_voices

Jeśli jest ustawiony na 1, wymień nazwy dostępnych głosów i natychmiast wyjdź. Wartość domyślna to 0.

nb_samples, n

Ustaw maksymalną liczbę próbek na klatkę. Wartość domyślna to 512.

textfile

Ustaw nazwę pliku zawierającego tekst do mówienia.

text

Ustaw tekst do mówienia.

voice, v

Ustaw głos używany do syntezy mowy. Wartość domyślna to kal. Zobacz także list_voicesopcję.

9.5.1 Examples

  • Czytaj z plikuspeech.txti zsyntetyzuj tekst, używając standardowego głosu flite:
    flite=textfile=speech.txt
    
  • Przeczytaj określony tekst wybierając sltgłos:
    flite=text='So fare thee well, poor devil of a Sub-Sub, whose commentator I am':voice=slt
    
  • Wpisz tekst do ffmpeg:
    ffmpeg -f lavfi -i flite=text='So fare thee well, poor devil of a Sub-Sub, whose commentator I am':voice=slt
    
  • Robićffplaywypowiedz określony tekst, używając flitei lavfiurządzenia:
    ffplay -f lavfi flite=text='No more be grieved for which that thou hast done.'
    

Aby uzyskać więcej informacji o libflite, odwiedź: http://www.festvox.org/flite/

9.6 anoisesrc

Generuj szum dźwiękowy.

Filtr akceptuje następujące opcje:

sample_rate, r

Określ częstotliwość próbkowania. Wartość domyślna to 48000 Hz.

amplitude, a

Określ amplitudę (0,0–1,0) generowanego strumienia audio. Wartość domyślna to 1.0.

duration, d

Określ czas trwania generowanego strumienia audio. Brak określenia tej opcji skutkuje szumem o nieskończonej długości.

color, colour, c

Określ kolor szumu. Dostępne kolory szumów to biały, różowy, brązowy, niebieski, fioletowy i aksamitny. Domyślny kolor to biały.

seed, s

Określ wartość używaną do inicjowania PRNG.

nb_samples, n

Ustaw liczbę próbek na każdą klatkę wyjściową, domyślnie 1024.

9.6.1 Examples

  • Generuj 60 sekund szumu różowego z częstotliwością próbkowania 44,1 kHz i amplitudą 0,5:
    anoisesrc=d=60:c=pink:r=44100:a=0.5
    

9.7 hilbert

Generuj nieparzyste współczynniki transformaty Hilberta FIR.

Otrzymany strumień może być użyty z filtrem afirowym do przesunięcia fazowego sygnału o 90 stopni.

Jest to wykorzystywane w wielu schematach kodowania macierzowego oraz do generowania sygnałów analitycznych. Proces jest często zapisywany jako mnożenie przez i (lub j), jednostkę urojoną.

Filtr akceptuje następujące opcje:

sample_rate, s

Ustaw częstotliwość próbkowania, domyślnie 44100.

taps, t

Ustaw długość filtra FIR, domyślnie 22051.

nb_samples, n

Ustaw liczbę próbek na każdą klatkę.

win_func, w

Ustaw funkcję okna, która ma być używana podczas generowania współczynników FIR.

9.8 sinc

Generuj współczynniki FIR sinc kaiser-winded dolnoprzepustowe, górnoprzepustowe, pasmowoprzepustowe lub pasmowe odrzucające.

Otrzymany strumień może być używany z filtrem afir do filtrowania sygnału audio.

Filtr akceptuje następujące opcje:

sample_rate, r

Ustaw częstotliwość próbkowania, domyślnie 44100.

nb_samples, n

Ustaw liczbę próbek na każdą klatkę. Wartość domyślna to 1024.

hp

Ustaw częstotliwość górnoprzepustową. Wartość domyślna to 0.

lp

Ustaw częstotliwość dolnoprzepustową. Wartość domyślna to 0. Jeśli częstotliwość górnoprzepustowa jest niższa niż częstotliwość dolnoprzepustowa, a częstotliwość dolnoprzepustowa jest wyższa niż 0, wtedy filtr utworzy współczynniki filtru pasmowego, w przeciwnym razie współczynniki filtru pasmowego odrzucającego.

phase

Ustaw odpowiedź fazową filtra. Wartość domyślna to 50. Dozwolony zakres to od 0 do 100.

beta

Ustaw wersję beta okna Kaisera.

att

Ustaw tłumienie pasma zaporowego. Domyślnie 120dB, dopuszczalny zakres to od 40 do 180dB.

round

Włącz zaokrąglanie, domyślnie jest wyłączone.

hptaps

Ustaw liczbę odczepów dla filtra górnoprzepustowego.

lptaps

Ustaw liczbę kranów dla filtra dolnoprzepustowego.

9.9 sine

Generuj sygnał audio składający się z fali sinusoidalnej o amplitudzie 1/8.

Sygnał audio jest dokładny bitowo.

Filtr akceptuje następujące opcje:

frequency, f

Ustaw częstotliwość nośną. Wartość domyślna to 440 Hz.

beep_factor, b

Włącz okresowy sygnał dźwiękowy co sekundę z częstotliwością beep_factorrazy częstotliwość nośną. Wartość domyślna to 0, co oznacza, że ​​sygnał dźwiękowy jest wyłączony.

sample_rate, r

Określ częstotliwość próbkowania, domyślnie 44100.

duration, d

Określ czas trwania generowanego strumienia audio.

samples_per_frame

Ustaw liczbę próbek na klatkę wyjściową.

Wyrażenie może zawierać następujące stałe:

n

Numer (sekwencyjny) wyjściowej ramki audio, zaczynając od 0.

pts

PTS (Presentation TimeStamp) wyjściowej ramki audio, wyrażony w TBjednostkach.

t

PTS wyjściowej ramki audio wyrażony w sekundach.

TB

Podstawa czasu wyjściowych ramek audio.

Wartość domyślna to 1024.

9.9.1 Examples

  • Wygeneruj prostą sinusoidę 440 Hz:
    sine
    
  • Generuj falę sinusoidalną 220 Hz z sygnałem dźwiękowym 880 Hz co sekundę przez 5 sekund:
    sine=220:4:d=5
    sine=f=220:b=4:d=5
    sine=frequency=220:beep_factor=4:duration=5
    
  • Wygeneruj falę sinusoidalną 1 kHz zgodnie z 1602,1601,1602,1601,1602wzorcem 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

Poniżej znajduje się opis aktualnie dostępnych pochłaniaczy dźwięku.

10.1 abuffersink

Buforuj ramki audio i udostępniaj je na końcu łańcucha filtrów.

To ujście jest przeznaczone głównie do użytku programistycznego, w szczególności za pośrednictwem interfejsu zdefiniowanego wlibavfilter/buffersink.h lub system opcji.

Akceptuje wskaźnik do struktury AVABufferSinkContext, która definiuje formaty buforów przychodzących, które mają być przekazane jako nieprzezroczysty parametr do avfilter_init_filterinicjalizacji.

10.2 anullsink

Zerowy pochłaniacz dźwięku; nie rób absolutnie nic z wejściowym dźwiękiem. Przydaje się głównie jako szablon oraz do wykorzystania w narzędziach do analizy/debugowania.

11 Video Filters

Podczas konfigurowania kompilacji FFmpeg możesz wyłączyć dowolny z istniejących filtrów za pomocą --disable-filters. Dane wyjściowe konfiguracji pokażą filtry wideo zawarte w twojej kompilacji.

Poniżej znajduje się opis aktualnie dostępnych filtrów wideo.

11.1 addroi

Zaznacz interesujący Cię region w klatce wideo.

Dane ramki są przekazywane bez zmian, ale do ramki dołączane są metadane wskazujące regiony zainteresowania, które mogą wpływać na zachowanie późniejszego kodowania. Wiele regionów można oznaczyć, stosując wielokrotnie filtr.

x

Odległość regionu w pikselach od lewej krawędzi ramki.

y

Odległość regionu w pikselach od górnej krawędzi ramki.

w

Szerokość regionu w pikselach.

h

Wysokość regionu w pikselach.

Parametry x, yi są wyrażeniami i mogą zawierać następujące zmienne w:h

iw

Szerokość ramki wejściowej.

ih

Wysokość ramki wejściowej.

qoffset

Przesunięcie kwantyzacji do zastosowania w regionie.

Musi to być rzeczywista wartość z zakresu od -1 do +1. Wartość zero wskazuje na brak zmiany jakości. Wartość ujemna wymaga lepszej jakości (mniejsza kwantyzacja), podczas gdy wartość dodatnia wymaga gorszej jakości (większa kwantyzacja).

Zakres jest kalibrowany tak, aby wartości ekstremalne wskazywały na największe możliwe przesunięcie - jeśli reszta klatki jest zakodowana z najgorszą możliwą jakością, przesunięcie wynoszące -1 oznacza, że ​​ten region i tak powinien być zakodowany z najlepszą możliwą jakością. Wartości pośrednie są następnie interpolowane w sposób zależny od kodeka.

Na przykład w 10-bitowym H.264 parametr kwantyzacji waha się między -12 a 51. Typowa wartość qoffset wynosząca -1/10 wskazuje zatem, że ten region powinien być zakodowany z QP około jednej dziesiątej pełnego zakresu lepiej niż reszta ramy. Tak więc, jeśli większość klatki miałaby być zakodowana z QP około 30, ten region uzyskałby QP około 24 (przesunięcie około -1/10 * (51 - -12) = -6,3). Skrajna wartość -1 wskazywałaby, że ten region powinien być zakodowany z najlepszą możliwą jakością niezależnie od obróbki reszty ramki - to znaczy powinien być zakodowany z QP równym -12.

clear

Jeśli ustawione na true, usuń wszystkie istniejące regiony zainteresowania zaznaczone w ramce przed dodaniem nowego.

11.1.1 Examples

  • Oznacz środkową ćwiartkę kadru jako interesującą.
    addroi=iw/4:ih/4:iw/2:ih/2:-1/10
    
  • Oznacz obszar o szerokości 100 pikseli na lewej krawędzi ramki jako bardzo nieciekawy (do zakodowania ze znacznie niższą jakością niż reszta ramki).
    addroi=0:0:100:ih:+1/5
    

11.2 alphaextract

Wyodrębnij składnik alfa z wejścia jako wideo w skali szarości. Jest to szczególnie przydatne w przypadku alphamergefiltra.

11.3 alphamerge

Dodaj lub zastąp składnik alfa podstawowego wejścia wartością skali szarości drugiego wejścia. Jest to przeznaczone do użycia w alphaextractcelu umożliwienia transmisji lub przechowywania sekwencji ramek, które mają alfa w formacie, który nie obsługuje kanału alfa.

Na przykład, aby zrekonstruować pełne klatki z normalnego wideo zakodowanego w YUV i oddzielnego wideo utworzonego za pomocą programu alphaextract, możesz użyć:

movie=in_alpha.mkv [alpha]; [in][alpha] alphamerge [out]

11.4 amplify

Wzmocnij różnice między bieżącym pikselem a pikselami sąsiednich ramek w tej samej lokalizacji piksela.

Ten filtr akceptuje następujące opcje:

radius

Ustaw promień ramy. Wartość domyślna to 2. Dozwolony zakres to od 1 do 63. Na przykład promień 3 poinstruuje filtr, aby obliczył średnią z 7 klatek.

factor

Ustaw współczynnik, aby wzmocnić różnicę. Wartość domyślna to 2. Dozwolony zakres to od 0 do 65535.

threshold

Ustaw próg dla wzmocnienia różnicy. Jakakolwiek różnica większa lub równa tej wartości nie zmieni piksela źródłowego. Wartość domyślna to 10. Dozwolony zakres to od 0 do 65535.

tolerance

Ustaw tolerancję na wzmocnienie różnicy. Jakakolwiek różnica niższa od tej wartości nie zmieni piksela źródłowego. Wartość domyślna to 0. Dozwolony zakres to od 0 do 65535.

low

Ustaw dolny limit zmiany piksela źródłowego. Wartość domyślna to 65535. Dozwolony zakres to od 0 do 65535. Ta opcja kontroluje maksymalną możliwą wartość, która zmniejszy wartość piksela źródłowego.

high

Ustaw górny limit zmiany piksela źródłowego. Wartość domyślna to 65535. Dozwolony zakres to od 0 do 65535. Ta opcja kontroluje maksymalną możliwą wartość, która zwiększy wartość piksela źródłowego.

planes

Ustaw samoloty do filtrowania. Domyślność to wszystko. Dozwolony zakres to od 0 do 15.

11.4.1 Commands

Ten filtr obsługuje następujące polecenia odpowiadające opcji o tej samej nazwie:

factor
threshold
tolerance
low
high
planes

11.5 ass

Taki sam jak filtr napisów , z tą różnicą, że nie wymaga do działania libavcodec i libavformat. Z drugiej strony ogranicza się do plików napisów ASS (Advanced Substation Alpha).

Ten filtr akceptuje następującą opcję oprócz typowych opcji z filtra napisów :

shaping

Ustaw silnik kształtowania

Dostępne wartości to:

'auto'

Domyślny silnik kształtowania libass, który jest najlepszym dostępnym.

'simple'

Szybki, niezależny od fontów moduł do kształtowania, który może wykonywać tylko zamiany

'complex'

Wolniejszy shaper używający OpenType do podstawień i pozycjonowania

Wartość domyślna to auto.

11.6 atadenoise

Zastosuj adaptacyjny odszumiacz uśredniania w czasie do wejścia wideo.

Filtr akceptuje następujące opcje:

0a

Ustaw próg A dla 1. płaszczyzny. Wartość domyślna to 0,02. Prawidłowy zakres to 0 do 0,3.

0b

Ustaw próg B dla 1. płaszczyzny. Wartość domyślna to 0,04. Prawidłowy zakres to 0 do 5.

1a

Ustaw próg A dla drugiej płaszczyzny. Wartość domyślna to 0,02. Prawidłowy zakres to 0 do 0,3.

1b

Ustaw próg B dla drugiej płaszczyzny. Wartość domyślna to 0,04. Prawidłowy zakres to 0 do 5.

2a

Ustaw próg A dla 3 płaszczyzny. Wartość domyślna to 0,02. Prawidłowy zakres to 0 do 0,3.

2b

Ustaw próg B dla 3 płaszczyzny. Wartość domyślna to 0,04. Prawidłowy zakres to 0 do 5.

Próg A jest przeznaczony do reagowania na nagłe zmiany sygnału wejściowego, a próg B jest przeznaczony do reagowania na ciągłe zmiany sygnału wejściowego.

s

Ustaw liczbę klatek, których filtr będzie używał do uśredniania. Domyślnie 9. Musi być nieparzystą liczbą z zakresu [5, 129].

p

Ustaw, jakich płaszczyzn filtru ramki użyje do uśredniania. Domyślność to wszystko.

a

Ustaw jakiego wariantu filtr algorytmu będzie używał do uśredniania. Domyślnie jest prównoległy. Alternatywnie można ustawić na sserial.

Równoległe może być szybsze niż szeregowe, podczas gdy odwrotnie nigdy nie jest prawdą. Parallel przerwie wcześnie przy pierwszej zmianie, która jest większa niż progi, podczas gdy serial będzie kontynuował przetwarzanie drugiej strony ramek, jeśli są one równe lub poniżej progów.

0s
1s
2s

Ustaw sigma dla 1. płaszczyzny, 2. płaszczyzny lub 3. płaszczyzny. Wartość domyślna to 32767. Prawidłowy zakres to od 0 do 32767. Ta opcja kontroluje wagę każdego piksela w promieniu zdefiniowanym przez rozmiar. Wartość domyślna oznacza, że ​​każdy piksel ma taką samą wagę. Ustawienie tej opcji na 0 skutecznie wyłącza filtrowanie.

11.6.1 Commands

Ten filtr obsługuje te same polecenia, co opcje, z wyjątkiem opcji s. Polecenie akceptuje tę samą składnię odpowiedniej opcji.

11.7 avgblur

Zastosuj filtr średniego rozmycia.

Filtr akceptuje następujące opcje:

sizeX

Ustaw rozmiar promienia poziomego.

planes

Ustaw samoloty do filtrowania. Domyślnie filtrowane są wszystkie samoloty.

sizeY

Ustaw rozmiar promienia pionowego, jeśli zero będzie taki sam jak sizeX. Wartość domyślna to 0.

11.7.1 Commands

Ten filtr obsługuje te same polecenia, co opcje. Polecenie akceptuje tę samą składnię odpowiedniej opcji.

Jeśli podane wyrażenie jest niepoprawne, jest zachowywane z bieżącą wartością.

11.8 bbox

Oblicz obwiednię dla nieczarnych pikseli w płaszczyźnie luminancji ramki wejściowej.

Ten filtr oblicza obwiednię zawierającą wszystkie piksele o wartości luminancji większej niż minimalna dozwolona wartość. Parametry opisujące ramkę ograniczającą są drukowane w dzienniku filtra.

Filtr akceptuje następującą opcję:

min_val

Ustaw minimalną wartość luminancji. Wartość domyślna to 16.

11.8.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

11.9 bilateral

Zastosuj dwustronny filtr, wygładzając przestrzennie, zachowując krawędzie.

Filtr akceptuje następujące opcje:

sigmaS

Ustaw sigma funkcji Gaussa, aby obliczyć wagę przestrzenną. Dozwolony zakres to 0 do 512. Wartość domyślna to 0,1.

sigmaR

Ustaw sigma funkcji Gaussa, aby obliczyć wagę zakresu. Dozwolony zakres to 0 do 1. Wartość domyślna to 0,1.

planes

Ustaw samoloty do filtrowania. Domyślnie jest tylko pierwszy.

11.9.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

11.10 bitplanenoise

Pokaż i zmierz szum w płaszczyźnie bitowej.

Filtr akceptuje następujące opcje:

bitplane

Ustaw samolot do analizy. Wartość domyślna to 1.

filter

Odfiltruj zaszumione piksele z bitplanepowyższego zestawu. Domyślnie jest wyłączone.

11.11 blackdetect

Wykryj interwały wideo, które są (prawie) całkowicie czarne. Może być przydatny do wykrywania przejść rozdziałów, reklam lub nieprawidłowych nagrań.

Filtr wysyła swoją analizę wykrywania zarówno do dziennika, jak i metadanych ramki. Jeśli zostanie znaleziony czarny segment o co najmniej określonym minimalnym czasie trwania, do dziennika zostanie wydrukowana linia ze znacznikami czasu rozpoczęcia i zakończenia oraz czasem trwania z poziomem info. Ponadto debugna klatkę drukowana jest linia logarytmiczna z poziomem, pokazująca ilość czerni wykrytą dla tej ramki.

Filtr dołącza również metadane do pierwszej klatki czarnego segmentu z kluczem lavfi.black_startoraz do pierwszej klatki po zakończeniu czarnego segmentu z kluczem lavfi.black_end. Wartość to sygnatura czasowa ramki. Te metadane są dodawane niezależnie od określonego minimalnego czasu trwania.

Filtr akceptuje następujące opcje:

black_min_duration, d

Ustaw minimalny wykryty czas trwania czerni wyrażony w sekundach. Musi to być nieujemna liczba zmiennoprzecinkowa.

Wartość domyślna to 2,0.

picture_black_ratio_th, pic_th

Ustaw próg uznania obrazu za „czarny”. Wyraź minimalną wartość stosunku:

nb_black_pixels / nb_pixels

dla których obraz jest uważany za czarny. Wartość domyślna to 0,98.

pixel_black_th, pix_th

Ustaw próg dla uznania piksela za „czarny”.

Próg wyraża maksymalną wartość luminancji piksela, dla której piksel jest uważany za „czarny”. Podana wartość jest skalowana zgodnie z następującym równaniem:

absolute_threshold = luminance_minimum_value + pixel_black_th * luminance_range_size

luminance_range_sizei luminance_minimum_valuezależy od wejściowego formatu wideo, zakres wynosi [0-255] dla pełnozakresowych formatów YUV i [16-235] dla niepełnych formatów YUV.

Wartość domyślna to 0,10.

Poniższy przykład ustawia maksymalny próg pikseli na wartość minimalną i wykrywa tylko odstępy czerni wynoszące co najmniej 2 sekundy:

blackdetect=d=2:pix_th=0.00

11.12 blackframe

Wykryj ramki, które są (prawie) całkowicie czarne. Może być przydatny do wykrywania przejść między rozdziałami lub reklam. Linie wyjściowe składają się z numeru wykrytej klatki, procentu zaczernienia, pozycji w pliku, jeśli jest znana lub -1 oraz znacznika czasu w sekundach.

Aby wyświetlić linie wyjściowe, musisz ustawić loglevel co najmniej na wartość AV_LOG_INFO.

Ten filtr eksportuje metadane ramek lavfi.blackframe.pblack. Wartość reprezentuje procent pikseli na obrazie, które są poniżej wartości progowej.

Przyjmuje następujące parametry:

amount

Procent pikseli, które muszą być poniżej progu; domyślnie jest to 98.

threshold, thresh

Próg, poniżej którego wartość piksela jest uważana za czarną; domyślnie jest to 32.

11.13 blend

Połącz ze sobą dwie klatki wideo.

Filtr blendprzyjmuje dwa strumienie wejściowe i wyprowadza jeden strumień, pierwsze wejście to warstwa „górna”, a drugie wejście to warstwa „dolna”. Domyślnie wyjście kończy się, gdy kończy się najdłuższe wejście.

Filtr tblend(mieszanie czasu) pobiera dwie kolejne klatki z jednego strumienia i wyświetla wynik uzyskany przez zmieszanie nowej klatki ze starą.

Poniżej znajduje się opis akceptowanych opcji.

c0_mode
c1_mode
c2_mode
c3_mode
all_mode

Ustaw tryb mieszania dla określonego składnika piksela lub wszystkich składników w przypadku all_mode. Wartość domyślna to normal.

Dostępne wartości dla trybów komponentów to:

'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

Ustaw przezroczystość mieszania dla określonego składnika piksela lub wszystkich składników w przypadku all_opacity. Używany tylko w połączeniu z trybami mieszania składników pikseli.

c0_expr
c1_expr
c2_expr
c3_expr
all_expr

Ustaw wyrażenie mieszania dla określonego składnika pikseli lub wszystkich składników pikseli w przypadku all_expr. Zwróć uwagę, że powiązane opcje trybu zostaną zignorowane, jeśli zostaną ustawione.

Wyrażenia mogą używać następujących zmiennych:

N

Numer kolejny przefiltrowanej ramki, począwszy od 0.

X
Y

współrzędne aktualnej próbki

W
H

szerokość i wysokość aktualnie filtrowanej płaszczyzny

SW
SH

Skala szerokości i wysokości filtrowanej płaszczyzny. Jest to stosunek wymiarów aktualnej płaszczyzny do płaszczyzny luma, np. dla yuv420pramy wartości są 1,1dla płaszczyzny luma i 0.5,0.5dla płaszczyzn chroma.

T

Czas bieżącej klatki wyrażony w sekundach.

TOP, A

Wartość składnika piksela w bieżącej lokalizacji dla pierwszej klatki wideo (górna warstwa).

BOTTOM, B

Wartość składnika piksela w bieżącej lokalizacji dla drugiej klatki wideo (dolna warstwa).

Filtr blendobsługuje również opcje framesync .

11.13.1 Examples

  • Zastosuj przejście od dolnej warstwy do górnej warstwy w ciągu pierwszych 10 sekund:
    blend=all_expr='A*(if(gte(T,10),1,T/10))+B*(1-(if(gte(T,10),1,T/10)))'
    
  • Zastosuj liniowe przejście poziome od górnej warstwy do dolnej warstwy:
    blend=all_expr='A*(X/W)+B*(1-X/W)'
    
  • Zastosuj efekt szachownicy 1x1:
    blend=all_expr='if(eq(mod(X,2),mod(Y,2)),A,B)'
    
  • Zastosuj odkryj lewy efekt:
    blend=all_expr='if(gte(N*SW+X,W),A,B)'
    
  • Zastosuj efekt odkrywania:
    blend=all_expr='if(gte(Y-N*SH,0),A,B)'
    
  • Zastosuj efekt odkrywania w lewo:
    blend=all_expr='if(gte(T*SH*40+Y,H)*gte((T*40*SW+X)*W/H,W),A,B)'
    
  • Podziel film po przekątnej i pokazuje górną i dolną warstwę z każdej strony:
    blend=all_expr='if(gt(X,Y*(W/H)),A,B)'
    
  • Wyświetl różnice między bieżącą a poprzednią klatką:
    tblend=all_mode=grainextract
    

11.13.2 Commands

Ten filtr obsługuje te same polecenia, co opcje.

11.14 blockdetect

Określa blokowość ramek bez zmiany ramek wejściowych.

Na podstawie Remco Muijsa i Ihora Kirenko: „Miara artefaktów bez odniesienia do adaptacyjnego przetwarzania wideo”. 2005 13. europejska konferencja na temat przetwarzania sygnałów.

Filtr akceptuje następujące opcje:

period_min
period_max

Ustaw minimalne i maksymalne wartości do określania siatek pikseli (okresów). Wartości domyślne to [3,24].

planes

Ustaw samoloty do filtrowania. Domyślnie jest tylko pierwszy.

11.14.1 Examples

  • Określ blokowość dla pierwszego samolotu i wyszukaj okresy w obrębie [8,32]:
    blockdetect=period_min=8:period_max=32:planes=1
    

11.15 blurdetect

Określa rozmycie ramek bez zmiany ramek wejściowych.

Na podstawie Marziliano, Pina i in. „Pomiar rozmycia percepcyjnego bez odniesienia”. Pozwala na skrót oparty na blokach.

Filtr akceptuje następujące opcje:

low
high

Ustaw niskie i wysokie wartości progowe używane przez algorytm progowania Canny.

Wysoki próg wybiera „silne” piksele krawędzi, które są następnie połączone przez 8-łączność z pikselami „słabej” krawędzi wybranymi przez dolny próg.

lowa highwartości progowe muszą być wybrane z zakresu [0,1] i lowpowinny być mniejsze lub równe high.

Wartość domyślna dla lowis 20/255, a wartość domyślna dla high is 50/255.

radius

Zdefiniuj promień, aby szukać lokalnych maksimów wokół piksela krawędzi.

block_pct

Określ rozmycie tylko dla najbardziej znaczących bloków, podając je w procentach.

block_width

Określ rozmycie dla bloków o szerokości block_width. Jeśli jest ustawiona na dowolną wartość mniejszą niż 1, nie są używane żadne bloki, a cały obraz jest przetwarzany jako jeden bez względu na block_height.

block_height

Określ rozmycie bloków wysokości block_height. Jeśli jest ustawiona na dowolną wartość mniejszą niż 1, nie są używane żadne bloki, a cały obraz jest przetwarzany jako jeden bez względu na block_width.

planes

Ustaw samoloty do filtrowania. Domyślnie jest tylko pierwszy.

11.15.1 Examples

  • Określ rozmycie dla 80% najważniejszych bloków 32x32:
    blurdetect=block_width=32:block_height=32:block_pct=80
    

11.16 bm3d

Odszumianie klatek za pomocą algorytmu Block-Matching 3D.

Filtr akceptuje następujące opcje.

sigma

Ustaw siłę odszumiania. Wartość domyślna to 1. Dozwolony zakres to od 0 do 999,9. Algorytm odszumiania jest bardzo czuły na sigma, więc dostosuj go do źródła.

block

Ustaw lokalny rozmiar poprawki. To ustawia wymiary w 2D.

bstep

Ustaw krok przesuwny do obróbki bloków. Wartość domyślna to 4. Dozwolony zakres to od 1 do 64. Mniejsze wartości pozwalają na przetwarzanie większej liczby bloków referencyjnych i są wolniejsze.

group

Ustaw maksymalną liczbę podobnych bloków dla trzeciego wymiaru. Wartość domyślna to 1. Gdy ustawiona jest na 1, dopasowanie bloku nie jest wykonywane. Większe wartości pozwalają na większą liczbę bloków w jednej grupie. Dozwolony zakres to od 1 do 256.

range

Ustaw promień dla dopasowania bloku wyszukiwania. Wartość domyślna to 9. Dozwolony zakres to od 1 do INT32_MAX.

mstep

Ustaw krok między dwiema lokalizacjami wyszukiwania w celu dopasowania bloku. Wartość domyślna to 1. Dozwolony zakres to od 1 do 64. Mniejszy jest wolniejszy.

thmse

Ustaw próg błędu średniokwadratowego dla dopasowania bloków. Prawidłowy zakres to 0 do INT32_MAX.

hdthr

Ustaw parametr progowania dla twardego progowania w transformowanej domenie 3D. Większe wartości skutkują silniejszym filtrowaniem twardego progu w domenie częstotliwości.

estim

Ustaw tryb szacowania filtrowania. Może być basiclub final. Wartość domyślna to basic.

ref

Jeśli jest włączony, filtr użyje drugiego strumienia do dopasowywania bloków. Wartość domyślna jest wyłączona dla basicwartości estimopcji i zawsze włączona, jeśli wartość estimwynosi final.

planes

Ustaw samoloty do filtrowania. Domyślnie dostępne są wszystkie z wyjątkiem alfa.

11.16.1 Examples

  • Podstawowe filtrowanie z bm3d:
    bm3d=sigma=3:block=4:bstep=2:group=1:estim=basic
    
  • Tak samo jak powyżej, ale filtrowanie tylko lumy:
    bm3d=sigma=3:block=4:bstep=2:group=1:estim=basic:planes=1
    
  • Tak samo jak powyżej, ale z obydwoma trybami estymacji:
    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
    
  • To samo co powyżej, ale zamiast tego prefiltr z filtrem 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

Zastosuj algorytm boxblur do wejściowego wideo.

Przyjmuje następujące parametry:

luma_radius, lr
luma_power, lp
chroma_radius, cr
chroma_power, cp
alpha_radius, ar
alpha_power, ap

Poniżej znajduje się opis akceptowanych opcji.

luma_radius, lr
chroma_radius, cr
alpha_radius, ar

Ustaw wyrażenie dla promienia prostokąta w pikselach używanego do rozmycia odpowiedniej płaszczyzny wejściowej.

Wartość promienia musi być liczbą nieujemną i nie może być większa niż wartość wyrażenia min(w,h)/2dla płaszczyzn luma i alfa oraz min(cw,ch)/2dla płaszczyzn chroma.

Wartość domyślna dlaluma_radiusto „2”. Jeśli nie określono, chroma_radiusorazalpha_radiusdomyślnie na odpowiednią wartość ustawioną dlaluma_radius.

Wyrażenia mogą zawierać następujące stałe:

w
h

Wejściowa szerokość i wysokość w pikselach.

cw
ch

Wejściowa szerokość i wysokość obrazu chrominancji w pikselach.

hsub
vsub

Wartości podpróbki chrominancji poziomej i pionowej. Na przykład dla formatu pikseli „yuv422p” hsubwynosi 2, a vsub1.

luma_power, lp
chroma_power, cp
alpha_power, ap

Określ, ile razy filtr boxblur zostanie zastosowany do odpowiedniej płaszczyzny.

Wartość domyślna dlaluma_powerwynosi 2. Jeśli nie określono, chroma_powerorazalpha_powerdomyślnie na odpowiednią wartość ustawioną dlaluma_power.

Wartość 0 wyłączy efekt.

11.17.1 Examples

  • Zastosuj filtr boxblur z promieniami luma, chroma i alfa ustawionymi na 2:
    boxblur=luma_radius=2:luma_power=1
    boxblur=2:1
    
  • Ustaw promień luma na 2, a promień alfa i chroma na 0:
    boxblur=2:1:cr=0:ar=0
    
  • Ustaw promienie luma i chroma na ułamek wymiaru wideo:
    boxblur=luma_radius=min(h\,w)/10:luma_power=1:chroma_radius=min(cw\,ch)/10:chroma_power=1
    

11.18 bwdif

Usuń przeplot wideo wejściowego („bwdif” oznacza „Bob Weaver Deinterlacing Filter”).

Adaptacyjne usuwanie przeplotu ruchu oparte na yadif z wykorzystaniem algorytmów w3fdif i interpolacji sześciennej. Przyjmuje następujące parametry:

mode

Tryb przeplotu do przyjęcia. Przyjmuje jedną z następujących wartości:

0, send_frame

Wyprowadza jedną klatkę na każdą klatkę.

1, send_field

Wyprowadza jedną ramkę dla każdego pola.

Wartość domyślna to send_field.

parity

Parzystość pola obrazu przyjęta dla wejściowego wideo z przeplotem. Przyjmuje jedną z następujących wartości:

0, tff

Załóżmy, że górne pole jest pierwsze.

1, bff

Załóżmy, że dolne pole jest pierwsze.

-1, auto

Włącz automatyczne wykrywanie parzystości pola.

Wartość domyślna to auto. Jeśli przeplot jest nieznany lub dekoder nie eksportuje tych informacji, jako pierwsze zostanie przyjęte górne pole.

deint

Określ, które klatki usunąć z przeplotu. Akceptuje jedną z następujących wartości:

0, all

Usuń przeplot ze wszystkich klatek.

1, interlaced

Usuwaj tylko klatki oznaczone jako z przeplotem.

Wartość domyślna to all.

11.19 cas

Zastosuj filtr Adaptacyjne wyostrzanie kontrastu do strumienia wideo.

Filtr akceptuje następujące opcje:

strength

Ustaw siłę ostrzenia. Wartość domyślna to 0.

planes

Ustaw samoloty do filtrowania. Domyślną wartością jest filtrowanie wszystkich płaszczyzn z wyjątkiem płaszczyzny alfa.

11.19.1 Commands

Ten filtr obsługuje te same polecenia, co opcje.

11.20 chromahold

Usuń wszystkie informacje o kolorach dla wszystkich kolorów z wyjątkiem jednego.

Filtr akceptuje następujące opcje:

color

Kolor, który nie zostanie zastąpiony neutralnym chroma.

similarity

Procent podobieństwa z powyższym kolorem. 0.01 pasuje tylko do dokładnego koloru klucza, a 1.0 pasuje do wszystkiego.

blend

Procent mieszanki. 0.0 sprawia, że ​​piksele są albo całkowicie szare, albo wcale nie są szare. Wyższe wartości skutkują bardziej zachowanym kolorem.

yuv

Sygnalizuje, że przekazany kolor jest już w YUV zamiast RGB.

Dosłowne kolory, takie jak „zielony” lub „czerwony”, nie mają już sensu, gdy ta opcja jest włączona. Może to służyć do przekazywania dokładnych wartości YUV jako liczb szesnastkowych.

11.20.1 Commands

Ten filtr obsługuje te same polecenia, co opcje. Polecenie akceptuje tę samą składnię odpowiedniej opcji.

Jeśli podane wyrażenie jest niepoprawne, jest zachowywane z bieżącą wartością.

11.21 chromakey

Kluczowanie kolorów/kolorów w przestrzeni kolorów YUV.

Filtr akceptuje następujące opcje:

color

Kolor, który zostanie zastąpiony przezroczystością.

similarity

Procent podobieństwa z kolorem klucza.

0.01 pasuje tylko do dokładnego koloru klucza, a 1.0 pasuje do wszystkiego.

blend

Procent mieszanki.

0.0 sprawia, że ​​piksele są w pełni przezroczyste lub w ogóle nie są przezroczyste.

Wyższe wartości skutkują półprzezroczystymi pikselami, przy większej przezroczystości kolor pikseli jest bardziej zbliżony do koloru kluczowego.

yuv

Sygnalizuje, że przekazany kolor jest już w YUV zamiast RGB.

Dosłowne kolory, takie jak „zielony” lub „czerwony”, nie mają już sensu, gdy ta opcja jest włączona. Może to służyć do przekazywania dokładnych wartości YUV jako liczb szesnastkowych.

11.21.1 Commands

Ten filtr obsługuje te same polecenia, co opcje. Polecenie akceptuje tę samą składnię odpowiedniej opcji.

Jeśli podane wyrażenie jest niepoprawne, jest zachowywane z bieżącą wartością.

11.21.2 Examples

  • Ustaw przezroczystość każdego zielonego piksela w obrazie wejściowym:
    ffmpeg -i input.png -vf chromakey=green out.png
    
  • Nałóż film z zielonego ekranu na statyczne czarne tło.
    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 akcelerowało kluczowanie kolorów/chroma w przestrzeni kolorów YUV.

Ten filtr działa jak normalny filtr chromakey, ale działa na ramkach CUDA. po więcej szczegółów i parametrów zobacz chromakey .

11.22.1 Examples

  • Spraw, aby wszystkie zielone piksele w wejściowym wideo były przezroczyste i użyj ich jako nakładki dla innego wideo:
    ./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
    
  • Przetwórz dwa źródła oprogramowania, jawnie przesyłając ramki:
    ./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

Zmniejsz szum chrominancji.

Filtr akceptuje następujące opcje:

thres

Ustaw próg dla uśredniania wartości chrominancji. Suma bezwzględnej różnicy składowych pikseli Y, U i V bieżącego piksela i sąsiednich pikseli poniżej tego progu zostanie użyta do uśredniania. Komponent Luma pozostaje niezmieniony i jest kopiowany na wyjście. Wartość domyślna to 30. Dozwolony zakres to od 1 do 200.

sizew

Ustaw promień poziomy prostokąta używanego do uśredniania. Dozwolony zakres to od 1 do 100. Wartość domyślna to 5.

sizeh

Ustaw promień pionowy prostokąta używanego do uśredniania. Dozwolony zakres to od 1 do 100. Wartość domyślna to 5.

stepw

Ustaw krok poziomy podczas uśredniania. Wartość domyślna to 1. Dozwolony zakres to od 1 do 50. Przydatne głównie do przyspieszenia filtrowania.

steph

Ustaw krok w pionie podczas uśredniania. Wartość domyślna to 1. Dozwolony zakres to od 1 do 50. Przydatne głównie do przyspieszenia filtrowania.

threy

Ustaw próg Y dla uśredniania wartości chrominancji. Ustaw dokładniejszą kontrolę dla maksymalnej dozwolonej różnicy między komponentami Y bieżącego piksela i sąsiednich pikseli. Wartość domyślna to 200. Dozwolony zakres to od 1 do 200.

threu

Ustaw próg U dla uśredniania wartości chrominancji. Ustaw dokładniejszą kontrolę dla maksymalnej dozwolonej różnicy między składnikami U bieżącego piksela i sąsiednich pikseli. Wartość domyślna to 200. Dozwolony zakres to od 1 do 200.

threv

Ustaw próg V dla uśredniania wartości chrominancji. Ustaw dokładniejszą kontrolę dla maksymalnej dozwolonej różnicy między komponentami V bieżącego piksela i sąsiednich pikseli. Wartość domyślna to 200. Dozwolony zakres to od 1 do 200.

distance

Ustaw typ odległości używany w obliczeniach.

'manhattan'

Absolutna różnica.

'euclidean'

Różnica do kwadratu.

Domyślny typ odległości to Manhattan.

11.23.1 Commands

Ten filtr obsługuje te same polecenia, co opcje. Polecenie akceptuje tę samą składnię odpowiedniej opcji.

11.24 chromashift

Przesuwaj piksele chrominancji w poziomie i/lub w pionie.

Filtr akceptuje następujące opcje:

cbh

Ustaw ilość, aby poziomo przesunąć chroma-blue.

cbv

Ustaw ilość, aby przesunąć kolor niebieski w pionie.

crh

Ustaw ilość, aby przesunąć chroma-czerwień w poziomie.

crv

Ustaw ilość, aby przesunąć chroma-czerwień w pionie.

edge

Ustaw tryb krawędzi, może być smear, domyślny lub warp.

11.24.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

11.25 ciescope

Wyświetl diagram kolorów CIE z nałożonymi na niego pikselami.

Filtr akceptuje następujące opcje:

system

Ustaw system kolorów.

'ntsc, 470m'
'ebu, 470bg'
'smpte'
'240m'
'apple'
'widergb'
'cie1931'
'rec709, hdtv'
'uhdtv, rec2020'
'dcip3'
cie

Ustaw system CIE.

'xyy'
'ucs'
'luv'
gamuts

Ustaw, jakie gamy rysować.

Zobacz systemopcję dla dostępnych wartości.

size, s

Ustaw rozmiar ciescope, domyślnie ustawiony na 512.

intensity, i

Ustaw intensywność używaną do mapowania wejściowych wartości pikseli na diagram CIE.

contrast

Ustaw kontrast używany do rysowania kolorów języka, które są poza gamą aktywnego systemu kolorów.

corrgamma

Poprawne gamma wyświetlane na oscyloskopie, domyślnie włączone.

showwhite

Pokaż biały punkt na diagramie CIE, domyślnie wyłączony.

gamma

Ustaw gamma wejścia. Używany tylko z wejściową przestrzenią kolorów XYZ.

fill

Wypełnij kolorami CIE. Domyślnie jest włączony.

11.26 codecview

Wizualizuj informacje eksportowane przez niektóre kodeki.

Niektóre kodeki mogą eksportować informacje za pośrednictwem ramek przy użyciu danych pobocznych lub w inny sposób. Na przykład, niektóre kodeki oparte na MPEG eksportują wektory ruchu za pomocą export_mvsflagi w kodekuflags2opcja.

Filtr akceptuje następującą opcję:

block

Wyświetlaj strukturę partycji bloków za pomocą płaszczyzny luma.

mv

Ustaw wektory ruchu do wizualizacji.

Dostępne flagi dla mvto:

'pf'

przewidywane w przód wartości MV ramek P

'bf'

przewidywane w przód wartości MV ramek B

'bb'

przewidywane wstecz wartości MV ramek B

qp

Wyświetlaj parametry kwantyzacji za pomocą płaszczyzn chrominancji.

mv_type, mvt

Ustaw typ wektorów ruchu do wizualizacji. Obejmuje MV ze wszystkich ramek, chyba że określono w frame_typeopcji.

Dostępne flagi dla mv_typeto:

'fp'

przewidywane wartości MV

'bp'

MVs przewidywane wstecz

frame_type, ft

Ustaw typ ramki, aby zwizualizować wektory ruchu.

Dostępne flagi dla frame_typeto:

'if'

ramki kodowane wewnętrznie (ramki I)

'pf'

przewidywane klatki (klatki P)

'bf'

ramki przewidywane dwukierunkowo (ramki B)

11.26.1 Examples

  • Wizualizuj przewidywane wartości MV wszystkich ramek za pomocą ffplay:
    ffplay -flags2 +export_mvs input.mp4 -vf codecview=mv_type=fp
    
  • Wizualizuj wielokierunkowe wartości MV ramek P i B za pomocą ffplay:
    ffplay -flags2 +export_mvs input.mp4 -vf codecview=mv=pf+bf+bb
    

11.27 colorbalance

Modyfikuj intensywność kolorów podstawowych (czerwony, zielony i niebieski) ramek wejściowych.

Filtr umożliwia regulację klatki wejściowej w obszarach cieni, półcieni lub świateł w celu uzyskania balansu czerwonego-cyjanowego, zielonego-magenta lub niebiesko-żółtego.

Dodatnia wartość dostosowania przesuwa równowagę w kierunku koloru podstawowego, a ujemna w kierunku koloru uzupełniającego.

Filtr akceptuje następujące opcje:

rs
gs
bs

Dostosuj czerwone, zielone i niebieskie cienie (najciemniejsze piksele).

rm
gm
bm

Dostosuj czerwone, zielone i niebieskie półcienie (średnie piksele).

rh
gh
bh

Dostosuj czerwone, zielone i niebieskie światła (najjaśniejsze piksele).

Dozwolone zakresy dla opcji to [-1.0, 1.0]. Wartości domyślne to 0.

pl

Zachowaj jasność podczas zmiany balansu kolorów. Domyślnie jest wyłączone.

11.27.1 Examples

  • Dodaj czerwony kolor do cieni:
    colorbalance=rs=.3
    

11.27.2 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

11.28 colorcontrast

Dostosuj kontrast kolorów między składnikami RGB.

Filtr akceptuje następujące opcje:

rc

Ustaw kontrast czerwono-cyjan. Wartość domyślna to 0,0. Dozwolony zakres to od -1,0 do 1,0.

gm

Ustaw kontrast zielono-purpurowy. Wartość domyślna to 0,0. Dozwolony zakres to od -1,0 do 1,0.

by

Ustaw kontrast niebiesko-żółty. Wartość domyślna to 0,0. Dozwolony zakres to od -1,0 do 1,0.

rcw
gmw
byw

Ustaw wagę każdej wartości opcji rc, gm, . byWartość domyślna to 0,0. Dozwolony zakres to od 0,0 do 1,0. Jeśli wszystkie wagi wynoszą 0,0, filtrowanie jest wyłączone.

pl

Ustaw ilość zachowania lekkości. Wartość domyślna to 0,0. Dozwolony zakres to od 0,0 do 1,0.

11.28.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

11.29 colorcorrect

Dostosuj selektywnie balans bieli koloru dla czerni i bieli. Ten filtr działa w przestrzeni kolorów YUV.

Filtr akceptuje następujące opcje:

rl

Ustaw czerwony cień. Dozwolony zakres to od -1,0 do 1,0. Wartość domyślna to 0.

bl

Ustaw niebieski punkt cienia. Dozwolony zakres to od -1,0 do 1,0. Wartość domyślna to 0.

rh

Ustaw czerwone podświetlenie. Dozwolony zakres to od -1,0 do 1,0. Wartość domyślna to 0.

bh

Ustaw czerwone podświetlenie. Dozwolony zakres to od -1,0 do 1,0. Wartość domyślna to 0.

saturation

Ustaw stopień nasycenia. Dozwolony zakres to od -3,0 do 3,0. Wartość domyślna to 1.

analyze

Jeśli jest ustawiony na cokolwiek innego niż manualprzeanalizuje każdą klatkę i użyje pochodnych parametrów do filtrowania klatki wyjściowej.

Możliwe wartości to:

'manual'
'average'
'minmax'
'median'

Wartość domyślna to manual.

11.29.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

11.30 colorchannelmixer

Dostosuj klatki wejściowe wideo, ponownie mieszając kanały kolorów.

Ten filtr modyfikuje kanał koloru, dodając wartości powiązane z innymi kanałami tych samych pikseli. Na przykład, jeśli wartość do zmodyfikowania jest czerwona, wartość wyjściowa będzie wynosić:

red=red*rr + blue*rb + green*rg + alpha*ra

Filtr akceptuje następujące opcje:

rr
rg
rb
ra

Ustaw udział wejściowych kanałów czerwonego, zielonego, niebieskiego i alfa dla wyjściowego kanału czerwonego. Wartość domyślna to , i 1dla , i . rr0rgrbra

gr
gg
gb
ga

Ustaw udział wejściowych kanałów czerwonego, zielonego, niebieskiego i alfa dla wyjściowego kanału zielonego. Wartość domyślna to , i 1dla , i . gg0grgbga

br
bg
bb
ba

Dostosuj udział wejściowych kanałów czerwonego, zielonego, niebieskiego i alfa dla wyjściowego kanału niebieskiego. Wartość domyślna to , i 1dla , i . bb0brbgba

ar
ag
ab
aa

Dostosuj udział wejściowych kanałów czerwonego, zielonego, niebieskiego i alfa dla wyjściowego kanału alfa. Wartość domyślna to , i 1dla , i . aa0aragab

Dozwolone zakresy dla opcji to [-2.0, 2.0].

pc

Ustaw tryb zachowania kolorów. Akceptowane wartości to:

'none'

Wyłącz zachowywanie kolorów, jest to ustawienie domyślne.

'lum'

Zachowaj jasność.

'max'

Zachowaj maksymalną wartość trójki RGB.

'avg'

Zachowaj średnią wartość trójki RGB.

'sum'

Zachowaj wartość sumy trójki RGB.

'nrm'

Zachowaj znormalizowaną wartość trójki RGB.

'pwr'

Zachowaj wartość mocy trójki RGB.

pa

Ustaw ilość zachowania koloru podczas zmiany kolorów. Dozwolony zakres to od [0.0, 1.0]. Wartość domyślna to 0.0, a zatem wyłączone.

11.30.1 Examples

  • Konwertuj źródło na skalę szarości:
    colorchannelmixer=.3:.4:.3:0:.3:.4:.3:0:.3:.4:.3
    
  • Symuluj odcienie sepii:
    colorchannelmixer=.393:.769:.189:0:.349:.686:.168:0:.272:.534:.131
    

11.30.2 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

11.31 colorize

Nałóż jednolity kolor na strumień wideo.

Filtr akceptuje następujące opcje:

hue

Ustaw odcień koloru. Dozwolony zakres to od 0 do 360. Wartość domyślna to 0.

saturation

Ustaw nasycenie kolorów. Dozwolony zakres to od 0 do 1. Wartość domyślna to 0,5.

lightness

Ustaw jasność koloru. Dozwolony zakres to od 0 do 1. Wartość domyślna to 0,5.

mix

Ustaw miks jasności źródła. Domyślnie jest ustawiony na 1.0. Dozwolony zakres to od 0,0 do 1,0.

11.31.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

11.32 colorkey

Kluczowanie kolorów w przestrzeni kolorów RGB. Ten filtr działa na 8-bitowych ramkach formatu RGB, ustawiając składnik alfa każdego piksela, który mieści się w promieniu podobieństwa koloru kluczowego na 0. Wartość alfa dla pikseli poza promieniem podobieństwa zależy od wartości opcji mieszania.

Filtr akceptuje następujące opcje:

color

Ustaw kolor, dla którego alfa zostanie ustawiona na 0 (pełna przezroczystość). Zobacz (ffmpeg-utils) sekcję "Kolor" w podręczniku ffmpeg-utils . Wartość domyślna to black.

similarity

Ustaw promień od koloru kluczowego, w którym inne kolory również mają pełną przezroczystość. Obliczona odległość jest powiązana z jednostkową odległością ułamkową w przestrzeni 3D między wartościami RGB koloru kluczowego a kolorem piksela. Zakres wynosi od 0,01 do 1,0. 0.01 pasuje w bardzo małym promieniu wokół dokładnego koloru klucza, a 1.0 pasuje do wszystkiego. Wartość domyślna to 0.01.

blend

Ustaw sposób obliczania wartości alfa dla pikseli, które wychodzą poza promień podobieństwa. 0.0 sprawia, że ​​piksele są w pełni przezroczyste lub całkowicie nieprzezroczyste. Wyższe wartości skutkują półprzezroczystymi pikselami, im większa przezroczystość, tym bardziej zbliżony kolor piksela do koloru kluczowego. Zakres wynosi od 0,0 do 1,0. Wartość domyślna to 0.0.

11.32.1 Examples

  • Ustaw przezroczystość każdego zielonego piksela w obrazie wejściowym:
    ffmpeg -i input.png -vf colorkey=green out.png
    
  • Nałóż film z zielonego ekranu na statyczny obraz tła.
    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

Ten filtr obsługuje te same polecenia, co opcje. Polecenie akceptuje tę samą składnię odpowiedniej opcji.

Jeśli podane wyrażenie jest niepoprawne, jest zachowywane z bieżącą wartością.

11.33 colorhold

Usuń wszystkie informacje o kolorach dla wszystkich kolorów RGB z wyjątkiem jednego.

Filtr akceptuje następujące opcje:

color

Kolor, którego nie zastąpi neutralna szarość.

similarity

Procent podobieństwa z powyższym kolorem. 0.01 pasuje tylko do dokładnego koloru klucza, a 1.0 pasuje do wszystkiego.

blend

Procent mieszanki. 0.0 sprawia, że ​​piksele są całkowicie szare. Wyższe wartości skutkują bardziej zachowanym kolorem.

11.33.1 Commands

Ten filtr obsługuje te same polecenia, co opcje. Polecenie akceptuje tę samą składnię odpowiedniej opcji.

Jeśli podane wyrażenie jest niepoprawne, jest zachowywane z bieżącą wartością.

11.34 colorlevels

Dostosuj klatki wejściowe wideo za pomocą poziomów.

Filtr akceptuje następujące opcje:

rimin
gimin
bimin
aimin

Ustaw czerwony, zielony, niebieski i alfa punkt czerni wejścia. Dozwolone zakresy dla opcji to [-1.0, 1.0]. Wartości domyślne to 0.

rimax
gimax
bimax
aimax

Ustaw czerwony, zielony, niebieski i alfa punkt bieli. Dozwolone zakresy dla opcji to [-1.0, 1.0]. Wartości domyślne to 1.

Poziomy wejściowe służą do rozjaśniania świateł (jasnych tonów), przyciemniania cieni (ciemnych tonów), zmiany równowagi jasnych i ciemnych tonów.

romin
gomin
bomin
aomin

Regulacja czerwonego, zielonego, niebieskiego i punktu czerni wyjścia alfa. Dozwolone zakresy dla opcji to [0, 1.0]. Wartości domyślne to 0.

romax
gomax
bomax
aomax

Ustaw czerwony, zielony, niebieski i alfa punkt bieli. Dozwolone zakresy dla opcji to [0, 1.0]. Wartości domyślne to 1.

Poziomy wyjściowe umożliwiają ręczny wybór ograniczonego zakresu poziomów wyjściowych.

preserve

Ustaw tryb zachowania kolorów. Akceptowane wartości to:

'none'

Wyłącz zachowywanie kolorów, jest to ustawienie domyślne.

'lum'

Zachowaj jasność.

'max'

Zachowaj maksymalną wartość trójki RGB.

'avg'

Zachowaj średnią wartość trójki RGB.

'sum'

Zachowaj wartość sumy trójki RGB.

'nrm'

Zachowaj znormalizowaną wartość trójki RGB.

'pwr'

Zachowaj wartość mocy trójki RGB.

11.34.1 Examples

  • Przyciemnij wyjście wideo:
    colorlevels=rimin=0.058:gimin=0.058:bimin=0.058
    
  • Zwiększ kontrast:
    colorlevels=rimin=0.039:gimin=0.039:bimin=0.039:rimax=0.96:gimax=0.96:bimax=0.96
    
  • Spraw, aby wyjście wideo było lżejsze:
    colorlevels=rimax=0.902:gimax=0.902:bimax=0.902
    
  • Zwiększ jasność:
    colorlevels=romin=0.5:gomin=0.5:bomin=0.5
    

11.34.2 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

11.35 colormap

Zastosuj niestandardowe mapy kolorów do strumienia wideo.

Ten filtr wymaga trzech wejściowych strumieni wideo. Pierwszy strumień to strumień wideo, który zostanie odfiltrowany. Drugi i trzeci strumień wideo określają wstawki kolorów dla odwzorowania koloru źródłowego na docelowy.

Filtr akceptuje następujące opcje:

patch_size

Ustaw rozmiar poprawki źródłowego i docelowego strumienia wideo w pikselach.

nb_patches

Ustaw maksymalną liczbę używanych poprawek ze źródłowego i docelowego strumienia wideo. Wartość domyślna to liczba poprawek dostępnych w dodatkowych strumieniach wideo. Maksymalna dozwolona liczba poprawek to 64.

type

Ustaw dopasowania używane dla kolorów docelowych. Może być relativelub absolute. Wartość domyślna to absolute.

kernel

Ustaw jądro używane do pomiaru różnic kolorów między odwzorowanymi kolorami.

Akceptowane wartości to:

'euclidean'
'weuclidean'

Wartość domyślna to euclidean.

11.36 colormatrix

Konwersja matrycy kolorów.

Filtr akceptuje następujące opcje:

src
dst

Określ źródłową i docelową macierz kolorów. Należy określić obie wartości.

Akceptowane wartości to:

'bt709'

BT.709

'fcc'

FCC

'bt601'

BT.601

'bt470'

BT.470

'bt470bg'

BT.470BG

'smpte170m'

SMPTE-170M

'smpte240m'

SMPTE-240M

'bt2020'

BT.2020

Na przykład do konwersji z BT.601 na SMPTE-240M użyj polecenia:

colormatrix=bt601:smpte240m

11.37 colorspace

Konwertuj przestrzeń kolorów, charakterystykę transferu lub kolory podstawowe. Wejście wideo musi mieć równy rozmiar.

Filtr akceptuje następujące opcje:

all

Określ wszystkie właściwości koloru jednocześnie.

Akceptowane wartości to:

'bt470m'

BT.470M

'bt470bg'

BT.470BG

'bt601-6-525'

BT.601-6 525

'bt601-6-625'

BT.601-6 625

'bt709'

BT.709

'smpte170m'

SMPTE-170M

'smpte240m'

SMPTE-240M

'bt2020'

BT.2020

space

Określ wyjściową przestrzeń kolorów.

Akceptowane wartości to:

'bt709'

BT.709

'fcc'

FCC

'bt470bg'

BT.470BG lub BT.601-6 625

'smpte170m'

SMPTE-170M lub BT.601-6 525

'smpte240m'

SMPTE-240M

'ycgco'

YCgCo

'bt2020ncl'

BT.2020 z niestałą luminancją

trc

Określ charakterystykę transferu wyjściowego.

Akceptowane wartości to:

'bt709'

BT.709

'bt470m'

BT.470M

'bt470bg'

BT.470BG

'gamma22'

Stała gamma 2,2

'gamma28'

Stała gamma 2,8

'smpte170m'

SMPTE-170M, BT.601-6 625 lub BT.601-6 525

'smpte240m'

SMPTE-240M

'srgb'

SRGB

'iec61966-2-1'

iec61966-2-1

'iec61966-2-4'

iec61966-2-4

'xvycc'

xvycc

'bt2020-10'

BT.2020 dla zawartości 10-bitowej

'bt2020-12'

BT.2020 dla zawartości 12-bitowej

primaries

Określ podstawowe kolory wyjściowe.

Akceptowane wartości to:

'bt709'

BT.709

'bt470m'

BT.470M

'bt470bg'

BT.470BG lub BT.601-6 625

'smpte170m'

SMPTE-170M lub BT.601-6 525

'smpte240m'

SMPTE-240M

'film'

film

'smpte431'

SMPTE-431

'smpte432'

SMPTE-432

'bt2020'

BT.2020

'jedec-p22'

luminofory JEDEC P22

range

Określ wyjściowy zakres kolorów.

Akceptowane wartości to:

'tv'

Zasięg telewizora (ograniczony)

'mpeg'

Zakres MPEG (ograniczony)

'pc'

PC (pełny) zakres

'jpeg'

JPEG (pełny) zakres

format

Określ wyjściowy format koloru.

Akceptowane wartości to:

'yuv420p'

YUV 4:2:0 planarny 8-bitowy

'yuv420p10'

YUV 4:2:0 planarny 10-bitowy

'yuv420p12'

YUV 4:2:0 planarny 12-bitowy

'yuv422p'

YUV 4:2:2 planarny 8-bitowy

'yuv422p10'

YUV 4:2:2 planarny 10-bitowy

'yuv422p12'

YUV 4:2:2 planarny 12-bitowy

'yuv444p'

YUV 4:4:4 planarny 8-bitowy

'yuv444p10'

YUV 4:4:4 planarny 10-bitowy

'yuv444p12'

YUV 4:4:4 planarny 12-bitowy

fast

Wykonaj szybką konwersję, która pomija korekcję gamma/pierwotną. Zajmie to znacznie mniej procesora, ale będzie matematycznie niepoprawne. Aby uzyskać wynik zgodny z tym generowanym przez filtr colormatrix, użyj fast=1.

dither

Określ tryb ditheringu.

Akceptowane wartości to:

'none'

Bez ditheringu

'fsb'

Roztrząsanie Floyda-Steinberga

wpadapt

Tryb adaptacji punktu bieli.

Akceptowane wartości to:

'bradford'

Adaptacja Bradforda do punktu bieli

'vonkries'

Adaptacja punktu bieli von Kriesa

'identity'

adaptacja punktu bieli tożsamości (tj. brak adaptacji punktu bieli)

iall

Zastąp wszystkie właściwości wejściowe jednocześnie. Takie same akceptowane wartości jak wszystkie .

ispace

Zastąp wejściową przestrzeń kolorów. Takie same akceptowane wartości jak spacja .

iprimaries

Zastąp podstawowe kolory wejściowe. Te same akceptowane wartości, co podstawowe .

itrc

Nadpisanie wejściowej charakterystyki przenoszenia. Te same akceptowane wartości co trc .

irange

Zastąp wejściowy zakres kolorów. Takie same akceptowane wartości jak zakres .

Filtr konwertuje charakterystyki transferu, przestrzeń kolorów i kolory podstawowe na określone wartości użytkownika. Wartość wyjściowa, jeśli nie jest określona, ​​jest ustawiana na wartość domyślną na podstawie właściwości „all”. Jeśli ta właściwość również nie zostanie określona, ​​filtr zarejestruje błąd. Wyjściowy zakres kolorów i format mają domyślnie taką samą wartość jak wejściowy zakres kolorów i format. W danych wejściowych należy ustawić charakterystykę transmisji wejściowej, przestrzeń kolorów, kolory podstawowe i zakres kolorów. Jeśli któregoś z tych braków, filtr zarejestruje błąd i nie nastąpi konwersja.

Na przykład, aby przekonwertować wejście na SMPTE-240M, użyj polecenia:

colorspace=smpte240m

11.38 colortemperature

Dostosuj temperaturę kolorów w filmie, aby symulować różnice w temperaturze kolorów otoczenia.

Filtr akceptuje następujące opcje:

temperature

Ustaw temperaturę w kelwinach. Dozwolony zakres to od 1000 do 40000. Wartość domyślna to 6500 K.

mix

Ustaw mieszanie z filtrowanym wyjściem. Dozwolony zakres to od 0 do 1. Wartość domyślna to 1.

pl

Ustaw ilość zachowania lekkości. Dozwolony zakres to od 0 do 1. Wartość domyślna to 0.

11.38.1 Commands

Ten filtr obsługuje te same polecenia, co opcje.

11.39 convolution

Zastosuj splot 3x3, 5x5, 7x7 lub poziomo/pionowo do 49 elementów.

Filtr akceptuje następujące opcje:

0m
1m
2m
3m

Ustaw matrycę dla każdej płaszczyzny. Macierz jest sekwencją 9, 25 lub 49 liczb całkowitych ze znakiem w squaretrybie i od 1 do 49 nieparzystej liczby liczb całkowitych ze znakiem w rowtrybie.

0rdiv
1rdiv
2rdiv
3rdiv

Ustaw mnożnik dla obliczonej wartości dla każdej płaszczyzny. Jeśli nie jest ustawiona lub 0, będzie to suma wszystkich elementów macierzy.

0bias
1bias
2bias
3bias

Ustaw bias dla każdego samolotu. Ta wartość jest dodawana do wyniku mnożenia. Przydatne do rozjaśniania lub przyciemniania całego obrazu. Wartość domyślna to 0,0.

0mode
1mode
2mode
3mode

Ustaw tryb matrycy dla każdej płaszczyzny. Może być square, rowlub column. Wartość domyślna to square.

11.39.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

11.39.2 Examples

  • Zastosuj wyostrzenie:
    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"
    
  • Zastosuj rozmycie:
    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"
    
  • Zastosuj wzmocnienie krawędzi:
    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"
    
  • Zastosuj wykrywanie krawędzi:
    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"
    
  • Zastosuj wykrywacz krawędzi Laplacian, który obejmuje przekątne:
    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"
    
  • Zastosuj wytłoczenie:
    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

Zastosuj splot 2D strumienia wideo w domenie częstotliwości, używając drugiego strumienia jako impulsu.

Filtr akceptuje następujące opcje:

planes

Ustaw samoloty do przetworzenia.

impulse

Ustaw, które impulsowe klatki wideo będą przetwarzane, może być first lub all. Wartość domyślna to all.

Filtr convolveobsługuje również opcje framesync .

11.41 copy

Skopiuj źródło sygnału wejściowego wideo bez zmian do wyjścia. Jest to przydatne głównie do celów testowych.

11.42 coreimage

Filtrowanie wideo na GPU przy użyciu interfejsu Apple CoreImage API na OSX.

Akceleracja sprzętowa opiera się na kontekście OpenGL. Zwykle oznacza to, że jest przetwarzany przez sprzęt wideo. Istnieją jednak implementacje OpenGL oparte na oprogramowaniu, co oznacza, że ​​nie ma gwarancji przetwarzania sprzętowego. To zależy od odpowiedniego systemu OSX.

Istnieje wiele filtrów i generatorów obrazów dostarczanych przez Apple, które są wyposażone w wiele różnych opcji. Do filtra musi się odwoływać jego nazwa wraz z opcjami.

Filtr coreimage akceptuje następujące opcje:

list_filters

Wymień wszystkie dostępne filtry i generatory wraz ze wszystkimi ich odpowiednimi opcjami, a także możliwymi wartościami minimalnymi i maksymalnymi wraz z wartościami domyślnymi.

list_filters=true
filter

Określ wszystkie filtry według ich nazwy i opcji. Służy list_filtersdo określania wszystkich prawidłowych nazw i opcji filtrów. Opcje numeryczne są określane przez wartość zmiennoprzecinkową i są automatycznie ograniczane do odpowiedniego zakresu wartości. Opcje wektora i koloru muszą być określone przez listę wartości zmiennoprzecinkowych oddzielonych spacjami. Ucieczka postaci musi zostać wykonana. Dostępna jest specjalna nazwa opcji default, aby użyć domyślnych opcji filtru.

Wymagane jest określenie jednej defaultlub przynajmniej jednej opcji filtrowania. Wszystkie pominięte opcje są używane z ich wartościami domyślnymi. Składnia łańcucha filtrującego jest następująca:

filter=<NAME>@<OPTION>=<VALUE>[@<OPTION>=<VALUE>][@...][#<NAME>@<OPTION>=<VALUE>[@<OPTION>=<VALUE>][@...]][#...]
output_rect

Określ prostokąt, w którym dane wyjściowe łańcucha filtrów są kopiowane do obrazu wejściowego. Jest to lista wartości zmiennoprzecinkowych oddzielonych spacjami:

output_rect=x\ y\ width\ height

Jeśli nie zostanie podany, prostokąt wyjściowy jest równy wymiarom obrazu wejściowego. Prostokąt wyjściowy jest automatycznie przycinany na krawędziach obrazu wejściowego. Dla każdego składnika obowiązują wartości ujemne.

output_rect=25\ 25\ 100\ 100

Kilka filtrów można łączyć w łańcuch w celu kolejnego przetwarzania bez transferów GPU-HOST, co pozwala na szybkie przetwarzanie złożonych łańcuchów filtrów. Obecnie obsługiwane są tylko filtry z zerowym (generatory) lub dokładnie jednym (filtry) obrazem wejściowym i jednym obrazem wyjściowym. Ponadto filtrów przejściowych nie można jeszcze używać zgodnie z przeznaczeniem.

Niektóre filtry generują obrazy wyjściowe z dodatkowym wypełnieniem w zależności od odpowiedniego jądra filtru. Wypełnienie jest automatycznie usuwane, aby zapewnić, że wyjście filtra ma taki sam rozmiar jak obraz wejściowy.

W przypadku generatorów obrazów rozmiar obrazu wyjściowego jest określany odpowiednio przez poprzedni obraz wyjściowy łańcucha filtrów lub obraz wejściowy całego łańcucha filtrów. Generatory nie wykorzystują informacji o pikselach tego obrazu do generowania danych wyjściowych. Jednak wygenerowany wynik jest mieszany z tym obrazem, co powoduje częściowe lub całkowite pokrycie obrazu wyjściowego.

Źródło wideo coreimagesrc może być używane do generowania obrazów wejściowych, które są bezpośrednio wprowadzane do łańcucha filtrów. Dzięki niemu dostarczanie obrazów wejściowych z innego źródła wideo lub wejściowego wideo nie jest wymagane.

11.42.1 Examples

  • Wymień wszystkie dostępne filtry:
    coreimage=list_filters=true
    
  • Użyj filtra CIBoxBlur z domyślnymi opcjami, aby rozmyć obraz:
    coreimage=filter=CIBoxBlur@default
    
  • Użyj łańcucha filtrów z CISepiaTone przy wartościach domyślnych i CIVignetteEffect ze środkiem o wymiarach 100x100 i promieniem 50 pikseli:
    coreimage=filter=CIBoxBlur@default#CIVignetteEffect@inputCenter=100\ 100@inputRadius=50
    
  • Użyj nullsrc i CIQRCodeGenerator, aby utworzyć kod QR dla strony głównej FFmpeg, podany jako kompletny i zmieniony wiersz poleceń dla standardowej powłoki bash firmy 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

Zakryj prostokątny obiekt

Akceptuje następujące opcje:

cover

Ścieżka pliku opcjonalnego obrazu okładki musi być w yuv420.

mode

Ustaw tryb krycia.

Przyjmuje następujące wartości:

'cover'

przykryj go dostarczonym obrazem!

'blur'

przykryj to przez interpolację otaczających pikseli

Wartość domyślna to blur.

11.43.1 Examples

  • Zakryj prostokątny obiekt dostarczonym obrazem danego filmu za pomocą ffmpeg:
    ffmpeg -i file.ts -vf find_rect=newref.pgm,cover_rect=cover.jpg:mode=cover new.mkv
    

11.44 crop

Przytnij wideo wejściowe do podanych wymiarów.

Przyjmuje następujące parametry:

w, out_w

Szerokość wyjściowego wideo. Domyślnie jest to iw. To wyrażenie jest oceniane tylko raz podczas konfiguracji filtru lub gdy 'w' lub 'out_w' polecenie jest wysyłane.

h, out_h

Wysokość wyjściowego wideo. Domyślnie jest to ih. To wyrażenie jest oceniane tylko raz podczas konfiguracji filtru lub gdy 'h' lub 'out_h' polecenie jest wysyłane.

x

Pozycja pozioma, w wejściowym wideo, lewej krawędzi wyjściowego wideo. Domyślnie jest to (in_w-out_w)/2. To wyrażenie jest oceniane na klatkę.

y

Pozycja pionowa, w wejściowym wideo, górnej krawędzi wyjściowego wideo. Domyślnie jest to (in_h-out_h)/2. To wyrażenie jest oceniane na klatkę.

keep_aspect

Ustawienie na 1 spowoduje, że wyjściowy format obrazu będzie taki sam jak na wejściu, poprzez zmianę wyjściowego współczynnika kształtu próbki. Domyślnie jest to 0.

exact

Włącz dokładne kadrowanie. Jeśli ta opcja jest włączona, podpróbkowane filmy będą przycinane dokładnie do określonej szerokości/wysokości/x/y i nie będą zaokrąglane do najbliższej mniejszej wartości. Domyślnie jest to 0.

Parametry out_w, out_h, x, yto wyrażenia zawierające następujące stałe:

x
y

Obliczone wartości dla xi y. Są oceniane dla każdej nowej klatki.

in_w
in_h

Wejściowa szerokość i wysokość.

iw
ih

Są takie same jak in_wi in_h.

out_w
out_h

Wyjściowa (przycięta) szerokość i wysokość.

ow
oh

Są takie same jak out_wi out_h.

a

tak samo jak iw/ih

sar

wejściowy współczynnik proporcji próbki

dar

format obrazu wejściowego, taki sam jak ( iw/ ih) *sar

hsub
vsub

wartości podpróbki chrominancji poziomej i pionowej. Na przykład dla formatu piksela „yuv422p” hsubto 2 i vsub1.

n

Numer ramki wejściowej, zaczynając od 0.

pos

pozycja w pliku ramki wejściowej, NAN jeśli nieznana

t

Znacznik czasu wyrażony w sekundach. Jest to NAN, jeśli wejściowy znacznik czasu jest nieznany.

Wyrażenie for out_wmoże zależeć od wartości out_h, a wyrażenie for out_hmoże zależeć od out_w, ale nie może zależeć od xi y, ponieważ xi ysą oceniane po out_wi out_h.

Parametry xi yokreślają wyrażenia określające położenie lewego górnego rogu obszaru wyjściowego (nieprzyciętego). Są oceniane dla każdej klatki. Jeśli szacowana wartość nie jest prawidłowa, jest aproksymowana do najbliższej prawidłowej wartości.

Wyrażenie for xmoże zależeć od y, a wyrażenie for ymoże zależeć od x.

11.44.1 Examples

  • Obszar przycinania o rozmiarze 100x100 na pozycji (12,34).
    crop=100:100:12:34
    

    Używając nazwanych opcji, powyższy przykład staje się:

    crop=w=100:h=100:x=12:y=34
    
  • Przytnij środkowy obszar wejściowy o rozmiarze 100x100:
    crop=100:100
    
  • Przytnij środkowy obszar wejściowy z rozmiarem 2/3 wejściowego wideo:
    crop=2/3*in_w:2/3*in_h
    
  • Przytnij centralny kwadrat wejściowego wideo:
    crop=out_w=in_h
    crop=in_h
    
  • Ogranicz prostokąt lewym górnym rogiem umieszczonym w pozycji 100:100 i prawym dolnym rogiem odpowiadającym prawemu dolnemu rogowi obrazu wejściowego.
    crop=in_w-100:in_h-100:100:100
    
  • Przytnij 10 pikseli z lewej i prawej krawędzi oraz 20 pikseli z górnej i dolnej krawędzi
    crop=in_w-2*10:in_h-2*20
    
  • Zachowaj tylko dolną prawą ćwiartkę obrazu wejściowego:
    crop=in_w/2:in_h/2:in_w/2:in_h/2
    
  • Wysokość upraw dla uzyskania greckiej harmonii:
    crop=in_w:1/PHI*in_w
    
  • Zastosuj efekt drżenia:
    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)
    
  • Zastosuj nieregularny efekt kamery w zależności od znacznika czasu:
    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)"
    
  • Ustaw x w zależności od wartości y:
    crop=in_w/2:in_h/2:y:10+10*sin(n/10)
    

11.44.2 Commands

Ten filtr obsługuje następujące polecenia:

w, out_w
h, out_h
x
y

Ustaw szerokość/wysokość wyjściowego wideo i poziomą/pionową pozycję w wejściowym wideo. Polecenie akceptuje tę samą składnię odpowiedniej opcji.

Jeśli podane wyrażenie jest niepoprawne, jest zachowywane z bieżącą wartością.

11.45 cropdetect

Automatycznie wykryj rozmiar przycięcia.

Oblicza niezbędne parametry przycinania i drukuje zalecane parametry za pośrednictwem systemu logowania. Wykryte wymiary odpowiadają nieczarnemu obszarowi wejściowego wideo.

Przyjmuje następujące parametry:

limit

Ustaw wyższy próg wartości czerni, który można opcjonalnie określić od zera (0) do wszystkiego (255 dla formatów 8-bitowych). Wartość intensywności większa od ustawionej wartości jest uważana za nieczarną. Domyślnie jest to 24. Możesz także określić wartość z zakresu od 0,0 do 1,0, która będzie skalowana w zależności od głębi bitowej formatu pikseli.

round

Wartość, przez którą szerokość/wysokość powinna być podzielna. Wartość domyślna to 16. Przesunięcie jest automatycznie dostosowywane, aby wyśrodkować wideo. Użyj 2, aby uzyskać tylko równe wymiary (potrzebne w przypadku wideo 4:2:2). 16 jest najlepsze przy kodowaniu do większości kodeków wideo.

skip

Ustaw liczbę początkowych klatek, dla których ocena jest pomijana. Wartość domyślna to 2. Zakres wynosi od 0 do INT_MAX.

reset_count, reset

Ustaw licznik, który określa, po ilu klatkach funkcja cropdetect zresetuje poprzednio wykryty największy obszar wideo i rozpocznie od nowa wykrywanie bieżącego optymalnego obszaru przycięcia. Wartość domyślna to 0.

Może to być przydatne, gdy logo kanału zniekształca obszar wideo. 0 oznacza „nigdy nie resetuj” i zwraca największy obszar napotkany podczas odtwarzania.

11.46 cue

Opóźnij filtrowanie wideo do podanej sygnatury czasowej zegara ściennego. Filtr najpierw przechodzi dalejprerollilość klatek, następnie buforuje co najwyżej bufferilość klatek i czeka na cue. Po dotarciu do cue przesyła dalej buforowane ramki, a także wszystkie kolejne ramki przychodzące na jego wejściu.

Filtr może być używany do synchronizacji wyjścia wielu procesów ffmpeg dla urządzeń wyjściowych w czasie rzeczywistym, takich jak decklink. Umieszczając opóźnienie w łańcuchu filtrowania i ramkach wstępnego buforowania, proces może przekazać dane do wyjścia niemal natychmiast po osiągnięciu docelowego znacznika czasu zegara ściennego.

Nie można zagwarantować idealnej dokładności kadrowania, ale wynik jest wystarczająco dobry w niektórych przypadkach użycia.

cue

Sygnatura czasowa cue wyrażona w sygnaturze czasowej UNIX w mikrosekundach. Wartość domyślna to 0.

preroll

Czas trwania treści do przekazania jako preroll wyrażony w sekundach. Wartość domyślna to 0.

buffer

Maksymalny czas trwania zawartości buforowanej przed oczekiwaniem na cue wyrażony w sekundach. Wartość domyślna to 0.

11.47 curves

Zastosuj dopasowania kolorów za pomocą krzywych.

Ten filtr jest podobny do narzędzi krzywych Adobe Photoshop i GIMP. Każdy składnik (czerwony, zielony i niebieski) ma swoje wartości zdefiniowane przez Nkluczowe punkty powiązane ze sobą za pomocą gładkiej krzywej. Oś x reprezentuje wartości pikseli z klatki wejściowej, a oś y nowe wartości pikseli, które mają być ustawione dla klatki wyjściowej.

Domyślnie krzywa składowa jest definiowana przez dwa punkty (0;0)i (1;1). Tworzy to linię prostą, w której każda oryginalna wartość piksela jest „dopasowywana” do własnej wartości, co oznacza brak zmian w obrazie.

Filtr pozwala przedefiniować te dwa punkty i dodać trochę więcej. Nowa krzywa (przy użyciu naturalnej interpolacji splajnu sześciennego) zostanie zdefiniowana, aby płynnie przechodzić przez wszystkie nowe współrzędne. Nowe zdefiniowane punkty muszą ściśle rosnąć na osi x, a ich wartości xi ymuszą znajdować się w [0;1]przedziale. Jeśli obliczone krzywe wypadły poza przestrzenie wektorowe, wartości zostaną odpowiednio przycięte.

Filtr akceptuje następujące opcje:

preset

Wybierz jedno z dostępnych ustawień wstępnych kolorów. Ta opcja może być używana dodatkowo dor,g,bparametry; w tym przypadku późniejsze opcje mają pierwszeństwo w stosunku do wstępnie ustawionych wartości. Dostępne ustawienia wstępne to:

'none'
'color_negative'
'cross_process'
'darker'
'increase_contrast'
'lighter'
'linear_contrast'
'medium_contrast'
'negative'
'strong_contrast'
'vintage'

Wartość domyślna to none.

master, m

Ustaw główne punkty klucza. Punkty te zdefiniują mapowanie drugiego przebiegu. Czasami nazywa się to mapowaniem „luminancji” lub „wartości”. Może być używany z r,g,bluballponieważ działa jak LUT przetwarzania końcowego.

red, r

Ustaw kluczowe punkty dla czerwonego komponentu.

green, g

Ustaw kluczowe punkty dla zielonego komponentu.

blue, b

Ustaw kluczowe punkty dla niebieskiego komponentu.

all

Ustaw kluczowe punkty dla wszystkich komponentów (nie wliczając wzorca). Może być używany jako dodatek do innych opcji komponentów kluczowych punktów. W takim przypadku nieuzbrojony(e) składnik(i) zastosuje się do tego allustawienie.

psfile

Określ plik krzywych programu Photoshop ( .acv), z którego mają zostać zaimportowane ustawienia.

plot

Zapisz skrypt Gnuplot krzywych w określonym pliku.

Aby uniknąć niektórych konfliktów składni wykresu filtra, każda lista punktów kluczowych musi być zdefiniowana przy użyciu następującej składni: x0/y0 x1/y1 x2/y2 ....

11.47.1 Commands

Ten filtr obsługuje te same polecenia, co opcje.

11.47.2 Examples

  • Zwiększ nieco środkowy poziom niebieskiego:
    curves=blue='0/0 0.5/0.58 1/1'
    
  • Efekt vintage:
    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'
    

    Tutaj otrzymujemy następujące współrzędne dla każdego składnika:

    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)

  • Poprzedni przykład można również uzyskać z powiązanym wbudowanym ustawieniem wstępnym:
    curves=preset=vintage
    
  • Lub po prostu:
    curves=vintage
    
  • Użyj ustawienia wstępnego programu Photoshop i przedefiniuj punkty zielonego komponentu:
    curves=psfile='MyCurvesPresets/purple.acv':green='0/0 0.45/0.53 1/1'
    
  • Sprawdź krzywe cross_processprofilu za pomocą ffmpeg i 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

Filtr analizy danych wideo.

Ten filtr pokazuje szesnastkowe wartości pikseli części wideo.

Filtr akceptuje następujące opcje:

size, s

Ustaw wyjściowy rozmiar wideo.

x

Ustaw przesunięcie x od miejsca pobrania pikseli.

y

Ustaw przesunięcie y od miejsca pobrania pikseli.

mode

Ustaw tryb zakresu, może być jednym z następujących:

'mono'

Narysuj szesnastkowe wartości pikseli z białym kolorem na czarnym tle.

'color'

Narysuj szesnastkowe wartości pikseli z kolorem piksela wejściowego wideo na czarnym tle.

'color2'

Rysuj szesnastkowe wartości pikseli na kolorowym tle pobranym z wejściowego wideo, kolor tekstu jest wybierany w taki sposób, aby był zawsze widoczny.

axis

Narysuj numery wierszy i kolumn po lewej i u góry wideo.

opacity

Ustaw krycie tła.

format

Ustaw format wyświetlanych liczb. Może być hex, lub dec. Wartość domyślna to hex.

components

Ustaw komponenty pikseli do wyświetlenia. Domyślnie wyświetlane są wszystkie składniki pikseli.

11.48.1 Commands

Ten filtr obsługuje te same polecenia, co opcje wykluczające sizeopcję.

11.49 dblur

Zastosuj filtr Rozmycie kierunkowe.

Filtr akceptuje następujące opcje:

angle

Ustaw kąt rozmycia kierunkowego. Wartość domyślna to 45.

radius

Ustaw promień rozmycia kierunkowego. Wartość domyślna to 5.

planes

Ustaw samoloty do filtrowania. Domyślnie filtrowane są wszystkie samoloty.

11.49.1 Commands

Ten filtr obsługuje te same polecenia, co opcje. Polecenie akceptuje tę samą składnię odpowiedniej opcji.

Jeśli podane wyrażenie jest niepoprawne, jest zachowywane z bieżącą wartością.

11.50 dctdnoiz

Odszumianie ramek przy użyciu 2D DCT (filtrowanie w domenie częstotliwości).

Ten filtr nie jest przeznaczony do pracy w czasie rzeczywistym.

Filtr akceptuje następujące opcje:

sigma, s

Ustaw stałą sigma szumu.

Definiuje sigmato twardy próg 3 * sigma; każdy współczynnik DCT (wartość bezwzględna) poniżej tego progu zostanie usunięty.

Jeśli potrzebujesz bardziej zaawansowanego filtrowania, zobaczexpr.

Wartość domyślna to 0.

overlap

Ustaw liczbę nakładających się pikseli dla każdego bloku. Ponieważ filtr może być powolny, warto zmniejszyć tę wartość kosztem mniej skutecznego filtra i ryzyka różnych artefaktów.

Jeśli nakładająca się wartość nie pozwala na przetwarzanie całej wejściowej szerokości lub wysokości, zostanie wyświetlone ostrzeżenie i odpowiednie obramowania nie będą odszumiane.

Wartość domyślna to blocksize-1, co jest najlepszym możliwym ustawieniem.

expr, e

Ustaw wyrażenie współczynnika współczynnika.

Dla każdego współczynnika bloku DCT to wyrażenie będzie oceniane jako wartość mnożnika dla współczynnika.

Jeśli ta opcja jest ustawiona,sigmaopcja zostanie zignorowana.

Dostęp do wartości bezwzględnej współczynnika można uzyskać poprzez c zmienną.

n

Ustaw przy blocksizeużyciu liczby bitów. definiuje , czyli szerokość i wysokość przetwarzanych bloków. 1<<nblocksize

Wartość domyślna to 3(8x8) i może zostać podniesiona do 416x16 blocksize. Pamiętaj, że zmiana tego ustawienia ma ogromne konsekwencje dla szybkości przetwarzania. Ponadto większy rozmiar bloku niekoniecznie oznacza lepsze usuwanie szumów.

11.50.1 Examples

Zastosuj odszumianie za pomocąsigmaz 4.5:

dctdnoiz=4.5

Tę samą operację można osiągnąć za pomocą systemu ekspresyjnego:

dctdnoiz=e='gte(c, 4.5*3)'

Gwałtowny odgłos przy użyciu bloku o rozmiarze 16x16:

dctdnoiz=15:n=4

11.51 deband

Usuń artefakty pasm z wejściowego wideo. Działa poprzez zastąpienie pikseli w pasmach średnią wartością pikseli, do których się odnosi.

Filtr akceptuje następujące opcje:

1thr
2thr
3thr
4thr

Ustaw próg wykrywania pasm dla każdej płaszczyzny. Wartość domyślna to 0,02. Prawidłowy zakres to 0,00003 do 0,5. Jeśli różnica między bieżącym pikselem a pikselem odniesienia jest mniejsza niż próg, zostanie on uznany za pasmowy.

range, r

Zakres wykrywania prążków w pikselach. Domyślnie 16. Jeśli jest dodatnia, zostanie użyta liczba losowa z zakresu od 0 do ustawionej wartości. Jeśli jest ujemna, zostanie użyta dokładna wartość bezwzględna. Zakres określa kwadrat czterech pikseli wokół bieżącego piksela.

direction, d

Ustaw kierunek w radianach, z którego będą porównywane cztery piksele. Jeśli jest dodatni, wybrany zostanie losowy kierunek od 0 do ustawionego kierunku. Jeśli jest ujemna, zostanie wybrana dokładna wartość bezwzględna. Na przykład kierunek 0, -PI lub -2*PI radiany wybierze tylko piksele w tym samym wierszu, a -PI/2 wybierze tylko piksele z tej samej kolumny.

blur, b

Jeśli ta opcja jest włączona, bieżący piksel jest porównywany ze średnią wartością wszystkich czterech otaczających pikseli. Domyślnie jest włączone. Jeśli wyłączone, bieżący piksel jest porównywany ze wszystkimi czterema otaczającymi pikselami. Piksel jest uważany za pasmowy, jeśli tylko wszystkie cztery różnice z otaczającymi pikselami są mniejsze niż próg.

coupling, c

Jeśli ta opcja jest włączona, bieżący piksel jest zmieniany wtedy i tylko wtedy, gdy wszystkie składowe piksela są pasmowe, np. próg wykrywania pasm jest wyzwalany dla wszystkich składowych koloru. Domyślnie jest wyłączone.

11.51.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

11.52 deblock

Usuń blokujące artefakty z wejściowego wideo.

Filtr akceptuje następujące opcje:

filter

Ustaw typ filtra, może być weaklub strong. Wartość domyślna to strong. Kontroluje to, jaki rodzaj odblokowania jest stosowany.

block

Ustaw rozmiar bloku, dozwolony zakres to od 4 do 512. Domyślnie jest to 8.

alpha
beta
gamma
delta

Ustaw progi wykrywania blokowania. Dozwolony zakres to 0 do 1. Wartości domyślne to: 0.098dla alphai 0.05dla reszty. Zastosowanie wyższego progu daje większą siłę odblokowywania. Ustawienie alphakontroluje wykrywanie progu na dokładnej krawędzi bloku. Pozostałe opcje sterują wykrywaniem progu w pobliżu krawędzi. Każdy na dole/na górze lub na lewo/prawo. Ustawienie dowolnego z nich na 0wyłącza odblokowywanie.

planes

Ustaw samoloty do filtrowania. Domyślnie filtrowane są wszystkie dostępne samoloty.

11.52.1 Examples

  • Odblokuj przy użyciu słabego filtra i rozmiaru bloku 4 piksele.
    deblock=filter=weak:block=4
    
  • Odblokuj przy użyciu silnego filtra, rozmiaru bloku 4 piksele i niestandardowych progów dla odblokowania większej liczby krawędzi.
    deblock=filter=strong:block=4:alpha=0.12:beta=0.07:gamma=0.06:delta=0.05
    
  • Podobnie jak powyżej, ale filtruj tylko pierwszą płaszczyznę.
    deblock=filter=strong:block=4:alpha=0.12:beta=0.07:gamma=0.06:delta=0.05:planes=1
    
  • Podobnie jak powyżej, ale filtruj tylko drugą i trzecią płaszczyznę.
    deblock=filter=strong:block=4:alpha=0.12:beta=0.07:gamma=0.06:delta=0.05:planes=6
    

11.52.2 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

11.53 decimate

Upuszczaj zduplikowane klatki w regularnych odstępach czasu.

Filtr akceptuje następujące opcje:

cycle

Ustaw liczbę klatek, z których jedna zostanie usunięta. Ustawienie tego na Noznacza, że ​​jedna ramka z każdej partii Nramek zostanie pominięta. Wartość domyślna to 5.

dupthresh

Ustaw próg wykrywania duplikatów. Jeśli metryka różnicy dla ramki jest mniejsza lub równa tej wartości, jest ona deklarowana jako duplikat. Wartość domyślna to1.1

scthresh

Ustaw próg zmiany sceny. Wartość domyślna to 15.

blockx
blocky

Ustaw rozmiar bloków osi x i y używanych podczas obliczeń metrycznych. Większe bloki dają lepsze tłumienie szumów, ale też gorsze wykrywanie małych ruchów. Musi być potęgą dwójki. Wartość domyślna to 32.

ppsrc

Oznacz wejście główne jako wejście wstępnie przetworzone i aktywuj czysty strumień wejściowy. Pozwala to na wstępne przetwarzanie danych wejściowych za pomocą różnych filtrów, aby pomóc w obliczeniach metryk przy jednoczesnym zachowaniu bezstratnego wyboru klatek. Po ustawieniu 1na pierwszy strumień jest przeznaczony dla wstępnie przetworzonych danych wejściowych, a drugi strumień jest czystym źródłem, z którego wybierane są zachowane ramki. Wartość domyślna to 0.

chroma

Określ, czy w obliczeniach metrycznych ma być uwzględniana barwa. Wartość domyślna to 1.

11.54 deconvolve

Zastosuj dekonwolucję 2D strumienia wideo w domenie częstotliwości, używając drugiego strumienia jako impulsu.

Filtr akceptuje następujące opcje:

planes

Ustaw samoloty do przetworzenia.

impulse

Ustaw, które impulsowe klatki wideo będą przetwarzane, może być first lub all. Wartość domyślna to all.

noise

Ustaw hałas podczas dzielenia. Wartość domyślna to 0.0000001. Przydatne, gdy szerokość i wysokość nie są takie same, a nie moc 2 lub jeśli strumień przed zwijaniem miał szum.

Filtr deconvolveobsługuje również opcje framesync .

11.55 dedot

Zmniejsz krzyżową luminancję (pełzanie kropek) i krzyżowanie kolorów (tęcze) ​​z wideo.

Akceptuje następujące opcje:

m

Ustaw tryb pracy. Może być połączeniem dotcrawldo redukcji krzyżowej luminancji i/lub rainbowsdo redukcji krzyżowych kolorów.

lt

Ustaw próg przestrzennej jasności. Niższe wartości zwiększają redukcję luminancji krzyżowej.

tl

Ustaw tolerancję dla światła skroniowego. Wyższe wartości zwiększają redukcję luminancji krzyżowej.

tc

Ustaw tolerancję na czasową zmienność barwy. Wyższe wartości zwiększają redukcję przebarwień.

ct

Ustaw czasowy próg chrominancji. Niższe wartości zwiększają redukcję przebarwień.

11.56 deflate

Zastosuj efekt deflacji do wideo.

Filtr ten zastępuje piksel średnią lokalną (3x3), biorąc pod uwagę tylko wartości niższe niż piksel.

Akceptuje następujące opcje:

threshold0
threshold1
threshold2
threshold3

Ogranicz maksymalną zmianę dla każdej płaszczyzny, domyślnie 65535. Jeśli 0, płaszczyzna pozostanie niezmieniona.

11.56.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

11.57 deflicker

Usuń czasowe różnice w luminancji ramki.

Akceptuje następujące opcje:

size, s

Ustaw rozmiar filtra średniej ruchomej w ramkach. Wartość domyślna to 5. Dozwolony zakres to 2–129.

mode, m

Ustaw tryb uśredniania, aby wygładzić czasowe zmiany luminancji.

Dostępne wartości to:

'am'

Średnia arytmetyczna

'gm'

Średnia geometryczna

'hm'

Średnia harmoniczna

'qm'

Średnia kwadratowa

'cm'

Średnia sześcienna

'pm'

Moc średnia

'median'

Mediana

bypass

Nie modyfikuj ramy. Przydatne, gdy ktoś potrzebuje tylko metadanych.

11.58 dejudder

Usuń drgania powodowane przez częściowo przeplatane treści telecine.

Judder można wywołać np . filtrem pullup . Jeśli oryginalne źródło było częściowo ztelecinowaną treścią, wyjście pullup,dejudder będzie miało zmienną szybkość klatek. Może zmienić zarejestrowaną liczbę klatek na sekundę w kontenerze. Poza tą zmianą ten filtr nie wpłynie na wideo ze stałą liczbą klatek na sekundę.

Opcja dostępna w tym filtrze to:

cycle

Określ długość okna, nad którym powtarza się drganie.

Akceptuje dowolną liczbę całkowitą większą niż 1. Przydatnymi wartościami są:

'4'

Jeśli oryginał był telecine od 24 do 30 fps (Film do NTSC).

'5'

Jeśli oryginał był telecine od 25 do 30 fps (PAL do NTSC).

'20'

Jeśli mieszanka tych dwóch.

Wartość domyślna to „4„.

11.59 delogo

Pomiń logo stacji telewizyjnej przez prostą interpolację otaczających pikseli. Wystarczy ustawić prostokąt zakrywający logo i patrzeć, jak znika (a czasami pojawia się coś jeszcze brzydszego - Twój przebieg może się różnić).

Przyjmuje następujące parametry:

x
y

Określ współrzędne lewego górnego rogu logo. Muszą być określone.

w
h

Określ szerokość i wysokość logo do wyczyszczenia. Muszą być określone.

show

Po ustawieniu na 1, na ekranie jest rysowany zielony prostokąt, aby uprościć znajdowanie właściwych parametrów x, y, wi h. Wartość domyślna to 0.

Prostokąt jest rysowany na skrajnych pikselach, które zostaną (częściowo) zastąpione wartościami interpolowanymi. Wartości następnych pikseli bezpośrednio poza tym prostokątem w każdym kierunku zostaną użyte do obliczenia interpolowanych wartości pikseli wewnątrz prostokąta.

11.59.1 Examples

  • Ustaw prostokąt obejmujący obszar o współrzędnych lewego górnego rogu 0,0 i rozmiarze 100x77:
    delogo=x=0:y=0:w=100:h=77
    

11.60 derain

Usuń deszcz z obrazu wejściowego/wideo, stosując metody derain oparte na splotowych sieciach neuronowych. Obsługiwane modele:

Szkolenie oraz skrypty generowania modeli znajdują się w repozytorium pod adresem https://github.com/XueweiMeng/derain_filter.git .

Pliki modeli natywnych (.model) można generować z plików modeli TensorFlow (.pb) za pomocą tools/python/convert.py

Filtr akceptuje następujące opcje:

filter_type

Określ, którego filtra użyć. Ta opcja akceptuje następujące wartości:

'derain'

Opróżnij filtr. Aby przeprowadzić filtr odwadniający, musisz użyć modelu odpływowego.

'dehaze'

Filtr usuwający mgłę. Aby przeprowadzić filtr dehaze, musisz użyć modelu dehaze.

Wartość domyślna to 'derain„.

dnn_backend

Określ backend DNN, który ma być używany do ładowania i wykonywania modelu. Ta opcja akceptuje następujące wartości:

'native'

Natywna implementacja ładowania i wykonywania DNN.

'tensorflow'

Zaplecze TensorFlow. Aby włączyć ten backend, musisz zainstalować bibliotekę TensorFlow for C (zobacz https://www.tensorflow.org/install/lang_c ) i skonfigurować FFmpeg za pomocą --enable-libtensorflow

Wartość domyślna to 'native„.

model

Ustaw ścieżkę do pliku modelu określając architekturę sieci i jej parametry. Pamiętaj, że różne backendy używają różnych formatów plików. TensorFlow i natywny backend mogą ładować pliki tylko w swoim formacie.

Aby uzyskać pełną funkcjonalność (np. wykonywanie asynchroniczne), użyj filtra dnn_processing .

11.61 deshake

Spróbuj naprawić małe zmiany w przesunięciu w poziomie i/lub w pionie. Ten filtr pomaga usunąć drgania aparatu podczas trzymania aparatu za rękę, uderzania w statyw, poruszania się po pojeździe itp.

Filtr akceptuje następujące opcje:

x
y
w
h

Określ prostokątny obszar, w którym można ograniczyć wyszukiwanie wektorów ruchu. W razie potrzeby wyszukiwanie wektorów ruchu można ograniczyć do prostokątnego obszaru ramy zdefiniowanego przez jego lewy górny róg, szerokość i wysokość. Te parametry mają takie samo znaczenie jak filtr Drawbox, który może być użyty do wizualizacji położenia ramki ograniczającej.

Jest to przydatne, gdy jednoczesny ruch obiektów w kadrze może zostać pomylony z ruchem kamery przez wyszukiwanie wektora ruchu.

Jeśli którykolwiek lub wszystkie z x, i są ustawione na -1, używana jest pełna klatka y. Pozwala to na ustawienie późniejszych opcji bez określania obwiedni dla wyszukiwania wektora ruchu. wh

Domyślne - przeszukaj całą klatkę.

rx
ry

Określ maksymalny zakres ruchu w kierunkach x i y w zakresie 0-64 pikseli. Domyślnie 16.

edge

Określ sposób generowania pikseli w celu wypełnienia pustych miejsc na krawędzi ramki. Dostępne wartości to:

'blank, 0'

Wypełnij zera w pustych miejscach

'original, 1'

Oryginalny obraz w pustych lokalizacjach

'clamp, 2'

Wyciągnięta wartość krawędzi w pustych miejscach

'mirror, 3'

Lustrzana krawędź w pustych miejscach

Wartość domyślna to 'mirror„.

blocksize

Określ rozmiar bloku, który ma być używany do wyszukiwania ruchu. Zakres 4-128 pikseli, domyślnie 8.

contrast

Określ próg kontrastu dla bloków. Tylko bloki z kontrastem większym niż określony (różnica między najciemniejszymi i najjaśniejszymi pikselami) będą brane pod uwagę. Zakres 1-255, domyślnie 125.

search

Określ strategię wyszukiwania. Dostępne wartości to:

'exhaustive, 0'

Ustaw wyczerpujące wyszukiwanie

'less, 1'

Ustaw mniej wyczerpujące wyszukiwanie.

Wartość domyślna to 'exhaustive„.

filename

Jeśli jest ustawiona, do określonego pliku zostanie zapisany szczegółowy dziennik wyszukiwania ruchu.

11.62 despill

Usuń niechciane zanieczyszczenia kolorów pierwszego planu, spowodowane przez odbity kolor zielonego lub niebieskiego ekranu.

Ten filtr akceptuje następujące opcje:

type

Ustaw typ destylatu, którego chcesz użyć.

mix

Ustaw sposób generowania mapy rozlewania.

expand

Ustaw, ile chcesz pozbyć się pozostałego rozlania.

red

Kontroluje ilość czerwieni w obszarze rozlania.

green

Kontroluje ilość zieleni w obszarze rozlania. Powinno wynosić -1 dla zielonego ekranu.

blue

Kontroluje ilość błękitu w obszarze rozlania. Powinno wynosić -1 dla niebieskiego ekranu.

brightness

Kontroluje jasność obszaru rozlania, zachowując kolory.

alpha

Zmodyfikuj alfa z wygenerowanej mapy rozlewania.

11.62.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

11.63 detelecine

Zastosuj dokładną odwrotność operacji telecine. Wymaga predefiniowanego wzorca określonego za pomocą opcji wzorca, który musi być taki sam, jak ten przekazany do filtru telecine.

Ten filtr akceptuje następujące opcje:

first_field
'top, t'

najpierw górne pole

'bottom, b'

najpierw dolne pole Wartość domyślna to top.

pattern

Ciąg liczb reprezentujący wzór rozwijany, który chcesz zastosować. Wartość domyślna to 23.

start_frame

Liczba reprezentująca pozycję pierwszej ramki w odniesieniu do wzorca telecine. Ma to być używane, jeśli strumień jest odcinany. Wartość domyślna to 0.

11.64 dilation

Zastosuj efekt dylatacji do wideo.

Ten filtr zastępuje piksel przez maksimum lokalne (3x3).

Akceptuje następujące opcje:

threshold0
threshold1
threshold2
threshold3

Ogranicz maksymalną zmianę dla każdej płaszczyzny, domyślnie 65535. Jeśli 0, płaszczyzna pozostanie niezmieniona.

coordinates

Flaga określająca piksel, do którego ma się odnosić. Wartość domyślna to 255, tzn. używane są wszystkie osiem pikseli.

Flagi do lokalnych map ze współrzędnymi 3x3 w następujący sposób:

1 2 3 4 5 6 7 8

11.64.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

11.65 displace

Przesuwaj piksele, jak wskazuje drugi i trzeci strumień wejściowy.

Pobiera trzy strumienie wejściowe i wyprowadza jeden strumień, pierwsze wejście to źródło, a drugie i trzecie wejście to mapy przemieszczeń.

Drugie dane wejściowe określają, o ile mają przesunąć piksele wzdłuż osi x, a trzecie dane wejściowe określają, jak bardzo mają zostać przesunięte piksele wzdłuż osi y. Jeśli jeden ze strumieni mapy przemieszczeń zakończy się, zostanie użyta ostatnia ramka z tej mapy przemieszczeń.

Zauważ, że raz wygenerowane mapy przemieszczeń mogą być wielokrotnie używane.

Poniżej znajduje się opis akceptowanych opcji.

edge

Ustaw zachowanie przemieszczenia dla pikseli, które są poza zasięgiem.

Dostępne wartości to:

'blank'

Brakujące piksele są zastępowane czarnymi pikselami.

'smear'

Sąsiednie piksele rozłożą się, aby zastąpić brakujące piksele.

'wrap'

Piksele spoza zakresu są zawijane tak, aby wskazywały na piksele po drugiej stronie.

'mirror'

Piksele spoza zakresu zostaną zastąpione pikselami lustrzanymi.

Wartość domyślna to 'smear„.

11.65.1 Examples

  • Dodaj efekt tętnienia do wejścia rgb o rozmiarze wideo 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
    
  • Dodaj efekt fali do wejścia rgb o rozmiarze wideo 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

Wykonaj klasyfikację za pomocą głębokich sieci neuronowych na podstawie ramek ograniczających.

Filtr akceptuje następujące opcje:

dnn_backend

Określ backend DNN, który ma być używany do ładowania i wykonywania modelu. Ta opcja akceptuje teraz tylko openvino, zostaną dodane backendy tensorflow.

model

Ustaw ścieżkę do pliku modelu określając architekturę sieci i jej parametry. Pamiętaj, że różne backendy używają różnych formatów plików.

input

Ustaw nazwę wejściową sieci dnn.

output

Ustaw nazwę wyjściową sieci dnn.

confidence

Ustaw próg ufności (domyślnie: 0,5).

labels

Ustaw ścieżkę do pliku etykiety, określając mapowanie między identyfikatorem etykiety a nazwą. Każda nazwa etykiety jest zapisana w jednym wierszu, odstępy końcowe i puste wiersze są pomijane. Pierwszy wiersz to nazwa id etykiety 0, a drugi wiersz to nazwa id etykiety 1 itd. Identyfikator etykiety jest uważany za nazwę, jeśli nie podano pliku etykiety.

backend_configs

Ustaw konfiguracje, które mają być przekazywane do backendu

W przypadku backendu tensorflow możesz ustawić jego konfiguracje za pomocąsess_configopcji, użyj tools/python/tf_sess_config.py, aby pobrać konfiguracje dla swojego systemu.

11.67 dnn_detect

Wykrywaj obiekty za pomocą głębokich sieci neuronowych.

Filtr akceptuje następujące opcje:

dnn_backend

Określ backend DNN, który ma być używany do ładowania i wykonywania modelu. Ta opcja akceptuje teraz tylko openvino, zostaną dodane backendy tensorflow.

model

Ustaw ścieżkę do pliku modelu określając architekturę sieci i jej parametry. Pamiętaj, że różne backendy używają różnych formatów plików.

input

Ustaw nazwę wejściową sieci dnn.

output

Ustaw nazwę wyjściową sieci dnn.

confidence

Ustaw próg ufności (domyślnie: 0,5).

labels

Ustaw ścieżkę do pliku etykiety, określając mapowanie między identyfikatorem etykiety a nazwą. Każda nazwa etykiety jest zapisana w jednym wierszu, odstępy końcowe i puste wiersze są pomijane. Pierwsza linia to nazwa id etykiety 0 (zazwyczaj jest to 'tło'), a druga linia to nazwa id etykiety 1 itd. Identyfikator etykiety jest uważany za nazwę, jeśli plik etykiety nie jest dostarczony.

backend_configs

Ustaw konfiguracje, które mają być przekazywane do backendu. Aby użyć wykonywania asynchronicznego, ustaw asynchroniczne (domyślnie: set). Cofnij, aby wykonać synchronizację, jeśli backend nie obsługuje asynchronii.

11.68 dnn_processing

Przetwarzaj obrazy za pomocą głębokich sieci neuronowych. Współpracuje z innym filtrem, który konwertuje format pikseli ramki na wymagany przez sieć dnn.

Filtr akceptuje następujące opcje:

dnn_backend

Określ backend DNN, który ma być używany do ładowania i wykonywania modelu. Ta opcja akceptuje następujące wartości:

'native'

Natywna implementacja ładowania i wykonywania DNN.

'tensorflow'

Zaplecze TensorFlow. Aby włączyć ten backend, musisz zainstalować bibliotekę TensorFlow for C (zobacz https://www.tensorflow.org/install/lang_c ) i skonfigurować FFmpeg za pomocą --enable-libtensorflow

'openvino'

Zaplecze OpenVINO. Aby włączyć ten backend, musisz zbudować i zainstalować bibliotekę OpenVINO for C (zobacz https://github.com/openvinotoolkit/openvino/blob/master/build-instruction.md ) i skonfigurować FFmpeg za pomocą --enable-libopenvino(–extra-cflags=- I... –extra-ldflags=-L... może być potrzebne, jeśli pliki nagłówkowe i biblioteki nie są zainstalowane w ścieżce systemowej)

Wartość domyślna to 'native„.

model

Ustaw ścieżkę do pliku modelu określając architekturę sieci i jej parametry. Pamiętaj, że różne backendy używają różnych formatów plików. TensorFlow, OpenVINO i natywny backend mogą ładować pliki tylko dla swojego formatu.

Plik modelu natywnego (.model) można wygenerować z pliku modelu TensorFlow (.pb) za pomocą narzędzi/python/convert.py

input

Ustaw nazwę wejściową sieci dnn.

output

Ustaw nazwę wyjściową sieci dnn.

backend_configs

Ustaw konfiguracje, które mają być przekazywane do backendu. Aby użyć wykonywania asynchronicznego, ustaw asynchroniczne (domyślnie: set). Cofnij, aby wykonać synchronizację, jeśli backend nie obsługuje asynchronii.

W przypadku backendu tensorflow możesz ustawić jego konfiguracje za pomocąsess_configopcji, użyj tools/python/tf_sess_config.py, aby uzyskać konfiguracje backendu TensorFlow dla Twojego systemu.

11.68.1 Examples

  • Usuń deszcz w ramce rgb24 za pomocą can.pb (patrz filtr odwadniający ):
    ./ffmpeg -i rain.jpg -vf format=rgb24,dnn_processing=dnn_backend=tensorflow:model=can.pb:input=x:output=y derain.jpg
    
  • Zmniejsz o połowę wartość piksela ramki w formacie 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
    
  • Obsłuż kanał Y za pomocą srcnn.pb (patrz filtr sr ) dla ramki z yuv420p (obsługiwane planarne formaty 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
    
  • Obsługuj kanał Y za pomocą espcn.pb (patrz filtr sr ), który zmienia rozmiar ramki, dla formatu yuv420p (obsługiwane planarne formaty YUV), użyj tools/python/tf_sess_config.py, aby uzyskać konfiguracje backendu TensorFlow dla twojego systemu.
    ./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

Narysuj kolorowe pole na obrazie wejściowym.

Przyjmuje następujące parametry:

x
y

Wyrażenia określające współrzędne lewego górnego rogu pudełka. Domyślnie jest to 0.

width, w
height, h

Wyrażenia określające szerokość i wysokość pudełka; jeśli 0 są interpretowane jako szerokość i wysokość wejściowa. Domyślnie jest to 0.

color, c

Określ kolor pola do pisania. Aby uzyskać ogólną składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Color" w podręczniku ffmpeg-utils . Jeśli użyto wartości specjalnej invert, kolor krawędzi pola jest taki sam, jak w przypadku wideo z odwróconą jasnością.

thickness, t

Wyrażenie określające grubość krawędzi pudełka. Wartość fillspowoduje utworzenie wypełnionego pola. Wartość domyślna to 3.

Zobacz poniżej listę akceptowanych stałych.

replace

Ma zastosowanie, jeśli wejście ma alfa. W przypadku wartości 1piksele pomalowanego pola zastąpią kolor i piksele alfa wideo. Wartość domyślna to 0, która łączy pole z wejściem, pozostawiając nienaruszoną alfa wideo.

Parametry dla x, yi wi htwyrażeniami zawierającymi następujące stałe:

dar

Proporcje obrazu wejściowego są takie same jak ( w/ h) * sar.

hsub
vsub

wartości podpróbki chrominancji poziomej i pionowej. Na przykład dla formatu piksela „yuv422p” hsubto 2 i vsub1.

in_h, ih
in_w, iw

Wejściowa szerokość i wysokość.

sar

Wejściowy współczynnik proporcji próbki.

x
y

Współrzędne przesunięcia x i y, w którym narysowane jest pudełko.

w
h

Szerokość i wysokość narysowanego pudełka.

box_source

Źródło skrzynki można ustawić jako side_data_detection_bboxes, jeśli chcesz używać danych skrzynki w polach wykrywania danych pobocznych.

Jeśli box_sourcejest ustawione, x, yi widthbędą heightignorowane i nadal będą używać danych w polach wykrywania danych pobocznych. Dlatego proszę nie używać tego parametru, jeśli nie jesteś pewien źródła pudełka.

t

Grubość narysowanego pudełka.

Te stałe pozwalają wyrażeniom , , i xodwoływać ysię wdo siebie, więc możesz na przykład określić lub . hty=x/darh=w/dar

11.69.1 Examples

  • Narysuj czarną ramkę wokół krawędzi obrazu wejściowego:
    drawbox
    
  • Narysuj pudełko w kolorze czerwonym i stopniu krycia 50%:
    drawbox=10:20:200:60:red@0.5
    

    Poprzedni przykład można określić jako:

    drawbox=x=10:y=20:w=200:h=60:color=red@0.5
    
  • Wypełnij pudełko różowym kolorem:
    drawbox=x=10:y=10:w=100:h=100:color=pink@0.5:t=fill
    
  • Narysuj 2-pikselową czerwoną maskę 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

Ten filtr obsługuje te same polecenia, co opcje. Polecenie akceptuje tę samą składnię odpowiedniej opcji.

Jeśli podane wyrażenie jest niepoprawne, jest zachowywane z bieżącą wartością.

11.70 drawgraph

Narysuj wykres za pomocą wejściowych metadanych wideo.

Przyjmuje następujące parametry:

m1

Ustaw klucz metadanych pierwszej klatki, z którego wartości metadanych będą używane do rysowania wykresu.

fg1

Ustaw pierwsze wyrażenie koloru pierwszego planu.

m2

Ustaw klucz metadanych drugiej klatki, z którego wartości metadanych będą używane do rysowania wykresu.

fg2

Ustaw drugie wyrażenie koloru pierwszego planu.

m3

Ustaw klucz metadanych trzeciej klatki, z którego wartości metadanych będą używane do rysowania wykresu.

fg3

Ustaw trzecią ekspresję koloru pierwszego planu.

m4

Ustaw czwarty klucz metadanych ramki, z którego wartości metadanych będą używane do rysowania wykresu.

fg4

Ustaw czwarte wyrażenie koloru pierwszego planu.

min

Ustaw minimalną wartość wartości metadanych.

max

Ustaw maksymalną wartość wartości metadanych.

bg

Ustaw kolor tła wykresu. Domyślnie jest biały.

mode

Ustaw tryb wykresu.

Dostępne wartości dla trybu to:

'bar'
'dot'
'line'

Wartość domyślna to line.

slide

Ustaw tryb slajdów.

Dostępne wartości dla slajdu to:

'frame'

Narysuj nową ramkę po osiągnięciu prawej granicy.

'replace'

Wymień stare kolumny na nowe.

'scroll'

Przewiń od prawej do lewej.

'rscroll'

Przewiń od lewej do prawej.

'picture'

Narysuj pojedynczy obrazek.

Wartość domyślna to frame.

size

Ustaw rozmiar wideo wykresu. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Rozmiar wideo" w podręczniku ffmpeg-utils . Wartość domyślna to 900x256.

rate, r

Ustaw wyjściową liczbę klatek na sekundę. Wartość domyślna to 25.

Wyrażenia koloru pierwszego planu mogą używać następujących zmiennych:

MIN

Minimalna wartość wartości metadanych.

MAX

Maksymalna wartość wartości metadanych.

VAL

Bieżąca wartość klucza metadanych.

Kolor jest zdefiniowany jako 0xAABBGGRR.

Przykład użycia metadanych z filtra signalstats :

signalstats,drawgraph=lavfi.signalstats.YAVG:min=0:max=255

Przykład użycia metadanych z filtra ebur128 :

ebur128=metadata=1,adrawgraph=lavfi.r128.M:min=-120:max=5

11.71 drawgrid

Narysuj siatkę na obrazie wejściowym.

Przyjmuje następujące parametry:

x
y

Wyrażenia określające współrzędne pewnego punktu przecięcia siatki (służą do skonfigurowania odsunięcia). Oba domyślnie mają wartość 0.

width, w
height, h

Wyrażenia określające szerokość i wysokość komórki siatki, jeśli 0 są interpretowane jako odpowiednio szerokość i wysokość wejściowa, minus thickness, więc obraz zostaje obramowany. Domyślnie 0.

color, c

Określ kolor siatki. Aby uzyskać ogólną składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Color" w podręczniku ffmpeg-utils . Jeśli używana jest wartość specjalna invert, kolor siatki jest taki sam, jak w przypadku wideo z odwróconą jasnością.

thickness, t

Wyrażenie określające grubość linii siatki. Wartość domyślna to 1.

Zobacz poniżej listę akceptowanych stałych.

replace

Ma zastosowanie, jeśli wejście ma alfa. Z 1pikselami namalowanej siatki nadpiszą kolor wideo i piksele alfa. Wartość domyślna to 0, która łączy siatkę z wejściem, pozostawiając nienaruszone alfa wideo.

Parametry dla x, yi wi htwyrażeniami zawierającymi następujące stałe:

dar

Proporcje obrazu wejściowego są takie same jak ( w/ h) * sar.

hsub
vsub

wartości podpróbki chrominancji poziomej i pionowej. Na przykład dla formatu piksela „yuv422p” hsubto 2 i vsub1.

in_h, ih
in_w, iw

Wejściowa szerokość i wysokość komórki siatki.

sar

Wejściowy współczynnik proporcji próbki.

x
y

Współrzędne x i y pewnego punktu przecięcia siatki (ma na celu skonfigurowanie odsunięcia).

w
h

Szerokość i wysokość narysowanej komórki.

t

Grubość narysowanej komórki.

Te stałe pozwalają wyrażeniom , , i xodwoływać ysię wdo siebie, więc możesz na przykład określić lub . hty=x/darh=w/dar

11.71.1 Examples

  • Narysuj siatkę z komórką 100x100 pikseli, grubość 2 piksele, kolorem czerwonym i kryciem 50%:
    drawgrid=width=100:height=100:thickness=2:color=red@0.5
    
  • Narysuj białą siatkę 3x3 z kryciem 50%:
    drawgrid=w=iw/3:h=ih/3:t=2:c=white@0.5
    

11.71.2 Commands

Ten filtr obsługuje te same polecenia, co opcje. Polecenie akceptuje tę samą składnię odpowiedniej opcji.

Jeśli podane wyrażenie jest niepoprawne, jest zachowywane z bieżącą wartością.

11.72 drawtext

Narysuj ciąg tekstowy lub tekst z określonego pliku na górze wideo, korzystając z biblioteki libfreetype.

Aby umożliwić kompilację tego filtra, musisz skonfigurować FFmpeg za pomocą --enable-libfreetype. Aby włączyć domyślną rezerwę czcionki i fontopcję, musisz skonfigurować FFmpeg za pomocą --enable-libfontconfig. Aby włączyć tę text_shapingopcję, musisz skonfigurować FFmpeg za pomocą --enable-libfribidi.

11.72.1 Syntax

Przyjmuje następujące parametry:

box

Służy do rysowania ramki wokół tekstu przy użyciu koloru tła. Wartość musi wynosić 1 (włącz) lub 0 (wyłącz). Domyślna wartość boxto 0.

boxborderw

Ustaw szerokość obramowania, które ma być narysowane wokół pola za pomocą boxcolor. Domyślna wartość boxborderwto 0.

boxcolor

Kolor, który ma być używany do rysowania ramki wokół tekstu. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Color" w podręczniku ffmpeg-utils .

Domyślna wartość boxcolorto „biały”.

line_spacing

Ustaw odstępy między wierszami w pikselach obramowania, które ma być narysowane wokół ramki za pomocą box. Domyślna wartość line_spacingto 0.

borderw

Ustaw szerokość obramowania, jaka ma być rysowana wokół tekstu za pomocą bordercolor. Domyślna wartość borderwto 0.

bordercolor

Ustaw kolor, który będzie używany do rysowania obramowania wokół tekstu. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Color" w podręczniku ffmpeg-utils .

Domyślna wartość bordercolorto „czarny”.

expansion

Wybierz sposób textrozwinięcia. Może być none, strftime(przestarzałe) lub normal(domyślnie). Szczegółowe informacje można znaleźć w sekcji Rozszerzanie tekstu poniżej.

basetime

Ustaw czas rozpoczęcia liczenia. Wartość w mikrosekundach. Stosowane tylko w przestarzałym trybie rozwijania strftime. Aby emulować w normalnym trybie rozwinięcia, użyj ptsfunkcji, podając czas rozpoczęcia (w sekundach) jako drugi argument.

fix_bounds

Jeśli tak, sprawdź i popraw współrzędne tekstu, aby uniknąć obcinania.

fontcolor

Kolor używany do rysowania czcionek. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Color" w podręczniku ffmpeg-utils .

Domyślna wartość fontcolorto „czarny”.

fontcolor_expr

Ciąg rozwijany w taki sam sposób, jak w textcelu uzyskania fontcolorwartości dynamicznej. Domyślnie ta opcja ma pustą wartość i nie jest przetwarzana. Gdy ta opcja jest ustawiona, zastępuje ona fontcoloropcję.

font

Rodzina czcionek, która ma być używana do rysowania tekstu. Domyślnie Sans.

fontfile

Plik czcionki, który ma być używany do rysowania tekstu. Ścieżka musi być uwzględniona. Ten parametr jest obowiązkowy, jeśli obsługa fontconfig jest wyłączona.

alpha

Narysuj tekst, stosując mieszanie alfa. Wartość może być liczbą z zakresu od 0,0 do 1,0. Wyrażenie akceptuje również te same zmienne x, y. Wartość domyślna to 1. Zobacz fontcolor_expr.

fontsize

Rozmiar czcionki używany do rysowania tekstu. Domyślna wartość fontsizeto 16.

text_shaping

Jeśli jest ustawiona na 1, spróbuj ukształtować tekst (na przykład odwróć kolejność tekstu od prawej do lewej i połącz znaki arabskie) przed jego narysowaniem. W przeciwnym razie po prostu narysuj tekst dokładnie tak, jak podano. Domyślnie 1 (jeśli jest obsługiwany).

ft_load_flags

Flagi używane do ładowania czcionek.

Flagi mapują odpowiednie flagi obsługiwane przez libfreetype i są kombinacją następujących wartości:

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

Wartość domyślna to „domyślna”.

Aby uzyskać więcej informacji, zapoznaj się z dokumentacją dotyczącą flag libfreetype FT_LOAD_*.

shadowcolor

Kolor używany do rysowania cienia za rysowanym tekstem. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Color" w podręczniku ffmpeg-utils .

Domyślna wartość shadowcolorto „czarny”.

shadowx
shadowy

Przesunięcia x i y dla pozycji cienia tekstu w stosunku do pozycji tekstu. Mogą to być wartości dodatnie lub ujemne. Domyślną wartością dla obu jest „0”.

start_number

Początkowy numer klatki dla zmiennej n/frame_num. Wartość domyślna to „0”.

tabsize

Rozmiar w liczbie spacji do wykorzystania do renderowania karty. Wartość domyślna to 4.

timecode

Ustaw początkową reprezentację kodu czasowego w formacie „gg:mm:ss[:;.]ff”. Może być używany z parametrem tekstowym lub bez niego. timecode_rate opcja musi być określona.

timecode_rate, rate, r

Ustaw szybkość klatek kodu czasowego (tylko kod czasowy). Wartość zostanie zaokrąglona do najbliższej liczby całkowitej. Minimalna wartość to „1”. Kod czasowy drop-frame jest obsługiwany dla szybkości klatek 30 i 60.

tc24hmax

Jeśli jest ustawiony na 1, wyjście opcji kodu czasowego zostanie zawinięte po 24 godzinach. Wartość domyślna to 0 (wyłączone).

text

Ciąg tekstowy do narysowania. Tekst musi być ciągiem znaków zakodowanych w UTF-8. Ten parametr jest obowiązkowy, jeśli w parametrze nie określono żadnego pliku textfile.

textfile

Plik tekstowy zawierający tekst do narysowania. Tekst musi być ciągiem znaków zakodowanych w UTF-8.

Ten parametr jest obowiązkowy, jeśli w parametrze nie określono żadnego ciągu tekstowego text.

Jeśli określono oba texti textfile, zostanie zgłoszony błąd.

text_source

Źródło tekstu należy ustawić jako side_data_detection_bboxes, jeśli chcesz używać danych tekstowych w polach wykrywania danych pobocznych.

Jeśli ustawiono źródło tekstu, textzostanie textfileono zignorowane i nadal będzie używać danych tekstowych w polach wykrywania danych pobocznych. Dlatego nie używaj tego parametru, jeśli nie masz pewności co do źródła tekstu.

reload

Zostanie textfileponownie załadowany w określonych odstępach czasu. Pamiętaj, aby zaktualizować textfileatomowo, w przeciwnym razie może zostać odczytany częściowo, a nawet nie powiedzie się. Zakres wynosi od 0 do INT_MAX. Wartość domyślna to 0.

x
y

Wyrażenia określające przesunięcia, w których tekst będzie rysowany w ramce wideo. Odnoszą się do górnej/lewej krawędzi obrazu wyjściowego.

Domyślną wartością xi yjest „0”.

Zobacz poniżej listę akceptowanych stałych i funkcji.

Parametry dla xi ysą wyrażeniami zawierającymi następujące stałe i funkcje:

dar

format obrazu wejściowego, taki sam jak ( w/ h) *sar

hsub
vsub

wartości podpróbki chrominancji poziomej i pionowej. Na przykład dla formatu piksela „yuv422p” hsubto 2 i vsub1.

line_h, lh

wysokość każdej linii tekstu

main_h, h, H

wysokość wejściowa

main_w, w, W

szerokość wejściowa

max_glyph_a, ascent

maksymalna odległość od linii bazowej do najwyższej/górnej współrzędnej siatki użytej do umieszczenia punktu zarysu glifu dla wszystkich renderowanych glifów. Jest to wartość dodatnia, ze względu na orientację siatki z osią Y do góry.

max_glyph_d, descent

maksymalna odległość od linii bazowej do najniższej współrzędnej siatki użytej do umieszczenia punktu zarysu glifu dla wszystkich renderowanych glifów. Jest to wartość ujemna, ze względu na orientację siatki, z osią Y do góry.

max_glyph_h

maksymalna wysokość glifu, czyli maksymalna wysokość wszystkich glifów zawartych w renderowanym tekście, jest równoważna ascent- descent.

max_glyph_w

maksymalna szerokość glifu, czyli maksymalna szerokość wszystkich glifów zawartych w renderowanym tekście

n

liczba klatek wejściowych, zaczynając od 0

rand(min, max)

zwróć losową liczbę zawartą między minimax

sar

Wejściowy współczynnik proporcji próbki.

t

znacznik czasu wyrażony w sekundach, NAN, jeśli wejściowy znacznik czasu jest nieznany

text_h, th

wysokość renderowanego tekstu

text_w, tw

szerokość renderowanego tekstu

x
y

współrzędne przesunięcia x i y, w których rysowany jest tekst.

Te parametry pozwalają wyrażeniom xi yodwoływać się do siebie, więc można na przykład określić y=x/dar.

pict_type

Jednoznakowy opis typu obrazu bieżącej ramki.

pkt_pos

Bieżąca pozycja pakietu w pliku wejściowym lub strumieniu (w bajtach od początku wejścia). Wartość -1 oznacza, że ​​ta informacja jest niedostępna.

pkt_duration

Czas trwania bieżącego pakietu w sekundach.

pkt_size

Bieżący rozmiar pakietu (w bajtach).

11.72.2 Text expansion

Jeśliexpansionjest ustawiona na strftime, filtr rozpoznaje sekwencje strftime() w dostarczonym tekście i odpowiednio je rozwija. Sprawdź dokumentację strftime(). Ta funkcja jest przestarzała.

Jeśliexpansionjest ustawione na none, tekst jest drukowany dosłownie.

Jeśliexpansionjest ustawiona na normal(co jest wartością domyślną), używany jest następujący mechanizm rozszerzania.

Znak odwrotnego ukośnika '\', po którym następuje dowolny znak, zawsze rozwija się do drugiego znaku.

Rozwijane są sekwencje formularza %{...}. Tekst w nawiasach klamrowych to nazwa funkcji, po której prawdopodobnie występują argumenty oddzielone znakiem ':'. Jeśli argumenty zawierają znaki specjalne lub ograniczniki (':' lub '}'), należy je zmienić.

Zwróć uwagę, że prawdopodobnie muszą one również zostać zmienione jako wartość dla textopcja w łańcuchu argumentów filtru i jako argument filtru w opisie wykresu filtru i ewentualnie także dla powłoki, co daje do czterech poziomów ucieczki; użycie pliku tekstowego pozwala uniknąć tych problemów.

Dostępne są następujące funkcje:

expr, e

Wynik oceny wyrażenia.

Musi przyjąć jeden argument określający wyrażenie do oceny, które akceptuje te same stałe i funkcje co wartości xi y. Zauważ, że nie wszystkie stałe powinny być używane, na przykład rozmiar tekstu nie jest znany podczas oceny wyrażenia, więc stałe text_wi text_hbędą miały niezdefiniowaną wartość.

expr_int_format, eif

Oceń wartość i dane wyjściowe wyrażenia jako sformatowaną liczbę całkowitą.

Pierwszym argumentem jest wyrażenie, które ma zostać ocenione, tak jak w przypadku exprfunkcji. Drugi argument określa format wyjściowy. Dozwolone wartości to 'x','X','d' oraz 'u„. Traktowane są dokładnie tak, jak w printffunkcji. Trzeci parametr jest opcjonalny i określa liczbę pozycji zajmowanych przez wyjście. Można go użyć do dodania dopełnienia zerami od lewej.

gmtime

Czas działania filtra wyrażony w UTC. Może przyjąć argument: ciąg formatu strftime(). Ciąg formatujący został rozszerzony o obsługę zmiennej, %[1-6]N która wypisuje ułamki sekundy z opcjonalnie określoną liczbą cyfr.

localtime

Czas działania filtra wyrażony w lokalnej strefie czasowej. Może przyjąć argument: ciąg formatu strftime(). Ciąg formatujący został rozszerzony o obsługę zmiennej, %[1-6]N która wypisuje ułamki sekundy z opcjonalnie określoną liczbą cyfr.

metadata

Metadane ramki. Przyjmuje jeden lub dwa argumenty.

Pierwszy argument jest obowiązkowy i określa klucz metadanych.

Drugi argument jest opcjonalny i określa wartość domyślną, używaną, gdy klucz metadanych nie zostanie znaleziony lub jest pusty.

Dostępne metadane można zidentyfikować, sprawdzając wpisy zaczynające się od TAG zawartego w każdej sekcji ramki wydrukowanej przez uruchomienie ffprobe -show_frames.

Dostępne są również metadane ciągów generowane w filtrach prowadzących do filtra tekstu rysunkowego.

n, frame_num

Numer klatki, zaczynając od 0.

pict_type

Jednoznakowy opis bieżącego typu obrazu.

pts

Sygnatura czasowa bieżącej klatki. Może zająć do trzech argumentów.

Pierwszym argumentem jest format znacznika czasu; domyślnie jest to flt liczba sekund jako liczba dziesiętna z dokładnością do mikrosekundy; hmsoznacza sformatowany [-]HH:MM:SS.mmmznacznik czasu z dokładnością do milisekund. gmtimeoznacza znacznik czasu ramki sformatowany jako czas UTC; localtimeoznacza znacznik czasu ramki sformatowany jako czas lokalnej strefy czasowej.

Drugi argument to offset dodany do znacznika czasu.

Jeśli format jest ustawiony na hms, można podać trzeci argument 24HHw celu przedstawienia części godzinowej sformatowanego znacznika czasu w formacie 24-godzinnym (00-23).

Jeśli format jest ustawiony na localtimelub gmtime, można podać trzeci argument: ciąg formatu strftime(). Domyślnie YYYY-MM-DD HH:MM:SSużywany będzie format.

11.72.3 Commands

Ten filtr obsługuje zmianę parametrów za pomocą poleceń:

reinit

Zmień istniejące parametry filtra.

Składnia argumentu jest taka sama jak w przypadku wywołania filtra, np.

fontsize=56:fontcolor=green:text='Hello World'

Wywołanie pełnego filtra za pomocą sendcmd wyglądałoby tak:

sendcmd=c='56.0 drawtext reinit fontsize=56\:fontcolor=green\:text=Hello\\ World'

Jeśli cały argument nie może zostać przeanalizowany lub zastosowany jako prawidłowe wartości, filtr będzie kontynuował z istniejącymi parametrami.

11.72.4 Examples

  • Narysuj „Test Text” czcionką FreeSerif, używając domyślnych wartości parametrów opcjonalnych.
    drawtext="fontfile=/usr/share/fonts/truetype/freefont/FreeSerif.ttf: text='Test Text'"
    
  • Narysuj 'Test Text' czcionką FreeSerif o rozmiarze 24 na pozycji x=100 i y=50 (licząc od lewego górnego rogu ekranu), tekst jest żółty z czerwonym prostokątem wokół niego. Zarówno tekst, jak i ramka mają krycie 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"
    

    Zauważ, że podwójne cudzysłowy nie są konieczne, jeśli spacje nie są używane na liście parametrów.

  • Pokaż tekst na środku klatki wideo:
    drawtext="fontsize=30:fontfile=FreeSerif.ttf:text='hello world':x=(w-text_w)/2:y=(h-text_h)/2"
    
  • Pokaż tekst w losowej pozycji, przełączając się na nową pozycję co 30 sekund:
    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)"
    
  • Pokaż linię tekstu przesuwającą się od prawej do lewej w ostatnim rzędzie klatki wideo. PlikLONG_LINEzakłada się, że zawiera pojedynczy wiersz bez nowych wierszy.
    drawtext="fontsize=15:fontfile=FreeSerif.ttf:text=LONG_LINE:y=h-line_h:x=-50*t"
    
  • Pokaż zawartość plikuCREDITSod dołu ramki i przewiń w górę.
    drawtext="fontsize=20:fontfile=FreeSerif.ttf:textfile=CREDITS:y=h-20*t"
    
  • Narysuj pojedynczą zieloną literę „g” na środku wejściowego wideo. Linia bazowa glifu jest umieszczona na połowie wysokości ekranu.
    drawtext="fontsize=60:fontfile=FreeSerif.ttf:fontcolor=green:text=g:x=(w-max_glyph_w)/2:y=h/2-ascent"
    
  • Pokaż tekst przez 1 sekundę co 3 sekundy:
    drawtext="fontfile=FreeSerif.ttf:fontcolor=white:x=100:y=x/dar:enable=lt(mod(t\,3)\,1):text='blink'"
    
  • Użyj fontconfig, aby ustawić czcionkę. Zauważ, że dwukropki muszą być pominięte.
    drawtext='fontfile=Linux Libertine O-40\:style=Semibold:text=FFmpeg'
    
  • Narysuj „Test testowy” z rozmiarem czcionki zależnym od wysokości filmu.
    drawtext="text='Test Text': fontsize=h/30: x=(w-text_w)/2: y=(h-text_h*2)"
    
  • Wydrukuj datę kodowania w czasie rzeczywistym (patrz strftime(3)):
    drawtext='fontfile=FreeSans.ttf:text=%{localtime\:%a %b %d %Y}'
    
  • Pokaż pojawianie się i zanikanie tekstu (pojawianie się/znikanie):
    #!/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 }"
    
  • Wyrównaj w poziomie wiele oddzielnych tekstów. Zauważ, żemax_glyph_a ifontsizewartości są zawarte wyzrównoważ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
    
  • Wykreśl specjalne lavf.image2dec.source_basenamemetadane na każdą ramkę, jeśli takie metadane istnieją. W przeciwnym razie wykreśl ciąg „NA”. Pamiętaj, że demuxer image2 musi mieć opcję-export_path_metadata 1aby specjalne pola metadanych były dostępne dla filtrów.
    drawtext="fontsize=20:fontcolor=white:fontfile=FreeSans.ttf:text='%{metadata\:lavf.image2dec.source_basename\:NA}':x=10:y=10"
    

Aby uzyskać więcej informacji o libfreetype, odwiedź: http://www.freetype.org/ .

Aby uzyskać więcej informacji o fontconfig, sprawdź: http://freedesktop.org/software/fontconfig/fontconfig-user.html .

Aby uzyskać więcej informacji o libfribidi, odwiedź: http://fribidi.org/ .

11.73 edgedetect

Wykrywaj i rysuj krawędzie. Filtr wykorzystuje algorytm Canny Edge Detection.

Filtr akceptuje następujące opcje:

low
high

Ustaw niskie i wysokie wartości progowe używane przez algorytm progowania Canny.

Wysoki próg wybiera „silne” piksele krawędzi, które są następnie połączone przez 8-łączność z pikselami „słabej” krawędzi wybranymi przez dolny próg.

lowa highwartości progowe muszą być wybrane z zakresu [0,1] i lowpowinny być mniejsze lub równe high.

Wartość domyślna dla lowis 20/255, a wartość domyślna dla high is 50/255.

mode

Zdefiniuj tryb rysowania.

'wires'

Narysuj biało-szare przewody na czarnym tle.

'colormix'

Wymieszaj kolory, aby uzyskać efekt farby/kreskówki.

'canny'

Zastosuj wykrywacz krawędzi Canny na wszystkich wybranych płaszczyznach.

Wartość domyślna to wires.

planes

Wybierz samoloty do filtrowania. Domyślnie filtrowane są wszystkie dostępne samoloty.

11.73.1 Examples

  • Standardowa detekcja krawędzi z niestandardowymi wartościami progu histerezy:
    edgedetect=low=0.1:high=0.4
    
  • Efekt malowania bez progowania:
    edgedetect=mode=colormix:high=0
    

11.74 elbg

Zastosuj efekt posteryzacji za pomocą algorytmu ELBG (Enhanced LBG).

Dla każdego obrazu wejściowego filtr obliczy optymalne mapowanie z wejścia na wyjście, biorąc pod uwagę długość książki kodowej, czyli liczbę różnych kolorów wyjściowych.

Ten filtr akceptuje następujące opcje.

codebook_length, l

Ustaw długość książki kodowej. Wartość musi być dodatnią liczbą całkowitą i reprezentuje liczbę różnych kolorów wyjściowych. Wartość domyślna to 256.

nb_steps, n

Ustaw maksymalną liczbę iteracji do zastosowania w celu obliczenia optymalnego odwzorowania. Im wyższa wartość, tym lepszy wynik i dłuższy czas obliczeń. Wartość domyślna to 1.

seed, s

Ustaw losowy ziarno, musi być liczbą całkowitą zawartą między 0 a UINT32_MAX. Jeśli nie zostanie określony lub jeśli zostanie jawnie ustawiony na -1, filtr spróbuje użyć dobrego losowego inicjatora na zasadzie najlepszego wysiłku.

pal8

Ustaw format piksela wyjściowego pal8. Ta opcja nie działa z długością książki kodowej większą niż 256. Domyślnie jest wyłączona.

use_alpha

Uwzględnij wartości alfa w obliczeniach kwantyzacji. Umożliwia tworzenie obrazów wyjściowych na paletach (np. PNG8) z wielokrotnym płynnym mieszaniem alfa.

11.75 entropy

Zmierz entropię poziomu szarości w histogramie kanałów kolorów klatek wideo.

Przyjmuje następujące parametry:

mode

Może być albo normallub diff. Wartość domyślna to normal.

difftryb mierzy entropię wartości delta histogramu, bezwzględne różnice między sąsiednimi wartościami histogramu.

11.76 epx

Zastosuj filtr powiększenia EPX, który jest przeznaczony do grafiki pikselowej.

Akceptuje następującą opcję:

n

Ustaw wymiar skalowania: 2dla 2xEPX, 3dla 3xEPX. Wartość domyślna to 3.

11.77 eq

Ustaw jasność, kontrast, nasycenie i przybliżoną regulację gamma.

Filtr akceptuje następujące opcje:

contrast

Ustaw wyraz kontrastu. Wartość musi być wartością zmiennoprzecinkową z zakresu -1000.0do 1000.0. Wartość domyślna to „1”.

brightness

Ustaw wyraz jasności. Wartość musi być wartością zmiennoprzecinkową z zakresu -1.0do 1.0. Wartość domyślna to „0”.

saturation

Ustaw wyrażenie nasycenia. Wartość musi być liczbą zmiennoprzecinkową w zakresie 0.0do 3.0. Wartość domyślna to „1”.

gamma

Ustaw wyrażenie gamma. Wartość musi być liczbą zmiennoprzecinkową w zakresie 0.1do 10.0. Wartość domyślna to „1”.

gamma_r

Ustaw wyrażenie gamma na kolor czerwony. Wartość musi być liczbą zmiennoprzecinkową w zakresie 0.1do 10.0. Wartość domyślna to „1”.

gamma_g

Ustaw wyrażenie gamma na zielony. Wartość musi być liczbą zmiennoprzecinkową w zakresie 0.1do 10.0. Wartość domyślna to „1”.

gamma_b

Ustaw wyrażenie gamma dla koloru niebieskiego. Wartość musi być liczbą zmiennoprzecinkową w zakresie 0.1do 10.0. Wartość domyślna to „1”.

gamma_weight

Ustaw wyrażenie wagi gamma. Można go użyć do zmniejszenia efektu wysokiej wartości gamma na jasnych obszarach obrazu, np. aby zapobiec nadmiernemu wzmocnieniu i po prostu czystej bieli. Wartość musi być liczbą zmiennoprzecinkową w zakresie 0.0do 1.0. Wartość 0.0odwraca korekcję gamma całkowicie w dół, 1.0pozostawiając ją z pełną siłą. Wartość domyślna to „1”.

eval

Ustaw, kiedy oceniane są wyrażenia jasności, kontrastu, nasycenia i gamma.

Przyjmuje następujące wartości:

'init'

Oceniaj wyrażenia tylko raz podczas inicjalizacji filtra lub podczas przetwarzania polecenia

'frame'

oceń wyrażenia dla każdej przychodzącej ramki

Wartość domyślna to 'init„.

Wyrażenia przyjmują następujące parametry:

n

liczba klatek klatki wejściowej począwszy od 0

pos

pozycja w bajtach odpowiedniego pakietu w pliku wejściowym, NAN, jeśli nie określono

r

liczba klatek na sekundę wejściowego wideo, NAN, jeśli liczba klatek na sekundę wejściowa jest nieznana

t

znacznik czasu wyrażony w sekundach, NAN, jeśli wejściowy znacznik czasu jest nieznany

11.77.1 Commands

Filtr obsługuje następujące polecenia:

contrast

Ustaw wyraz kontrastu.

brightness

Ustaw wyraz jasności.

saturation

Ustaw wyrażenie nasycenia.

gamma

Ustaw wyrażenie gamma.

gamma_r

Ustaw wyrażenie gamma_r.

gamma_g

Ustaw wyrażenie gamma_g.

gamma_b

Ustaw wyrażenie gamma_b.

gamma_weight

Ustaw wyrażenie gamma_weight.

Polecenie akceptuje tę samą składnię odpowiedniej opcji.

Jeśli podane wyrażenie jest niepoprawne, jest zachowywane z bieżącą wartością.

11.78 erosion

Zastosuj efekt erozji do filmu.

Filtr ten zastępuje piksel przez minimum lokalne (3x3).

Akceptuje następujące opcje:

threshold0
threshold1
threshold2
threshold3

Ogranicz maksymalną zmianę dla każdej płaszczyzny, domyślnie 65535. Jeśli 0, płaszczyzna pozostanie niezmieniona.

coordinates

Flaga określająca piksel, do którego ma się odnosić. Wartość domyślna to 255, tzn. używane są wszystkie osiem pikseli.

Flagi do lokalnych map ze współrzędnymi 3x3 w następujący sposób:

1 2 3 4 5 6 7 8

11.78.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

11.79 estdif

Usuń przeplot z wejściowego wideo („estdif” oznacza „Edge Slope Tracing Deinterlacing Filter”).

Filtr tylko przestrzenny, który wykorzystuje algorytm śledzenia nachylenia krawędzi do interpolacji brakujących linii. Przyjmuje następujące parametry:

mode

Tryb przeplotu do przyjęcia. Przyjmuje jedną z następujących wartości:

frame

Wyprowadza jedną klatkę na każdą klatkę.

field

Wyprowadza jedną ramkę dla każdego pola.

Wartość domyślna to field.

parity

Parzystość pola obrazu przyjęta dla wejściowego wideo z przeplotem. Przyjmuje jedną z następujących wartości:

tff

Załóżmy, że górne pole jest pierwsze.

bff

Załóżmy, że dolne pole jest pierwsze.

auto

Włącz automatyczne wykrywanie parzystości pola.

Wartość domyślna to auto. Jeśli przeplot jest nieznany lub dekoder nie eksportuje tych informacji, jako pierwsze zostanie przyjęte górne pole.

deint

Określ, które klatki usunąć z przeplotu. Akceptuje jedną z następujących wartości:

all

Usuń przeplot ze wszystkich klatek.

interlaced

Usuwaj tylko klatki oznaczone jako z przeplotem.

Wartość domyślna to all.

rslope

Określ promień wyszukiwania dla śledzenia nachylenia krawędzi. Wartość domyślna to 1. Dozwolony zakres to od 1 do 15.

redge

Określ promień wyszukiwania dla najlepszego dopasowania krawędzi. Wartość domyślna to 2. Dozwolony zakres to od 0 do 15.

ecost

Określ koszt krawędzi dla dopasowania krawędzi. Wartość domyślna to 1.0. Dozwolony zakres to od 0 do 9.

mcost

Określ średni koszt dopasowania krawędzi. Wartość domyślna to 0,5. Dozwolony zakres to od 0 do 1.

dcost

Określ koszt odległości dla dopasowania krawędzi. Wartość domyślna to 0,5. Dozwolony zakres to od 0 do 1.

interp

Określ używaną interpolację. Domyślnie jest to interpolacja 4-punktowa. Przyjmuje jedną z następujących wartości:

2p

Interpolacja dwupunktowa.

4p

Interpolacja czteropunktowa.

6p

Interpolacja sześciopunktowa.

11.79.1 Commands

Ten filtr obsługuje te same polecenia, co opcje.

11.80 exposure

Dostosuj ekspozycję strumienia wideo.

Filtr akceptuje następujące opcje:

exposure

Ustaw korekcję ekspozycji w EV. Dozwolony zakres to od -3,0 do 3,0 EV Wartość domyślna to 0 EV.

black

Ustaw korekcję poziomu czerni. Dozwolony zakres to od -1,0 do 1,0. Wartość domyślna to 0.

11.80.1 Commands

Ten filtr obsługuje te same polecenia, co opcje.

11.81 extractplanes

Wyodrębnij komponenty kanału kolorów z wejściowego strumienia wideo do oddzielnych strumieni wideo w skali szarości.

Filtr akceptuje następującą opcję:

planes

Ustaw samolot(y) do wyodrębnienia.

Dostępne wartości dla samolotów to:

'y'
'u'
'v'
'a'
'r'
'g'
'b'

Wybranie płaszczyzn niedostępnych na wejściu spowoduje błąd. Oznacza to, że nie możesz jednocześnie wybierać płaszczyzn r, g, z płaszczyznami , . byuv

11.81.1 Examples

  • Wyodrębnij składową kanału kolorów luma, u i v z wejściowej klatki wideo do 3 wyjść w skali szarości:
    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

Zastosuj efekt ściemniania/zanikania do wejściowego wideo.

Przyjmuje następujące parametry:

type, t

Typ efektu może być „in” dla efektu ściemniania lub „out” dla efektu ściemniania. Wartość domyślna to in.

start_frame, s

Określ numer klatki, od której zaczniesz stosować efekt zanikania. Wartość domyślna to 0.

nb_frames, n

Liczba klatek, przez które trwa efekt zanikania. Pod koniec efektu zanikania wideo wyjściowe będzie miało taką samą intensywność jak wideo wejściowe. Pod koniec przejścia zanikania wideo wyjściowe zostanie wypełnione wybranymcolor. Wartość domyślna to 25.

alpha

Jeśli jest ustawiony na 1, tłumi tylko kanał alfa, jeśli taki istnieje na wejściu. Wartość domyślna to 0.

start_time, st

Określ znacznik czasu (w sekundach) klatki, aby rozpocząć stosowanie efektu zanikania. Jeśli określono zarówno start_frame, jak i start_time, zanikanie rozpocznie się od tego, co nastąpi jako ostatnie. Wartość domyślna to 0.

duration, d

Liczba sekund, przez które musi trwać efekt zanikania. Pod koniec efektu zanikania wyjściowe wideo będzie miało taką samą intensywność jak wideo wejściowe, pod koniec przejścia zanikania wyjściowe wideo będzie wypełnione wybranymcolor. Jeśli określono zarówno czas trwania, jak i nb_frames, używany jest czas trwania. Wartość domyślna to 0 (domyślnie używane jest nb_frames).

color, c

Określ kolor zanikania. Domyślnie jest „czarny”.

11.82.1 Examples

  • Zanikanie w pierwszych 30 klatkach wideo:
    fade=in:0:30
    

    Powyższe polecenie jest równoważne:

    fade=t=in:s=0:n=30
    
  • Wygaś ostatnie 45 klatek 200-klatkowego wideo:
    fade=out:155:45
    fade=type=out:start_frame=155:nb_frames=45
    
  • Rozpoznawanie pierwszych 25 klatek i zanikanie ostatnich 25 klatek 1000-klatkowego wideo:
    fade=in:0:25, fade=out:975:25
    
  • Zrób pierwsze 5 klatek na żółto, a następnie zanikaj od klatki 5-24:
    fade=in:5:20:color=yellow
    
  • Znikaj w alfabecie na pierwszych 25 klatkach wideo:
    fade=in:0:25:alpha=1
    
  • Zrób pierwsze 5,5 sekundy czarne, a następnie zanikaj przez 0,5 sekundy:
    fade=t=in:st=5.5:d=0.5
    

11.83 feedback

Zastosuj filtr wideo opinii.

Ten filtr przekazuje przycięte klatki wejściowe do drugiego wyjścia. Stamtąd można go filtrować za pomocą innych filtrów wideo. Po odebraniu przez filtr ramki z drugiego wejścia, ta ramka jest łączona z oryginalną ramką z pierwszego wejścia i przekazywana do pierwszego wyjścia.

Typowym zastosowaniem jest filtrowanie tylko części ramki.

Filtr akceptuje następujące opcje:

x
y

Ustaw górną lewą pozycję przycinania.

w
h

Ustaw rozmiar przycięcia.

11.83.1 Examples

  • Rozmyj tylko górną lewą prostokątną część klatki wideo o rozmiarze 100x100 z filtrem gblur.
    [in][blurin]feedback=x=0:y=0:w=100:h=100[out][blurout];[blurout]gblur=8[blurin]
    
  • Narysuj czarną ramkę w lewej górnej części klatki wideo o wymiarach 100x100 z filtrem 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

Odszumianie klatek przy użyciu 3D FFT (filtrowanie w domenie częstotliwości).

Filtr akceptuje następujące opcje:

sigma

Ustaw stałą sigma szumu. To ustawia siłę odszumiania. Domyślna wartość to 1. Dozwolony zakres to od 0 do 30. Użycie bardzo wysokiej sigma z małym nakładaniem się może dawać artefakty blokujące.

amount

Ustaw ilość odszumiania. Domyślnie wszystkie wykryte szumy są redukowane. Wartość domyślna to 1. Dozwolony zakres to od 0 do 1.

block

Ustaw rozmiar bloku w pikselach, domyślnie 32, może wynosić od 8 do 256.

overlap

Ustaw nakładanie się bloków. Wartość domyślna to 0,5. Dozwolony zakres to od 0,2 do 0,8.

method

Ustaw metodę odszumiania. Wartość domyślna to wiener, może być również hard.

prev

Ustaw liczbę poprzednich klatek, które mają być użyte do odszumiania. Domyślnie jest ustawiony na 0.

next

Ustaw liczbę następnych klatek do użycia do odszumiania. Domyślnie jest ustawiony na 0.

planes

Ustaw samoloty, które będą filtrowane, domyślnie dostępne są wszystkie filtrowane z wyjątkiem alfa.

11.85 fftfilt

Zastosuj dowolne wyrażenia do próbek w domenie częstotliwości

dc_Y

Dostosuj wartość prądu stałego (wzmocnienie) płaszczyzny luma obrazu. Filtr akceptuje liczbę całkowitą z zakresu 0do 1000. Wartość domyślna to 0.

dc_U

Dostosuj wartość prądu stałego (wzmocnienie) pierwszej płaszczyzny chromatycznej obrazu. Filtr akceptuje liczbę całkowitą z zakresu 0do 1000. Wartość domyślna to 0.

dc_V

Dostosuj wartość prądu stałego (wzmocnienie) drugiej płaszczyzny chrominancji obrazu. Filtr akceptuje liczbę całkowitą z zakresu 0do 1000. Wartość domyślna to 0.

weight_Y

Ustaw wyrażenie wagi domeny częstotliwości dla płaszczyzny luma.

weight_U

Ustaw wyrażenie wagi domeny częstotliwości dla pierwszej płaszczyzny chrominancji.

weight_V

Ustaw wyrażenie wagi domeny częstotliwości dla drugiej płaszczyzny chrominancji.

eval

Ustaw, kiedy wyrażenia są oceniane.

Przyjmuje następujące wartości:

'init'

Oceniaj wyrażenia tylko raz podczas inicjowania filtru.

'frame'

Oceń wyrażenia dla każdej przychodzącej ramki.

Wartość domyślna to 'init„.

Filtr akceptuje następujące zmienne:

X
Y

Współrzędne bieżącej próbki.

W
H

Szerokość i wysokość obrazu.

N

Liczba klatek wejściowych, zaczynając od 0.

WS
HS

Rozmiar tablicy FFT do przetwarzania poziomego i pionowego.

11.85.1 Examples

  • Górnoprzepustowy:
    fftfilt=dc_Y=128:weight_Y='squish(1-(Y+X)/100)'
    
  • Dolnoprzepustowy:
    fftfilt=dc_Y=0:weight_Y='squish((Y+X)/100-1)'
    
  • Wyostrzyć:
    fftfilt=dc_Y=0:weight_Y='1+squish(1-(Y+X)/100)'
    
  • Plama:
    fftfilt=dc_Y=0:weight_Y='exp(-4 * ((Y+X)/(W+H)))'
    

11.86 field

Wyodrębnij pojedyncze pole z obrazu z przeplotem za pomocą arytmetyki kroków, aby uniknąć marnowania czasu procesora. Ramki wyjściowe są oznaczone jako bez przeplotu.

Filtr akceptuje następujące opcje:

type

Określ, czy wyodrębnić górne (jeśli wartość to 0lub top) czy dolne pole (jeśli wartość to 1lub bottom).

11.87 fieldhint

Utwórz nowe ramki, kopiując górne i dolne pola z otaczających ramek dostarczonych jako liczby w pliku podpowiedzi.

hint

Ustaw plik zawierający podpowiedzi: bezwzględne/względne numery klatek.

Na każdą klatkę w klipie musi przypadać jedna linia. Każdy wiersz musi zawierać dwie liczby oddzielone przecinkiem, po których opcjonalnie występuje -lub +. Liczby podane w każdym wierszu pliku nie mogą być poza [N-1,N+1], gdzie N jest bieżącym numerem klatki dla absolutetrybu lub poza zakresem [-1,1] dla relativetrybu. Pierwsza liczba mówi, z której klatki pobrać górne pole, a druga, z której klatki pobrać dolne pole.

Jeśli opcjonalnie nastąpi +ramka wyjściowa zostanie oznaczona jako z przeplotem, w przeciwnym razie -ramka wyjściowa zostanie oznaczona jako progresywna, w przeciwnym razie zostanie oznaczona tak samo jak ramka wejściowa. Jeśli opcjonalnie nastąpi twyjście, ramka użyje tylko górnego pola, lub btylko dolnego pola. Jeśli linia zaczyna się od #lub ;ta linia jest pominięta.

mode

Może być elementem absolutelub relativelub pattern. Wartość domyślna to absolute. Tryb patternjest taki sam jak relativetryb, z wyjątkiem ostatniego wpisu pliku, jeśli jest więcej ramek do przetworzenia niż hintplik jest szukany z powrotem do początku.

Przykład pierwszych kilku wierszy hintpliku dla relativetrybu:

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

Filtr dopasowania pola dla odwróconego telecine. Ma na celu rekonstrukcję klatek progresywnych ze strumienia telecine. Filtr nie gubi zduplikowanych ramek, więc aby osiągnąć całkowite odwrócenie telecine fieldmatch, musi nastąpić filtr dziesiątkowania, taki jak decimate na wykresie filtra .

Oddzielenie dopasowywania pól i dziesiątkowania jest w szczególności motywowane możliwością wstawienia między te dwa filtry usuwające przeplot. Jeśli źródło ma mieszaną zawartość telecine i rzeczywistą z przeplotem, fieldmatchnie będzie w stanie dopasować pól dla części z przeplotem. Ale te pozostałe przeczesane klatki zostaną oznaczone jako z przeplotem, a zatem mogą zostać usunięte z przeplotu przez późniejszy filtr, taki jak yadif , przed dziesiątkowaniem.

Oprócz różnych opcji konfiguracyjnych fieldmatchmoże wziąć opcjonalny drugi strumień, aktywowany przezppsrcopcja. Jeśli ta opcja jest włączona, rekonstrukcja ramek będzie oparta na polach i ramkach z tego drugiego strumienia. Pozwala to na wstępne przetworzenie pierwszego sygnału wejściowego, aby wspomóc różne algorytmy filtra, przy jednoczesnym utrzymaniu bezstratnego wyjścia (przy założeniu, że pola są odpowiednio dopasowane). Zazwyczaj pomocne może być odszumianie obrazu w terenie lub regulacja jasności/kontrastu.

Zauważ, że ten filtr używa tych samych algorytmów co TIVTC/TFM (projekt AviSynth) i VIVTC/VFM (projekt VapourSynth). Ten ostatni to lekki klon TFM, na którym fieldmatchsię opiera. Chociaż semantyka i użycie są bardzo zbliżone, niektóre nazwy zachowań i opcji mogą się różnić.

Filtr dziesiątek działa obecnie tylko przy wprowadzaniu ze stałą szybkością klatek. Jeśli na wejściu mieszasz zawartość telecine (30 fps) i progresywną z niższą szybkością klatek, np. 24 fps, użyj następującego łańcucha filtrów, aby wytworzyć niezbędny strumień CFR: dejudder,fps=30000/1001,fieldmatch,decimate.

Filtr akceptuje następujące opcje:

order

Określ zakładaną kolejność pól strumienia wejściowego. Dostępne wartości to:

'auto'

Automatyczne wykrywanie parzystości (użyj wewnętrznej wartości parzystości FFmpeg).

'bff'

Załóż najpierw dolne pole.

'tff'

Załóż najpierw górne pole.

Pamiętaj, że czasami zaleca się, aby nie ufać parzystości ogłaszanej przez strumień.

Wartość domyślna to auto.

mode

Ustaw tryb lub strategię dopasowywania do użycia.pctryb jest najbezpieczniejszy w tym sensie, że w miarę możliwości nie będzie powodował szarpnięć z powodu zduplikowanych ramek, ale jeśli istnieją złe edycje lub pola mieszane, w końcu wygeneruje przeczesane ramki, gdy rzeczywiście istnieje dobre dopasowanie. Z drugiej strony,pcn_ubtryb jest najbardziej ryzykowny pod względem szarpania, ale prawie zawsze znajdzie dobrą klatkę, jeśli taka istnieje. Pozostałe wartości są gdzieś pomiędzypcorazpcn_ubpod względem ryzyka szarpania i tworzenia zduplikowanych ramek w porównaniu do znajdowania dobrych dopasowań w sekcjach ze złą edycją, polami osieroconymi, polami mieszanymi itp.

Więcej szczegółów na temat p/c/n/u/b można znaleźć w sekcji dotyczącej p/c/n/u/b .

Dostępne wartości to:

'pc'

Dopasowanie dwukierunkowe (p/c)

'pc_n'

Dopasowywanie dwukierunkowe i próba trzeciego dopasowania, jeśli nadal jest czesana (p/c + n)

'pc_u'

Dopasowywanie dwukierunkowe i próba dopasowania trzeciego (ta sama kolejność), jeśli nadal jest czesana (p/c + u)

'pc_n_ub'

Dopasowywanie dwukierunkowe, próba trzeciego dopasowania, jeśli nadal jest czesana, i próba dopasowania czwartego/5, jeśli nadal jest czesana (p/c + n + u/b)

'pcn'

Dopasowanie trójdrożne (p/c/n)

'pcn_ub'

Dopasowywanie trójstronne i próba dopasowania 4/5, jeśli wszystkie 3 oryginalne dopasowania zostaną wykryte jako czesane (p/c/n + u/b)

Nawiasy na końcu wskazują dopasowania, które zostałyby użyte w tym trybie, zakładającorder= tff(ifieldautolub top) .

Pod względem szybkościpctryb jest zdecydowanie najszybszy ipcn_ubjest najwolniejszy.

Wartość domyślna to pc_n.

ppsrc

Oznacz główny strumień wejściowy jako wstępnie przetworzony sygnał wejściowy i włącz drugorzędny strumień wejściowy jako czyste źródło do pobierania pól. Więcej szczegółów znajdziesz we wstępie do filtra. Jest podobny doclip2funkcja z VFM/TFM.

Wartość domyślna to 0(wyłączone).

field

Ustaw pole do dopasowania. Zaleca się ustawienie tej samej wartości, co orderchyba że wystąpią błędy dopasowania z tym ustawieniem. W pewnych okolicznościach zmiana pola używanego do dopasowania z może mieć duży wpływ na wydajność dopasowania. Dostępne wartości to:

'auto'

Automatycznie (ta sama wartość coorder).

'bottom'

Dopasuj z dolnego pola.

'top'

Dopasuj z górnego pola.

Wartość domyślna to auto.

mchroma

Określ, czy podczas porównywania dopasowań ma być uwzględniana barwa. W większości przypadków zaleca się pozostawienie tej opcji włączonej. Powinieneś ustawić to 0 tylko wtedy, gdy twój klip ma złe problemy z chrominacją, takie jak silne tęcze lub inne artefakty. Ustawienie tego na 0może być również użyte do przyspieszenia rzeczy kosztem pewnej dokładności.

Wartość domyślna to 1.

y0
y1

Definiują one pasmo wykluczenia, które wyklucza linie międzyy0oraz y1od uwzględnienia w decyzji o dopasowaniu pól. Opaska wykluczająca może służyć do ignorowania napisów, logo lub innych rzeczy, które mogą zakłócać dopasowanie.y0ustawia początkową linię skanowania i y1ustawia linię końcową; wszystkie linie pomiędzyy0oraz y1(włącznie zy0orazy1) zostaną zignorowane. Ustawienie y0orazy1do tej samej wartości wyłączy tę funkcję. y0orazy1domyślnie 0.

scthresh

Ustaw próg wykrywania zmiany sceny jako procent maksymalnej zmiany na płaszczyźnie luma. Dobre wartości mieszczą się w [8.0, 14.0]zakresie. Wykrywanie zmiany sceny ma znaczenie tylko w przypadkucombmatch= sc. Zakres dla scthreshjest [0.0, 100.0].

Wartość domyślna to 12.0.

combmatch

Kiedycombatchis not none, fieldmatchprzy podejmowaniu decyzji, który mecz zostanie użyty jako mecz finałowy, weźmie pod uwagę czesane wyniki meczów. Dostępne wartości to:

'none'

Brak ostatecznego dopasowania na podstawie czesanych wyników.

'sc'

Wyniki czesane są używane tylko po wykryciu zmiany sceny.

'full'

Używaj czesanych wyników przez cały czas.

Wartość domyślna to sc.

combdbg

Wymuś fieldmatchobliczenie czesanych metryk dla określonych dopasowań i wydrukowanie ich. To ustawienie jest znane jakomicoutw słownictwie TFM/VFM. Dostępne wartości to:

'none'

Brak wymuszonych obliczeń.

'pcn'

Obliczenia siły p/c/n.

'pcnub'

Wymuś obliczenia p/c/n/u/b.

Wartość domyślna to none.

cthresh

Jest to próg czesania obszarów używany do wykrywania przeczesanych ramek. To zasadniczo kontroluje, jak „mocne” lub „widoczne” czesanie musi być wykryte. Większe wartości oznaczają, że czesanie musi być bardziej widoczne, a mniejsze wartości oznaczają, że czesanie może być mniej widoczne lub mocne i nadal być wykrywane. Prawidłowe ustawienia to od -1(każdy piksel zostanie wykryty jako czesany) do 255(żaden piksel nie zostanie wykryty jako czesany). Jest to w zasadzie wartość różnicy pikseli. Dobry zasięg to [8, 12].

Wartość domyślna to 9.

chroma

Ustawia, czy chroma jest brana pod uwagę przy podejmowaniu decyzji o przeczesywaniu ramki. Wyłącz tę opcję tylko wtedy, gdy źródło ma problemy z kolorem (tęczowe itp.), które powodują problemy z wykrywaniem czesanych ramek przy włączonej chromacie. Właściwie, używającchroma= 0jest zwykle bardziej wiarygodne, z wyjątkiem przypadku, gdy w źródle występuje tylko czesanie barwy.

Wartość domyślna to 0.

blockx
blocky

Ustaw odpowiednio rozmiar osi X i Y okna używanego podczas wykrywania czesanych ramek. Ma to związek z wielkością obszaru, na którym combpelpiksele muszą być wykrywane jako czesane, aby ramka została zadeklarowana jako czesana. Zobaczcombpelopis parametrów, aby uzyskać więcej informacji. Możliwe wartości to dowolna liczba, która jest potęgą dwójki, zaczynając od 4 i przechodząc do 512.

Wartość domyślna to 16.

combpel

Liczba przeczesanych pikseli w dowolnym zblockyza pomocą blockxbloki rozmiaru na ramce, aby ramka została wykryta jako czesana. Podczas gdycthreshkontroluje jak "widoczne" musi być czesanie, to ustawienie kontroluje "jak dużo" czesania musi być w dowolnym zlokalizowanym obszarze (okno zdefiniowane przezblockxorazblockyustawienia) na ramie. Minimalna wartość to, 0a maksymalna to blocky x blockx(w którym to momencie żadne ramki nie zostaną wykryte jako czesane). To ustawienie jest znane jakoMIw słownictwie TFM/VFM.

Wartość domyślna to 80.

11.88.1 p/c/n/u/b meaning

11.88.1.1 p/c/n

Zakładamy następujący strumień telecine:

Top fields:     1 2 2 3 4
Bottom fields:  1 2 3 4 4

Liczby odpowiadają ramce progresywnej, której dotyczą pola. Tutaj dwie pierwsze klatki są progresywne, trzecia i czwarta są czesane i tak dalej.

Kiedy fieldmatchjest skonfigurowany do uruchamiania dopasowywania od dołu (field= bottom) w ten sposób ten strumień wejściowy zostaje przekształcony:

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

W wyniku dopasowania pól widzimy, że niektóre ramki ulegają zduplikowaniu. Aby wykonać pełne odwrotne telecine, musisz po tej operacji polegać na filtrze dziesiątkującym. Zobacz na przykład filtr dziesiątek .

Ta sama operacja jest teraz dopasowywana z górnych pól (field= top) wygląda tak:

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

W tych przykładach możemy zobaczyć co i poznaczać ; zasadniczo odnoszą się do ramki i pola o przeciwnej parzystości: cn

  • ppasuje do pola o przeciwnej parzystości w poprzedniej klatce
  • cdopasowuje pole o przeciwnej parzystości w bieżącej ramce
  • ndopasowuje pole o przeciwnej parzystości w następnej klatce

11.88.1.2 u/b

Dopasowanie ui bjest nieco szczególne w tym sensie, że pasuje do przeciwnej flagi parzystości. W poniższych przykładach zakładamy, że aktualnie dopasowujemy drugą klatkę (Góra:2, dół:2). Zgodnie z dopasowaniem, „x” jest umieszczany nad i pod każdym dopasowanym polem.

Z dopasowaniem dolnym (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

Z najlepszym dopasowaniem (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

Prosty IVTC pierwszego strumienia telecine z górnego pola:

fieldmatch=order=tff:combmatch=none, decimate

Zaawansowany IVTC, z rezerwą na yadif dla wciąż czesanych ramek:

fieldmatch=order=tff:combmatch=full, yadif=deint=interlaced, decimate

11.89 fieldorder

Przekształć kolejność pól wejściowego wideo.

Przyjmuje następujące parametry:

order

Kolejność pól wyjściowych. Prawidłowe wartości to tffnajpierw górne pole lub najpierw bff dolne pole.

Wartość domyślna to 'tff„.

Przekształcenie odbywa się poprzez przesunięcie zawartości obrazu w górę lub w dół o jedną linię i wypełnienie pozostałej linii odpowiednią zawartością obrazu. Ta metoda jest zgodna z większością konwerterów kolejności pól rozgłoszeniowych.

Jeśli wejściowy sygnał wideo nie jest oznaczony jako z przeplotem lub jest już oznaczony jako zgodny z wymaganą kolejnością pól wyjściowych, filtr ten nie zmienia przychodzącego wideo.

Jest to bardzo przydatne podczas konwersji do lub z materiału PAL DV, który jest najpierw dolny.

Na przykład:

ffmpeg -i in.vob -vf "fieldorder=bff" out.dv

11.90 fifo, afifo

Buforuj obrazy wejściowe i wysyłaj je na żądanie.

Jest to przydatne głównie przy automatycznym wstawianiu przez framework libavfilter.

Nie przyjmuje parametrów.

11.91 fillborders

Wypełnij granice wejściowego wideo bez zmiany wymiarów strumienia wideo. Czasami wideo może mieć śmieci na czterech krawędziach i możesz nie chcieć przycinać wejścia wideo, aby zachować wielokrotność rozmiaru pewnej liczby.

Ten filtr akceptuje następujące opcje:

left

Liczba pikseli do wypełnienia od lewej krawędzi.

right

Liczba pikseli do wypełnienia od prawej krawędzi.

top

Liczba pikseli do wypełnienia od górnej krawędzi.

bottom

Liczba pikseli do wypełnienia od dolnej krawędzi.

mode

Ustaw tryb wypełnienia.

Przyjmuje następujące wartości:

'smear'

wypełniaj piksele przy użyciu zewnętrznych pikseli

'mirror'

wypełnij piksele za pomocą odbicia lustrzanego (połowa próbki symetrycznie)

'fixed'

wypełnij piksele stałą wartością

'reflect'

wypełnij piksele za pomocą odbicia (cała próbka symetrycznie)

'wrap'

wypełnij piksele za pomocą zawijania

'fade'

zanikanie pikseli do stałej wartości

'margins'

wypełnić piksele na górze i na dole ważonymi średnimi pikselami w pobliżu granic

Wartość domyślna to smear.

color

Ustaw kolor pikseli w trybie stałym lub zanikania. Wartość domyślna to black.

11.91.1 Commands

Ten filtr obsługuje te same polecenia, co opcje. Polecenie akceptuje tę samą składnię odpowiedniej opcji.

Jeśli podane wyrażenie jest niepoprawne, jest zachowywane z bieżącą wartością.

11.92 find_rect

Znajdź prostokątny obiekt

Akceptuje następujące opcje:

object

Ścieżka do pliku obrazu obiektu musi być w kolorze gray8.

threshold

Próg wykrywania, domyślnie 0,5.

mipmaps

Liczba mipmap, domyślnie 3.

xmin, ymin, xmax, ymax

Określa prostokąt, w którym należy szukać.

discard

Odrzuć ramki, w których obiekt nie został wykryty. Domyślnie jest wyłączone.

11.92.1 Examples

  • Zakryj prostokątny obiekt dostarczonym obrazem danego filmu za pomocą ffmpeg:
    ffmpeg -i file.ts -vf find_rect=newref.pgm,cover_rect=cover.jpg:mode=cover new.mkv
    

11.93 floodfill

Zalej obszar wartościami tych samych składowych pikseli innymi wartościami.

Akceptuje następujące opcje:

x

Ustaw współrzędną piksela x.

y

Ustaw współrzędną y piksela.

s0

Ustaw wartość komponentu #0 źródła.

s1

Ustaw wartość komponentu źródłowego nr 1.

s2

Ustaw wartość komponentu źródłowego nr 2.

s3

Ustaw wartość komponentu źródłowego #3.

d0

Ustaw docelową wartość składnika nr 0.

d1

Ustaw docelową wartość komponentu #1.

d2

Ustaw wartość komponentu docelowego nr 2.

d3

Ustaw docelową wartość komponentu #3.

11.94 format

Konwertuj wideo wejściowe na jeden z określonych formatów pikseli. Libavfilter spróbuje wybrać taki, który jest odpowiedni jako dane wejściowe do następnego filtra.

Przyjmuje następujące parametry:

pix_fmts

Lista nazw formatów pikseli rozdzielonych znakiem „|”, np. „pix_fmts=yuv420p|monow|rgb24”.

11.94.1 Examples

  • Konwertuj wideo wejściowe do yuv420pformatu
    format=pix_fmts=yuv420p
    

    Konwertuj wideo wejściowe na dowolny format z listy

    format=pix_fmts=yuv420p|yuv444p|yuv410p
    

11.95 fps

Konwertuj wideo do określonej stałej szybkości klatek, w razie potrzeby duplikując lub upuszczając klatki.

Przyjmuje następujące parametry:

fps

Żądana szybkość klatek wyjściowych. Przyjmuje wyrażenia zawierające następujące stałe:

'source_fps'

Szybkość klatek na wejściu

'ntsc'

Szybkość klatek NTSC30000/1001

'pal'

Liczba klatek na sekundę PAL25.0

'film'

Szybkość klatek filmu24.0

'ntsc_film'

Szybkość klatek filmu NTSC24000/1001

Wartość domyślna to 25.

start_time

Załóżmy, że pierwszy PTS powinien mieć podaną wartość w sekundach. Pozwala to na dopełnienie/przycinanie na początku strumienia. Domyślnie nie przyjmuje się żadnych założeń dotyczących oczekiwanego PTS pierwszej klatki, więc nie wykonuje się dopełniania ani przycinania. Na przykład może to być ustawione na 0, aby uzupełnić początek duplikatami pierwszej klatki, jeśli strumień wideo rozpoczyna się po strumieniu audio lub aby przyciąć dowolne klatki z ujemnym PTS.

round

Metoda zaokrąglania znacznika czasu (PTS).

Możliwe wartości to:

zero

okrągłe w kierunku 0

inf

zaokrąglić od 0

down

okrągłe w kierunku -nieskończoności

up

okrągły w kierunku +nieskończoności

near

zaokrąglić do najbliższego

Wartość domyślna to near.

eof_action

Czynność wykonywana podczas odczytu ostatniej klatki.

Możliwe wartości to:

round

Użyj tej samej metody zaokrąglania znacznika czasu, jak w przypadku innych ramek.

pass

Przejdź przez ostatnią klatkę, jeśli czas trwania wejścia nie został jeszcze osiągnięty.

Wartość domyślna to round.

Alternatywnie opcje można określić jako płaski ciąg: fps[: start_time[: round]].

Zobacz także filtr setpts .

11.95.1 Examples

  • Typowe zastosowanie w celu ustawienia fps na 25:
    fps=fps=25
    
  • Ustawia fps na 24, używając skrótu i ​​metody zaokrąglania, aby zaokrąglić do najbliższej:
    fps=fps=film:round=near
    

11.96 framepack

Spakuj dwa różne strumienie wideo w stereoskopowe wideo, ustawiając odpowiednie metadane na obsługiwanych kodekach. Oba widoki powinny mieć ten sam rozmiar i liczbę klatek na sekundę, a przetwarzanie zostanie zatrzymane po zakończeniu krótszego filmu. Pamiętaj, że możesz wygodnie dostosować właściwości widoku za pomocą filtrów skali i fps .

Przyjmuje następujące parametry:

format

Pożądany format pakowania. Obsługiwane wartości to:

sbs

Widoki są obok siebie (domyślnie).

tab

Widoki są jeden na drugim.

lines

Widoki są upakowane liniami.

columns

Widoki są upakowane po kolumnach.

frameseq

Widoki są czasowo przeplatane.

Kilka przykładów:

# 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

Zmień szybkość klatek, interpolując nowe klatki wyjściowe wideo z klatek źródłowych.

Ten filtr nie jest przeznaczony do prawidłowego działania z mediami z przeplotem. Jeśli chcesz zmienić szybkość klatek mediów z przeplotem, musisz usunąć przeplot przed tym filtrem i ponownie przeplot po tym filtrze.

Poniżej znajduje się opis akceptowanych opcji.

fps

Określ wyjściowe klatki na sekundę. Tę opcję można również określić jako samą wartość. Wartość domyślna to 50.

interp_start

Określ początek zakresu, w którym klatka wyjściowa zostanie utworzona jako liniowa interpolacja dwóch klatek. Zakres to [ 0- 255], wartość domyślna to 15.

interp_end

Określ koniec zakresu, w którym klatka wyjściowa zostanie utworzona jako liniowa interpolacja dwóch klatek. Zakres to [ 0- 255], wartość domyślna to 240.

scene

Określ poziom, na którym zmiana sceny jest wykrywana jako wartość z zakresu od 0 do 100, aby wskazać nową scenę; niska wartość odzwierciedla małe prawdopodobieństwo, że bieżąca klatka wprowadzi nową scenę, podczas gdy wyższa wartość oznacza, że ​​bieżąca klatka jest bardziej prawdopodobna. Wartość domyślna to 8.2.

flags

Określ flagi wpływające na proces filtrowania.

Dostępna wartość dla flagsto:

scene_change_detect, scd

Włącz wykrywanie zmiany sceny za pomocą wartości opcji scene. Ta flaga jest domyślnie włączona.

11.98 framestep

Wybierz jedną klatkę co N-tą klatkę.

Ten filtr akceptuje następującą opcję:

step

Wybierz klatkę po każdej klatce step. Dozwolone wartości to dodatnie liczby całkowite większe od 0. Wartość domyślna to 1.

11.99 freezedetect

Wykryj zamrożone wideo.

Ten filtr rejestruje komunikat i ustawia metadane ramki, gdy wykryje, że wejściowy obraz wideo nie ma znaczących zmian w treści w określonym czasie. Wykrywanie zamrożenia wideo oblicza średnią średnią bezwzględną różnicę wszystkich składników klatek wideo i porównuje ją z poziomem szumów.

Wydrukowane czasy i czas trwania są wyrażone w sekundach. Klucz metadanych jest lavfi.freezedetect.freeze_startustawiany na pierwszej klatce, której znacznik czasu jest równy lub przekracza czas trwania wykrywania i zawiera znacznik czasu pierwszej klatki zamrożenia. Klucze metadanych lavfi.freezedetect.freeze_durationi lavfi.freezedetect.freeze_endsą ustawiane w pierwszej klatce po zamrożeniu.

Filtr akceptuje następujące opcje:

noise, n

Ustaw tolerancję hałasu. Można określić w dB (w przypadku, gdy "dB" jest dołączone do określonej wartości) lub jako stosunek różnicy między 0 a 1. Wartość domyślna to -60 dB lub 0,001.

duration, d

Ustaw czas trwania zamrożenia do powiadomienia (domyślnie 2 sekundy).

11.100 freezeframes

Zatrzymaj klatki wideo.

Ten filtr zamraża klatki wideo przy użyciu klatki z drugiego wejścia.

Filtr akceptuje następujące opcje:

first

Ustaw numer pierwszej klatki, od której rozpocznie się zamrożenie.

last

Ustaw numer ostatniej klatki, od której ma się zakończyć zamrażanie.

replace

Ustaw numer ramki z drugiego wejścia, która będzie używana zamiast zastępowanych ramek.

11.101 frei0r

Zastosuj efekt frei0r do wejściowego wideo.

Aby umożliwić kompilację tego filtra, musisz zainstalować nagłówek frei0r i skonfigurować FFmpeg za pomocą --enable-frei0r.

Przyjmuje następujące parametry:

filter_name

Nazwa efektu frei0r do załadowania. Jeśli zmienna środowiskowa FREI0R_PATHjest zdefiniowana, efekt frei0r jest wyszukiwany w każdym z katalogów określonych przez listę oddzieloną dwukropkami w FREI0R_PATH. W przeciwnym razie przeszukiwane są standardowe ścieżki frei0r w następującej kolejności: HOME/.frei0r-1/lib/,/usr/local/lib/frei0r-1/, /usr/lib/frei0r-1/.

filter_params

Oddzielona '|' lista parametrów do przekazania do efektu frei0r.

Parametrem efektu frei0r może być wartość logiczna (jego wartość to „y” lub „n”), double, kolor (określony jako R/ G/ B, gdzie R, Gi Bsą liczbami zmiennoprzecinkowymi z zakresu od 0.0 do 1.0 włącznie) lub opis koloru określony w sekcji (ffmpeg-utils)"Color" w podręczniku ffmpeg-utils , pozycja (określona jako X/ Y, gdzie Xi Ysą liczbami zmiennoprzecinkowymi) i/lub ciąg.

Liczba i rodzaje parametrów zależą od załadowanego efektu. Jeśli parametr efektu nie jest określony, ustawiana jest wartość domyślna.

11.101.1 Examples

  • Zastosuj efekt distortion0r, ustawiając dwa pierwsze podwójne parametry:
    frei0r=filter_name=distort0r:filter_params=0.5|0.01
    
  • Zastosuj efekt odległości kolorów, przyjmując kolor jako pierwszy parametr:
    frei0r=colordistance:0.2/0.3/0.4
    frei0r=colordistance:violet
    frei0r=colordistance:0x112233
    
  • Zastosuj efekt perspektywy, określając lewą górną i prawą górną pozycję obrazu:
    frei0r=perspective:0.2/0.2|0.8/0.2
    

Aby uzyskać więcej informacji, zobacz http://frei0r.dyne.org

11.101.2 Commands

Ten filtr obsługujefilter_paramsopcja jako polecenia .

11.102 fspp

Zastosuj szybkie i proste przetwarzanie końcowe. Jest to szybsza wersja spp .

Dzieli (I)DCT na przejścia poziome/pionowe. W przeciwieństwie do prostego filtra przetwarzania końcowego, jeden z nich jest wykonywany raz na blok, a nie na piksel. Pozwala to na znacznie większą prędkość.

Filtr akceptuje następujące opcje:

quality

Ustaw jakość. Ta opcja określa liczbę poziomów do uśredniania. Przyjmuje liczbę całkowitą z zakresu 4-5. Wartość domyślna to 4.

qp

Wymuś stały parametr kwantyzacji. Przyjmuje liczbę całkowitą z zakresu 0-63. Jeśli nie jest ustawiony, filtr użyje QP ze strumienia wideo (jeśli jest dostępny).

strength

Ustaw siłę filtra. Przyjmuje liczbę całkowitą z zakresu od -15 do 32. Niższe wartości oznaczają więcej szczegółów, ale także więcej artefaktów, podczas gdy wyższe wartości sprawiają, że obraz jest gładszy, ale także bardziej rozmyty. Wartość domyślna to 0− PSNR optymalna.

use_bframe_qp

Włącz korzystanie z QP z ramek B, jeśli jest ustawione na 1. Użycie tej opcji może powodować migotanie, ponieważ ramki B mają często większe QP. Wartość domyślna to 0(nie włączone).

11.103 gblur

Zastosuj filtr rozmycia Gaussa.

Filtr akceptuje następujące opcje:

sigma

Ustaw poziomą sigma, odchylenie standardowe rozmycia Gaussa. Wartość domyślna to 0.5.

steps

Ustaw liczbę kroków dla aproksymacji Gaussa. Wartość domyślna to 1.

planes

Ustaw samoloty do filtrowania. Domyślnie filtrowane są wszystkie samoloty.

sigmaV

Ustaw pionową sigma, jeśli jest ujemna, będzie taka sama jak sigma. Wartość domyślna to -1.

11.103.1 Commands

Ten filtr obsługuje te same polecenia, co opcje. Polecenie akceptuje tę samą składnię odpowiedniej opcji.

Jeśli podane wyrażenie jest niepoprawne, jest zachowywane z bieżącą wartością.

11.104 geq

Zastosuj równanie ogólne do każdego piksela.

Filtr akceptuje następujące opcje:

lum_expr, lum

Ustaw wyrażenie luminancji.

cb_expr, cb

Ustaw ekspresję chrominance blue.

cr_expr, cr

Ustaw wyraz czerwonej chrominancji.

alpha_expr, a

Ustaw wyrażenie alfa.

red_expr, r

Ustaw czerwony wyraz.

green_expr, g

Ustaw zielone wyrażenie.

blue_expr, b

Ustaw niebieski wyraz.

Przestrzeń kolorów jest wybierana zgodnie z określonymi opcjami. Jeśli jeden zlum_expr,cb_expr, lubcr_expr Jeśli określono opcje, filtr automatycznie wybierze przestrzeń kolorów YCbCr. Jeśli jeden zred_expr,green_expr, lub blue_exprJeśli określono opcje, wybierze przestrzeń kolorów RGB.

Jeśli jedno z wyrażeń chrominancji nie jest zdefiniowane, wraca do drugiego. Jeśli nie zostanie określone żadne wyrażenie alfa, zostanie ono ocenione jako wartość nieprzezroczysta. Jeśli żadne z wyrażeń chrominancji nie zostanie określone, zostaną one ocenione jako wyrażenie luminancji.

Wyrażenia mogą wykorzystywać następujące zmienne i funkcje:

N

Numer kolejny przefiltrowanej ramki, począwszy od 0.

X
Y

Współrzędne bieżącej próbki.

W
H

Szerokość i wysokość obrazu.

SW
SH

Skala szerokości i wysokości w zależności od aktualnie filtrowanej płaszczyzny. Jest to stosunek między odpowiednią liczbą pikseli w płaszczyźnie luma a bieżącą liczbą pikseli. Np. dla YUV4:2:0 wartości dotyczą 1,1płaszczyzny luminancji i 0.5,0.5płaszczyzny chromatycznej.

T

Czas bieżącej klatki wyrażony w sekundach.

p(x, y)

Zwróć wartość piksela w lokalizacji ( x, y) bieżącej płaszczyzny.

lum(x, y)

Zwróć wartość piksela w lokalizacji ( x, y) płaszczyzny luminancji.

cb(x, y)

Zwróć wartość piksela w lokalizacji ( x, y) płaszczyzny chrominancji niebieskiej różnicy. Zwróć 0, jeśli nie ma takiego samolotu.

cr(x, y)

Zwraca wartość piksela w lokalizacji ( x, y) płaszczyzny chromatycznej różnicy czerwieni. Zwróć 0, jeśli nie ma takiego samolotu.

r(x, y)
g(x, y)
b(x, y)

Zwróć wartość piksela w lokalizacji ( x, y) składnika czerwonego/zielonego/niebieskiego. Zwróć 0, jeśli nie ma takiego składnika.

alpha(x, y)

Zwróć wartość piksela w lokalizacji ( x, y) płaszczyzny alfa. Zwróć 0, jeśli nie ma takiego samolotu.

psum(x,y), lumsum(x, y), cbsum(x,y), crsum(x,y), rsum(x,y), gsum(x,y), bsum(x,y), alphasum(x,y)

Suma wartości próbek w prostokącie od (0,0) do (x,y), pozwala to uzyskać sumy próbek w prostokącie. Zobacz funkcje bez przyrostka sumy.

interpolation

Ustaw jedną z metod interpolacji:

nearest, n
bilinear, b

Domyślnie jest dwuliniowy.

W przypadku funkcji, jeśli xi yznajdują się poza obszarem, wartość zostanie automatycznie przycięta do bliższej krawędzi.

Należy pamiętać, że ten filtr może używać wielu wątków, w którym to przypadku każdy wycinek będzie miał swój własny stan wyrażenia. Jeśli chcesz użyć tylko jednego stanu wyrażenia, ponieważ twoje wyrażenia zależą od poprzedniego stanu, powinieneś ograniczyć liczbę wątków filtra do 1.

11.104.1 Examples

  • Odwróć obraz w poziomie:
    geq=p(W-X\,Y)
    
  • Wygeneruj dwuwymiarową falę sinusoidalną o kącie PI/3i długości fali 100 pikseli:
    geq=128 + 100*sin(2*(PI/100)*(cos(PI/3)*(X-50*T) + sin(PI/3)*Y)):128:128
    
  • Wygeneruj fantazyjne, enigmatyczne ruchome światło:
    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
    
  • Wygeneruj szybki efekt wytłoczenia:
    format=gray,geq=lum_expr='(p(X,Y)+(256-p(X-4,Y-4)))/2'
    
  • Zmodyfikuj komponenty RGB w zależności od pozycji piksela:
    geq=r='X/W*r(X,Y)':g='(1-X/W)*g(X,Y)':b='(H-Y)/H*b(X,Y)'
    
  • Utwórz gradient promieniowy o takim samym rozmiarze jak dane wejściowe (zobacz także filtr winietowy ):
    geq=lum=255*gauss((X/W-0.5)*3)*gauss((Y/H-0.5)*3)/gauss(0)/gauss(0),format=gray
    

11.105 gradfun

Napraw artefakty pasków, które czasami są wprowadzane do prawie płaskich obszarów przez obcięcie do 8-bitowej głębi kolorów. Przeprowadź interpolację gradientów, które powinny przebiegać w miejscu, w którym znajdują się wstęgi, i roztrząsaj je.

Jest przeznaczony wyłącznie do odtwarzania. Nie używaj go przed kompresją stratną, ponieważ kompresja ma tendencję do utraty ditheringu i przywracania pasm.

Przyjmuje następujące parametry:

strength

Maksymalna wartość, o jaką filtr zmieni jeden piksel. Jest to również próg wykrywania prawie płaskich obszarów. Dopuszczalne wartości wahają się od 0,51 do 64; domyślna wartość to 1,2. Wartości spoza zakresu zostaną przycięte do prawidłowego zakresu.

radius

Okolica, do której należy dopasować nachylenie. Większy promień zapewnia gładsze gradienty, ale także zapobiega modyfikowaniu przez filtr pikseli w pobliżu szczegółowych regionów. Dopuszczalne wartości to 8-32; domyślna wartość to 16. Wartości spoza zakresu zostaną przycięte do prawidłowego zakresu.

Alternatywnie opcje można określić jako płaski ciąg: strength[: radius]

11.105.1 Examples

  • Zastosuj filtr o 3.5sile i promieniu 8:
    gradfun=3.5:8
    
  • Określ promień, pomijając siłę (która powróci do wartości domyślnej):
    gradfun=radius=8
    

11.106 graphmonitor

Pokaż różne statystyki filtrowania.

Za pomocą tego filtru można debugować pełny wykres filtra. Zwłaszcza problemy z wypełnianiem linków ramkami w kolejce.

Filtr akceptuje następujące opcje:

size, s

Ustaw rozmiar wyjścia wideo. Wartość domyślna to hd720.

opacity, o

Ustaw przezroczystość wideo. Wartość domyślna to 0.9. Dozwolony zakres to od 0do 1.

mode, m

Ustaw tryb wyjścia, może być fullllub compact. W compacttrybie tylko filtry z niektórymi ramkami w kolejce wyświetlają statystyki.

flags, f

Ustaw flagi, które umożliwiają wyświetlanie statystyk w filmie.

Dostępne wartości dla flag to:

'queue'

Wyświetl liczbę ramek w kolejce w każdym łączu.

'frame_count_in'

Wyświetl liczbę klatek pobranych z filtra.

'frame_count_out'

Wyświetla liczbę klatek wydanych z filtra.

'frame_count_delta'

Wyświetla deltę liczby klatek między powyższymi dwiema wartościami.

'pts'

Wyświetlaj aktualne przefiltrowane punkty ramki.

'pts_delta'

Wyświetlaj deltę punktów między bieżącą a poprzednią klatką.

'time'

Wyświetla bieżący czas filtrowania klatek.

'time_delta'

Wyświetl deltę czasu między bieżącą a poprzednią klatką.

'timebase'

Wyświetl podstawę czasu dla linku filtra.

'format'

Wyświetl używany format linku filtra.

'size'

Wyświetlaj rozmiar wideo lub liczbę kanałów audio w przypadku dźwięku używanego przez łącze filtra.

'rate'

Wyświetlaj częstotliwość klatek wideo lub częstotliwość próbkowania w przypadku dźwięku używanego przez łącze filtra.

'eof'

Wyświetl stan wyjścia łącza.

'sample_count_in'

Wyświetl liczbę próbek pobranych z filtra.

'sample_count_out'

Wyświetla liczbę próbek wydanych z filtra.

'sample_count_delta'

Wyświetla deltę liczby próbek między powyższymi dwiema wartościami.

rate, r

Ustaw górny limit szybkości wideo strumienia wyjściowego. Wartość domyślna to 25. Gwarantuje to, że wyjściowa szybkość klatek wideo nie będzie wyższa niż ta wartość.

11.107 grayworld

Filtr stałości kolorów, który stosuje korekcję kolorów w oparciu o założenie grayworld

Zobacz: https://www.researchgate.net/publication/275213614_A_New_Color_Correction_Method_for_Underwater_Imaging

Algorytm wykorzystuje światło liniowe, dlatego dane wejściowe powinny być wcześniej zlinearyzowane (i ewentualnie poprawnie otagowane).

ffmpeg -i INPUT -vf zscale=transfer=linear,grayworld,zscale=transfer=bt709,format=yuv420p OUTPUT

11.108 greyedge

Filtr zmienności kolorów, który szacuje oświetlenie sceny za pomocą algorytmu krawędzi szarości i odpowiednio koryguje kolory sceny.

Zobacz: https://staff.science.uva.nl/th.gevers/pub/GeversTIP07.pdf

Filtr akceptuje następujące opcje:

difford

Kolejność różnicowania do zastosowania na scenie. Musi być wybrany z zakresu [0,2], a wartość domyślna to 1.

minknorm

Parametr Minkowskiego do obliczenia odległości Minkowskiego. Musi być wybrany w zakresie [0,20], a domyślna wartość to 1. Ustaw na 0, aby uzyskać maksymalną wartość zamiast obliczania odległości Minkowskiego.

sigma

Odchylenie standardowe rozmycia Gaussa do zastosowania na scenie. Musi być wybrany z zakresu [0,1024,0], a wartość domyślna = 1. floor( sigma* break_off_sigma(3) ) nie może być równe 0, jeśli diffordjest większe od 0.

11.108.1 Examples

  • Szara krawędź:
    greyedge=difford=1:minknorm=5:sigma=2
    
  • Maksymalna krawędź:
    greyedge=difford=1:minknorm=0:sigma=2
    

11.109 guided

Zastosuj filtr z przewodnikiem do wygładzania krawędzi, usuwania zamglenia i tak dalej.

Filtr akceptuje następujące opcje:

radius

Ustaw promień pudełka w pikselach. Dozwolony zakres to 1 do 20. Wartość domyślna to 3.

eps

Ustaw parametr regularyzacji (z kwadratem). Dozwolony zakres to 0 do 1. Wartość domyślna to 0,01.

mode

Ustaw tryb filtrowania. Może być basiclub fast. Wartość domyślna to basic.

sub

Ustaw współczynnik podpróbkowania dla fasttrybu. Zakres od 2 do 64. Wartość domyślna to 4. W basictrybie nie występuje podpróbkowanie.

guidance

Ustaw tryb prowadzenia. Może być offlub on. Wartość domyślna to off. Jeśli offwymagane jest jedno wejście. Jeśli onwymagane są dwa wejścia o tej samej rozdzielczości i formacie pikseli. Drugie wejście służy jako wskazówka.

planes

Ustaw samoloty do filtrowania. Domyślnie jest tylko pierwszy.

11.109.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

11.109.2 Examples

  • Wygładzanie z zachowaniem krawędzi z filtrem prowadzonym:
    ffmpeg -i in.png -vf guided out.png
    
  • Usuwanie zamglenia, filtrowanie przenoszące strukturę, uwydatnianie szczegółów za pomocą filtra kierowanego. Informacje na temat generowania obrazu nawigacji można znaleźć w dokumencie „Guided Image Filtering”. Zobacz: http://kaiminghe.com/publications/pami12guidedfilter.pdf .
    ffmpeg -i in.png -i guidance.png -filter_complex guided=guidance=on out.png
    

11.110 haldclut

Zastosuj Hald CLUT do strumienia wideo.

Pierwsze wejście to strumień wideo do przetworzenia, a drugie to Hald CLUT. Wejście Hald CLUT może być prostym obrazem lub pełnym strumieniem wideo.

Filtr akceptuje następujące opcje:

clut

Ustaw, które klatki wideo CLUT będą przetwarzane z drugiego strumienia wejściowego, może to być firstlub all. Wartość domyślna to all.

shortest

Wymuś zakończenie po zakończeniu najkrótszego wejścia. Wartość domyślna to 0.

repeatlast

Kontynuuj stosowanie ostatniej CLUT po zakończeniu strumienia. Wartość 0wyłączenia filtra po osiągnięciu ostatniej ramki CLUT. Wartość domyślna to 1.

haldclutma również te same opcje interpolacji co lut3d (oba filtry mają te same elementy wewnętrzne).

Ten filtr obsługuje również opcje framesync .

Więcej informacji na temat Hald CLUT można znaleźć na stronie internetowej Eskila Steenberga (autora Hald CLUT) pod adresem http://www.quelsolaar.com/technology/clut.html .

11.110.1 Commands

Ten filtr obsługuje interpopcję jako polecenia .

11.110.2 Workflow examples

11.110.2.1 Hald CLUT video stream

Wygeneruj strumień tożsamości Hald CLUT zmieniony z różnymi efektami:

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

Uwaga: upewnij się, że używasz bezstratnego kodeka.

Następnie użyj go z, haldclutaby zastosować go w jakimś losowym strumieniu:

ffmpeg -f lavfi -i mandelbrot -i clut.nut -filter_complex '[0][1] haldclut' -t 20 mandelclut.mkv

Hald CLUT zostanie zastosowany do pierwszych 10 sekund (czas trwania clut.nut), najnowszy obraz tego strumienia CLUT zostanie zastosowany do pozostałych ramek mandelbrotstrumienia.

11.110.2.2 Hald CLUT with preview

Hald CLUT ma być kwadratowym obrazem o Level*Level*Levelpikselach Level*Level*Level. Dla danego Hald CLUT, FFmpeg wybierze największy możliwy kwadrat, zaczynając od lewego górnego rogu obrazu. Pozostałe piksele dopełniające (dolne lub prawe) zostaną zignorowane. Ten obszar może być użyty do dodania podglądu Hald CLUT.

Zazwyczaj filtr obsługuje następujące wygenerowane elementy 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

Zawiera oryginał i podgląd efektu CLUT: paski kolorów SMPTE są wyświetlane w prawym górnym rogu, a poniżej te same paski kolorów przetworzone przez zmiany kolorów.

Następnie efekt tego Hald CLUT można zwizualizować za pomocą:

ffplay input.mkv -vf "movie=clut.png, [in] haldclut"

11.111 hflip

Odwróć wejściowy sygnał wideo w poziomie.

Na przykład, aby odwrócić wejście wideo w poziomie za pomocą ffmpeg:

ffmpeg -i in.avi -vf "hflip" out.avi

11.112 histeq

Ten filtr stosuje globalne wyrównanie histogramu kolorów na klatkę.

Może być używany do poprawiania wideo, które ma skompresowany zakres intensywności pikseli. Filtr dokonuje redystrybucji intensywności pikseli, aby wyrównać ich rozkład w całym zakresie intensywności. Może być postrzegany jako „automatycznie dostosowujący się filtr kontrastu”. Ten filtr jest przydatny tylko do korygowania zdegradowanego lub słabo przechwyconego źródła wideo.

Filtr akceptuje następujące opcje:

strength

Określ ilość wyrównania do zastosowania. W miarę zmniejszania się siły rozkład intensywności pikseli coraz bardziej zbliża się do ramki wejściowej. Wartość musi być liczbą zmiennoprzecinkową z zakresu [0,1] i domyślnie wynosi 0,200.

intensity

Ustaw maksymalną intensywność, jaką można wygenerować i odpowiednio skaluj wartości wyjściowe. Siłę należy ustawić według potrzeb, a następnie w razie potrzeby ograniczyć intensywność, aby uniknąć wymywania. Wartość musi być liczbą zmiennoprzecinkową z zakresu [0,1] i domyślnie wynosi 0,210.

antibanding

Ustaw poziom przeciwdziałania prążkom. Jeśli jest włączony, filtr będzie losowo zmieniał luminancję wyjściowych pikseli o niewielką wartość, aby uniknąć prążkowania histogramu. Możliwe wartości to none, weaklub strong. Domyślnie jest to none.

11.113 histogram

Oblicz i narysuj histogram rozkładu kolorów dla wejściowego wideo.

Obliczony histogram jest reprezentacją rozkładu składowej koloru na obrazie.

Histogram standardowy wyświetla rozkład składników koloru na obrazie. Wyświetla wykres kolorów dla każdego składnika koloru. Pokazuje rozkład składowych Y, U, V, A lub R, G, B, w zależności od formatu wejściowego, w bieżącej ramce. Pod każdym wykresem pokazany jest miernik skali składowej koloru.

Filtr akceptuje następujące opcje:

level_height

Ustaw wysokość poziomu. Wartość domyślna to 200. Dozwolony zakres to [50, 2048].

scale_height

Ustaw wysokość skali kolorów. Wartość domyślna to 12. Dozwolony zakres to [0, 40].

display_mode

Ustaw tryb wyświetlania. Przyjmuje następujące wartości:

'stack'

Wykresy składowe dla poszczególnych kolorów są umieszczane pod sobą.

'parade'

Wykresy składowe kolorów są umieszczane obok siebie.

'overlay'

Przedstawia informacje identyczne jak w parade, z tą różnicą, że wykresy przedstawiające składowe kolorów nakładają się bezpośrednio na siebie.

Wartość domyślna to stack.

levels_mode

Ustaw tryb. Może być linear, lub logarithmic. Wartość domyślna to linear.

components

Ustaw komponenty kolorów do wyświetlenia. Wartość domyślna to 7.

fgopacity

Ustaw krycie pierwszego planu. Wartość domyślna to 0.7.

bgopacity

Ustaw krycie tła. Wartość domyślna to 0.5.

colors_mode

Ustaw tryb kolorów. Przyjmuje następujące wartości:

'whiteonblack'
'blackonwhite'
'whiteongray'
'blackongray'
'coloronblack'
'coloronwhite'
'colorongray'
'blackoncolor'
'whiteoncolor'
'grayoncolor'

Wartość domyślna to whiteonblack.

11.113.1 Examples

  • Oblicz i narysuj histogram:
    ffplay -i input -vf histogram
    

11.114 hqdn3d

Jest to filtr odszumiający 3D o wysokiej precyzji/jakości. Ma na celu zmniejszenie szumów obrazu, uzyskanie płynnych obrazów i uzyskanie naprawdę nieruchomych obrazów. Powinien poprawiać ściśliwość.

Akceptuje następujące parametry opcjonalne:

luma_spatial

Nieujemna liczba zmiennoprzecinkowa określająca przestrzenną siłę światła. Domyślnie 4.0.

chroma_spatial

Nieujemna liczba zmiennoprzecinkowa, która określa przestrzenną siłę koloru. Domyślnie jest to 3.0* luma_spatial/4.0.

luma_tmp

Liczba zmiennoprzecinkowa określająca czasową siłę luma. Domyślnie jest to 6.0*/ luma_spatial4.0.

chroma_tmp

Liczba zmiennoprzecinkowa, która określa czasową siłę barwy. Domyślnie jest to luma_tmp* chroma_spatial/ luma_spatial.

11.114.1 Commands

Ten filtr obsługuje te same polecenia, co opcje. Polecenie akceptuje tę samą składnię odpowiedniej opcji.

Jeśli podane wyrażenie jest niepoprawne, jest zachowywane z bieżącą wartością.

11.115 hwdownload

Pobierz ramki sprzętowe do pamięci systemowej.

Wejście musi być w ramkach sprzętowych, a wyjście w formacie niesprzętowym. Nie wszystkie formaty będą obsługiwane na wyjściu - może być konieczne wstawienie dodatkowegoformatfiltruj bezpośrednio na wykresie, aby uzyskać dane wyjściowe w obsługiwanym formacie.

11.116 hwmap

Mapuj ramki sprzętowe do pamięci systemowej lub do innego urządzenia.

Ten filtr ma kilka różnych trybów działania; który z nich jest używany, zależy od formatu wejściowego i wyjściowego:

  • Wejście ramki sprzętowej, normalne wyjście ramki

    Zmapuj ramki wejściowe do pamięci systemowej i przekaż je do wyjścia. Jeśli oryginalna rama sprzętowa jest później wymagana (na przykład po nałożeniu czegoś innego na jej część),hwmapfiltr może być użyty ponownie w następnym trybie, aby go pobrać.

  • Normalne wejście ramki, wyjście ramki sprzętowej

    Jeśli dane wejściowe są w rzeczywistości mapowaną programowo ramką sprzętową, usuń ją — to znaczy zwróć oryginalną ramkę sprzętową.

    W przeciwnym razie należy dostarczyć urządzenie. Utwórz nowe powierzchnie sprzętowe na tym urządzeniu dla danych wyjściowych, a następnie zamapuj je z powrotem na format oprogramowania na wejściu i przypisz te ramki do poprzedniego filtru. To będzie wtedy działać jak hwuploadfiltr, ale może być w stanie uniknąć dodatkowej kopii, gdy dane wejściowe są już w zgodnym formacie.

  • Wejście i wyjście ramki sprzętowej

    Urządzenie musi być dostarczone do wyjścia, bezpośrednio lub z derive_deviceopcja. Urządzenia wejściowe i wyjściowe muszą być różnych typów i kompatybilne — dokładne znaczenie tego zależy od systemu, ale zazwyczaj oznacza to, że muszą odnosić się do tego samego kontekstu sprzętowego (na przykład do tej samej karty graficznej).

    Jeśli ramki wejściowe zostały pierwotnie utworzone na urządzeniu wyjściowym, usuń mapowanie, aby pobrać oryginalne ramki.

    W przeciwnym razie zmapuj ramki na urządzenie wyjściowe - utwórz nowe ramki sprzętowe na wyjściu, odpowiadające ramkom na wejściu.

Akceptowane są następujące dodatkowe parametry:

mode

Ustaw tryb mapowania ramek. Pewna kombinacja:

read

Zmapowana ramka powinna być czytelna.

write

Zmapowana ramka powinna być zapisywalna.

overwrite

Mapowanie zawsze nadpisze całą ramkę.

W niektórych przypadkach może to poprawić wydajność, ponieważ oryginalna zawartość ramki nie musi być ładowana.

direct

Mapowanie nie może obejmować żadnego kopiowania.

Pośrednie mapowania do kopii ramek są tworzone w niektórych przypadkach, gdy bezpośrednie mapowanie nie jest możliwe lub miałoby nieoczekiwane właściwości. Ustawienie tej flagi zapewnia, że ​​mapowanie jest bezpośrednie i nie powiedzie się, jeśli nie jest to możliwe.

Wartość domyślna to read+write, jeśli nie określono.

derive_device type

Zamiast używać urządzenia dostarczonego podczas inicjalizacji, zamiast tego wyprowadź nowe urządzenie typu typez urządzenia, na którym istnieją ramki wejściowe.

reverse

W mapowaniu sprzętu na sprzęt, mapuj w odwrotnej kolejności - utwórz ramki w zlewie i mapuj je z powrotem do źródła. Może to być konieczne w niektórych przypadkach, gdy wymagane jest mapowanie w jednym kierunku, ale używane urządzenia obsługują tylko kierunek przeciwny.

Ta opcja jest niebezpieczna - może przerwać poprzedni filtr w nieokreślony sposób, jeśli istnieją dodatkowe ograniczenia na wyjściu tego filtra. Nie używaj go bez pełnego zrozumienia konsekwencji jego użycia.

11.117 hwupload

Prześlij ramki pamięci systemowej na powierzchnie sprzętowe.

Urządzenie do załadowania musi być dostarczone podczas inicjalizacji filtra. Jeśli używasz ffmpeg, wybierz odpowiednie urządzenie za pomocą-filter_hw_device opcja lub zderive_deviceopcja. Urządzenia wejściowe i wyjściowe muszą być różnych typów i kompatybilne — dokładne znaczenie tego zależy od systemu, ale zazwyczaj oznacza to, że muszą odnosić się do tego samego kontekstu sprzętowego (na przykład do tej samej karty graficznej).

Akceptowane są następujące dodatkowe parametry:

derive_device type

Zamiast używać urządzenia dostarczonego podczas inicjalizacji, zamiast tego wyprowadź nowe urządzenie typu typez urządzenia, na którym istnieją ramki wejściowe.

11.118 hwupload_cuda

Prześlij ramki pamięci systemowej do urządzenia CUDA.

Akceptuje następujące parametry opcjonalne:

device

Numer używanego urządzenia CUDA

11.119 hqx

Zastosuj wysokiej jakości filtr powiększenia przeznaczony do grafiki pikselowej. Ten filtr został pierwotnie stworzony przez Maxima Stepina.

Akceptuje następującą opcję:

n

Ustaw wymiar skalowania: 2for hq2x, 3for hq3xi 4for hq4x. Wartość domyślna to 3.

11.120 hstack

Ułóż wideo wejściowe w poziomie.

Wszystkie strumienie muszą mieć ten sam format pikseli i tę samą wysokość.

Zauważ, że ten filtr jest szybszy niż użycie filtra nakładki i padu do stworzenia tego samego wyjścia.

Filtr akceptuje następującą opcję:

inputs

Ustaw liczbę strumieni wejściowych. Wartość domyślna to 2.

shortest

Jeśli jest ustawiony na 1, wymusza zakończenie wyjścia po zakończeniu najkrótszego wejścia. Wartość domyślna to 0.

11.121 hsvhold

Zamienia określony zakres HSV na wartości szarości.

Ten filtr mierzy różnicę kolorów między ustawionym kolorem HSV w opcjach a kolorami mierzonymi w strumieniu wideo. W zależności od opcji, kolory wyjściowe można zmienić na szare lub nie.

Filtr akceptuje następujące opcje:

hue

Ustaw wartość odcienia, która będzie używana do obliczania różnicy kolorów. Dozwolony zakres to od -360 do 360. Wartość domyślna to 0.

sat

Ustaw wartość nasycenia, która będzie używana do obliczania różnicy kolorów. Dozwolony zakres to od -1 do 1. Wartość domyślna to 0.

val

Ustaw wartość, która będzie używana do obliczania różnicy kolorów. Dozwolony zakres to od -1 do 1. Wartość domyślna to 0.

similarity

Ustaw procent podobieństwa za pomocą koloru klucza. Dozwolony zakres to od 0 do 1. Wartość domyślna to 0,01.

0,00001 pasuje tylko do dokładnego koloru klucza, podczas gdy 1.0 pasuje do wszystkiego.

blend

Procent mieszanki. Dozwolony zakres to od 0 do 1. Wartość domyślna to 0.

0.0 sprawia, że ​​piksele są albo całkowicie szare, albo wcale nie są szare.

Wyższe wartości dają więcej szarych pikseli, im wyższy szary piksel, tym bardziej zbliżony kolor pikseli do koloru kluczowego.

11.122 hsvkey

Zamienia określony zakres HSV w przezroczystość.

Ten filtr mierzy różnicę kolorów między ustawionym kolorem HSV w opcjach a kolorami mierzonymi w strumieniu wideo. W zależności od opcji kolory wyjściowe można zmienić na przezroczyste, dodając kanał alfa.

Filtr akceptuje następujące opcje:

hue

Ustaw wartość odcienia, która będzie używana do obliczania różnicy kolorów. Dozwolony zakres to od -360 do 360. Wartość domyślna to 0.

sat

Ustaw wartość nasycenia, która będzie używana do obliczania różnicy kolorów. Dozwolony zakres to od -1 do 1. Wartość domyślna to 0.

val

Ustaw wartość, która będzie używana do obliczania różnicy kolorów. Dozwolony zakres to od -1 do 1. Wartość domyślna to 0.

similarity

Ustaw procent podobieństwa za pomocą koloru klucza. Dozwolony zakres to od 0 do 1. Wartość domyślna to 0,01.

0,00001 pasuje tylko do dokładnego koloru klucza, podczas gdy 1.0 pasuje do wszystkiego.

blend

Procent mieszanki. Dozwolony zakres to od 0 do 1. Wartość domyślna to 0.

0.0 sprawia, że ​​piksele są w pełni przezroczyste lub w ogóle nie są przezroczyste.

Wyższe wartości skutkują półprzezroczystymi pikselami, przy większej przezroczystości kolor pikseli jest bardziej zbliżony do koloru kluczowego.

11.123 hue

Zmodyfikuj odcień i/lub nasycenie wejścia.

Przyjmuje następujące parametry:

h

Określ kąt barwy jako liczbę stopni. Akceptuje wyrażenie i domyślnie przyjmuje wartość „0”.

s

Określ nasycenie w zakresie [-10,10]. Akceptuje wyrażenie i domyślnie przyjmuje wartość „1”.

H

Określ kąt barwy jako liczbę radianów. Akceptuje wyrażenie i domyślnie przyjmuje wartość „0”.

b

Określ jasność w zakresie [-10,10]. Akceptuje wyrażenie i domyślnie przyjmuje wartość „0”.

horazHwykluczają się wzajemnie i nie można ich jednocześnie określić.

Theb,h,Horazswartości opcji to wyrażenia zawierające następujące stałe:

n

liczba klatek klatki wejściowej począwszy od 0

pts

znacznik czasu prezentacji ramki wejściowej wyrażony w jednostkach podstawy czasu

r

liczba klatek na sekundę wejściowego wideo, NAN, jeśli liczba klatek na sekundę wejściowa jest nieznana

t

znacznik czasu wyrażony w sekundach, NAN, jeśli wejściowy znacznik czasu jest nieznany

tb

podstawa czasu wejściowego wideo

11.123.1 Examples

  • Ustaw barwę na 90 stopni, a nasycenie na 1.0:
    hue=h=90:s=1
    
  • To samo polecenie, ale wyrażające odcień w radianach:
    hue=H=PI/2:s=1
    
  • Obróć odcień i ustaw nasycenie w zakresie od 0 do 2 w ciągu 1 sekundy:
    hue="H=2*PI*t: s=sin(2*PI*t)+1"
    
  • Zastosuj 3-sekundowy efekt zanikania nasycenia, zaczynając od 0:
    hue="s=min(t/3\,1)"
    

    Ogólne wyrażenie zanikania można zapisać jako:

    hue="s=min(0\, max((t-START)/DURATION\, 1))"
    
  • Zastosuj 3-sekundowy efekt zanikania nasycenia, zaczynając od 5 sekund:
    hue="s=max(0\, min(1\, (8-t)/3))"
    

    Ogólne wyrażenie zanikania można zapisać jako:

    hue="s=max(0\, min(1\, (START+DURATION-t)/DURATION))"
    

11.123.2 Commands

Ten filtr obsługuje następujące polecenia:

b
s
h
H

Zmodyfikuj odcień i/lub nasycenie i/lub jasność wejściowego wideo. Polecenie akceptuje tę samą składnię odpowiedniej opcji.

Jeśli podane wyrażenie jest niepoprawne, jest zachowywane z bieżącą wartością.

11.124 huesaturation

Zastosuj korekty barwy-nasycenia-intensywności do wejściowego strumienia wideo.

Ten filtr działa w przestrzeni kolorów RGB.

Ten filtr akceptuje następujące opcje:

hue

Ustaw zmianę odcienia w stopniach do zastosowania. Wartość domyślna to 0. Dozwolony zakres to od -180 do 180.

saturation

Ustaw przesunięcie nasycenia. Wartość domyślna to 0. Dozwolony zakres to od -1 do 1.

intensity

Ustaw zmianę intensywności. Wartość domyślna to 0. Dozwolony zakres to od -1 do 1.

colors

Ustaw, które kolory podstawowe i uzupełniające będą dostosowywane. Ta opcja jest ustawiana przez podanie jednej lub wielu wartości. To może wybrać wiele kolorów na raz. Domyślnie wybrane są wszystkie kolory.

'r'

Dostosuj czerwienie.

'y'

Dostosuj żółcie.

'g'

Dostosuj zielenie.

'c'

Dostosuj cyjan.

'b'

Dostosuj blues.

'm'

Dostosuj magenta.

'a'

Dostosuj wszystkie kolory.

strength

Ustaw siłę filtrowania. Dozwolony zakres to od 0 do 100. Wartość domyślna to 1.

rw, gw, bw

Ustaw wagę dla każdego składnika RGB. Dozwolony zakres to od 0 do 1. Domyślnie jest ustawiony na 0,333, 0,334, 0,333. Te opcje są wykorzystywane w nasyceniu i rozjaśnieniu przetwarzania.

lightness

Zestaw zachowujący lekkość, domyślnie jest wyłączony. Dostosowanie odcieni może zmienić jasność z oryginalnej trójki RGB, przy włączonej tej opcji jasność jest utrzymywana na tej samej wartości.

11.125 hysteresis

Rozwijaj pierwszy strumień w drugi, łącząc komponenty. Umożliwia to budowanie bardziej wytrzymałych masek krawędzi.

Ten filtr akceptuje następujące opcje:

planes

Ustaw, które płaszczyzny będą przetwarzane jako bitmapa, nieprzetworzone płaszczyzny zostaną skopiowane z pierwszego strumienia. Domyślna wartość 0xf, wszystkie płaszczyzny będą przetwarzane.

threshold

Ustaw próg, który jest używany w filtrowaniu. Jeśli wartość składnika piksela jest wyższa od tej wartości, aktywowany jest algorytm filtrowania łączenia składników. Domyślna wartość to 0.

Filtr hysteresisobsługuje również opcje framesync .

11.126 iccdetect

Wykryj przestrzeń kolorów z osadzonego profilu ICC (jeśli jest obecny) i odpowiednio zaktualizuj znaczniki ramki.

Ten filtr akceptuje następujące opcje:

force

Jeśli tak, istniejące znaczniki przestrzeni kolorów w ramce będą zawsze zastępowane wartościami wykrytymi z profilu ICC. W przeciwnym razie zostaną przypisane tylko wtedy, gdy zawierają unknown. Domyślnie włączone.

11.127 iccgen

Generuj profile ICC i dołączaj je do ram.

Ten filtr akceptuje następujące opcje:

color_primaries
color_trc

Skonfiguruj przestrzeń kolorów, dla której będzie generowany profil ICC. Domyślna wartość autowyprowadza wartość z metadanych ramki wejściowej, domyślnie BT.709/sRGB.

Zobacz filtr setparams , aby uzyskać listę możliwych wartości, ale pamiętaj, że unknownnie są to prawidłowe wartości dla tego filtru.

force

Jeśli tak, profil ICC zostanie wygenerowany, nawet jeśli nadpisze już istniejący profil ICC. Domyślnie wyłączone.

11.128 identity

Uzyskaj wynik tożsamości między dwoma wejściowymi filmami wideo.

Ten filtr pobiera dwa wideo wejściowe.

Aby ten filtr działał poprawnie, oba wideo wejściowe muszą mieć tę samą rozdzielczość i format pikseli. Zakłada również, że oba wejścia mają taką samą liczbę klatek, które są porównywane jedna po drugiej.

Uzyskany na składnik, średni, minimalny i maksymalny wynik tożsamości jest drukowany przez system rejestrowania.

Filtr przechowuje obliczone wyniki tożsamości każdej ramki w metadanych ramki.

W poniższym przykładzie plik wejściowymain.mpgprzetwarzany jest porównywany z plikiem referencyjnymref.mpg.

ffmpeg -i main.mpg -i ref.mpg -lavfi identity -f null -

11.129 idet

Wykryj typ przeplotu wideo.

Ten filtr próbuje wykryć, czy ramki wejściowe są najpierw z przeplotem, progresywne, górne czy dolne. Będzie również próbował wykryć pola, które powtarzają się między sąsiednimi ramkami (oznaka telecine).

Wykrywanie pojedynczej ramki uwzględnia tylko bezpośrednio przylegające ramki podczas klasyfikowania każdej ramki. Wykrywanie wielu ramek obejmuje historię klasyfikacji poprzednich ramek.

Filtr zarejestruje te wartości metadanych:

single.current_frame

Wykryty typ bieżącej ramki przy użyciu wykrywania pojedynczej ramki. Jedno z: „tff” (najpierw górne pole), „bff” (najpierw dolne pole), „progresywne” lub „nieokreślone”

single.tff

Skumulowana liczba ramek wykrytych jako pierwsze w górnym polu przy użyciu wykrywania pojedynczej ramki.

multiple.tff

Skumulowana liczba ramek wykrytych jako pierwsze w górnym polu przy użyciu wykrywania wielu ramek.

single.bff

Skumulowana liczba ramek wykrytych jako pierwsze w dolnym polu przy użyciu wykrywania pojedynczej ramki.

multiple.current_frame

Wykryty typ bieżącej ramki przy użyciu wykrywania wielu ramek. Jedno z: „tff” (najpierw górne pole), „bff” (najpierw dolne pole), „progresywne” lub „nieokreślone”

multiple.bff

Skumulowana liczba ramek wykrytych jako pierwsze w dolnym polu przy użyciu wykrywania wielu ramek.

single.progressive

Skumulowana liczba ramek wykrytych jako progresywne przy użyciu wykrywania pojedynczej ramki.

multiple.progressive

Skumulowana liczba ramek wykrytych jako progresywne przy użyciu wykrywania wielu ramek.

single.undetermined

Łączna liczba ramek, których nie można było sklasyfikować za pomocą wykrywania pojedynczych ramek.

multiple.undetermined

Łączna liczba ramek, których nie można było sklasyfikować za pomocą wykrywania wielu ramek.

repeated.current_frame

Które pole w bieżącej ramce powtarza się od ostatniego. Jedno z „ani”, „góra” lub „dół”.

repeated.neither

Skumulowana liczba ramek bez powtarzającego się pola.

repeated.top

Skumulowana liczba ramek z górnym polem powtórzonym z górnego pola poprzedniej ramki.

repeated.bottom

Łączna liczba ramek z dolnym polem powtórzonym z dolnego pola poprzedniej ramki.

Filtr akceptuje następujące opcje:

intl_thres

Ustaw próg przeplotu.

prog_thres

Ustaw progresywny próg.

rep_thres

Próg dla wielokrotnego wykrywania pola.

half_life

Liczba ramek, po których udział danej ramki w statystykach zmniejsza się o połowę (tj. wnosi tylko 0,5 do jej klasyfikacji). Domyślna wartość 0 oznacza, że ​​wszystkie widziane klatki otrzymują na zawsze pełną wagę 1.0.

analyze_interlaced_flag

Gdy nie jest to 0, idet użyje określonej liczby ramek do określenia, czy flaga z przeplotem jest dokładna, nie będzie zliczać nieokreślonych ramek. Jeśli flaga zostanie uznana za dokładną, zostanie użyta bez dalszych obliczeń, jeśli okaże się, że jest niedokładna, zostanie wyczyszczona bez dalszych obliczeń. Pozwala to na wstawienie filtra idet jako niskiej metody obliczeniowej w celu oczyszczenia flagi z przeplotem

11.130 il

Pola Usuń przeplot lub przeplot.

Filtr ten umożliwia przetwarzanie pól obrazów z przeplotem bez ich usuwania. Deinterleaving dzieli klatkę wejściową na 2 pola (tzw. półobrazy). Linie nieparzyste są przenoszone do górnej połowy obrazu wyjściowego, a linie parzyste do dolnej połowy. Można je przetwarzać (filtrować) niezależnie, a następnie ponownie je przeplatać.

Filtr akceptuje następujące opcje:

luma_mode, l
chroma_mode, c
alpha_mode, a

Dostępne wartości dla luma_modei chroma_modeto alpha_mode:

'none'

Nic nie robić.

'deinterleave, d'

Rozwiąż pola, umieszczając jedno nad drugim.

'interleave, i'

Pola przeplotu. Odwróć efekt rozplatania.

Wartość domyślna to none.

luma_swap, ls
chroma_swap, cs
alpha_swap, as

Zamień pola luma/chroma/alpha. Wymieniaj linie parzyste i nieparzyste. Wartość domyślna to 0.

11.130.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

11.131 inflate

Zastosuj efekt nadmuchania do filmu.

Filtr ten zastępuje piksel średnią lokalną (3x3), biorąc pod uwagę tylko wartości wyższe niż piksel.

Akceptuje następujące opcje:

threshold0
threshold1
threshold2
threshold3

Ogranicz maksymalną zmianę dla każdej płaszczyzny, domyślnie 65535. Jeśli 0, płaszczyzna pozostanie niezmieniona.

11.131.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

11.132 interlace

Prosty filtr z przeplotem z zawartości progresywnej. Przeplata to górne (lub dolne) linie z nieparzystych ramek z dolnymi (lub górnymi) liniami z parzystych ramek, zmniejszając o połowę liczbę klatek na sekundę i zachowując wysokość obrazu.

   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

Akceptuje następujące parametry opcjonalne:

scan

Określa to, czy klatka z przeplotem jest pobierana z parzystych (tff - domyślnie) czy nieparzystych (bff) linii klatki progresywnej.

lowpass

Pionowy filtr dolnoprzepustowy, aby uniknąć przeplotu twittera i zredukować efekt mory.

'0, off'

Wyłącz pionowy filtr dolnoprzepustowy

'1, linear'

Włącz filtr liniowy (domyślnie)

'2, complex'

Włącz złożony filtr. Zmniejszy to nieco mniej twittera i mory, ale lepiej zachowa szczegóły i subiektywne wrażenie ostrości.

11.133 kerndeint

Usuwanie przeplotu wideo wejściowego przez zastosowanie adaptacyjnego usuwania przeplotu jądra Donalda Grafta. Pracuj nad przeplatanymi częściami wideo, aby wyprodukować klatki progresywne.

Poniżej znajduje się opis akceptowanych parametrów.

thresh

Ustaw próg, który wpływa na tolerancję filtra podczas określania, czy linia pikseli musi zostać przetworzona. Musi to być liczba całkowita z zakresu [0,255] i domyślnie 10. Wartość 0 spowoduje zastosowanie procesu na każdym pikselu.

map

Pomaluj piksele przekraczające wartość progową na kolor biały, jeśli jest ustawiony na 1. Wartość domyślna to 0.

order

Ustaw kolejność pól. Zamień pola, jeśli jest ustawione na 1, pozostaw pola bez zmian, jeśli 0. Wartość domyślna to 0.

sharp

Włącz dodatkowe wyostrzanie, jeśli jest ustawione na 1. Wartość domyślna to 0.

twoway

Włącz wyostrzanie dwukierunkowe, jeśli jest ustawione na 1. Wartość domyślna to 0.

11.133.1 Examples

  • Zastosuj wartości domyślne:
    kerndeint=thresh=10:map=0:order=0:sharp=0:twoway=0
    
  • Włącz dodatkowe wyostrzanie:
    kerndeint=sharp=1
    
  • Maluj przetworzone piksele na biało:
    kerndeint=map=1
    

11.134 kirsch

Zastosuj operator kirsch do wejścia strumienia wideo.

Filtr akceptuje następującą opcję:

planes

Ustaw, które płaszczyzny będą przetwarzane, nieprzetworzone płaszczyzny zostaną skopiowane. Domyślna wartość 0xf, wszystkie płaszczyzny będą przetwarzane.

scale

Ustaw wartość, która zostanie pomnożona przez przefiltrowany wynik.

delta

Ustaw wartość, która zostanie dodana do przefiltrowanego wyniku.

11.134.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

11.135 lagfun

Powoli aktualizuj ciemniejsze piksele.

Filtr ten sprawia, że ​​krótkie błyski światła pojawiają się dłużej. Ten filtr akceptuje następujące opcje:

decay

Ustaw współczynnik rozpadu. Wartość domyślna to 0,95. Dozwolony zakres to od 0 do 1.

planes

Ustaw samoloty do filtrowania. Domyślność to wszystko. Dozwolony zakres to od 0 do 15.

11.135.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

11.136 lenscorrection

Prawidłowe zniekształcenie soczewki promieniowej

Filtr ten może być używany do korygowania zniekształceń promieniowych, które mogą wynikać z użycia obiektywów szerokokątnych, a tym samym do ponownej korekcji obrazu. Aby znaleźć odpowiednie parametry można skorzystać z narzędzi dostępnych np. w ramach opencv lub po prostu metodą prób i błędów. Aby użyć opencv, użyj próbki kalibracyjnej (pod sample/cpp) ze źródeł opencv i wyodrębnij współczynniki k1 i k2 z otrzymanej macierzy.

Zauważ, że faktycznie ten sam filtr jest dostępny w narzędziach open-source Krita i Digikam z projektu KDE.

W przeciwieństwie do filtra winietowego , który może być również używany do kompensacji błędów obiektywu, filtr ten koryguje zniekształcenie obrazu, podczas gdy winietowanie koryguje rozkład jasności, więc w niektórych przypadkach możesz chcieć użyć obu filtrów razem, chociaż będziesz miał zadbać o porządek, czyli czy winietowanie powinno być nakładane przed czy po korekcji obiektywu.

11.136.1 Options

Filtr akceptuje następujące opcje:

cx

Względna współrzędna x ogniska obrazu, a tym samym środka zniekształcenia. Ta wartość ma zakres [0,1] i jest wyrażona jako ułamki szerokości obrazu. Wartość domyślna to 0,5.

cy

Względna współrzędna y ogniska obrazu, a tym samym środka zniekształcenia. Wartość ta ma zakres [0,1] i jest wyrażona jako ułamki wysokości obrazu. Wartość domyślna to 0,5.

k1

Współczynnik kwadratowego członu korekcyjnego. Ta wartość ma zakres [-1,1]. 0 oznacza brak korekty. Wartość domyślna to 0.

k2

Współczynnik podwójnej kwadratowej składowej korekcji. Ta wartość ma zakres [-1,1]. 0 oznacza brak korekty. Wartość domyślna to 0.

i

Ustaw typ interpolacji. Może być nearestlub bilinear. Wartość domyślna to nearest.

fc

Określ kolor niezmapowanych pikseli. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Color" w podręczniku ffmpeg-utils . Kolor domyślny to black@0.

Formuła generująca korektę to:

r_src= r_tgt* (1 + k1* ( r_tgt/ r_0)^2 + k2* ( r_tgt/ r_0)^4)

gdzie r_0jest połową przekątnej obrazu, a r_srci r_tgtsą odległościami od ogniska odpowiednio w obrazie źródłowym i docelowym.

11.136.2 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

11.137 lensfun

Zastosuj korekcję obiektywu za pomocą biblioteki lensfun ( http://lensfun.sourceforge.net/ ).

Filtr lensfunwymaga marki aparatu, modelu aparatu i modelu obiektywu, aby zastosować korekcję obiektywu. Filtr załaduje bazę danych lensfun i przeszuka ją, aby znaleźć odpowiednie wpisy aparatu i obiektywu w bazie danych. Dopóki te wpisy można znaleźć przy danych opcjach, filtr może dokonywać korekt na ramkach. Zwróć uwagę, że niekompletne ciągi spowodują, że filtr wybierze najlepsze dopasowanie do podanych opcji, a filtr wyświetli wybrane modele aparatu i obiektywu (zalogowane z poziomem „informacje”). Musisz podać markę, model aparatu i model obiektywu, ponieważ są one wymagane.

Aby uzyskać listę dostępnych marek i modeli, pomiń jedną lub obie opcje makei . modelFiltr wyśle ​​pełną listę do logu z poziomem INFO. Pierwsza kolumna to marka, a druga to model. Aby uzyskać listę dostępnych obiektywów, ustaw dowolne wartości marki i modelu i pomiń lens_modelopcję. Filtr wyśle ​​pełną listę soczewek w logu z poziomem INFO. Narzędzie ffmpeg zostanie zamknięte po wydrukowaniu listy.

Filtr akceptuje następujące opcje:

make

Marka aparatu (na przykład „Canon”). Ta opcja jest wymagana.

model

Model aparatu (na przykład „Canon EOS 100D”). Ta opcja jest wymagana.

lens_model

Model obiektywu (na przykład „Canon EF-S 18-55mm f/3,5-5,6 IS STM”). Ta opcja jest wymagana.

db_path

Pełna ścieżka do folderu bazy danych obiektywów. Jeśli nie jest ustawiona, filtr będzie próbował załadować bazę danych ze ścieżki instalacyjnej podczas budowania biblioteki. Wartość domyślna nie jest ustawiona.

mode

Rodzaj korekty do zastosowania. Poprawnymi opcjami są następujące wartości:

'vignetting'

Umożliwia naprawianie winietowania obiektywu.

'geometry'

Umożliwia ustalenie geometrii soczewki. To jest ustawienie domyślne.

'subpixel'

Umożliwia naprawę aberracji chromatycznych.

'vig_geo'

Umożliwia naprawianie winietowania i geometrii soczewki.

'vig_subpixel'

Umożliwia naprawianie winietowania obiektywu i aberracji chromatycznych.

'distortion'

Umożliwia naprawę zarówno geometrii soczewki, jak i aberracji chromatycznych.

'all'

Umożliwia wszystkie możliwe poprawki.

focal_length

Ogniskowa obrazu/wideo (zoom; oczekiwana stała dla wideo). Na przykład obiektyw 18–55 mm ma zakres ogniskowych [18–55], więc podczas korzystania z tego obiektywu należy wybrać wartość z tego zakresu. Domyślnie 18.

aperture

Apertura obrazu/wideo (oczekiwana stała dla wideo). Zwróć uwagę, że przysłona jest używana tylko do korekcji winietowania. Domyślnie 3.5.

focus_distance

Odległość ogniskowania obrazu/wideo (oczekiwana stała dla wideo). Zwróć uwagę, że odległość ogniskowania jest używana tylko do winietowania i tylko nieznacznie wpływa na proces korekcji winietowania. Jeśli nie jest znana, pozostaw ją przy wartości domyślnej (czyli 1000).

scale

Współczynnik skali stosowany po przekształceniu. Po korekcie wideo niekoniecznie jest już prostokątne. Ten parametr kontroluje, jaka część wynikowego obrazu jest widoczna. Wartość 0 oznacza, że ​​wartość zostanie wybrana automatycznie, tak że na obrazie wyjściowym będzie niewiele lub nie będzie żadnego niemapowanego obszaru. 1.0 oznacza, że ​​nie jest wykonywane żadne dodatkowe skalowanie. Niższe wartości mogą skutkować większą widocznością skorygowanego obrazu, podczas gdy wyższe wartości mogą unikać niemapowanych obszarów na wydruku.

target_geometry

Docelowa geometria wyjściowego obrazu/wideo. Poprawnymi opcjami są następujące wartości:

'rectilinear (default)'
'fisheye'
'panoramic'
'equirectangular'
'fisheye_orthographic'
'fisheye_stereographic'
'fisheye_equisolid'
'fisheye_thoby'
reverse

Zastosuj odwrotność korekcji obrazu (zamiast korygować zniekształcenia, zastosuj ją).

interpolation

Rodzaj interpolacji używany podczas korekcji zniekształceń. Poprawnymi opcjami są następujące wartości:

'nearest'
'linear (default)'
'lanczos'

11.137.1 Examples

  • Zastosuj korekcję obiektywu za pomocą marki „Canon”, modelu aparatu „Canon EOS 100D” i modelu obiektywu „Canon EF-S 18-55mm f/3,5-5,6 IS STM” o ogniskowej „18” i przesłonie „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
    
  • Zastosuj to samo co poprzednio, ale tylko przez pierwsze 5 sekund filmu.
    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

Elastyczny filtr przetwarzania przyspieszany przez GPU oparty na libplacebo ( https://code.videolan.org/videolan/libplacebo ). Zauważ, że ten filtr obecnie akceptuje tylko ramki wejściowe Vulkan.

11.138.1 Options

Opcje tego filtra są podzielone na następujące sekcje:

11.138.1.1 Output mode

Te opcje sterują ogólnym trybem wyjścia. Domyślnie libplacebo stara się jak najlepiej zachować kolorymetrię i rozmiar źródła, ale zastosuje dowolne osadzone ziarno filmu, metadane Dolby vision lub anamorficzny SAR obecne w klatkach źródłowych.

w
h

Ustaw wyrażenie wyjściowego wymiaru wideo. Wartość domyślna to wymiar wejściowy.

Pozwala na te same wyrażenia, co filtr skali .

format

Ustaw nadpisanie formatu wyjściowego. Jeśli nie jest ustawiona (domyślnie), ramki będą wyprowadzane w tym samym formacie, co odpowiednie ramki wejściowe. W przeciwnym razie zostanie wykonana konwersja formatu.

force_original_aspect_ratio
force_divisible_by

Działaj tak samo, jak identyczne opcje filtra skali .

normalize_sar

Jeśli ta opcja jest włączona (domyślnie), ramki wyjściowe zawsze będą miały proporcje pikseli 1:1. Jeśli ta opcja jest wyłączona, wszelkie niezgodności proporcji, w tym te pochodzące np. z anamorficznych źródeł wideo, są przekazywane do proporcji wyjściowego piksela.

pad_crop_ratio

Określa stosunek (pomiędzy 0.0i 1.0) między dopełnieniem a kadrowaniem, gdy wejściowe proporcje nie są zgodne z wyjściowymi proporcjami i normalize_sarobowiązuje. Wartość domyślna 0.0zawsze dopełnia zawartość czarnymi ramkami, a wartość 1.0zawsze wycina część zawartości. Możliwe są wartości pośrednie, co prowadzi do połączenia tych dwóch podejść.

colorspace
color_primaries
color_trc
range

Skonfiguruj przestrzeń kolorów, w której będą dostarczane ramki wyjściowe. Domyślna wartość autowyprowadza ramki w tym samym formacie co ramki wejściowe, co nie powoduje żadnych zmian. Dla każdej innej wartości zostanie wykonana konwersja.

Zobacz filtr setparams dla listy możliwych wartości.

apply_filmgrain

Zastosuj ziarno filmu (np. AV1 lub H.274), jeśli jest obecne w klatkach źródłowych, i usuń je z wyjścia. Domyślnie włączone.

apply_dolbyvision

Zastosuj metadane Dolby Vision RPU, jeśli są obecne w ramkach źródłowych, i usuń je z wyjścia. Domyślnie włączone. Zwróć uwagę, że Dolby Vision zawsze wyprowadza BT.2020+PQ, zastępując zwykłe metadane ramki wejściowej. Zostaną one również wybrane jako wartości autodla odpowiednich opcji wyjścia ramki.

11.138.1.2 Scaling

Opcje w tej sekcji kontrolują sposób, w jaki libplacebo wykonuje skalowanie w górę i (jeśli to konieczne) skalowanie w dół. Zwróć uwagę, że libplacebo zawsze będzie wewnętrznie operować na zawartości 4:4:4, więc wszelkie pod-próbkowane formaty chromatyczne, takie jak yuv420pbędą z konieczności upsamplingiem i downsamplingiem w ramach procesu renderowania. Oznacza to, że skalowanie może działać, nawet jeśli rozdzielczość źródłowa i docelowa są takie same.

upscaler
downscaler

Skonfiguruj jądro filtru używane do skalowania w górę i w dół. Odpowiednie wartości domyślne to spline36i mitchell. Aby uzyskać pełną listę możliwych wartości, przejdź helpdo tych opcji. Najważniejsze wartości to:

'none'

Wymusza użycie wbudowanego próbkowania tekstur GPU (zazwyczaj dwuliniowego). Niezwykle szybka, ale słaba jakość, zwłaszcza przy zmniejszaniu skali.

'bilinear'

Interpolacja dwuliniowa. Generalnie można to zrobić za darmo na procesorach graficznych, z wyjątkiem sytuacji, gdy prowadziłoby to do aliasingu. Szybka i niska jakość.

'nearest'

Interpolacja najbliższego sąsiedztwa. Ostre, ale mocno aliasingowe.

'oversample'

Algorytm, który wizualnie wygląda podobnie do interpolacji najbliższego sąsiedztwa, ale stara się zachować proporcje pikseli. Dobre dla sztuki pikselowej, ponieważ powoduje minimalne zniekształcenie wyglądu artystycznego.

'lanczos'

Standardowe jądro interpolacji sinc-sinc.

'spline36'

Przybliżenie krzywej sześciennej lanczosa. Brak różnicy w wydajności, ale ma nieco mniej dzwonka.

'ewa_lanczos'

Eliptycznie ważona średnia wersja lanczosa, oparta na jądrze jinc-sinc. Jest to również popularnie nazywane po prostu „skalowaniem Jinc”. Powolny, ale bardzo wysokiej jakości.

'gaussian'

Jądro Gaussa. Ma pewne idealne własności matematyczne, ale subiektywnie bardzo rozmyte.

'mitchell'

Krzywa Cubic BC o parametrach rekomendowanych przez Mitchella i Netravali. Bardzo mało dzwonienia.

lut_entries

Konfiguruje rozmiar LUT-ów skalujących w zakresie od 1do 256. Wartość domyślna 0wybierze wewnętrzną wartość domyślną libplacebo, zazwyczaj 64.

antiringing

Włącza antydzwonienie (dla filtrów innych niż EWA). Wartość (pomiędzy 0.0i 1.0) konfiguruje siłę algorytmu zapobiegającego dzwonieniu. Może zwiększyć aliasing, jeśli jest ustawiony zbyt wysoko. Domyślnie wyłączone.

sigmoid

Włącz kompresję sigmoidalną podczas skalowania. Lekko zmniejsza dzwonienie. Domyślnie włączone.

11.138.1.3 Debanding

Libplacebo ma wbudowany filtr usuwający pasy, który jest dobry w przeciwdziałaniu wielu powszechnym źródłom pasmowania i blokowania. Włączenie tego jest wysoce zalecane, gdy wymagana jest jakość.

deband

Włącz (szybki) algorytm usuwania pasma. Domyślnie wyłączone.

deband_iterations

Liczba iteracji deband algorytmu debandingu. Każda iteracja jest wykonywana ze stopniowo zwiększanym promieniem (i zmniejszanym progiem). Zalecane wartości mieszczą się w zakresie 1do 4. Domyślnie 1.

deband_threshold

Siła filtra usuwającego pasma. Wyższe liczby prowadzą do bardziej agresywnego usuwania pasma. Domyślnie 4.0.

deband_radius

Promień filtra usuwającego pasma. Większy promień jest lepszy dla powolnych gradientów, a mniejszy promień jest lepszy dla stromych gradientów. Domyślnie 16.0.

deband_grain

Ilość dodatkowego ziarna wyjściowego do dodania. Pomaga ukryć niedoskonałości. Domyślnie 6.0.

11.138.1.4 Color adjustment

Zbiór subiektywnych kontroli kolorów. Niezbyt rygorystyczne, więc dokładny efekt będzie się nieco różnić w zależności od wejściowych kolorów podstawowych i przestrzeni kolorów.

brightness

Zwiększenie jasności, między -1.0i 1.0. Domyślnie 0.0.

contrast

Wzmocnienie kontrastu między 0.0i 16.0. Domyślnie 1.0.

saturation

Wzmocnienie nasycenia, pomiędzy 0.0a 16.0. Domyślnie 1.0.

hue

Zmiana odcienia w radianach, pomiędzy -3.14i 3.14. Domyślnie 0.0. Spowoduje to obrócenie podwektora UV, domyślnie do współczynników BT.709 dla wejść RGB.

gamma

Regulacja gamma, pomiędzy 0.0i 16.0. Domyślnie 1.0.

cones

Model stożka do użycia w symulacji ślepoty barw. Akceptuje dowolną kombinację l, mi s. Oto kilka przykładów:

'm'

Deuteranomalia / deuteranopia (dotyczy 3%-4% populacji)

'l'

Protanomalia / protanopia (dotyczy 1%-2% populacji)

'l+m'

Monochromatyczność (bardzo rzadko)

'l+m+s'

Achromatopsja (całkowita utrata widzenia w ciągu dnia, niezwykle rzadko)

cone-strength

Współczynnik wzmocnienia dla czopków określonych przez cones, pomiędzy 0.0i 10.0. Wartość 1.0wynikająca z braku zmian w postrzeganiu kolorów. Wartość 0.0(domyślna) symuluje całkowitą utratę tych czopków. Powyższe wartości 1.0powodują wyolbrzymianie różnic między czopkami, co może pomóc zrekompensować pogorszenie widzenia kolorów.

11.138.1.5 Peak detection

Aby pomóc w radzeniu sobie ze źródłami, które mają tylko statyczne metadane HDR10 (lub bez tagowania), libplacebo używa własnego wewnętrznego modułu obliczeniowego do analizy klatek, aby analizować klatki źródłowe i dostosowywać funkcję mapowania tonów w czasie rzeczywistym. Jeśli jest to zbyt wolne lub jeśli potrzebne są dokładnie odtwarzalne wyniki z idealnymi klatkami, zaleca się wyłączenie tej funkcji.

peak_detect

Włącz wykrywanie pików HDR. Ignoruje statyczne wartości MaxCLL/MaxFALL na rzecz dynamicznego wykrywania z danych wejściowych. Zauważ, że wykryte wartości nie są zapisywane z powrotem do ramek wyjściowych, a jedynie kierują wewnętrznym procesem mapowania tonów. Domyślnie włączone.

smoothing_period

Okres wygładzania wykrywania szczytów, między 0.0a 1000.0. Wyższe wartości powodują, że wykrywanie szczytów staje się mniej czułe na zmiany na wejściu. Domyślnie 100.0.

minimum_peak

Dolna granica wykrytego piku (w stosunku do bieli SDR), pomiędzy 0.0 a 100.0. Domyślnie 1.0.

scene_threshold_low
scene_threshold_high

Dolny i górny próg wykrywania zmiany sceny. Wyrażony w skali logarytmicznej między 0.0a 100.0. Domyślnie do 5.5 i 10.0. Ustawienie wartości ujemnej wyłącza tę funkcję.

overshoot

Margines przeregulowania wygładzania pików, między 0.0a 1.0. Zapewnia margines bezpieczeństwa, aby zapobiec przycinaniu w wyniku wygładzania pików. Domyślnie 0.05, co odpowiada marginesowi 5%.

11.138.1.6 Tone mapping

Opcje w tej sekcji kontrolują sposób, w jaki libplacebo wykonuje mapowanie tonów i mapowanie gamutów, gdy mamy do czynienia z niezgodnościami między treściami o szerokim gamutach lub HDR. Ogólnie rzecz biorąc, libplacebo opiera się na dokładnym tagowaniu źródeł i informacji o gamie wyświetlania masteringu, aby uzyskać najlepsze wyniki.

intent

Renderowanie przeznaczone do użycia podczas adaptacji między różnymi podstawowymi gamami kolorów (po mapowaniu tonalnym).

'perceptual'

Percepcyjne mapowanie gamutu. Obecnie odpowiednik względnej kolorymetrii.

'relative'

Kolorymetria względna. To jest ustawienie domyślne.

'absolute'

Absolutna kolorymetryczna.

'saturation'

Mapowanie nasycenia. Wymuszone rozciąganie gamy źródłowej do gamy docelowej.

gamut_mode

Jak radzić sobie z kolorami spoza gamutu, które mogą wystąpić w wyniku mapowania kolorymetrycznego gamutu.

'clip'

Nic nie rób, po prostu przytnij kolory spoza zakresu do głośności RGB. To jest ustawienie domyślne.

'warn'

Wyróżnij piksele spoza przestrzeni (poprzez zabarwienie ich na różowo).

'darken'

Liniowo zmniejsza jasność treści, aby zachować nasycone szczegóły, a następnie przycina pozostałe kolory spoza przestrzeni. Jak sama nazwa wskazuje, sprawia to, że wszystko jest ciemniejsze, ale zapewnia dobrą równowagę między zachowaniem szczegółów i kolorów.

'desaturate'

Mocno zmniejsza nasycenie kolorów spoza przestrzeni w kierunku bieli, zachowując jednocześnie luminancję. Ma tendencję do zmiany kolorów.

tonemapping

Algorytm mapowania tonów do użycia. Dostępne wartości to:

'auto'

Wybór automatyczny oparty na heurystyce wewnętrznej. To jest ustawienie domyślne.

'clip'

Nie wykonuje mapowania tonów, tylko przycina kolory spoza zakresu. Zachowuje idealną dokładność kolorów dla kolorów z zakresu, ale całkowicie niszczy informacje spoza zakresu. Nie wykonuje adaptacji czarnego punktu. Nie można konfigurować.

'bt.2390'

EETF z raportu ITU-R BT.2390, toczenie splajnu pustelnika z segmentem liniowym. Przesunięcie punktu kolanowego jest konfigurowalne. Zauważ, że ten parametr jest domyślnie ustawiony na 1.0, a nie na wartość 0.5ze specyfikacji ITU-R.

'bt.2446a'

EETF z raportu ITU-R BT.2446, metoda A. Przeznaczony dla dobrze opanowanych źródeł HDR. Może być używany do mapowania tonów do przodu i do tyłu. Nie można konfigurować.

'spline'

Prosty splajn składający się z dwóch wielomianów połączonych jednym punktem obrotu. Parametr podaje punkt obrotu (w przestrzeni PQ), domyślnie 0.30. Może być używany do mapowania tonów do przodu i do tyłu.

'reinhard'

Prosty nieliniowy, globalny algorytm mapowania tonów. Parametr określa lokalny współczynnik kontrastu w piku wyświetlacza. Zasadniczo, parametr 0.5oznacza, że ​​biel odniesienia będzie o połowę jaśniejsza niż podczas przycinania. Domyślnie to 0.5, co skutkuje najprostszym sformułowaniem tej funkcji.

'mobius'

Uogólnienie algorytmu mapowania tonów wzmocnionego w celu obsługi dodatkowego liniowego nachylenia w pobliżu czerni. Parametr odwzorowania tonów wskazuje na kompromis między sekcją liniową a sekcją nieliniową. Zasadniczo, dla danego parametru xkażda wartość koloru poniżej xbędzie mapowana liniowo, podczas gdy wyższe wartości będą mapowane nieliniowo. Wartości w pobliżu 1.0sprawiają, że ta krzywa zachowuje się jak clip, podczas gdy wartości w pobliżu 0.0sprawiają, że ta krzywa zachowuje się jak reinhard. Wartość domyślna to 0.3, która zapewnia dobrą równowagę między dokładnością kolorymetryczną a zachowaniem szczegółów spoza gamutu.

'hable'

Odcinkowy, filmowy algorytm mapowania tonów opracowany przez Johna Hable do użytku w Uncharted 2, inspirowany podobnym algorytmem mapowania tonów używanym przez firmę Kodak. Spopularyzowany przez zastosowanie w grach wideo z renderowaniem HDR. Bardzo dobrze zachowuje zarówno ciemne, jak i jasne detale, ale ma tę wadę, że dość znacząco zmienia średnią jasność. Jest to podobne do reinhardz parametrem 0.24.

'gamma'

Dopasowuje funkcję gamma (moc) do przenoszenia między źródłową a docelową przestrzenią kolorów, co skutecznie skutkuje percepcyjnym twardym kolanem łączącym dwie z grubsza liniowe sekcje. Pozwala to dość dokładnie zachować szczegóły we wszystkich skalach, ale może skutkować przytłumionym lub matowym wyglądem obrazu. Parametr jest używany jako punkt odcięcia, domyślnie 0.5.

'linear'

Liniowo rozciąga zakres wejściowy do zakresu wyjściowego w przestrzeni PQ. Pozwoli to dokładnie zachować wszystkie szczegóły, ale spowoduje znacznie inną średnią jasność. Może być używany do odwróconego mapowania tonów oprócz zwykłego mapowania tonów. Parametr może być użyty jako dodatkowy liniowy współczynnik wzmocnienia (domyślnie 1.0).

tonemapping_param

W przypadku przestrajalnych funkcji mapowania tonów, ten parametr może być użyty do precyzyjnego dostrojenia zachowania krzywej. Zapoznaj się z dokumentacją tonemapping. Domyślna wartość 0.0jest zastępowana przez preferowane domyślne ustawienie krzywej.

tonemapping_mode

Ta opcja określa, w jaki sposób funkcja odwzorowania tonów określona przez tonemappingjest stosowana do kolorów w scenie. Możliwe wartości to:

'auto'

Wybór automatyczny oparty na heurystyce wewnętrznej. To jest ustawienie domyślne.

'rgb'

Zastosuj funkcję na kanał w przestrzeni kolorów RGB. Mapowanie tonów na kanał w RGB. Gwarantuje brak przycinania i mocno desaturuje wydruk, ale dość znacząco zniekształca kolory. Bardzo podobny do wyglądu i stylu „Hollywood”.

'max'

Mapowanie tonów jest wykonywane na najjaśniejszym składniku sygnału. Dobrze zachowuje szczegóły w pasemkach, ale ma tendencję do miażdżenia czerni.

'hybrid'

Mapa tonalna na kanał dla świateł i liniowo (oparta na luminacji) dla półcieni/cieni, w oparciu o stałą 2.4krzywą współczynnika gamma.

'luma'

Mapuj tony liniowo na składowej luma (CIE Y) i dostosuj (odsaturuj) chromatyczność, aby skompensować za pomocą prostego stałego współczynnika. Jest to zasadniczo tryb używany w metodzie A ITU-R BT.2446.

inverse_tonemapping

Jeśli jest włączony, ten filtr będzie również próbował rozciągać sygnały SDR w celu wypełnienia objętości kolorów wyjściowych HDR. Domyślnie wyłączone.

tonemapping_crosstalk

Dodatkowy współczynnik przesłuchów mapowania tonów, między 0.0a 0.3. Może to pomóc w zmniejszeniu problemów z mapowaniem tonów niektórych jasnych kolorów widmowych. Domyślnie 0.04.

tonemapping_lut_size

Rozmiar LUT mapowania tonów, pomiędzy 2a 1024. Domyślnie 256. Zauważ, że ta liczba jest podniesiona do kwadratu w połączeniu z peak_detect.

11.138.1.7 Dithering

Domyślnie libplacebo będzie dithering, gdy jest to konieczne, co obejmuje renderowanie do dowolnego formatu liczb całkowitych poniżej 16-bitowej precyzji. Zaleca się, aby zawsze pozostawić to włączone, ponieważ zaniechanie tego może skutkować widocznymi pasami na wyjściu, nawet jeśli debandingfiltr jest włączony. Jeśli potrzebna jest maksymalna wydajność, użyj ordered_fixedzamiast wyłączania ditheringu.

dithering

Metoda ditheringu do użycia. Akceptuje następujące wartości:

'none'

Całkowicie wyłącza dithering. Może powodować widoczne prążki.

'blue'

Dither z pseudo-niebieskim szumem. To jest ustawienie domyślne.

'ordered'

Przestrajalny uporządkowany wzór ditheringu.

'ordered_fixed'

Szybszy uporządkowany dither o stałym rozmiarze 6. Bez tekstur.

'white'

Dither z białym szumem. Bez tekstur.

dither_lut_size

Roztrząsaj rozmiar LUT, jako log base2 między 1a 8. Wartość domyślna to 6, odpowiadająca rozmiarowi tablicy LUT 64x64.

dither_temporal

Włącza dithering czasowy. Domyślnie wyłączone.

11.138.1.8 Custom shaders

libplacebo obsługuje wiele niestandardowych shaderów opartych na składni mpv .hook GLSL. Zbiór takich shaderów można znaleźć tutaj: https://github.com/mpv-player/mpv/wiki/User-Scripts#user-shaders

Pełny opis formatu mpv shader wykracza poza zakres tej sekcji, ale podsumowanie można znaleźć tutaj: https://mpv.io/manual/master/#options-glsl-shader

custom_shader_path

Określa ścieżkę do niestandardowego pliku modułu cieniującego do załadowania w czasie wykonywania.

custom_shader_bin

Określa kompletny niestandardowy shader jako nieprzetworzony ciąg.

11.138.1.9 Debugging / performance

Wszystkie opcje w tej sekcji są domyślnie wyłączone. Mogą być pomocne przy próbach wyciskania maksymalnej wydajności kosztem jakości.

skip_aa

Wyłącz antyaliasing podczas skalowania w dół.

polar_cutoff

Obetnij jądra skalujące biegunowe (EWA) poniżej tej wartości bezwzględnej, między 0.0a 1.0.

disable_linear

Wyłącz liniowe skalowanie światła.

disable_builtin

Wyłącz wbudowane próbkowanie GPU (wymusza LUT).

force_icc_lut

Wymuś użycie pełnego ICC 3DLUT do mapowania gamutów.

disable_fbos

Przymusowo wyłącz FBO, powodując utratę prawie wszystkich funkcji, ale oferując maksymalną możliwą prędkość.

11.138.2 Commands

Ten filtr obsługuje prawie wszystkie powyższe opcje jako polecenia .

11.138.3 Examples

  • Kompletny przykład, jak zainicjować urządzenie Vulkan, przesłać ramki do GPU, wykonać konwersję filtra do yuv420p i pobrać ramki z powrotem do procesora w celu wyprowadzenia. Zwróć uwagę, że w określonych przypadkach możesz obejść potrzebę przeprowadzenia konwersji formatu, określając odpowiednią formatopcję filtrowania odpowiadającą ramkom wejściowym.
    ffmpeg -i $INPUT -init_hw_device vulkan -vf hwupload,libplacebo=format=yuv420p,hwdownload,format=yuv420p $OUTPUT
    
  • Wejście mapy tonalnej do standardowego wyjścia gamut BT.709:
    libplacebo=colorspace=bt709:color_primaries=bt709:color_trc=bt709:range=tv
    
  • Przeskaluj wejście, aby pasowało do standardowego 1080p, z wysokiej jakości skalowaniem:
    libplacebo=w=1920:h=1080:force_original_aspect_ratio=decrease:normalize_sar=true:upscaler=ewa_lanczos:downscaler=ewa_lanczos
    
  • Konwertuj wejście na standardowy JPEG sRGB:
    libplacebo=format=yuv420p:colorspace=bt470bg:color_primaries=bt709:color_trc=iec61966-2-1:range=pc
    
  • Użyj ustawień usuwania pasma o wyższej jakości:
    libplacebo=deband=true:deband_iterations=3:deband_radius=8:deband_threshold=6
    
  • Uruchom ten filtr na procesorze, w systemach z zainstalowanym Mesą (i wyłączonymi najdroższymi opcjami):
    ffmpeg ... -init_hw_device vulkan:llvmpipe ... -vf libplacebo=upscaler=none:downscaler=none:peak_detect=false
    
  • Pomiń w dekoderze zastosowanie ziarna AV1/H.274 opartego na procesorze, zamiast robić to za pomocą tego filtra. Zauważ, że jest to zysk tylko wtedy, gdy ramki są już na GPU lub jeśli używasz libplacebo do innych celów, ponieważ w przeciwnym razie okrążenie VRAM z nawiązką zrekompensuje wszelkie oczekiwane przyspieszenie.
    ffmpeg -export_side_data +film_grain ... -vf libplacebo=apply_filmgrain=true
    

11.139 libvmaf

Oblicz wynik VMAF (Video Multi-Method Assessment Fusion) dla pary referencyjnej/zniekształconej pary wejściowych filmów wideo.

Pierwsze wejście to zniekształcone wideo, a drugie to wideo referencyjne.

Uzyskany wynik VMAF jest drukowany przez system rejestrowania.

Wymaga biblioteki vmaf Netflix (libvmaf) jako warunku wstępnego. Po zainstalowaniu biblioteki można ją włączyć za pomocą: ./configure --enable-libvmaf.

Filtr posiada następujące opcje:

model

„|” ograniczona lista modeli vmaf. Każdy model można skonfigurować za pomocą wielu parametrów. Domyślna wartość:"version=vmaf_v0.6.1"

model_path

Przestarzałe, użyj model='path=...'.

enable_transform

Przestarzałe, użyj model='enable_transform=true'.

phone_model

Przestarzałe, użyj model='enable_transform=true'.

enable_conf_interval

Przestarzałe, użyj model='enable_conf_interval=true'.

feature

„|” ograniczona lista funkcji. Każdą funkcję można skonfigurować za pomocą wielu parametrów.

psnr

Przestarzałe, użyj funkcji='name=psnr'.

ssim

Przestarzałe, użyj funkcji feature='name=ssim'.

ms_ssim

Przestarzałe, użyj funkcji='name=ms_ssim'.

log_path

Ustaw ścieżkę pliku, która będzie używana do przechowywania plików dziennika.

log_fmt

Ustaw format pliku dziennika (xml, json, csv lub sub).

n_threads

Ustaw liczbę wątków do użycia podczas inicjowania libvmaf. Wartość domyślna: 0, bez wątków.

n_subsample

Ustaw interwał podpróbkowania ramek, który ma być używany.

Ten filtr obsługuje również opcje framesync .

11.139.1 Examples

  • W poniższych przykładach zniekształcone wideodistorted.mpgjest porównywany z plikiem referencyjnymreference.mpg.
  • Podstawowe zastosowanie:
    ffmpeg -i distorted.mpg -i reference.mpg -lavfi libvmaf=log_path=output.xml -f null -
    
  • Przykład z wieloma modelami:
    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 -
    
  • Przykład z wieloma dodatkowymi funkcjami:
    ffmpeg -i distorted.mpg -i reference.mpg -lavfi libvmaf='feature=name=psnr|name=ciede' -f null -
    
  • Przykład z opcjami i różnymi pojemnikami:
    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

Zastosuj ograniczony filtr różnicowy za pomocą drugiego i opcjonalnie trzeciego strumienia wideo.

Filtr akceptuje następujące opcje:

threshold

Ustaw próg, który ma być używany, gdy zezwalasz na pewne różnice między strumieniami wideo. Każda wartość różnicy bezwzględnej niższa lub dokładna niż ten próg spowoduje pobranie składowych pikseli z pierwszego strumienia wideo.

elasticity

Ustaw elastyczność miękkiego progowania podczas przetwarzania strumieni wideo. Ta wartość pomnożona przez pierwszą wyznacza drugi próg. Każda wartość różnicy bezwzględnej większa lub dokładna niż drugi próg będzie pobierać składowe piksela z drugiego strumienia wideo. Dla wartości pomiędzy tymi dwoma progami zostanie zastosowana interpolacja liniowa pomiędzy pierwszym i drugim strumieniem wideo.

reference

Włącz przetwarzanie referencyjnego (trzeciego) strumienia wideo. Domyślnie jest wyłączona. Jeśli jest ustawiony, ten strumień wideo będzie używany do obliczania różnicy bezwzględnej z pierwszym strumieniem wideo.

planes

Określ, które samoloty będą przetwarzane. Domyślnie wszystkie dostępne.

11.140.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia z wyjątkiem opcji 'reference„.

11.141 limiter

Ogranicza wartości składowych pikseli do określonego zakresu [min, max].

Filtr akceptuje następujące opcje:

min

Dolna granica. Domyślnie jest to najniższa dozwolona wartość dla danych wejściowych.

max

Górna granica. Domyślnie jest to najwyższa dozwolona wartość dla danych wejściowych.

planes

Określ, które samoloty będą przetwarzane. Domyślnie wszystkie dostępne.

11.141.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

11.142 loop

Zapętlaj klatki wideo.

Filtr akceptuje następujące opcje:

loop

Ustaw liczbę pętli. Ustawienie tej wartości na -1 spowoduje powstanie nieskończonych pętli. Wartość domyślna to 0.

size

Ustaw maksymalny rozmiar w liczbie klatek. Wartość domyślna to 0.

start

Ustaw pierwszą klatkę pętli. Wartość domyślna to 0.

11.142.1 Examples

  • Zapętl pojedynczą pierwszą klatkę w nieskończoność:
    loop=loop=-1:size=1:start=0
    
  • Zapętl pojedynczą pierwszą klatkę 10 razy:
    loop=loop=10:size=1:start=0
    
  • Zapętl 10 pierwszych klatek 5 razy:
    loop=loop=5:size=10:start=0
    

11.143 lut1d

Zastosuj tablicę 1D LUT do wejściowego wideo.

Filtr akceptuje następujące opcje:

file

Ustaw nazwę pliku 1D LUT.

Obecnie obsługiwane formaty:

'cube'

Iridas

'csp'

cineSpace

interp

Wybierz tryb interpolacji.

Dostępne wartości to:

'nearest'

Użyj wartości z najbliższego zdefiniowanego punktu.

'linear'

Interpoluj wartości za pomocą interpolacji liniowej.

'cosine'

Interpoluj wartości za pomocą interpolacji cosinus.

'cubic'

Interpoluj wartości za pomocą interpolacji sześciennej.

'spline'

Interpoluj wartości za pomocą interpolacji splajnu.

11.143.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

11.144 lut3d

Zastosuj tablicę 3D LUT do wejściowego wideo.

Filtr akceptuje następujące opcje:

file

Ustaw nazwę pliku 3D LUT.

Obecnie obsługiwane formaty:

'3dl'

Po efektach

'cube'

Iridas

'dat'

Da Vinci

'm3d'

Pandora

'csp'

cineSpace

interp

Wybierz tryb interpolacji.

Dostępne wartości to:

'nearest'

Użyj wartości z najbliższego zdefiniowanego punktu.

'trilinear'

Interpoluj wartości używając 8 punktów definiujących sześcian.

'tetrahedral'

Interpoluj wartości za pomocą czworościanu.

'pyramid'

Interpoluj wartości za pomocą piramidy.

'prism'

Interpoluj wartości za pomocą pryzmatu.

11.144.1 Commands

Ten filtr obsługuje interpopcję jako polecenia .

11.145 lumakey

Przekształć niektóre wartości luma w przezroczystość.

Filtr akceptuje następujące opcje:

threshold

Ustaw lumę, która będzie używana jako podstawa przezroczystości. Wartość domyślna to 0.

tolerance

Ustaw zakres wartości luminancji do wykreślenia. Wartość domyślna to 0.01.

softness

Ustaw zakres miękkości. Wartość domyślna to 0. Użyj tego, aby kontrolować stopniowe przejście od zera do pełnej przezroczystości.

11.145.1 Commands

Ten filtr obsługuje te same polecenia, co opcje. Polecenie akceptuje tę samą składnię odpowiedniej opcji.

Jeśli podane wyrażenie jest niepoprawne, jest zachowywane z bieżącą wartością.

11.146 lut, lutrgb, lutyuv

Oblicz tabelę przeglądową w celu powiązania wartości wejściowej każdego składnika piksela z wartością wyjściową i zastosuj ją do wejściowego wideo.

lutyuvstosuje tabelę przeglądową do wejściowego wideo YUV, lutrgb do wejściowego wideo RGB.

Filtry te akceptują następujące parametry:

c0

ustaw wyrażenie pierwszego składnika piksela

c1

ustaw wyrażenie drugiego składnika piksela

c2

ustaw wyrażenie trzeciego składnika piksela

c3

ustaw wyrażenie czwartego składnika piksela, odpowiada składnikowi alfa

r

ustaw czerwone wyrażenie składowe

g

ustaw zielone wyrażenie składowe

b

ustaw niebieskie wyrażenie składowe

a

wyrażenie składnika alfa

y

ustaw Y/wyrażenie składowej luminancji

u

ustaw wyrażenie składowe U/Cb

v

ustaw wyrażenie składowe V/Cr

Każdy z nich określa wyrażenie używane do obliczania tabeli przeglądowej dla odpowiednich wartości składowych pikseli.

Dokładny składnik powiązany z każdą z c*opcji zależy od formatu danych wejściowych.

Filtr lutwymaga wejścia w formacie pikseli YUV lub RGB, lutrgbwymaga formatu pikseli RGB na wejściu i lutyuvwymaga YUV.

Wyrażenia mogą zawierać następujące stałe i funkcje:

w
h

Wejściowa szerokość i wysokość.

val

Wartość wejściowa składnika pikselowego.

clipval

Wartość wejściowa przycięta do zakresu minval- maxval.

maxval

Maksymalna wartość składnika pikselowego.

minval

Minimalna wartość składnika pikselowego.

negval

Zanegowana wartość dla wartości składnika piksela, przycięta do zakresu minval- maxval; odpowiada wyrażeniu „maxval-clipval+minval”.

clip(val)

Wartość obliczona w val, przycięta do zakresu minval- maxval.

gammaval(gamma)

Obliczona wartość korekcji gamma wartości składnika piksela, przycięta do zakresu minval- maxval. Odpowiada wyrażeniu "pow((clipval-minval)/(maxval-minval)\, gamma)*(maxval-minval)+minval"

Wszystkie wyrażenia domyślnie mają wartość „clipval”.

11.146.1 Commands

Ten filtr obsługuje te same polecenia, co opcje.

11.146.2 Examples

  • Neguj wejście wideo:
    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"
    

    Powyższe jest takie samo jak:

    lutrgb="r=negval:g=negval:b=negval"
    lutyuv="y=negval:u=negval:v=negval"
    
  • Zanegować luminancję:
    lutyuv=y=negval
    
  • Usuń komponenty chrominancji, zmieniając wideo w obraz w odcieniach szarości:
    lutyuv="u=128:v=128"
    
  • Zastosuj efekt wypalania lumy:
    lutyuv="y=2*val"
    
  • Usuń zielone i niebieskie komponenty:
    lutrgb="g=0:b=0"
    
  • Ustaw stałą wartość kanału alfa na wejściu:
    format=rgba,lutrgb=a="maxval-minval/2"
    
  • Prawidłowa gamma luminancji o współczynnik 0,5:
    lutyuv=y=gammaval(0.5)
    
  • Odrzuć najmniej znaczące bity lumy:
    lutyuv=y='bitand(val, 128+64+32)'
    
  • Efekt Technicolor:
    lutyuv=u='(val-maxval/2)*2+maxval/2':v='(val-maxval/2)*2+maxval/2'
    

11.147 lut2, tlut2

Filtr lut2przyjmuje dwa strumienie wejściowe i wyprowadza jeden strumień.

Filtr tlut2(czas lut2) pobiera dwie kolejne klatki z jednego strumienia.

Ten filtr akceptuje następujące parametry:

c0

ustaw wyrażenie pierwszego składnika piksela

c1

ustaw wyrażenie drugiego składnika piksela

c2

ustaw wyrażenie trzeciego składnika piksela

c3

ustaw wyrażenie czwartego składnika piksela, odpowiada składnikowi alfa

d

ustaw głębię bitową wyjścia, dostępne tylko dla lut2filtra. Domyślnie jest to 0, co oznacza, że ​​głębia bitowa jest automatycznie wybierana z pierwszego formatu wejściowego.

Filtr lut2obsługuje również opcje framesync .

Każdy z nich określa wyrażenie używane do obliczania tabeli przeglądowej dla odpowiednich wartości składowych pikseli.

Dokładny składnik powiązany z każdą z c*opcji zależy od formatu danych wejściowych.

Wyrażenia mogą zawierać następujące stałe:

w
h

Wejściowa szerokość i wysokość.

x

Pierwsza wartość wejściowa składnika piksela.

y

Druga wartość wejściowa składnika piksela.

bdx

Głębia bitowa pierwszego wejścia wideo.

bdy

Drugie wejście głębi bitowej wideo.

Wszystkie wyrażenia domyślnie mają „x”.

11.147.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia z wyjątkiem opcji d.

11.147.2 Examples

  • Podkreśl różnice między dwoma strumieniami wideo 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)'
    
  • Podkreśl różnice między dwoma strumieniami wideo 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)'
    
  • Pokaż maksymalną różnicę między dwoma strumieniami wideo:
    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

Zablokuj pierwszy strumień wejściowy z drugim strumieniem wejściowym i trzecim strumieniem wejściowym.

Zwraca wartość pierwszego strumienia, która znajduje się między drugim strumieniem wejściowym undershoota trzecim strumieniem wejściowym + overshoot.

Ten filtr akceptuje następujące opcje:

undershoot

Wartość domyślna to 0.

overshoot

Wartość domyślna to 0.

planes

Ustaw, które płaszczyzny będą przetwarzane jako bitmapa, nieprzetworzone płaszczyzny zostaną skopiowane z pierwszego strumienia. Domyślna wartość 0xf, wszystkie płaszczyzny będą przetwarzane.

11.148.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

11.149 maskedmax

Scal drugi i trzeci strumień wejściowy w strumień wyjściowy, wykorzystując bezwzględne różnice między drugim strumieniem wejściowym a pierwszym strumieniem wejściowym oraz bezwzględną różnicę między trzecim strumieniem wejściowym a pierwszym strumieniem wejściowym. Wybrana wartość będzie pochodzić z drugiego strumienia wejściowego, jeśli druga bezwzględna różnica jest większa niż pierwsza lub z trzeciego strumienia wejściowego w przeciwnym razie.

Ten filtr akceptuje następujące opcje:

planes

Ustaw, które płaszczyzny będą przetwarzane jako bitmapa, nieprzetworzone płaszczyzny zostaną skopiowane z pierwszego strumienia. Domyślna wartość 0xf, wszystkie płaszczyzny będą przetwarzane.

11.149.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

11.150 maskedmerge

Scal pierwszy strumień wejściowy z drugim strumieniem wejściowym, używając wag na piksel w trzecim strumieniu wejściowym.

Wartość 0 w składniku pikselowym trzeciego strumienia oznacza, że ​​składnik pikselowy z pierwszego strumienia jest zwracany bez zmian, natomiast wartość maksymalna (np. 255 dla filmów 8-bitowych) oznacza, że ​​składnik pikselowy z drugiego strumienia jest zwracany bez zmian. Wartości pośrednie definiują stopień scalania między obydwoma komponentami pikselowymi strumienia wejściowego.

Ten filtr akceptuje następujące opcje:

planes

Ustaw, które płaszczyzny będą przetwarzane jako bitmapa, nieprzetworzone płaszczyzny zostaną skopiowane z pierwszego strumienia. Domyślna wartość 0xf, wszystkie płaszczyzny będą przetwarzane.

11.150.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

11.151 maskedmin

Scal drugi i trzeci strumień wejściowy w strumień wyjściowy, wykorzystując bezwzględne różnice między drugim strumieniem wejściowym a pierwszym strumieniem wejściowym oraz bezwzględną różnicę między trzecim strumieniem wejściowym a pierwszym strumieniem wejściowym. Wybrana wartość będzie pochodzić z drugiego strumienia wejściowego, jeśli druga bezwzględna różnica jest mniejsza niż pierwsza lub z trzeciego strumienia wejściowego w przeciwnym razie.

Ten filtr akceptuje następujące opcje:

planes

Ustaw, które płaszczyzny będą przetwarzane jako bitmapa, nieprzetworzone płaszczyzny zostaną skopiowane z pierwszego strumienia. Domyślna wartość 0xf, wszystkie płaszczyzny będą przetwarzane.

11.151.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

11.152 maskedthreshold

Wybierz piksele porównując bezwzględną różnicę dwóch strumieni wideo ze stałym progiem.

Jeżeli bezwzględna różnica między składową pikselową pierwszego i drugiego strumienia wideo jest równa lub mniejsza niż próg podany przez użytkownika, wybierana jest składowa pikselowa z pierwszego strumienia wideo, w przeciwnym razie wybierana jest składowa pikselowa z drugiego strumienia wideo.

Ten filtr akceptuje następujące opcje:

threshold

Ustaw próg używany podczas wybierania pikseli z różnicy bezwzględnej z dwóch wejściowych strumieni wideo.

planes

Ustaw, które płaszczyzny będą przetwarzane jako bitmapa, nieprzetworzone płaszczyzny zostaną skopiowane z drugiego strumienia. Domyślna wartość 0xf, wszystkie płaszczyzny będą przetwarzane.

11.152.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

11.153 maskfun

Utwórz maskę z wejściowego wideo.

Na przykład przydatne jest tworzenie masek ruchu po tblendfiltrze.

Ten filtr akceptuje następujące opcje:

low

Ustaw niski próg. Każdy składnik pikseli niższy lub dokładny niż ta wartość zostanie ustawiony na 0.

high

Ustaw wysoki próg. Każdy składnik pikseli wyższy niż ta wartość zostanie ustawiony na maksymalną wartość dozwoloną dla bieżącego formatu pikseli.

planes

Ustaw samoloty do filtrowania, domyślnie filtrowane są wszystkie dostępne samoloty.

fill

Wypełnij wszystkie piksele ramki tą wartością.

sum

Ustaw maksymalną średnią wartość pikseli dla ramki. Jeśli suma wszystkich składowych pikseli jest większa niż ta średnia, wyjściowa ramka zostanie całkowicie wypełniona wartością ustawioną przez fillopcję. Zwykle przydatne do zmian scen w połączeniu z tblendfiltrem.

11.153.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

11.154 mcdeint

Zastosuj usuwanie przeplotu z kompensacją ruchu.

Potrzebuje jednego pola na ramkę jako danych wejściowych i dlatego musi być używane razem z yadif=1/3 lub równoważnym.

Ten filtr jest dostępny tylko w ffmpeg w wersji 4.4 lub wcześniejszej.

Ten filtr akceptuje następujące opcje:

mode

Ustaw tryb usuwania przeplotu.

Przyjmuje jedną z następujących wartości:

'fast'
'medium'
'slow'

użyj iteracyjnego szacowania ruchu

'extra_slow'

tak jak 'slow', ale używaj wielu ramek odniesienia.

Wartość domyślna to 'fast„.

parity

Ustaw parzystość pola obrazu zakładaną dla wejściowego wideo. Musi to być jedna z następujących wartości:

'0, tff'

załóż najpierw górne pole

'1, bff'

załóż najpierw dolne pole

Wartość domyślna to 'bff„.

qp

Ustaw parametr kwantyzacji na blok (QP) używany przez wewnętrzny koder.

Wyższe wartości powinny skutkować gładszym polem wektora ruchu, ale mniej optymalnymi pojedynczymi wektorami. Wartość domyślna to 1.

11.155 median

Wybierz medianę piksela z określonego prostokąta określonego przez promień.

Ten filtr akceptuje następujące opcje:

radius

Ustaw rozmiar promienia poziomego. Wartość domyślna to 1. Dozwolony zakres to liczba całkowita od 1 do 127.

planes

Ustaw samoloty do przetworzenia. Domyślnie jest to 15, co oznacza wszystkie dostępne płaszczyzny.

radiusV

Ustaw rozmiar promienia pionowego. Wartość domyślna to 0. Dozwolony zakres to liczba całkowita od 0 do 127. Jeżeli jest to 0, wartość zostanie pobrana z radiusopcji poziomej.

percentile

Ustaw medianę percentyla. Wartość domyślna to 0.5. Domyślna wartość 0.5wybierze zawsze wartości mediany, podczas gdy 0wybierze wartości minimalne i 1maksymalne.

11.155.1 Commands

Ten filtr obsługuje te same polecenia, co opcje. Polecenie akceptuje tę samą składnię odpowiedniej opcji.

Jeśli podane wyrażenie jest niepoprawne, jest zachowywane z bieżącą wartością.

11.156 mergeplanes

Scal komponenty kanału kolorów z kilku strumieni wideo.

Filtr akceptuje do 4 strumieni wejściowych i łączy wybrane płaszczyzny wejściowe z wyjściowym wideo.

Ten filtr akceptuje następujące opcje:

mapping

Ustaw wejście na mapowanie płaszczyzny wyjściowej. Wartość domyślna to 0.

Mapowania są określone jako bitmapa. Powinna być podana jako liczba szesnastkowa w postaci 0xAa[Bb[Cc[Dd]]]. 'Aa' opisuje mapowanie dla pierwszej płaszczyzny strumienia wyjściowego. „A” ustawia numer używanego strumienia wejściowego (od 0 do 3), a „a” numer płaszczyzny odpowiedniego wejścia do użycia (od 0 do 3). Pozostałe mapowania są podobne, „Bb” opisuje mapowanie dla drugiej płaszczyzny strumienia wyjściowego, „Cc” opisuje mapowanie dla trzeciej płaszczyzny strumienia wyjściowego, a „Dd” opisuje mapowanie dla czwartej płaszczyzny strumienia wyjściowego.

format

Ustaw format wyjściowy w pikselach. Wartość domyślna to yuva444p.

map0s
map1s
map2s
map3s

Ustaw mapowanie strumienia wejściowego na wyjściowy dla N-tej płaszczyzny wyjściowej. Wartość domyślna to 0.

map0p
map1p
map2p
map3p

Ustaw odwzorowanie wejścia na płaszczyznę wyjściową dla N-tej płaszczyzny wyjściowej. Wartość domyślna to 0.

11.156.1 Examples

  • Połącz trzy szare strumienie wideo o tej samej szerokości i wysokości w jeden strumień wideo:
    [a0][a1][a2]mergeplanes=0x001020:yuv444p
    
  • Scal pierwszy strumień yuv444p i drugi szary strumień wideo w strumień wideo yuva444p:
    [a0][a1]mergeplanes=0x00010210:yuva444p
    
  • Zamień samolot Y i A w strumieniu yuva444p:
    format=yuva444p,mergeplanes=0x03010200:yuva444p
    
  • Zamień samoloty U i V w strumieniu yuv420p:
    format=yuv420p,mergeplanes=0x000201:yuv420p
    
  • Przesyłaj klip rgb24 do yuv444p:
    format=rgb24,mergeplanes=0x000102:yuv444p
    

11.157 mestimate

Estymuj i eksportuj wektory ruchu za pomocą algorytmów dopasowywania bloków. Wektory ruchu są przechowywane w danych po stronie ramki do wykorzystania przez inne filtry.

Ten filtr akceptuje następujące opcje:

method

Określ metodę estymacji ruchu. Akceptuje jedną z następujących wartości:

'esa'

Wyczerpujący algorytm wyszukiwania.

'tss'

Algorytm wyszukiwania w trzech krokach.

'tdls'

Dwuwymiarowy algorytm przeszukiwania logarytmicznego.

'ntss'

Nowy trzyetapowy algorytm wyszukiwania.

'fss'

Algorytm wyszukiwania czterostopniowego.

'ds'

Algorytm wyszukiwania diamentów.

'hexbs'

Algorytm wyszukiwania oparty na sześciokątach.

'epzs'

Ulepszony predykcyjny algorytm wyszukiwania strefowego.

'umh'

Algorytm wyszukiwania nierównego wieloheksagonowego.

Wartość domyślna to 'esa„.

mb_size

Rozmiar makrobloku. Domyślny 16.

search_param

Wyszukaj parametr. Domyślny 7.

11.158 midequalizer

Zastosuj efekt wyrównania obrazu w połowie za pomocą dwóch strumieni wideo.

Wyrównanie obrazu w połowie umożliwia dostosowanie pary obrazów do tego samego histogramu, zachowując jednocześnie ich dynamikę na tyle, na ile to możliwe. Przydaje się np. do dopasowywania ekspozycji z pary kamer stereoskopowych.

Ten filtr ma dwa wejścia i jedno wyjście, które muszą mieć ten sam format pikseli, ale mogą mieć różne rozmiary. Wyjście filtra jest pierwszym wejściem regulowanym histogramem w połowie obu wejść.

Ten filtr akceptuje następującą opcję:

planes

Ustaw samoloty do przetworzenia. Domyślnie jest to 15, co oznacza wszystkie dostępne płaszczyzny.

11.159 minterpolate

Konwertuj wideo do określonej szybkości klatek za pomocą interpolacji ruchu.

Ten filtr akceptuje następujące opcje:

fps

Określ wyjściową liczbę klatek na sekundę. Może to być racjonalne np 60000/1001. . Klatki są odrzucane, jeśli fpsjest niższa niż źródłowa liczba fps. Domyślny 60.

mi_mode

Tryb interpolacji ruchu. Akceptowane są następujące wartości:

'dup'

Powiel poprzednią lub następną klatkę w celu interpolacji nowych.

'blend'

Połącz klatki źródłowe. Interpolowana klatka to średnia z poprzednich i następnych klatek.

'mci'

Interpolacja z kompensacją ruchu. Po wybraniu tego trybu obowiązują następujące opcje:

'mc_mode'

Tryb kompensacji ruchu. Akceptowane są następujące wartości:

'obmc'

Kompensacja ruchu nakładającego się bloku.

'aobmc'

Adaptacyjna kompensacja ruchu nakładającego się bloku. Współczynniki ważenia okien są sterowane adaptacyjnie zgodnie z niezawodnością sąsiednich wektorów ruchu w celu zmniejszenia nadmiernego wygładzania.

Tryb domyślny to 'obmc„.

'me_mode'

Tryb oceny ruchu. Akceptowane są następujące wartości:

'bidir'

Dwukierunkowa estymacja ruchu. Wektory ruchu są szacowane dla każdej klatki źródłowej zarówno w kierunku do przodu, jak i do tyłu.

'bilat'

Obustronna estymacja ruchu. Wektory ruchu są estymowane bezpośrednio dla interpolowanej klatki.

Tryb domyślny to 'bilat„.

'me'

Algorytm używany do estymacji ruchu. Akceptowane są następujące wartości:

'esa'

Wyczerpujący algorytm wyszukiwania.

'tss'

Algorytm wyszukiwania w trzech krokach.

'tdls'

Dwuwymiarowy algorytm przeszukiwania logarytmicznego.

'ntss'

Nowy trzyetapowy algorytm wyszukiwania.

'fss'

Algorytm wyszukiwania czterostopniowego.

'ds'

Algorytm wyszukiwania diamentów.

'hexbs'

Algorytm wyszukiwania oparty na sześciokątach.

'epzs'

Ulepszony predykcyjny algorytm wyszukiwania strefowego.

'umh'

Algorytm wyszukiwania nierównego wieloheksagonowego.

Domyślny algorytm to 'epzs„.

'mb_size'

Rozmiar makrobloku. Domyślny 16.

'search_param'

Parametr wyszukiwania estymacji ruchu. Domyślny 32.

'vsbmc'

Włącz kompensację ruchu bloku o zmiennej wielkości. Oszacowanie ruchu jest stosowane przy mniejszych rozmiarach bloków na granicach obiektów, aby były mniej rozmyte. Wartość domyślna to 0(wyłączone).

scd

Metoda wykrywania zmiany sceny. Zmiana sceny powoduje, że wektory ruchu są w losowym kierunku. Wykrywanie zmiany sceny zastępuje interpolowane klatki duplikatami. Może nie być potrzebny w innych trybach. Akceptowane są następujące wartości:

'none'

Wyłącz wykrywanie zmiany sceny.

'fdiff'

Różnica ramek. Odpowiednie wartości pikseli są porównywane i jeśli to spełnia scd_threshold, wykrywana jest zmiana sceny.

Domyślna metoda to 'fdiff„.

scd_threshold

Próg wykrywania zmiany sceny. Wartość domyślna to 10..

11.160 mix

Zmiksuj kilka strumieni wejściowych wideo w jeden strumień wideo.

Poniżej znajduje się opis akceptowanych opcji.

inputs

Liczba wejść. Jeśli nie jest określony, domyślnie wynosi 2.

weights

Określ wagę każdego wejściowego strumienia wideo jako sekwencji. Każda waga jest oddzielona spacją. Jeśli liczba odważników jest mniejsza niż liczba framesostatnio określonych odważników, zostanie użyta dla wszystkich pozostałych nieustawionych odważników.

scale

Określ skalę, jeśli jest ustawiona, zostanie pomnożona przez sumę każdej wagi pomnożoną przez wartości pikseli, aby uzyskać ostateczną docelową wartość piksela. Domyślnie scalejest skalowane automatycznie do sumy wag.

planes

Ustaw samoloty do filtrowania. Domyślność to wszystko. Dozwolony zakres to od 0 do 15.

duration

Określ sposób określania końca strumienia.

'longest'

Czas trwania najdłuższego wejścia. (domyślna)

'shortest'

Czas trwania najkrótszego wejścia.

'first'

Czas trwania pierwszego wejścia.

11.160.1 Commands

Ten filtr obsługuje następujące polecenia:

weights
scale
planes

Składnia jest taka sama jak opcja o tej samej nazwie.

11.161 monochrome

Konwertuj wideo na szarość za pomocą niestandardowego filtra kolorów.

Poniżej znajduje się opis akceptowanych opcji.

cb

Ustaw niebieski punkt chroma. Dozwolony zakres to od -1 do 1. Wartość domyślna to 0.

cr

Ustaw czerwony punkt chromatyczny. Dozwolony zakres to od -1 do 1. Wartość domyślna to 0.

size

Ustaw rozmiar filtra kolorów. Dozwolony zakres to od 0,1 do 10. Wartość domyślna to 1.

high

Ustaw siłę podświetleń. Dozwolony zakres to od 0 do 1. Wartość domyślna to 0.

11.161.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

11.162 morpho

Filtr ten pozwala na zastosowanie głównych morfologicznych przekształceń skali szarości, erozję i rozszerzanie z dowolnymi strukturami ustawionymi w drugim strumieniu wejściowym.

W przeciwieństwie do naiwnej implementacji i znacznie wolniejszej wydajności w filtrach erozji i dylatacji , gdy prędkość jest krytyczna morpho, należy zamiast tego użyć filtra.

Poniżej znajduje się opis akceptowanych opcji,

mode

Ustaw transformację morfologiczną do zastosowania, może być:

'erode'
'dilate'
'open'
'close'
'gradient'
'tophat'
'blackhat'

Wartość domyślna to erode.

planes

Ustaw samoloty do filtrowania, domyślnie filtrowane są wszystkie samoloty z wyjątkiem alfa.

structure

Ustaw, która struktura klatek wideo będzie przetwarzana z drugiego strumienia wejściowego, może być firstlub all. Wartość domyślna to all.

Filtr morphoobsługuje również opcje framesync .

11.162.1 Commands

Ten filtr obsługuje te same polecenia, co opcje.

11.163 mpdecimate

Odrzuć klatki, które nie różnią się zbytnio od poprzedniej klatki, aby zmniejszyć liczbę klatek na sekundę.

Głównym zastosowaniem tego filtra jest kodowanie z bardzo niską przepływnością (np. przesyłanie strumieniowe przez modem), ale teoretycznie można by go użyć do naprawy filmów, które zostały nieprawidłowo odwrócone telecine.

Poniżej znajduje się opis akceptowanych opcji.

max

Ustaw maksymalną liczbę kolejnych ramek, które mogą zostać pominięte (jeśli jest dodatnia) lub minimalny odstęp między pominiętymi ramkami (jeśli jest ujemny). Jeśli wartość wynosi 0, ramka jest usuwana niezależnie od liczby poprzednich sekwencyjnie usuwanych ramek.

Wartość domyślna to 0.

hi
lo
frac

Ustaw wartości progowe spadku.

Wartości dlahiorazlosą dla bloków 8x8 pikseli i reprezentują rzeczywiste różnice wartości pikseli, więc próg 64 odpowiada 1 jednostce różnicy dla każdego piksela lub to samo rozłożone w różny sposób w całym bloku.

Ramka jest kandydatem do porzucenia, jeśli żadne bloki 8x8 nie różnią się o więcej niż próghi, a jeśli nie więcej niżfracbloki (1 oznacza cały obraz) różnią się o więcej niż próglo.

Wartość domyślna dlahito 64*12, domyślna wartość dlaloto 64*5, a domyślna wartośćfracwynosi 0,33.

11.164 msad

Uzyskaj MSAD (średnią sumę różnic bezwzględnych) między dwoma wejściowymi wideo.

Ten filtr pobiera dwa wideo wejściowe.

Aby ten filtr działał poprawnie, oba wideo wejściowe muszą mieć tę samą rozdzielczość i format pikseli. Zakłada również, że oba wejścia mają taką samą liczbę klatek, które są porównywane jedna po drugiej.

Uzyskane na składnik, średnie, minimalne i maksymalne MSAD są drukowane przez system rejestrowania.

Filtr przechowuje obliczone MSAD każdej ramki w metadanych ramki.

W poniższym przykładzie plik wejściowymain.mpgprzetwarzany jest porównywany z plikiem referencyjnymref.mpg.

ffmpeg -i main.mpg -i ref.mpg -lavfi msad -f null -

11.165 multiply

Pomnóż wartości pikseli pierwszego strumienia wideo przez wartości pikseli drugiego strumienia wideo.

Filtr akceptuje następujące opcje:

scale

Ustaw skalę stosowaną do drugiego strumienia wideo. Domyślnie jest to 1. Dozwolony zakres to od 0do 9.

offset

Ustaw przesunięcie zastosowane do drugiego strumienia wideo. Domyślnie jest to 0.5. Dozwolony zakres to od -1do 1.

planes

Określ płaszczyzny z wejściowego strumienia wideo, które będą przetwarzane. Domyślnie przetwarzane są wszystkie płaszczyzny.

11.165.1 Commands

Ten filtr obsługuje te same polecenia, co opcje.

11.166 negate

Negacja (odwrócenie) wejściowego wideo.

Akceptuje następującą opcję:

components

Ustaw komponenty do zanegowania.

Dostępne wartości dla komponentów to:

'y'
'u'
'v'
'a'
'r'
'g'
'b'
negate_alpha

Przy wartości 1 neguje składnik alfa, jeśli jest obecny. Wartość domyślna to 0.

11.166.1 Commands

Ten filtr obsługuje te same polecenia, co opcje.

11.167 nlmeans

Odszumianie klatek przy użyciu algorytmu średnich nielokalnych.

Każdy piksel jest dostosowywany poprzez wyszukiwanie innych pikseli o podobnym kontekście. To podobieństwo kontekstu jest definiowane przez porównanie otaczających ich łat o rozmiarze pxp. Plastry są przeszukiwane na obszarzerxr wokół piksela.

Zwróć uwagę, że obszar badań definiuje centra dla łat, co oznacza, że ​​niektóre łaty będą wykonane z pikseli poza tym obszarem badań.

Filtr akceptuje następujące opcje.

s

Ustaw siłę odszumiania. Wartość domyślna to 1.0. Musi być w zakresie [1,0, 30,0].

p

Ustaw rozmiar poprawki. Wartość domyślna to 7. Musi być liczbą nieparzystą z zakresu [0, 99].

pc

Taki sam jakpale dla płaszczyzn barw.

Wartość domyślna to 0i oznacza automatyczne.

r

Ustaw rozmiar badań. Domyślnie 15. Musi być liczbą nieparzystą z zakresu [0, 99].

rc

Taki sam jakrale dla płaszczyzn barw.

Wartość domyślna to 0i oznacza automatyczne.

11.168 nnedi

Usuwanie przeplotu wideo przy użyciu interpolacji skierowanej na brzeg sieci neuronowej.

Ten filtr akceptuje następujące opcje:

weights

Opcja obowiązkowa, bez binarnego filtru plików nie działa. Aktualny plik można znaleźć tutaj: https://github.com/dubhater/vapoursynth-nnedi3/blob/master/src/nnedi3_weights.bin

deint

Ustaw ramki do usunięcia przeplotu, domyślnie jest to all. Może być alllub interlaced.

field

Ustaw tryb pracy.

Może być jednym z następujących:

'af'

Użyj flag ramek, obu pól.

'a'

Użyj flag ramek, jedno pole.

't'

Użyj tylko górnego pola.

'b'

Użyj tylko dolnego pola.

'tf'

Użyj obu pól, najpierw u góry.

'bf'

Użyj obu pól, najpierw na dole.

planes

Ustaw, które płaszczyzny mają zostać przetworzone, domyślnie filtr przetwarza wszystkie klatki.

nsize

Ustaw rozmiar lokalnego sąsiedztwa wokół każdego piksela, używanego przez sieć neuronową predykcyjną.

Może być jednym z następujących:

's8x6'
's16x6'
's32x6'
's48x6'
's8x4'
's16x4'
's32x4'
nns

Ustaw liczbę neuronów w predykcyjnej sieci neuronowej. Może być jednym z następujących:

'n16'
'n32'
'n64'
'n128'
'n256'
qual

Steruje liczbą różnych predykcji sieci neuronowych, które są łączone w celu obliczenia końcowej wartości wyjściowej. Może być fast, domyślny lub slow.

etype

Ustaw, który zestaw wag ma być używany w predyktorze. Może być jednym z następujących:

'a, abs'

obciążniki wyszkolone w celu zminimalizowania błędu bezwzględnego

's, mse'

obciążniki wyszkolone w celu zminimalizowania kwadratu błędu

pscrn

Określa, czy sieć neuronowa preselektora jest używana do decydowania, które piksele powinny być przetwarzane przez sieć neuronową predykcyjną, a które mogą być obsługiwane przez prostą interpolację sześcienną. Preselektor jest szkolony, aby wiedzieć, czy interpolacja sześcienna będzie wystarczająca dla piksela, czy też powinna być przewidziana przez predyktor nn. Złożoność obliczeniowa preselektora nn jest znacznie mniejsza niż predyktora nn. Ponieważ większość pikseli może być obsługiwana przez interpolację sześcienną, użycie prescreenera zazwyczaj powoduje znacznie szybsze przetwarzanie. Prescreener jest dość dokładny, więc różnica między jego użyciem a nieużywaniem jest prawie zawsze niezauważalna.

Może być jednym z następujących:

'none'
'original'
'new'
'new2'
'new3'

Wartość domyślna to new.

11.168.1 Commands

Ten filtr obsługuje te same polecenia , co opcje, z wyjątkiem weightsopcji.

11.169 noformat

Wymuś libavfilter, aby nie używał żadnego z określonych formatów pikseli dla danych wejściowych następnego filtra.

Przyjmuje następujące parametry:

pix_fmts

Lista nazw formatów pikseli rozdzielonych znakiem „|”, np. pix_fmts=yuv420p|monow|rgb24”.

11.169.1 Examples

  • Wymuś użycie przez libavfilter formatu innego niż yuv420pdla danych wejściowych filtra vflip:
    noformat=pix_fmts=yuv420p,vflip
    
  • Konwertuj wideo wejściowe na dowolny z formatów niewymienionych na liście:
    noformat=yuv420p|yuv444p|yuv410p
    

11.170 noise

Dodaj szum do klatki wejściowej wideo.

Filtr akceptuje następujące opcje:

all_seed
c0_seed
c1_seed
c2_seed
c3_seed

Ustaw ziarno szumu dla określonego składnika piksela lub wszystkich składników piksela w przypadku all_seed. Wartość domyślna to 123457.

all_strength, alls
c0_strength, c0s
c1_strength, c1s
c2_strength, c2s
c3_strength, c3s

Ustaw siłę szumu dla określonego składnika piksela lub wszystkich składników piksela w przypadku all_strength. Wartość domyślna to 0. Dozwolony zakres to [0, 100].

all_flags, allf
c0_flags, c0f
c1_flags, c1f
c2_flags, c2f
c3_flags, c3f

Ustaw flagi komponentów pikselowych lub ustaw flagi dla wszystkich komponentów, jeśli all_flags. Dostępne wartości dla flag komponentów to:

'a'

uśredniony szum czasowy (gładszy)

'p'

mieszaj losowy szum z (pół)regularnym wzorem

't'

szum czasowy (zmiana wzorca szumu między klatkami)

'u'

jednolity szum (w przeciwnym razie gaussowski)

11.170.1 Examples

Dodaj czasowy i jednolity szum do wejściowego wideo:

noise=alls=20:allf=t+u

11.171 normalize

Normalizuj wideo RGB (inaczej rozciąganie histogramu, rozciąganie kontrastu). Zobacz: https://en.wikipedia.org/wiki/Normalizacja_(przetwarzanie_obrazu)

Dla każdego kanału każdej ramki filtr oblicza zakres wejściowy i odwzorowuje go liniowo na zakres wyjściowy określony przez użytkownika. Zakres wyjściowy to domyślnie pełny zakres dynamiczny od czystej czerni do czystej bieli.

W zakresie wejściowym można zastosować wygładzanie czasowe, aby zredukować migotanie (szybkie zmiany jasności) powstałe, gdy małe ciemne lub jasne obiekty wchodzą lub opuszczają scenę. Jest to podobne do automatycznej ekspozycji (automatycznej kontroli wzmocnienia) w kamerze wideo i, podobnie jak kamera wideo, może powodować okres prześwietlenia lub niedoświetlenia obrazu wideo.

Kanały R,G,B mogą być normalizowane niezależnie, co może powodować pewne przesunięcia kolorów, lub połączone razem w jeden kanał, co zapobiega przesunięciom kolorów. Połączona normalizacja zachowuje odcień. Niezależna normalizacja nie, więc może być używana do usuwania niektórych przebarwień. Normalizację niezależną i połączoną można łączyć w dowolnym stosunku.

Filtr normalizacji akceptuje następujące opcje:

blackpt
whitept

Kolory określające zakres wyjściowy. Minimalna wartość wejściowa jest mapowana na blackpt. Maksymalna wartość wejściowa jest mapowana na whitept. Wartości domyślne to odpowiednio czarny i biały. Określenie białego dla blackpti czarnego dla whiteptda odwrócone, znormalizowane wideo. Odcienie szarości mogą być użyte do zmniejszenia zakresu dynamicznego (kontrastu). Określenie tutaj nasyconych kolorów może stworzyć ciekawe efekty.

smoothing

Liczba poprzednich klatek używanych do wygładzania tymczasowego. Zakres wejściowy każdego kanału jest wygładzany przy użyciu średniej kroczącej bieżącej i smoothingpoprzednich ramek. Wartość domyślna to 0 (brak czasowego wygładzania).

independence

Kontroluje stosunek niezależnej (przesunięcie koloru) normalizacji kanału do połączonej (z zachowaniem koloru) normalizacji. 0.0 jest w pełni połączone, 1.0 jest w pełni niezależne. Domyślnie 1.0 (w pełni niezależne).

strength

Ogólna wytrzymałość filtra. 1.0 to pełna siła. 0.0 to dość kosztowny no-op. Domyślnie 1,0 (pełna siła).

11.171.1 Commands

Ten filtr obsługuje te same polecenia , co opcje, z wyjątkiem smoothingopcji. Polecenie akceptuje tę samą składnię odpowiedniej opcji.

Jeśli podane wyrażenie jest niepoprawne, jest zachowywane z bieżącą wartością.

11.171.2 Examples

Rozciągnij kontrast wideo, aby korzystać z pełnego zakresu dynamiki, bez czasowego wygładzania; może migotać w zależności od zawartości źródła:

normalize=blackpt=black:whitept=white:smoothing=0

Jak wyżej, ale z 50 klatkami czasowego wygładzania; migotanie powinno być zredukowane w zależności od zawartości źródła:

normalize=blackpt=black:whitept=white:smoothing=50

Jak powyżej, ale z normalizacją kanału połączonego z zachowaniem odcienia:

normalize=blackpt=black:whitept=white:smoothing=50:independence=0

Jak wyżej, ale z połową mocy:

normalize=blackpt=black:whitept=white:smoothing=50:independence=0:strength=0.5

Odwzoruj najciemniejszy kolor wejściowy na czerwony, najjaśniejszy kolor wejściowy na cyjan:

normalize=blackpt=red:whitept=cyan

11.172 null

Przekaż niezmienione źródło wideo do wyjścia.

11.173 ocr

Optyczne rozpoznawanie znaków

Ten filtr wykorzystuje Tesseract do optycznego rozpoznawania znaków. Aby umożliwić kompilację tego filtra, musisz skonfigurować FFmpeg za pomocą --enable-libtesseract.

Akceptuje następujące opcje:

datapath

Ustaw ścieżkę danych na dane tesseract. Domyślnie używa się tego, co zostało ustawione podczas instalacji.

language

Ustaw język, domyślnie "eng".

whitelist

Ustaw białą listę znaków.

blacklist

Ustaw czarną listę znaków.

Filtr eksportuje rozpoznany tekst jako metadane ramki lavfi.ocr.text. Filtr eksportuje pewność rozpoznanych słów jako metadane ramki lavfi.ocr.confidence.

11.174 ocv

Zastosuj transformację wideo za pomocą libopencv.

Aby włączyć ten filtr, zainstaluj bibliotekę i nagłówki libopencv i skonfiguruj FFmpeg za pomocą --enable-libopencv.

Przyjmuje następujące parametry:

filter_name

Nazwa filtru libopencv do zastosowania.

filter_params

Parametry do przekazania do filtra libopencv. Jeśli nie określono, przyjmowane są wartości domyślne.

Więcej informacji można znaleźć w oficjalnej dokumentacji libopencv: http://docs.opencv.org/master/modules/imgproc/doc/filtering.html

Obsługiwanych jest kilka filtrów libopencv; patrz następujące podrozdziały.

11.174.1 dilate

Poszerzyć obraz, używając określonego elementu strukturyzującego. Odpowiada funkcji libopencv cvDilate.

Przyjmuje parametry: struct_el| nb_iterations.

struct_elreprezentuje element strukturyzujący i ma składnię: colsx rows+ anchor_xx anchor_y/shape

colsi rowsreprezentują liczbę kolumn i wierszy elementu strukturyzującego, punkt zakotwiczenia i anchor_xkształt elementu strukturyzującego. musi być „prosty”, „krzyż”, „elipsa” lub „niestandardowy”. anchor_yshapeshape

Jeśli wartością dla shapejest „custom”, musi następować po niej ciąg w postaci „= filename”. Zakłada się, że plik o nazwie filenamereprezentuje obraz binarny, w którym każdy drukowalny znak odpowiada jasnemu pikselowi. shapeGdy używany jest niestandardowy colsi rowsjest ignorowany, zamiast tego przyjmowana jest liczba lub kolumny i wiersze odczytanego pliku.

Domyślna wartość struct_elto „3x3+0x0/prost”.

nb_iterationsokreśla, ile razy transformacja jest stosowana do obrazu, i domyślnie wynosi 1.

Kilka przykładów:

# 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

Erozji obrazu przy użyciu określonego elementu strukturyzującego. Odpowiada funkcji libopencv cvErode.

Przyjmuje parametry: struct_el: nb_iterations, z taką samą składnią i semantyką jak filtr dilate .

11.174.3 smooth

Wygładź wideo wejściowe.

Filtr przyjmuje następujące parametry: type| param1| param2| param3| param4.

typejest typem filtru wygładzającego, który ma zostać zastosowany, i musi być jedną z następujących wartości: „blur”, „blur_no_scale”, „mediana”, „gaussian” lub „dwustronna”. Wartość domyślna to „gaussowski”.

Znaczenie param1, param2, param3i param4 zależy od typu gładkiego. param1i param2akceptuj wartości całkowite dodatnie lub 0. param3i param4akceptuj wartości zmiennoprzecinkowe.

Domyślna wartość dla param1to 3. Domyślna wartość dla pozostałych parametrów to 0.

Parametry te odpowiadają parametrom przypisanym do funkcji libopencv cvSmooth.

11.175 oscilloscope

Oscyloskop wideo 2D.

Przydatne do pomiaru impulsów przestrzennych, odpowiedzi skokowych, opóźnień chrominancji itp.

Przyjmuje następujące parametry:

x

Ustaw środek lunety x pozycję.

y

Ustaw pozycję y środka oscyloskopu.

s

Ustaw rozmiar lunety względem przekątnej ramki.

t

Ustaw pochylenie/obrót lunety.

o

Ustaw krycie śladu.

tx

Ustaw środek śledzenia x pozycję.

ty

Ustaw pozycję y środka śledzenia.

tw

Ustaw szerokość śladu w stosunku do szerokości ramki.

th

Ustaw wysokość śladu względem wysokości ramki.

c

Ustaw komponenty do śledzenia. Domyślnie śledzi pierwsze trzy składniki.

g

Narysuj siatkę śledzenia. Domyślnie jest włączony.

st

Narysuj statystyki. Domyślnie jest włączony.

sc

Narysuj zakres. Domyślnie jest włączony.

11.175.1 Commands

Ten filtr obsługuje te same polecenia, co opcje. Polecenie akceptuje tę samą składnię odpowiedniej opcji.

Jeśli podane wyrażenie jest niepoprawne, jest zachowywane z bieżącą wartością.

11.175.2 Examples

  • Sprawdź cały pierwszy wiersz klatki wideo.
    oscilloscope=x=0.5:y=0:s=1
    
  • Sprawdź cały ostatni wiersz klatki wideo.
    oscilloscope=x=0.5:y=1:s=1
    
  • Sprawdź pełną piątą linię klatki wideo o wysokości 1080.
    oscilloscope=x=0.5:y=5/1080:s=1
    
  • Sprawdź całą ostatnią kolumnę klatki wideo.
    oscilloscope=x=1:y=0.5:s=1:t=1
    

11.176 overlay

Nakładaj jeden film na drugi.

Zajmuje dwa wejścia i ma jedno wyjście. Pierwsze wejście to „główne” wideo, na które nakładane jest drugie wejście.

Przyjmuje następujące parametry:

Poniżej znajduje się opis akceptowanych opcji.

x
y

Ustaw wyrażenie dla współrzędnych x i y nałożonego wideo w głównym wideo. Wartość domyślna to „0” dla obu wyrażeń. W przypadku, gdy wyrażenie jest nieprawidłowe, ustawiane jest na dużą wartość (co oznacza, że ​​nakładka nie będzie wyświetlana w widocznym obszarze wyjściowym).

eof_action

Zobacz framesync .

eval

Ustaw, kiedy wyrażenia dlax, orazysą oceniane.

Przyjmuje następujące wartości:

'init'

Oceniaj wyrażenia tylko raz podczas inicjalizacji filtra lub podczas przetwarzania polecenia

'frame'

oceń wyrażenia dla każdej przychodzącej ramki

Wartość domyślna to 'frame„.

shortest

Zobacz framesync .

format

Ustaw format wyjściowego wideo.

Przyjmuje następujące wartości:

'yuv420'

wymuszenie wyjścia YUV420

'yuv420p10'

wymuszenie wyjścia YUV420p10

'yuv422'

wymuś wyjście YUV422

'yuv422p10'

wymuś wyjście YUV422p10

'yuv444'

wymuś wyjście YUV444

'rgb'

wymuszone pakowanie wyjścia RGB

'gbrp'

wymuszenie planarnego wyjścia RGB

'auto'

automatycznie wybierz format

Wartość domyślna to 'yuv420„.

repeatlast

Zobacz framesync .

alpha

Ustaw format alfa nakładki wideo, może to być straightlub premultiplied. Wartość domyślna to straight.

Thex, orazywyrażenia mogą zawierać następujące parametry.

main_w, W
main_h, H

Główna szerokość i wysokość danych wejściowych.

overlay_w, w
overlay_h, h

Szerokość i wysokość danych wejściowych nakładki.

x
y

Obliczone wartości dla xi y. Są oceniane dla każdej nowej klatki.

hsub
vsub

Podpróbki wartości chrominancji poziomej i pionowej formatu wyjściowego. Na przykład dla formatu piksela „yuv422p” hsubto 2 i vsub1.

n

liczba klatek wejściowych, zaczynając od 0

pos

pozycja w pliku ramki wejściowej, NAN jeśli nieznana

t

Znacznik czasu wyrażony w sekundach. Jest to NAN, jeśli wejściowy znacznik czasu jest nieznany.

Ten filtr obsługuje również opcje framesync .

Zwróć uwagę, że nzmienne , , są dostępne tylko wtedy, gdy ocena jest wykonywana posna ramkę i będą oceniane jako NAN, gdytevaljest ustawione na 'init„.

Należy pamiętać, że klatki są pobierane z każdego wejściowego wideo w kolejności znaczników czasowych, dlatego jeśli ich początkowe znaczniki czasowe różnią się, dobrym pomysłem jest przepuszczenie dwóch wejść przez setpts=PTS-STARTPTSfiltr, aby zaczynały się od tego samego zerowego znacznika czasowego, jak w przykładzie dla moviefiltr.

Możesz połączyć ze sobą więcej nakładek, ale powinieneś przetestować skuteczność takiego podejścia.

11.176.1 Commands

Ten filtr obsługuje następujące polecenia:

x
y

Zmodyfikuj x i y danych wejściowych nakładki. Polecenie akceptuje tę samą składnię odpowiedniej opcji.

Jeśli podane wyrażenie jest niepoprawne, jest zachowywane z bieżącą wartością.

11.176.2 Examples

  • Narysuj nakładkę w 10 pikselach od prawego dolnego rogu głównego wideo:
    overlay=main_w-overlay_w-10:main_h-overlay_h-10
    

    Używając nazwanych opcji, powyższy przykład staje się:

    overlay=x=main_w-overlay_w-10:y=main_h-overlay_h-10
    
  • Wstaw przezroczyste logo PNG w lewym dolnym rogu danych wejściowych, używając ffmpegnarzędzia z -filter_complexopcją:
    ffmpeg -i input -i logo -filter_complex 'overlay=10:main_h-overlay_h-10' output
    
  • Wstaw 2 różne przezroczyste logo PNG (drugie logo w prawym dolnym rogu) za pomocą ffmpegnarzędzia:
    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
    
  • Dodaj przezroczystą warstwę kolorów na górze głównego wideo; WxH musi określić rozmiar głównego wejścia do filtra nakładkowego:
    color=color=red@.3:size=WxH [over]; [in][over] overlay [out]
    
  • Odtwórz oryginalny film i wersję przefiltrowaną (tu z filtrem deshake) obok siebie, używając ffplaynarzędzia:
    ffplay input.avi -vf 'split[a][b]; [a]pad=iw*2:ih[src]; [b]deshake[filt]; [src][filt]overlay=w'
    

    Powyższe polecenie jest takie samo jak:

    ffplay input.avi -vf 'split[b], pad=iw*2[src], [b]deshake, [src]overlay=w'
    
  • Utwórz przesuwaną nakładkę pojawiającą się od lewej do prawej górnej części ekranu, zaczynając od czasu 2:
    overlay=x='if(gte(t,2), -w+(t-2)*20, NAN)':y=0
    
  • Skomponuj dane wyjściowe, umieszczając dwa wideo wejściowe obok siebie:
    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]
    "
    
  • Zamaskuj 10-20 sekund filmu, stosując filtr delogo do sekcji
    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
    
  • Połącz kilka nakładek kaskadowo:
    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

Nakładaj jeden film na drugi.

To jest wariant CUDA filtra nakładkowego . Akceptuje tylko ramki CUDA. Podstawowe formaty pikseli wejściowych muszą być zgodne.

Zajmuje dwa wejścia i ma jedno wyjście. Pierwsze wejście to „główne” wideo, na które nakładane jest drugie wejście.

Przyjmuje następujące parametry:

x
y

Ustaw wyrażenia dla współrzędnych x i y nałożonego wideo w głównym wideo.

Mogą zawierać następujące parametry:

main_w, W
main_h, H

Główna szerokość i wysokość danych wejściowych.

overlay_w, w
overlay_h, h

Szerokość i wysokość danych wejściowych nakładki.

x
y

Obliczone wartości dla xi y. Są oceniane dla każdej nowej klatki.

n

Indeks porządkowy głównej ramki wejściowej, zaczynając od 0.

pos

Pozycja przesunięcia bajtów w pliku głównej ramki wejściowej, NAN jeśli nieznana.

t

Znacznik czasu głównej ramki wejściowej wyrażony w sekundach, NAN, jeśli jest nieznany.

Wartość domyślna to „0” dla obu wyrażeń.

eval

Ustaw, kiedy wyrażenia dlaxorazysą oceniane.

Przyjmuje następujące wartości:

init

Oceń wyrażenia raz podczas inicjowania filtru lub podczas przetwarzania polecenia.

frame

Oceń wyrażenia dla każdej przychodzącej ramki

Wartość domyślna toframe.

eof_action

Zobacz framesync .

shortest

Zobacz framesync .

repeatlast

Zobacz framesync .

Ten filtr obsługuje również opcje framesync .

11.178 owdenoise

Zastosuj odszumiacz Overcomplete Wavelet.

Filtr akceptuje następujące opcje:

depth

Ustaw głębokość.

Większe wartości głębokości będą bardziej odszumiać komponenty o niższej częstotliwości, ale spowalniają filtrowanie.

Musi być int z zakresu 8-16, domyślnie 8.

luma_strength, ls

Ustaw siłę luma.

Musi być podwójną wartością z zakresu 0-1000, domyślnie 1.0.

chroma_strength, cs

Ustaw siłę barwy.

Musi być podwójną wartością z zakresu 0-1000, domyślnie 1.0.

11.179 pad

Dodaj dopełnienia do obrazu wejściowego i umieść oryginalne dane wejściowe w podanych xwspółrzędnych y.

Przyjmuje następujące parametry:

width, w
height, h

Określ wyrażenie określające rozmiar obrazu wyjściowego z dodanymi dopełnieniami. Jeśli wartość widthlub heightwynosi 0, odpowiedni rozmiar wejściowy jest używany dla danych wyjściowych.

Wyrażenie widthmoże odwoływać się do wartości ustawionej przez heightwyrażenie i na odwrót.

Domyślna wartość widthi heightwynosi 0.

x
y

Określ przesunięcia, w których ma zostać umieszczony obraz wejściowy w obszarze dopełnienia, w odniesieniu do górnej/lewej krawędzi obrazu wyjściowego.

Wyrażenie xmoże odwoływać się do wartości ustawionej przez y wyrażenie i na odwrót.

Domyślna wartość xi ywynosi 0.

Jeśli xlub yocenisz na liczbę ujemną, zostaną one zmienione tak, aby obraz wejściowy był wyśrodkowany na obszarze z wypełnieniem.

color

Określ kolor wyściełanego obszaru. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Color" w podręczniku ffmpeg-utils .

Domyślna wartość colorto „czarny”.

eval

Określ, kiedy oceniać width, heighti wyrażenie x.y

Przyjmuje następujące wartości:

'init'

Oceniaj wyrażenia tylko raz podczas inicjowania filtru lub podczas przetwarzania polecenia.

'frame'

Oceń wyrażenia dla każdej przychodzącej ramki.

Wartość domyślna to 'init„.

aspect

Dopasuj do proporcji zamiast do rozdzielczości.

Wartością opcji width, height, xi y są wyrażenia zawierające następujące stałe:

in_w
in_h

Wejściowa szerokość i wysokość wideo.

iw
ih

Są takie same jak in_wi in_h.

out_w
out_h

Wyjściowa szerokość i wysokość (rozmiar obszaru dopełnionego), określona przez wyrażenia widthi .height

ow
oh

Są takie same jak out_wi out_h.

x
y

Przesunięcia x i y określone przez wyrażenia i lub NAN, jeśli jeszcze nie zostały określone x.y

a

tak samo jak iw/ih

sar

wejściowy współczynnik proporcji próbki

dar

format obrazu wejściowego, taki sam jak ( iw/ ih) *sar

hsub
vsub

Wartości podpróbki chrominancji poziomej i pionowej. Na przykład dla formatu piksela „yuv422p” hsubto 2 i vsub1.

11.179.1 Examples

  • Dodaj dopełnienia z kolorem „fioletowym” do wejściowego wideo. Rozmiar wyjściowego wideo to 640x480, a lewy górny róg wejściowego wideo znajduje się w kolumnie 0, wierszu 40
    pad=640:480:0:40:violet
    

    Powyższy przykład jest odpowiednikiem następującego polecenia:

    pad=width=640:height=480:x=0:y=40:color=violet
    
  • Wypełnij wejście, aby uzyskać wyjście o wymiarach zwiększonych o 3/2, i umieść wejściowe wideo na środku wyściełanego obszaru:
    pad="3/2*iw:3/2*ih:(ow-iw)/2:(oh-ih)/2"
    
  • Wypełnij wejście, aby uzyskać kwadratowy wynik o rozmiarze równym maksymalnej wartości między szerokością a wysokością wejścia, i umieść wejściowy sygnał wideo na środku wyściełanego obszaru:
    pad="max(iw\,ih):ow:(ow-iw)/2:(oh-ih)/2"
    
  • Dopełnij dane wejściowe, aby uzyskać ostateczny stosunek w/h 16:9:
    pad="ih*16/9:ih:(ow-iw)/2:(oh-ih)/2"
    
  • W przypadku wideo anamorficznego, w celu poprawnego ustawienia wyjściowego aspektu wyświetlania, należy użyć sarw wyrażeniu, zgodnie z zależnością:
    (ih * X / ih) * sar = output_dar
    X = output_dar / sar
    

    Dlatego poprzedni przykład należy zmodyfikować do:

    pad="ih*16/9/sar:ih:(ow-iw)/2:(oh-ih)/2"
    
  • Podwój rozmiar wyjściowy i umieść wideo wejściowe w prawym dolnym rogu wyściełanego obszaru wyjściowego:
    pad="2*iw:2*ih:ow-iw:oh-ih"
    

11.180 palettegen

Generuj jedną paletę dla całego strumienia wideo.

Akceptuje następujące opcje:

max_colors

Ustaw maksymalną liczbę kolorów do kwantyzacji w palecie. Uwaga: paleta nadal będzie zawierała 256 kolorów; niewykorzystane wpisy palety będą czarne.

reserve_transparent

Utwórz paletę maksymalnie 255 kolorów i zarezerwuj ostatnią na przezroczystość. Zarezerwowanie koloru przezroczystości jest przydatne do optymalizacji GIF. Jeśli nie jest ustawiona, maksymalna liczba kolorów w palecie wyniesie 256. Prawdopodobnie chcesz wyłączyć tę opcję dla samodzielnego obrazu. Ustawione domyślnie.

transparency_color

Ustaw kolor, który będzie używany jako tło dla przezroczystości.

stats_mode

Ustaw tryb statystyki.

Przyjmuje następujące wartości:

'full'

Oblicz histogramy pełnoklatkowe.

'diff'

Oblicz histogramy tylko dla części, która różni się od poprzedniej klatki. Może to być istotne, aby nadać większą wagę ruchomej części danych wejściowych, jeśli tło jest statyczne.

'single'

Oblicz nowy histogram dla każdej klatki.

Wartość domyślna to full.

use_alpha

Stwórz paletę kolorów z komponentami alfa. Ustawienie tego spowoduje automatyczne wyłączenie „reserve_transparent”.

Filtr eksportuje również metadane klatek lavfi.color_quant_ratio ( nb_color_in / nb_color_out), których można użyć do oceny stopnia kwantyzacji kolorów palety. Ta informacja jest również widoczna na infopoziomie logowania.

11.180.1 Examples

  • Wygeneruj reprezentatywną paletę danego filmu za pomocą ffmpeg:
    ffmpeg -i input.mkv -vf palettegen palette.png
    

11.181 paletteuse

Użyj palety do downsamplingu wejściowego strumienia wideo.

Filtr przyjmuje dwa wejścia: jeden strumień wideo i paletę. Paleta musi składać się z 256 pikseli obrazu.

Akceptuje następujące opcje:

dither

Wybierz tryb ditheringu. Dostępne algorytmy to:

'bayer'

Zamówiony dithering bayer 8x8 (deterministyczny)

'heckbert'

Dithering zdefiniowany przez Paula Heckberta w 1982 r. (proste rozproszenie błędów). Uwaga: ten dithering jest czasami uważany za „niewłaściwy” i jest uwzględniany jako odniesienie.

'floyd_steinberg'

Dithering Floyda i Steingberga (dyfuzja błędów)

'sierra2'

Frankie Sierra dithering v2 (dyfuzja błędów)

'sierra2_4a'

Frankie Sierra dithering v2 „Lite” (dyfuzja błędów)

Wartość domyślna to sierra2_4a.

bayer_scale

Po bayerwybraniu ditheringu ta opcja określa skalę wzoru (jak bardzo widoczny jest wzór kreskowania). Niska wartość oznacza bardziej widoczny wzór oznaczający mniej prążków, a wyższa wartość oznacza mniej widoczny wzór kosztem większej liczby prążków.

Opcja musi być liczbą całkowitą z zakresu [0,5]. Wartość domyślna to 2.

diff_mode

Jeśli ustawione, zdefiniuj strefę do przetworzenia

'rectangle'

Tylko zmieniający się prostokąt zostanie ponownie przetworzony. Jest to podobne do mechanizmu przycinania/przesuwania GIF-ów. Ta opcja może byćprzydatna dla szybkości, jeśli tylko część obrazu się zmienia i ma przypadki użycia takie jak ograniczenie zakresu rozproszenia błęduditherdo prostokąta, który ogranicza ruchomą scenę (prowadzi do bardziej deterministycznego wyniku, jeśli scena nie zmienia się zbytnio, a w rezultacie mniej szumu ruchu i lepszą kompresję GIF).

Wartość domyślna to none.

new

Weź nową paletę dla każdej klatki wyjściowej.

alpha_threshold

Ustawia próg alfa dla przezroczystości. Wartości alfa powyżej tego progu będą traktowane jako całkowicie nieprzezroczyste, a wartości poniżej tego progu będą traktowane jako całkowicie przezroczyste.

Opcja musi być liczbą całkowitą z zakresu [0,255]. Wartość domyślna to 128.

use_alpha

Zastosuj paletę, biorąc pod uwagę wartości alfa. Przydatne tylko w przypadku palet zawierających wiele kolorów ze składnikami alfa. Ustawienie tego spowoduje automatyczne wyłączenie „alpha_treshold”.

11.181.1 Examples

  • Użyj palety (generowanej na przykład za pomocą palettegen ), aby zakodować GIF za pomocą ffmpeg:
    ffmpeg -i input.mkv -i palette.png -lavfi paletteuse output.gif
    

11.182 perspective

Prawidłowa perspektywa wideo nie jest nagrana prostopadle do ekranu.

Poniżej znajduje się opis akceptowanych parametrów.

x0
y0
x1
y1
x2
y2
x3
y3

Ustaw wyrażenie współrzędnych dla lewego górnego, prawego górnego, lewego dolnego i prawego dolnego narożnika. Wartości domyślne określają, 0:0:W:0:0:H:W:Hz którymi perspektywa pozostanie niezmieniona. Jeśli senseopcja jest ustawiona na source, określone punkty zostaną wysłane do rogów miejsca docelowego. Jeśli senseopcja jest ustawiona na destination, to narożniki źródła zostaną wysłane do określonych współrzędnych.

Wyrażenia mogą używać następujących zmiennych:

W
H

szerokość i wysokość klatki wideo.

in

Liczba klatek wejściowych.

on

Liczba klatek wyjściowych.

interpolation

Ustaw interpolację do korekcji perspektywy.

Przyjmuje następujące wartości:

'linear'
'cubic'

Wartość domyślna to 'linear„.

sense

Ustaw interpretację opcji współrzędnych.

Przyjmuje następujące wartości:

'0, source'

Wyślij punkt w źródle określonym przez podane współrzędne do rogów celu.

'1, destination'

Wyślij rogi źródła do punktu docelowego określonego przez podane współrzędne.

Wartość domyślna to 'source„.

eval

Ustaw, kiedy wyrażenia dla współrzędnychx0,y0,...x3,y3są oceniane.

Przyjmuje następujące wartości:

'init'

Oceniaj wyrażenia tylko raz podczas inicjalizacji filtra lub podczas przetwarzania polecenia

'frame'

oceń wyrażenia dla każdej przychodzącej ramki

Wartość domyślna to 'init„.

11.183 phase

Opóźnij wideo z przeplotem o jeden czas pola, aby zmienić kolejność pól.

Zamierzonym zastosowaniem jest naprawa filmów PAL, które zostały przechwycone z odwrotną kolejnością pól do transferu filmu na wideo.

Poniżej znajduje się opis akceptowanych parametrów.

mode

Ustaw tryb fazy.

Przyjmuje następujące wartości:

't'

Przechwyć kolejność w polu od góry do góry, przenieś najpierw na dół. Filtr opóźni dolne pole.

'b'

Przechwyć kolejność w polu od dołu do pierwszego, przenieś najpierw na górę. Filtr opóźni górne pole.

'p'

Przechwytywanie i przesyłanie z tą samą kolejnością w terenie. Ten tryb istnieje tylko w celu odniesienia się do dokumentacji innych opcji, ale jeśli faktycznie go wybierzesz, filtr wiernie nic nie zrobi.

'a'

Uchwyć kolejność pól określoną automatycznie przez flagi pól, przenieś odwrotnie. Filtruj wybrane spośród 't' oraz 'b' tryby ramka po ramce przy użyciu flag pola. Jeśli nie są dostępne żadne informacje dotyczące pól, działa to tak samo, jak „u„.

'u'

Uchwyć nieznane lub zmienne, przenieś odwrotnie. Filtruj wybrane spośród 't' oraz 'b' klatka po klatce, analizując obrazy i wybierając alternatywę, która zapewnia najlepsze dopasowanie pól.

'T'

Uchwyć najpierw na górze, przenieś nieznane lub zmienne. Filtruj wybrane spośród 't' oraz 'p' za pomocą analizy obrazu.

'B'

Przechwytuj najpierw od dołu, przenieś nieznane lub zmienne. Filtruj wybrane spośród 'b' oraz 'p' za pomocą analizy obrazu.

'A'

Przechwytywanie określone przez flagi pola, transfer nieznany lub zmienny. Filtruj wybrane spośród 't','b' oraz 'p' za pomocą flag terenowych i analizy obrazu. Jeśli nie są dostępne żadne informacje dotyczące pól, działa to tak samo, jak „U„. To jest tryb domyślny.

'U'

Zarówno przechwytywanie, jak i przesyłanie nieznane lub różne. Filtruj wybrane spośród 't','b' oraz 'p' wyłącznie przy użyciu analizy obrazu.

11.183.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

11.184 photosensitivity

Zmniejsz liczbę błysków w wideo, aby pomóc użytkownikom z padaczką.

Akceptuje następujące opcje:

frames, f

Ustaw liczbę ramek do użycia podczas filtrowania. Wartość domyślna to 30.

threshold, t

Ustaw współczynnik progu wykrywania. Wartość domyślna to 1. Niższy oznacza bardziej rygorystyczny.

skip

Ustaw liczbę pikseli do pominięcia podczas próbkowania klatek. Wartość domyślna to 1. Dozwolony zakres to od 1 do 1024.

bypass

Pozostaw ramki bez zmian. Domyślnie jest wyłączone.

11.185 pixdesctest

Filtr testowy deskryptora formatu pikseli, przydatny głównie do testów wewnętrznych. Wyjściowy obraz wideo powinien być równy wejściowemu wideo.

Na przykład:

format=monow, pixdesctest

może służyć do testowania definicji deskryptora formatu monobiałych pikseli.

11.186 pixelize

Zastosuj pikselizację do strumienia wideo.

Filtr akceptuje następujące opcje:

width, w
height, h

Ustaw wymiary bloku, które będą używane do pikselizacji. Wartość domyślna to 16.

mode, m

Ustaw używany tryb pikselizacji.

Możliwe wartości to:

'avg'
'min'
'max'

Wartość domyślna to avg.

planes, p

Ustaw samoloty do filtrowania. Domyślnie filtrowane są wszystkie płaszczyzny.

11.186.1 Commands

Ten filtr obsługuje wszystkie opcje jako polecenia .

11.187 pixscope

Wyświetl przykładowe wartości kanałów kolorów. Głównie przydatne do sprawdzania koloru i poziomów. Minimalna obsługiwana rozdzielczość to 640x480.

Filtry akceptują następujące opcje:

x

Ustaw pozycję X zakresu, względne przesunięcie na osi X.

y

Ustaw pozycję Y zakresu, względne przesunięcie na osi Y.

w

Ustaw szerokość zakresu.

h

Ustaw wysokość zakresu.

o

Ustaw przezroczystość okna. To okno zawiera również statystyki dotyczące obszaru pikseli.

wx

Ustaw pozycję okna X, względne przesunięcie na osi X.

wy

Ustaw pozycję okna Y, względne przesunięcie na osi Y.

11.187.1 Commands

Ten filtr obsługuje te same polecenia, co opcje.

11.188 pp

Włącz określony łańcuch podfiltrów przetwarzania końcowego za pomocą libpostproc. Ta biblioteka powinna zostać automatycznie wybrana przy kompilacji GPL ( --enable-gpl). Filtry podrzędne muszą być oddzielone znakiem „/” i można je wyłączyć, dodając przedrostek „-”. Każdy podfiltr i niektóre opcje mają krótką i długą nazwę, których można używać zamiennie, tj. dr/dering są takie same.

Filtry akceptują następujące opcje:

subfilters

Ustaw ciąg podfiltrów przetwarzania końcowego.

Wszystkie podfiltry mają wspólne opcje określania ich zakresu:

a/autoq

Przestrzegaj poleceń dotyczących jakości tego podfiltra.

c/chrom

Wykonaj również filtrowanie chrominancji (domyślne).

y/nochrom

Czy tylko filtrowanie luminancji (bez chrominancji).

n/noluma

Czy tylko filtrowanie chrominancji (bez luminancji).

Opcje te można dołączyć po nazwie podfiltra, oddzielone znakiem „|”.

Dostępne podfiltry to:

hb/hdeblock[|difference[|flatness]]

Poziomy filtr odblokowujący

difference

Współczynnik różnicy, gdzie wyższe wartości oznaczają większe odblokowanie (domyślnie: 32).

flatness

Próg płaskości, gdzie niższe wartości oznaczają większe usuwanie bloków (domyślnie: 39).

vb/vdeblock[|difference[|flatness]]

Pionowy filtr odblokowujący

difference

Współczynnik różnicy, gdzie wyższe wartości oznaczają większe odblokowanie (domyślnie: 32).

flatness

Próg płaskości, gdzie niższe wartości oznaczają większe usuwanie bloków (domyślnie: 39).

ha/hadeblock[|difference[|flatness]]

Dokładny poziomy filtr odblokowujący

difference

Współczynnik różnicy, gdzie wyższe wartości oznaczają większe odblokowanie (domyślnie: 32).

flatness

Próg płaskości, gdzie niższe wartości oznaczają większe usuwanie bloków (domyślnie: 39).

va/vadeblock[|difference[|flatness]]

Dokładny pionowy filtr odblokowujący

difference

Współczynnik różnicy, gdzie wyższe wartości oznaczają większe odblokowanie (domyślnie: 32).

flatness

Próg płaskości, gdzie niższe wartości oznaczają większe usuwanie bloków (domyślnie: 39).

Poziome i pionowe filtry usuwania bloków mają wspólne wartości różnicy i płaskości, więc nie można ustawić różnych progów poziomych i pionowych.

h1/x1hdeblock

Eksperymentalny poziomy filtr odblokowujący

v1/x1vdeblock

Eksperymentalny pionowy filtr odblokowujący

dr/dering

Filtr Deringa

tn/tmpnoise[|threshold1[|threshold2[|threshold3]]], temporal noise reducer
threshold1

większe -> silniejsze filtrowanie

threshold2

większe -> silniejsze filtrowanie

threshold3

większe -> silniejsze filtrowanie

al/autolevels[:f/fullyrange], automatic brightness / contrast correction
f/fullyrange

Rozciągnij luminancję do 0-255.

lb/linblenddeint

Filtr usuwania przeplotu mieszania liniowego, który usuwa przeplot z danego bloku, filtrując wszystkie linie za pomocą (1 2 1)filtru.

li/linipoldeint

Filtr usuwający przeplot z liniową interpolacją, który usuwa przeplot z danego bloku, interpolując liniowo co drugą linię.

ci/cubicipoldeint

Sześcienny filtr usuwający przeplot z interpolacją usuwa przeplot z danego bloku, interpolując sześciennie co drugą linię.

md/mediandeint

Medianowy filtr usuwania przeplotu, który usuwa przeplot z danego bloku, stosując filtr medianowy do co drugiej linii.

fd/ffmpegdeint

Filtr usuwający przeplot FFmpeg, który usuwa przeplot z danego bloku, filtrując co drugą linię za pomocą (-1 4 2 4 -1)filtra.

l5/lowpass5

Pionowo zastosowany filtr dolnoprzepustowego usuwania przeplotu FIR, który usuwa przeplot z danego bloku, filtrując wszystkie linie za pomocą (-1 2 6 2 -1)filtru.

fq/forceQuant[|quantizer]

Zastępuje tabelę kwantyzatora z danych wejściowych stałym kwantyzatorem, który określisz.

quantizer

Kwantyzator do użycia

de/default

Domyślna kombinacja filtrów pp ( hb|a,vb|a,dr|a)

fa/fast

Szybka kombinacja filtrów pp ( h1|a,v1|a,dr|a)

ac

Wysokiej jakości kombinacja filtrów pp ( ha|a|128|7,va|a,dr|a)

11.188.1 Examples

  • Zastosuj usuwanie blokad w poziomie i pionie, usuwanie rogów oraz automatyczną jasność/kontrast:
    pp=hb/vb/dr/al
    
  • Zastosuj domyślne filtry bez korekcji jasności/kontrastu:
    pp=de/-al
    
  • Zastosuj filtry domyślne i odszumiacz czasowy:
    pp=default/tmpnoise|1|2|3
    
  • Zastosuj odblokowywanie tylko przy luminancji i automatycznie włączaj lub wyłączaj pionowe odblokowywanie w zależności od dostępnego czasu procesora:
    pp=hb|y/vb|a
    

11.189 pp7

Zastosuj filtr postprocessingu 7. Jest to wariant filtra spp , podobny do spp = 6 z 7-punktowym DCT, gdzie po IDCT używana jest tylko próbka środkowa.

Filtr akceptuje następujące opcje:

qp

Wymuś stały parametr kwantyzacji. Akceptuje liczbę całkowitą z zakresu od 0 do 63. Jeśli nie jest ustawiona, filtr użyje QP ze strumienia wideo (jeśli jest dostępny).

mode

Ustaw tryb progowania. Dostępne tryby to:

'hard'

Ustaw twardy próg.

'soft'

Ustaw miękkie progi (lepszy efekt wygładzania, ale prawdopodobnie bardziej rozmyty).

'medium'

Ustaw średni próg (dobre wyniki, domyślnie).

11.190 premultiply

Zastosuj efekt premultiply alfa do wejściowego strumienia wideo, używając pierwszej płaszczyzny drugiego strumienia jako alfa.

Oba strumienie muszą mieć te same wymiary i ten sam format pikseli.

Filtr akceptuje następującą opcję:

planes

Ustaw, które płaszczyzny będą przetwarzane, nieprzetworzone płaszczyzny zostaną skopiowane. Domyślna wartość 0xf, wszystkie płaszczyzny będą przetwarzane.

inplace

Nie wymagaj drugiego wejścia do przetwarzania, zamiast tego użyj płaszczyzny alfa ze strumienia wejściowego.

11.191 prewitt

Zastosuj operator prewitt do wejściowego strumienia wideo.

Filtr akceptuje następującą opcję:

planes

Ustaw, które płaszczyzny będą przetwarzane, nieprzetworzone płaszczyzny zostaną skopiowane. Domyślna wartość 0xf, wszystkie płaszczyzny będą przetwarzane.

scale

Ustaw wartość, która zostanie pomnożona przez przefiltrowany wynik.

delta

Ustaw wartość, która zostanie dodana do przefiltrowanego wyniku.

11.191.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

11.192 pseudocolor

Zmieniaj kolory klatek w wideo za pomocą pseudokolorów.

Ten filtr akceptuje następujące opcje:

c0

ustaw wyrażenie pierwszego składnika piksela

c1

ustaw wyrażenie drugiego składnika piksela

c2

ustaw wyrażenie trzeciego składnika piksela

c3

ustaw wyrażenie czwartego składnika piksela, odpowiada składnikowi alfa

index, i

ustawić komponent, który będzie używany jako podstawa do zmiany kolorów

preset, p

Wybierz jedną z wbudowanych tablic LUT. Domyślnie jest ustawiony na brak.

Dostępne LUT:

'magma'
'inferno'
'plasma'
'viridis'
'turbo'
'cividis'
'range1'
'range2'
'shadows'
'highlights'
'solar'
'nominal'
'preferred'
'total'
opacity

Ustaw krycie kolorów wyjściowych. Dozwolony zakres to od 0 do 1. Wartość domyślna to 1.

Każda z opcji wyrażenia określa wyrażenie, które ma być użyte do obliczenia tabeli przeglądowej dla odpowiednich wartości składowych pikseli.

Wyrażenia mogą zawierać następujące stałe i funkcje:

w
h

Wejściowa szerokość i wysokość.

val

Wartość wejściowa składnika pikselowego.

ymin, umin, vmin, amin

Minimalna dozwolona wartość składnika.

ymax, umax, vmax, amax

Maksymalna dozwolona wartość składnika.

Wszystkie wyrażenia domyślnie mają wartość „val”.

11.192.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

11.192.2 Examples

  • Zmień zbyt wysokie wartości jasności na gradient:
    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

Uzyskaj średni, maksymalny i minimalny współczynnik PSNR (Peak Signal to Noise Ratio) między dwoma wejściowymi wideo.

Ten filtr pobiera dwa wejściowe filmy wideo, pierwsze wejście jest uważane za „główne” źródło i jest przekazywane bez zmian do wyjścia. Drugie wejście jest używane jako wideo „odniesienia” do obliczania PSNR.

Aby filtr działał poprawnie, oba wejścia wideo muszą mieć tę samą rozdzielczość i format pikseli. Zakłada również, że oba wejścia mają taką samą liczbę klatek, które są porównywane jedna po drugiej.

Uzyskany średni PSNR jest drukowany przez system rejestrowania.

Filtr przechowuje skumulowany MSE (błąd średniokwadratowy) każdej ramki, a pod koniec przetwarzania jest uśredniany dla wszystkich ramek jednakowo. W celu uzyskania PSNR stosuje się następujący wzór:

PSNR = 10*log10(MAX^2/MSE)

Gdzie MAX to średnia z maksymalnych wartości każdego składnika obrazu.

Poniżej znajduje się opis akceptowanych parametrów.

stats_file, f

Jeśli zostanie określony, filtr użyje nazwanego pliku do zapisania PSNR każdej pojedynczej ramki. Gdy nazwa pliku jest równa "-" dane są wysyłane na standardowe wyjście.

stats_version

Określa, której wersji formatu pliku statystyk należy użyć. Szczegóły dotyczące każdego formatu są opisane poniżej. Wartość domyślna to 1.

stats_add_max

Określa, czy maksymalna wartość jest wyprowadzana do dziennika statystyk. Domyślna wartość to 0. Wymaga stats_version >= 2. Jeśli ta opcja jest ustawiona i stats_version < 2, filtr zwróci błąd.

Ten filtr obsługuje również opcje framesync .

Plik drukowany, jeśli stats_filejest zaznaczony, zawiera sekwencję par klucz/wartość postaci key: valuedla każdej porównywanej pary ramek.

Jeśli określono wartość stats_versionwiększą niż 1, wiersz nagłówka poprzedza listę statystyk dla każdej pary ramek, a pary klucz-wartość następują po formacie ramki z następującymi parametrami:

psnr_log_version

Wersja formatu pliku dziennika. Dopasuje się stats_version.

fields

Rozdzielona przecinkami lista parametrów na każdą parę ramek zawartych w dzienniku.

Poniżej znajduje się opis każdego pokazanego parametru na parę ramek:

n

kolejny numer ramki wejściowej, zaczynając od 1

mse_avg

Błąd średniej kwadratowej średnia różnica piksel po pikselu porównywanych klatek, uśredniona dla wszystkich składników obrazu.

mse_y, mse_u, mse_v, mse_r, mse_g, mse_b, mse_a

Błąd średniokwadratowy średnia różnica piksel po pikselu porównywanych klatek dla składnika określonego przez sufiks.

psnr_y, psnr_u, psnr_v, psnr_r, psnr_g, psnr_b, psnr_a

Szczytowy stosunek sygnału do szumu porównywanych klatek dla składnika określonego przez sufiks.

max_avg, max_y, max_u, max_v

Maksymalna dozwolona wartość dla każdego kanału i średnia dla wszystkich kanałów.

11.193.1 Examples

  • Na przykład:
    movie=ref_movie.mpg, setpts=PTS-STARTPTS [main];
    [main][ref] psnr="stats_file=stats.log" [out]
    

    W tym przykładzie przetwarzany plik wejściowy jest porównywany z plikiem referencyjnymref_movie.mpg. PSNR każdej pojedynczej ramki jest przechowywany wstats.log.

  • Kolejny przykład z różnymi pojemnikami:
    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

Filtr odwracania pulldown (inverse telecine), zdolny do obsługi mieszanej zawartości twardego telecine, progresywnej 24000/1001 fps i progresywnej 30000/1001 fps.

Filtr pullup został zaprojektowany, aby wykorzystać przyszły kontekst przy podejmowaniu decyzji. Ten filtr jest bezstanowy w tym sensie, że nie blokuje się na wzorcu do naśladowania, ale zamiast tego oczekuje na kolejne pola w celu zidentyfikowania dopasowań i odbudowania ramek progresywnych.

Aby wyprodukować zawartość z równą szybkością klatek, wstaw filtr fps po pullup, użyj, fps=24000/1001jeśli szybkość wejściowa wynosi 29,97 fps, fps=24dla 30 fps i (rzadko) telecine 25 fps.

Filtr akceptuje następujące opcje:

jl
jr
jt
jb

Te opcje określają ilość „śmieci” do zignorowania odpowiednio po lewej, prawej stronie, na górze i na dole obrazu. Lewy i prawy są w jednostkach 8 pikseli, a góra i dół są w jednostkach 2 linii. Wartość domyślna to 8 pikseli z każdej strony.

sb

Ustaw ścisłe przerwy. Ustawienie tej opcji na 1 zmniejszy szanse na generowanie przez filtr okazjonalnych niedopasowanych klatek, ale może również spowodować porzucenie nadmiernej liczby klatek podczas sekwencji o dużym natężeniu ruchu. I odwrotnie, ustawienie go na -1 ułatwi filtrowanie pól dopasowywania. Może to pomóc w przetwarzaniu wideo, w którym występuje nieznaczne rozmycie między polami, ale może również spowodować, że na wyjściu pojawią się klatki z przeplotem. Wartość domyślna to 0.

mp

Ustaw płaszczyznę metryczną do użycia. Przyjmuje następujące wartości:

'l'

Użyj płaszczyzny luma.

'u'

Użyj płaszczyzny chroma blue.

'v'

Użyj płaszczyzny chroma red.

Ta opcja może być ustawiona na użycie płaszczyzny barwy zamiast domyślnej płaszczyzny luma do wykonywania obliczeń filtra. Może to poprawić dokładność na bardzo czystym materiale źródłowym, ale bardziej prawdopodobnie zmniejszy dokładność, zwłaszcza jeśli występuje szum chrominancji (efekt tęczy) lub jakiekolwiek wideo w skali szarości. Głównym celem ustawieniampdo płaszczyzny chromatycznej jest zmniejszenie obciążenia procesora i uczynienie pullup użytecznym w czasie rzeczywistym na wolnych maszynach.

Aby uzyskać najlepsze wyniki (bez zduplikowanych klatek w pliku wyjściowym) konieczna jest zmiana wyjściowej szybkości klatek. Na przykład, aby odwrócić wejście telecine NTSC:

ffmpeg -i input -vf pullup -r 24000/1001 ...

11.195 qp

Zmień parametry kwantyzacji wideo (QP).

Filtr akceptuje następującą opcję:

qp

Ustaw wyrażenie dla parametru kwantyzacji.

Wyrażenie jest oceniane przez eval API i może zawierać między innymi następujące stałe:

known

1 jeśli indeksem nie jest 129, 0 w przeciwnym wypadku.

qp

Indeks sekwencyjny od -129 do 128.

11.195.1 Examples

  • Niektóre równania takie jak:
    qp=2+2*sin(PI*qp)
    

11.196 random

Opróżnij klatki wideo z wewnętrznej pamięci podręcznej klatek w losowej kolejności. Żadna ramka nie jest odrzucana. Zainspirowany filtrem nerwowym Frei0r .

frames

Ustaw rozmiar w liczbie ramek wewnętrznej pamięci podręcznej, w zakresie od 2do 512. Wartość domyślna to 30.

seed

Zestaw zalążkowy generatora liczb losowych, musi być liczbą całkowitą zawartą między 0i UINT32_MAX. Jeśli nie zostanie określony lub zostanie jawnie ustawiony na wartość mniejszą niż 0, filtr spróbuje użyć dobrego losowego materiału siewnego na zasadzie najlepszego wysiłku.

11.197 readeia608

Odczytuj informacje o napisach kodowanych (EIA-608) z górnych wierszy klatki wideo.

Ten filtr dodaje metadane ramki dla lavfi.readeia608.X.cci lavfi.readeia608.X.line, gdzie Xjest numerem zidentyfikowanej linii z danymi EIA-608 (zaczynając od 0). Opis każdej wartości metadanych jest następujący:

lavfi.readeia608.X.cc

Dwa bajty przechowywane jako dane EIA-608 (wydrukowane szesnastkowo).

lavfi.readeia608.X.line

Numer linii, na której zidentyfikowano i odczytano dane EIA-608.

Ten filtr akceptuje następujące opcje:

scan_min

Ustaw linię, aby rozpocząć skanowanie w poszukiwaniu danych EIA-608. Wartość domyślna to 0.

scan_max

Ustaw linię, aby zakończyć skanowanie danych EIA-608. Wartość domyślna to 29.

spw

Ustaw proporcję szerokości zarezerwowaną dla wykrywania kodu synchronizacji. Wartość domyślna to 0.27. Dozwolony zakres to [0.1 - 0.7].

chp

Włącz sprawdzanie bitu parzystości. W przypadku błędu parzystości filtr wyświetli dane 0x00dla tego znaku. Wartość domyślna to fałsz.

lp

Linie dolnoprzepustowe przed dalszą obróbką. Domyślnie jest włączone.

11.197.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

11.197.2 Examples

  • Wygeneruj plik csv z czasem prezentacji i dwoma pierwszymi wierszami zidentyfikowanych danych napisów 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

Odczytaj informacje o pionowym interwale czasowym (VITC) z górnych wierszy klatki wideo.

Filtr dodaje klucz metadanych klatki lavfi.readvitc.tc_strz wartością kodu czasowego, jeśli wykryto prawidłowy kod czasowy. Dalszy klucz metadanych lavfi.readvitc.foundjest ustawiony na 0/1 w zależności od tego, czy dane kodu czasowego zostały znalezione, czy nie.

Ten filtr akceptuje następujące opcje:

scan_max

Ustaw maksymalną liczbę linii do skanowania w poszukiwaniu danych VITC. Jeśli wartość jest ustawiona na -1skanowana jest pełna klatka wideo. Wartość domyślna to 45.

thr_b

Ustaw próg jasności dla czerni. Akceptuje liczby zmiennoprzecinkowe z zakresu [0.0,1.0], wartość domyślna to 0.2. Wartość musi być równa lub mniejsza niż thr_w.

thr_w

Ustaw próg jasności dla bieli. Akceptuje liczby zmiennoprzecinkowe z zakresu [0.0,1.0], wartość domyślna to 0.6. Wartość musi być równa lub większa niż thr_b.

11.198.1 Examples

  • Wykryj i narysuj dane VITC na ramce wideo; jeśli nie wykryto prawidłowego VITC, narysuj --:--:--:--jako symbol zastępczy:
    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

Ponownie mapuj piksele za pomocą wejściowego strumienia wideo 2: Xmap i 3: Ymap.

Piksel docelowy na pozycji (X, Y) zostanie pobrany z pozycji źródłowej (x, y), gdzie x = Xmap(X, Y) i y = Ymap(X, Y). Jeśli wartości mapowania są poza zakresem, dla piksela docelowego zostanie użyta wartość zerowa dla piksela.

Wejściowe strumienie wideo Xmap i Ymap muszą mieć te same wymiary. Wyjściowy strumień wideo będzie miał wymiary strumienia wideo Xmap/Ymap. Wejściowe strumienie wideo Xmap i Ymap mają 16-bitową głębię, jeden kanał.

format

Określ format pikselowy danych wyjściowych tego filtra. Może być colorlub gray. Wartość domyślna to color.

fill

Określ kolor niezmapowanych pikseli. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Color" w podręczniku ffmpeg-utils . Kolor domyślny to black.

11.200 removegrain

Filtr removegrain to przestrzenny odszumiacz dla progresywnego wideo.

m0

Ustaw tryb dla pierwszego samolotu.

m1

Ustaw tryb dla drugiego samolotu.

m2

Ustaw tryb dla trzeciej płaszczyzny.

m3

Ustaw tryb dla czwartej płaszczyzny.

Zakres trybu wynosi od 0 do 24. Opis każdego trybu jest następujący:

0

Pozostaw płaszczyznę wejściową niezmienioną. Domyślna.

1

Przycina piksel z minimum i maksimum 8 sąsiednich pikseli.

2

Przycina piksel z drugim minimum i maksimum z 8 sąsiednich pikseli.

3

Przycina piksel z trzecim minimum i maksimum z 8 sąsiednich pikseli.

4

Przycina piksel z czwartym minimum i maksimum z 8 sąsiednich pikseli. Odpowiada to filtrowi mediany.

5

Przycinanie wrażliwe na linię dające minimalną zmianę.

6

Przycinanie wrażliwe na żyłkę, pośrednie.

7

Przycinanie wrażliwe na żyłkę, pośrednie.

8

Przycinanie wrażliwe na żyłkę, pośrednie.

9

Przycinanie zależne od linii na linii, w której sąsiednie piksele są najbliżej.

10

Zastępuje piksel docelowy najbliższym sąsiadem.

11

[1 2 1] poziome i pionowe rozmycie jądra.

12

Tak samo jak w trybie 11.

13

Tryb Boba, interpoluje górne pole od linii, w której sąsiednie piksele są najbliżej.

14

Tryb Boba, interpoluje dolne pole od linii, w której sąsiednie piksele są najbliżej.

15

Tryb Boba, interpoluje górne pole. To samo co 13, ale z bardziej skomplikowaną formułą interpolacji.

16

Tryb Boba, interpoluje dolne pole. To samo co 14, ale z bardziej skomplikowaną formułą interpolacji.

17

Przycina piksel z minimum i maksimum odpowiednio maksimum i minimum każdej pary przeciwległych sąsiednich pikseli.

18

Przycinanie z uwzględnieniem linii przy użyciu przeciwległych sąsiadów, których największa odległość od bieżącego piksela jest minimalna.

19

Zastępuje piksel średnią z jego 8 sąsiadów.

20

Uśrednia 9 pikseli ([1 1 1] rozmycie w poziomie iw pionie).

21

Przycina piksele przy użyciu średnich z przeciwnego sąsiada.

22

Taki sam jak tryb 21, ale prostszy i szybszy.

23

Małe usuwanie krawędzi i aureoli, ale podobno bezużyteczne.

24

Podobnie jak 23.

11.201 removelogo

Pomiń logo stacji telewizyjnej, używając pliku obrazu, aby określić, które piksele składają się na logo. Działa poprzez wypełnienie pikseli składających się na logo sąsiednimi pikselami.

Filtr akceptuje następujące opcje:

filename, f

Ustaw plik bitmapy filtra, który może być dowolnym formatem obrazu obsługiwanym przez libavformat. Szerokość i wysokość pliku obrazu muszą odpowiadać przetwarzanym strumieniom wideo.

Piksele w dostarczonym obrazie bitmapowym o wartości zero nie są uważane za część logo, piksele niezerowe są uważane za część logo. Jeśli użyjesz białego (255) do logo i czarnego (0) do reszty, będziesz bezpieczny. W celu wykonania bitmapy filtra zaleca się wykonanie zrzutu ekranu czarnej ramki z widocznym logo, a następnie użycie filtra progowego, a następnie raz lub dwa razy filtra erozji.

W razie potrzeby małe plamy można naprawić ręcznie. Pamiętaj, że jeśli piksele logo nie zostaną zakryte, jakość filtra ulegnie znacznemu pogorszeniu. Oznaczenie zbyt wielu pikseli jako części logo nie boli tak bardzo, ale zwiększy ilość rozmycia potrzebną do zakrycia obrazu i zniszczy więcej informacji niż to konieczne, a dodatkowe piksele spowolnią działanie na dużym logo.

11.202 repeatfields

Ten filtr używa flagi repeat_field z nagłówków Video ES i pól twardych powtórzeń na podstawie jej wartości.

11.203 reverse

Odwróć klip wideo.

Ostrzeżenie: ten filtr wymaga pamięci do buforowania całego klipu, dlatego sugeruje się przycinanie.

11.203.1 Examples

  • Weź pierwsze 5 sekund klipu i odwróć go.
    trim=end=5,reverse
    

11.204 rgbashift

Przesuwaj piksele R/G/B/A w poziomie i/lub w pionie.

Filtr akceptuje następujące opcje:

rh

Ustaw kwotę, aby przesunąć czerwony poziomo.

rv

Ustaw kwotę, aby przesunąć czerwony w pionie.

gh

Ustaw kwotę, aby przesunęła się na zielono w poziomie.

gv

Ustaw kwotę, aby przesunąć zielony w pionie.

bh

Ustaw kwotę, aby przesunąć kolor niebieski w poziomie.

bv

Ustaw kwotę, aby przesunąć niebieski w pionie.

ah

Ustaw kwotę, aby przesunąć alfa w poziomie.

av

Ustaw kwotę, aby przesunąć alfa w pionie.

edge

Ustaw tryb krawędzi, może być smear, domyślny lub warp.

11.204.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

11.205 roberts

Zastosuj operator krzyżowy Roberts do wejściowego strumienia wideo.

Filtr akceptuje następującą opcję:

planes

Ustaw, które płaszczyzny będą przetwarzane, nieprzetworzone płaszczyzny zostaną skopiowane. Domyślna wartość 0xf, wszystkie płaszczyzny będą przetwarzane.

scale

Ustaw wartość, która zostanie pomnożona przez przefiltrowany wynik.

delta

Ustaw wartość, która zostanie dodana do przefiltrowanego wyniku.

11.205.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

11.206 rotate

Obróć wideo o dowolny kąt wyrażony w radianach.

Filtr akceptuje następujące opcje:

Poniżej znajduje się opis parametrów opcjonalnych.

angle, a

Ustaw wyrażenie określające kąt, o jaki ma zostać obrócony wejściowy sygnał wideo zgodnie z ruchem wskazówek zegara, wyrażony jako liczba radianów. Wartość ujemna spowoduje obrót w kierunku przeciwnym do ruchu wskazówek zegara. Domyślnie jest ustawiony na „0”.

To wyrażenie jest oceniane dla każdej klatki.

out_w, ow

Ustaw wyrażenie szerokości wyjściowej, wartość domyślna to "iw". To wyrażenie jest oceniane tylko raz podczas konfiguracji.

out_h, oh

Ustaw wyrażenie wysokości wyjściowej, domyślną wartością jest "ih". To wyrażenie jest oceniane tylko raz podczas konfiguracji.

bilinear

Włącz interpolację dwuliniową, jeśli jest ustawiona na 1, wartość 0 wyłącza ją. Wartość domyślna to 1.

fillcolor, c

Ustaw kolor używany do wypełnienia obszaru wyjściowego, którego nie obejmuje obrócony obraz. Aby uzyskać ogólną składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Color" w podręczniku ffmpeg-utils . W przypadku wybrania specjalnej wartości „none” tło nie jest drukowane (przydatne na przykład, jeśli tło nigdy nie jest pokazywane).

Wartość domyślna to „czarny”.

Wyrażenia określające kąt i rozmiar wyjściowy mogą zawierać następujące stałe i funkcje:

n

kolejny numer ramki wejściowej, zaczynając od 0. Zawsze jest to NAN przed filtrowaniem pierwszej ramki.

t

czas w sekundach ramki wejściowej, jest ustawiony na 0, gdy filtr jest skonfigurowany. Zawsze jest NAN przed filtrowaniem pierwszej klatki.

hsub
vsub

wartości podpróbki chrominancji poziomej i pionowej. Na przykład dla formatu piksela „yuv422p” hsubto 2 i vsub1.

in_w, iw
in_h, ih

szerokość i wysokość wejściowego wideo

out_w, ow
out_h, oh

szerokość i wysokość wyjściową, czyli rozmiar obszaru dopełnionego określony przez wyrażenia widthiheight

rotw(a)
roth(a)

minimalna szerokość/wysokość wymagana do całkowitego zamknięcia wejściowego wideo obróconego przez aradiany.

Są one dostępne tylko podczas obliczaniaout_woraz out_hwyrażenia.

11.206.1 Examples

  • Obróć wejście o PI/6 radianów zgodnie z ruchem wskazówek zegara:
    rotate=PI/6
    
  • Obróć wejście o PI/6 radianów w lewo:
    rotate=-PI/6
    
  • Obróć wejście o 45 stopni w prawo:
    rotate=45*PI/180
    
  • Zastosuj stały obrót z okresem T, zaczynając od kąta PI/3:
    rotate=PI/3+2*PI*t/T
    
  • Obróć wejściowy sygnał wideo oscyluje z okresem T sekund i amplitudą radianów A:
    rotate=A*sin(2*PI/T*t)
    
  • Obróć wideo, rozmiar wyjściowy jest wybierany tak, aby całe obracające się wideo wejściowe było zawsze całkowicie zawarte w wyjściu:
    rotate='2*PI*t:ow=hypot(iw,ih):oh=ow'
    
  • Obróć wideo, zmniejsz rozmiar wyjściowy, aby nigdy nie było wyświetlane żadne tło:
    rotate=2*PI*t:ow='min(iw,ih)/sqrt(2)':oh=ow:c=none
    

11.206.2 Commands

Filtr obsługuje następujące polecenia:

a, angle

Ustaw wyrażenie kąta. Polecenie akceptuje tę samą składnię odpowiedniej opcji.

Jeśli podane wyrażenie jest niepoprawne, jest zachowywane z bieżącą wartością.

11.207 sab

Zastosuj rozmycie adaptacyjne do kształtu.

Filtr akceptuje następujące opcje:

luma_radius, lr

Ustaw siłę filtra rozmycia luma, musi mieścić się w zakresie 0,1-4,0, domyślna wartość to 1,0. Większa wartość spowoduje bardziej rozmyty obraz i wolniejsze przetwarzanie.

luma_pre_filter_radius, lpfr

Ustaw promień luma filtra wstępnego, musi być wartością z zakresu 0,1-2,0, domyślna wartość to 1,0.

luma_strength, ls

Ustaw maksymalną różnicę luma między pikselami, która ma być nadal brana pod uwagę, musi być wartością z zakresu 0,1-100,0, domyślna wartość to 1,0.

chroma_radius, cr

Ustaw siłę filtra rozmycia chrominancji, musi mieścić się w zakresie -0,9-4,0. Większa wartość spowoduje bardziej rozmyty obraz i wolniejsze przetwarzanie.

chroma_pre_filter_radius, cpfr

Ustaw promień wstępnego filtru chrominancji, musi być wartością z zakresu -0,9-2,0.

chroma_strength, cs

Ustaw maksymalną różnicę chrominancji między pikselami, która ma być nadal brana pod uwagę, musi być wartością z zakresu -0,9-100,0.

Każda wartość opcji chroma, jeśli nie została wyraźnie określona, ​​jest ustawiana na odpowiadającą jej wartość opcji luma.

11.208 scale

Skaluj (zmień rozmiar) wejściowego wideo za pomocą biblioteki libswscale.

Filtr skali wymusza, aby wyjściowe proporcje wyświetlania były takie same jak wejściowe, zmieniając proporcje wyjściowej próbki.

Jeśli format obrazu wejściowego różni się od formatu wymaganego przez następny filtr, filtr skali przekonwertuje dane wejściowe na żądany format.

11.208.1 Options

Filtr akceptuje następujące opcje lub dowolne opcje obsługiwane przez skaler libswscale.

Zobacz (ffmpeg-scaler) podręcznik ffmpeg-scaler, aby uzyskać pełną listę opcji skalowania.

width, w
height, h

Ustaw wyrażenie wyjściowego wymiaru wideo. Wartość domyślna to wymiar wejściowy.

Jeśli wartość widthlub wwynosi 0, dla danych wyjściowych jest używana szerokość wejściowa. Jeśli wartość heightlub hwynosi 0, wysokość wejściowa jest używana dla danych wyjściowych.

Jeśli jedna i tylko jedna z wartości to -n przy n >= 1, filtr skali użyje wartości, która zachowuje proporcje obrazu wejściowego, obliczone na podstawie innego określonego wymiaru. Po tym jednak upewni się, że obliczony wymiar jest podzielny przez n iw razie potrzeby dostosuje wartość.

Jeśli obie wartości to -n przy n >= 1, zachowanie będzie identyczne z obiema wartościami ustawionymi na 0, jak opisano wcześniej.

Zobacz poniżej listę stałych akceptowanych do użycia w wyrażeniu wymiaru.

eval

Określ, kiedy oceniać widthi heightwyrażać. Przyjmuje następujące wartości:

'init'

Oceniaj wyrażenia tylko raz podczas inicjowania filtru lub podczas przetwarzania polecenia.

'frame'

Oceń wyrażenia dla każdej przychodzącej ramki.

Wartość domyślna to 'init„.

interl

Ustaw tryb przeplotu. Przyjmuje następujące wartości:

'1'

Wymuś świadome skalowanie z przeplotem.

'0'

Nie stosować skalingu z przeplotem.

'-1'

Wybierz skalowanie świadome z przeplotem w zależności od tego, czy klatki źródłowe są oflagowane jako z przeplotem, czy nie.

Wartość domyślna to '0„.

flags

Ustaw flagi skalowania libswscale. Zobacz (ffmpeg-scaler) podręcznik ffmpeg-scaler, aby uzyskać pełną listę wartości. Jeśli nie określono wyraźnie, filtr stosuje domyślne flagi.

param0, param1

Ustaw parametry wejściowe libswscale dla algorytmów skalowania, które ich potrzebują. Zobacz (ffmpeg-scaler) podręcznik ffmpeg-scaler, aby uzyskać pełną dokumentację. Jeśli nie określono wyraźnie, filtr stosuje puste parametry.

size, s

Ustaw rozmiar wideo. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Rozmiar wideo" w podręczniku ffmpeg-utils .

in_color_matrix
out_color_matrix

Ustaw typ przestrzeni kolorów wejścia/wyjścia YCbCr.

Pozwala to na nadpisanie wartości wykrytej automatycznie, a także umożliwia wymuszenie określonej wartości używanej dla wyjścia i enkodera.

Jeśli nie zostanie określony, typ przestrzeni kolorów zależy od formatu pikseli.

Możliwa wartość:

'auto'

Wybierz automatycznie.

'bt709'

Format zgodny z zaleceniem BT.709 Międzynarodowego Związku Telekomunikacyjnego (ITU).

'fcc'

Ustaw przestrzeń kolorów zgodnie z Kodeksem Przepisów Federalnych (CFR) United States Federal Communications Commission (FCC) Tytuł 47 (2003) 73.682 (a).

'bt601'
'bt470'
'smpte170m'

Ustaw przestrzeń kolorów zgodnie z:

  • Zalecenie Sektora Radiokomunikacji ITU (ITU-R) BT.601
  • Zalecenie ITU-R BT.470-6 (1998) Systemy B, B1 i G
  • Stowarzyszenie Inżynierów Filmowych i Telewizyjnych (SMPTE) ST 170:2004
'smpte240m'

Ustaw przestrzeń kolorów zgodnie z SMPTE ST 240:1999.

'bt2020'

Ustaw przestrzeń kolorów zgodnie z systemem niestałej luminancji ITU-R BT.2020.

in_range
out_range

Ustaw zakres próbkowania wejścia/wyjścia YCbCr.

Pozwala to na nadpisanie wartości wykrytej automatycznie, a także umożliwia wymuszenie określonej wartości używanej dla wyjścia i enkodera. Jeśli nie zostanie określony, zakres zależy od formatu pikseli. Możliwa wartość:

'auto/unknown'

Wybierz automatycznie.

'jpeg/full/pc'

Ustaw pełny zakres (0-255 w przypadku 8-bitowej lumy).

'mpeg/limited/tv'

Ustaw zakres „MPEG” (16-235 w przypadku 8-bitowej lumy).

force_original_aspect_ratio

W razie potrzeby włącz zmniejszanie lub zwiększanie szerokości lub wysokości wyjściowego wideo, aby zachować oryginalne proporcje. Możliwa wartość:

'disable'

Skaluj wideo zgodnie z opisem i wyłącz tę funkcję.

'decrease'

W razie potrzeby wymiary wyjściowego wideo zostaną automatycznie zmniejszone.

'increase'

W razie potrzeby wymiary wyjściowego wideo zostaną automatycznie zwiększone.

Jednym z przydatnych przykładów tej opcji jest to, że gdy znasz maksymalną dozwoloną rozdzielczość konkretnego urządzenia, możesz użyć tego, aby ograniczyć wyjściowe wideo do tego, zachowując proporcje. Na przykład urządzenie A umożliwia odtwarzanie w rozdzielczości 1280x720, a Twój film ma rozdzielczość 1920x800. Użycie tej opcji (ustaw ją na zmniejszenie) i podanie 1280x720 w wierszu poleceń daje wynik 1280x533.

Pamiętaj, że jest to coś innego niż określenie -1 dlaw lubh, nadal musisz określić rozdzielczość wyjściową, aby ta opcja działała.

force_divisible_by

Zapewnia, że ​​oba wymiary wyjściowe, szerokość i wysokość, są podzielne przez podaną liczbę całkowitą, gdy są używane razem zforce_original_aspect_ratio. Działa to podobnie do używania -nwworazhopcje.

Ta opcja uwzględnia wartość ustawioną dlaforce_original_aspect_ratio, odpowiednio zwiększając lub zmniejszając rozdzielczość. Proporcje obrazu wideo mogą ulec niewielkim zmianom.

Ta opcja może być przydatna, jeśli chcesz, aby wideo mieściło się w określonej rozdzielczości lub ją przekraczało za pomocąforce_original_aspect_ratioale mają również ograniczenia enkodera dotyczące podzielności szerokości lub wysokości.

Wartościworazhopcje to wyrażenia zawierające następujące stałe:

in_w
in_h

Szerokość i wysokość wejściowa

iw
ih

Są takie same jak in_wi in_h.

out_w
out_h

Wyjściowa (skalowana) szerokość i wysokość

ow
oh

Są takie same jak out_wiout_h

a

Tak samo jak iw/ih

sar

wejściowy współczynnik proporcji próbki

dar

Format obrazu wejściowego. Obliczono od (iw / ih) * sar.

hsub
vsub

wartości podpróbek wejścia poziomego i pionowego. Na przykład dla formatu piksela „yuv422p” hsubto 2 i vsub1.

ohsub
ovsub

wartości podpróbki poziomej i pionowej barwy wyjściowej. Na przykład dla formatu piksela „yuv422p” hsubto 2 i vsub1.

n

Numer (sekwencyjny) ramki wejściowej, zaczynając od 0. Dostępne tylko z eval=frame.

t

Znacznik czasu prezentacji ramki wejściowej wyrażony jako liczba sekund. Dostępne tylko z eval=frame.

pos

Pozycja (przesunięcie bajtów) ramki w strumieniu wejściowym lub NaN, jeśli ta informacja jest niedostępna i/lub bez znaczenia (na przykład w przypadku syntetycznego wideo). Dostępne tylko z eval=frame.

11.208.2 Examples

  • Skaluj wideo wejściowe do rozmiaru 200x100
    scale=w=200:h=100
    

    Odpowiada to:

    scale=200:100
    

    lub:

    scale=200x100
    
  • Określ skrót rozmiaru dla rozmiaru wyjściowego:
    scale=qcif
    

    który można również zapisać jako:

    scale=size=qcif
    
  • Skaluj wejście do 2x:
    scale=w=2*iw:h=2*ih
    
  • Powyższe jest takie samo jak:
    scale=2*in_w:2*in_h
    
  • Skaluj wejście do 2x z wymuszonym skalowaniem z przeplotem:
    scale=2*iw:2*ih:interl=1
    
  • Skaluj dane wejściowe do połowy rozmiaru:
    scale=w=iw/2:h=ih/2
    
  • Zwiększ szerokość i ustaw wysokość na ten sam rozmiar:
    scale=3/2*iw:ow
    
  • Szukaj greckiej harmonii:
    scale=iw:1/PHI*iw
    scale=ih*PHI:ih
    
  • Zwiększ wysokość i ustaw szerokość na 3/2 wysokości:
    scale=w=3/2*oh:h=3/5*ih
    
  • Zwiększ rozmiar, czyniąc go wielokrotnością wartości podpróbki chroma:
    scale="trunc(3/2*iw/hsub)*hsub:trunc(3/2*ih/vsub)*vsub"
    
  • Zwiększ szerokość do maksymalnie 500 pikseli, zachowując ten sam współczynnik proporcji, co dane wejściowe:
    scale=w='min(500\, iw*3/2):h=-1'
    
  • Ustaw piksele jako kwadratowe, łącząc scale i setsar:
    scale='trunc(ih*dar):ih',setsar=1/1
    
  • Ustaw piksele kwadratowe, łącząc scale i setsar, upewniając się, że wynikowa rozdzielczość jest równa (wymagana przez niektóre kodeki):
    scale='trunc(ih*dar/2)*2:trunc(ih/2)*2',setsar=1/1
    

11.208.3 Commands

Ten filtr obsługuje następujące polecenia:

width, w
height, h

Ustaw wyrażenie wyjściowego wymiaru wideo. Polecenie akceptuje tę samą składnię odpowiedniej opcji.

Jeśli podane wyrażenie jest niepoprawne, jest zachowywane z bieżącą wartością.

11.209 scale_cuda

Skaluj (zmieniaj rozmiar) i konwertuj (format w pikselach) wejściowe wideo za pomocą akcelerowanych jąder CUDA. Ustawienie szerokości i wysokości wyjścia działa tak samo, jak dla filtra skali .

Filtr akceptuje następujące opcje:

w
h

Ustaw wyrażenie wyjściowego wymiaru wideo. Wartość domyślna to wymiar wejściowy.

Pozwala na te same wyrażenia, co filtr skali .

interp_algo

Ustawia algorytm używany do skalowania:

nearest

Najbliższy sąsiad

Używane domyślnie, jeśli parametry wejściowe pasują do żądanego wyjścia.

bilinear

Dwuliniowe

bicubic

Dwusześcienny

To jest ustawienie domyślne.

lanczos

Lanczos

format

Steruje wyjściowym formatem pikseli. Domyślnie lub jeśli nie określono żadnego, używany jest format pikseli wejściowych.

Filtr nie obsługuje konwersji między formatami pikseli YUV i RGB.

passthrough

Jeśli jest ustawiony na 0, przetwarzana jest każda ramka, nawet jeśli konwersja nie jest konieczna. Ten tryb może być przydatny do używania filtra jako bufora dla odbiorcy ramek w dół strumienia, który wyczerpuje ograniczoną pulę ramek dekodera.

Jeśli jest ustawiony na 1, ramki są przekazywane bez zmian, jeśli pasują do żądanych parametrów wyjściowych. To jest zachowanie domyślne.

param

Parametr specyficzny dla algorytmu.

Wpływa na krzywe algorytmu dwusześciennego.

force_original_aspect_ratio
force_divisible_by

Działaj tak samo, jak identyczne opcje filtra skali .

11.209.1 Examples

  • Skaluj wejście do 720p, zachowując proporcje i zapewniając, że wyjście to yuv420p.
    scale_cuda=-2:720:format=yuv420p
    
  • Skaluj do 4K przy użyciu algorytmu najbliższego sąsiada.
    scale_cuda=4096:2160:interp_algo=nearest
    
  • Nie rób żadnej konwersji ani skalowania, ale skopiuj wszystkie ramki wejściowe do nowo przydzielonych. Może to być przydatne do radzenia sobie z łańcuchem filtrów i kodowania, który w przeciwnym razie wyczerpuje pulę ramek dekoderów.
    scale_cuda=passthrough=0
    

11.210 scale_npp

Użyj narzędzi NVIDIA Performance Primitives (libnpp), aby wykonać skalowanie i/lub konwersję formatu pikseli w klatkach wideo CUDA. Ustawienie szerokości i wysokości wyjścia działa tak samo jak w przypadku scalefiltra.

Akceptowane są następujące opcje dodatkowe:

format

Format pikseli wyjściowych ramek CUDA. Jeśli jest ustawiony na ciąg "taki sam" (domyślnie), format wejściowy zostanie zachowany. Pamiętaj, że automatyczna negocjacja formatu i konwersja nie jest jeszcze obsługiwana dla ramek sprzętowych

interp_algo

Algorytm interpolacji używany do zmiany rozmiaru. Jeden z następujących:

nn

Najbliższy sąsiad.

linear
cubic
cubic2p_bspline

sześcienny 2-parametrowy (B=1, C=0)

cubic2p_catmullrom

sześcienny 2-parametrowy (B=0, C=1/2)

cubic2p_b05c03

sześcienny 2-parametrowy (B=1/2, C=3/10)

super

Superpróbkowanie

lanczos
force_original_aspect_ratio

W razie potrzeby włącz zmniejszanie lub zwiększanie szerokości lub wysokości wyjściowego wideo, aby zachować oryginalne proporcje. Możliwa wartość:

'disable'

Skaluj wideo zgodnie z opisem i wyłącz tę funkcję.

'decrease'

W razie potrzeby wymiary wyjściowego wideo zostaną automatycznie zmniejszone.

'increase'

W razie potrzeby wymiary wyjściowego wideo zostaną automatycznie zwiększone.

Jednym z przydatnych przykładów tej opcji jest to, że gdy znasz maksymalną dozwoloną rozdzielczość konkretnego urządzenia, możesz użyć tego, aby ograniczyć wyjściowe wideo do tego, zachowując proporcje. Na przykład urządzenie A umożliwia odtwarzanie w rozdzielczości 1280x720, a Twój film ma rozdzielczość 1920x800. Użycie tej opcji (ustaw ją na zmniejszenie) i podanie 1280x720 w wierszu poleceń daje wynik 1280x533.

Pamiętaj, że jest to coś innego niż określenie -1 dlaw lubh, nadal musisz określić rozdzielczość wyjściową, aby ta opcja działała.

force_divisible_by

Zapewnia, że ​​oba wymiary wyjściowe, szerokość i wysokość, są podzielne przez podaną liczbę całkowitą, gdy są używane razem zforce_original_aspect_ratio. Działa to podobnie do używania -nwworazhopcje.

Ta opcja uwzględnia wartość ustawioną dlaforce_original_aspect_ratio, odpowiednio zwiększając lub zmniejszając rozdzielczość. Proporcje obrazu wideo mogą ulec niewielkim zmianom.

Ta opcja może być przydatna, jeśli chcesz, aby wideo mieściło się w określonej rozdzielczości lub ją przekraczało za pomocąforce_original_aspect_ratioale mają również ograniczenia enkodera dotyczące podzielności szerokości lub wysokości.

eval

Określ, kiedy oceniać widthi heightwyrażać. Przyjmuje następujące wartości:

'init'

Oceniaj wyrażenia tylko raz podczas inicjowania filtru lub podczas przetwarzania polecenia.

'frame'

Oceń wyrażenia dla każdej przychodzącej ramki.

Wartościworazhopcje to wyrażenia zawierające następujące stałe:

in_w
in_h

Szerokość i wysokość wejściowa

iw
ih

Są takie same jak in_wi in_h.

out_w
out_h

Wyjściowa (skalowana) szerokość i wysokość

ow
oh

Są takie same jak out_wiout_h

a

Tak samo jak iw/ih

sar

wejściowy współczynnik proporcji próbki

dar

Format obrazu wejściowego. Obliczono od (iw / ih) * sar.

n

Numer (sekwencyjny) ramki wejściowej, zaczynając od 0. Dostępne tylko z eval=frame.

t

Znacznik czasu prezentacji ramki wejściowej wyrażony jako liczba sekund. Dostępne tylko z eval=frame.

pos

Pozycja (przesunięcie bajtów) ramki w strumieniu wejściowym lub NaN, jeśli ta informacja jest niedostępna i/lub bez znaczenia (na przykład w przypadku syntetycznego wideo). Dostępne tylko z eval=frame.

11.211 scale2ref

Skaluj (zmień rozmiar) wejściowego wideo na podstawie referencyjnego wideo.

Zobacz filtr skali dla dostępnych opcji, scale2ref obsługuje to samo, ale jako podstawę używa referencyjnego wideo zamiast głównego wejścia. scale2ref obsługuje również następujące dodatkowe stałe dlaworaz hopcje:

main_w
main_h

Szerokość i wysokość głównego wejścia wideo

main_a

Tak samo jak main_w/main_h

main_sar

Przykładowe proporcje głównego wejścia wideo

main_dar, mdar

Proporcje obrazu głównego wejścia wideo. Obliczono od (main_w / main_h) * main_sar.

main_hsub
main_vsub

Wartości podpróbki chrominancji w poziomie i w pionie głównego wejścia wideo. Na przykład dla formatu piksela „yuv422p” hsubto 2 i vsub 1.

main_n

Numer (sekwencyjny) głównej ramki wejściowej, zaczynając od 0. Dostępne tylko z eval=frame.

main_t

Znacznik czasu prezentacji głównej ramki wejściowej wyrażony jako liczba sekund. Dostępne tylko z eval=frame.

main_pos

Pozycja (przesunięcie bajtów) ramki w głównym strumieniu wejściowym lub NaN, jeśli ta informacja jest niedostępna i/lub nie ma znaczenia (na przykład w przypadku syntetycznego wideo). Dostępne tylko z eval=frame.

11.211.1 Examples

  • Skaluj strumień napisów (b), aby dopasować rozmiar głównego filmu (a) przed nałożeniem
    'scale2ref[b][a];[a][b]overlay'
    
  • Skaluj logo do 1/10 wysokości filmu, zachowując proporcje wyświetlania.
    [logo-in][video-in]scale2ref=w=oh*mdar:h=ih/10[logo-out][video-out]
    

11.211.2 Commands

Ten filtr obsługuje następujące polecenia:

width, w
height, h

Ustaw wyrażenie wyjściowego wymiaru wideo. Polecenie akceptuje tę samą składnię odpowiedniej opcji.

Jeśli podane wyrażenie jest niepoprawne, jest zachowywane z bieżącą wartością.

11.212 scale2ref_npp

Użyj narzędzi NVIDIA Performance Primitives (libnpp), aby skalować (zmieniać rozmiar) wejściowego wideo na podstawie referencyjnego wideo.

Zobacz filtr scale_npp dla dostępnych opcji, scale2ref_npp obsługuje to samo, ale używa referencyjnego wideo zamiast głównego wejścia jako podstawy. scale2ref_npp obsługuje również następujące dodatkowe stałe dlaworaz hopcje:

main_w
main_h

Szerokość i wysokość głównego wejścia wideo

main_a

Tak samo jak main_w/main_h

main_sar

Przykładowe proporcje głównego wejścia wideo

main_dar, mdar

Proporcje obrazu głównego wejścia wideo. Obliczono od (main_w / main_h) * main_sar.

main_n

Numer (sekwencyjny) głównej ramki wejściowej, zaczynając od 0. Dostępne tylko z eval=frame.

main_t

Znacznik czasu prezentacji głównej ramki wejściowej wyrażony jako liczba sekund. Dostępne tylko z eval=frame.

main_pos

Pozycja (przesunięcie bajtów) ramki w głównym strumieniu wejściowym lub NaN, jeśli ta informacja jest niedostępna i/lub nie ma znaczenia (na przykład w przypadku syntetycznego wideo). Dostępne tylko z eval=frame.

11.212.1 Examples

  • Skaluj strumień napisów (b), aby dopasować rozmiar głównego filmu (a) przed nałożeniem
    'scale2ref_npp[b][a];[a][b]overlay_cuda'
    
  • Skaluj logo do 1/10 wysokości filmu, zachowując proporcje wyświetlania.
    [logo-in][video-in]scale2ref_npp=w=oh*mdar:h=ih/10[logo-out][video-out]
    

11.213 scharr

Zastosuj operator scharr do wejściowego strumienia wideo.

Filtr akceptuje następującą opcję:

planes

Ustaw, które płaszczyzny będą przetwarzane, nieprzetworzone płaszczyzny zostaną skopiowane. Domyślna wartość 0xf, wszystkie płaszczyzny będą przetwarzane.

scale

Ustaw wartość, która zostanie pomnożona przez przefiltrowany wynik.

delta

Ustaw wartość, która zostanie dodana do przefiltrowanego wyniku.

11.213.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

11.214 scroll

Przewijanie wejściowego wideo w poziomie i/lub w pionie ze stałą prędkością.

Filtr akceptuje następujące opcje:

horizontal, h

Ustaw prędkość przewijania w poziomie. Wartość domyślna to 0. Dozwolony zakres to od -1 do 1. Wartości ujemne zmieniają kierunek przewijania.

vertical, v

Ustaw prędkość przewijania w pionie. Wartość domyślna to 0. Dozwolony zakres to od -1 do 1. Wartości ujemne zmieniają kierunek przewijania.

hpos

Ustaw początkową pozycję przewijania w poziomie. Wartość domyślna to 0. Dozwolony zakres to od 0 do 1.

vpos

Ustaw początkową pozycję przewijania w pionie. Wartość domyślna to 0. Dozwolony zakres to od 0 do 1.

11.214.1 Commands

Ten filtr obsługuje następujące polecenia :

horizontal, h

Ustaw prędkość przewijania w poziomie.

vertical, v

Ustaw prędkość przewijania w pionie.

11.215 scdet

Wykryj zmianę sceny wideo.

Ten filtr ustawia metadane klatki z mafd między klatkami, wynikiem sceny i przekazuje klatkę do następnego filtra, aby mogli użyć tych metadanych do wykrycia zmiany sceny lub innych.

Ponadto ten filtr rejestruje wiadomość i ustawia metadane ramki, gdy wykryje zmianę sceny przezthreshold.

lavfi.scd.mafdklucze metadanych są ustawiane za pomocą mafd dla każdej klatki.

lavfi.scd.scoreklucze metadanych są ustawiane z wynikiem zmiany sceny dla każdej klatki w celu wykrycia zmiany sceny.

lavfi.scd.timeklucze metadanych są ustawione z bieżącym filtrowanym czasem klatki, który wykrywa zmianę sceny za pomocąthreshold.

Filtr akceptuje następujące opcje:

threshold, t

Ustaw próg wykrywania zmiany sceny jako procent maksymalnej zmiany. Dobre wartości mieszczą się w [8.0, 14.0]zakresie. Zakres dlathresholdjest [0., 100.].

Wartość domyślna to 10..

sc_pass, s

Ustaw flagę, aby przekazywać klatki zmiany sceny do następnego filtra. Wartość domyślna to 0 Możesz włączyć tę opcję, jeśli chcesz uzyskać zrzut tylko klatek zmiany sceny.

11.216 selectivecolor

Dostosuj cyjan, magenta, żółty i czarny (CMYK) do określonych zakresów kolorów (takich jak "czerwony", "żółty", "zielony", "cyjan", ...). Zakres regulacji jest określony przez „czystość” koloru (czyli stopień jego nasycenia).

Ten filtr jest podobny do narzędzia Adobe Photoshop Selective Color.

Filtr akceptuje następujące opcje:

correction_method

Wybierz metodę korekcji kolorów.

Dostępne wartości to:

'absolute'

Określone korekty są stosowane „tak jak jest” (dodawane/odejmowane od oryginalnej wartości składnika piksela).

'relative'

Określone korekty odnoszą się do oryginalnej wartości składnika.

Wartość domyślna to absolute.

reds

Dopasowania dla czerwonych pikseli (piksele, w których czerwony składnik jest maksymalny)

yellows

Dopasowania dla żółtych pikseli (piksele, w których składnik niebieski jest minimum)

greens

Dopasowania dla zielonych pikseli (piksele, w których zielony składnik jest maksymalny)

cyans

Dopasowania dla pikseli niebieskozielonych (piksele, w których składowa czerwona jest minimalna)

blues

Dopasowania dla niebieskich pikseli (piksele, w których składnik niebieski jest maksymalny)

magentas

Dopasowania dla pikseli magenta (piksele, w których zielony składnik jest minimalny)

whites

Dopasowania dla białych pikseli (piksele, w których wszystkie składniki są większe niż 128)

neutrals

Korekty dla wszystkich pikseli z wyjątkiem czystej czerni i czystej bieli

blacks

Korekty czarnych pikseli (piksele, w których wszystkie składniki są mniejsze niż 128)

psfile

Określ plik kolorów selektywnych programu Photoshop ( .asv), z którego mają zostać zaimportowane ustawienia.

Wszystkie ustawienia regulacji (reds,yellows, ...) zaakceptuj do 4 wartości regulacji zmiennoprzecinkowych oddzielonych spacjami w zakresie [-1,1], odpowiednio, aby dostosować ilość koloru cyjan, magenta, żółtego i czarnego dla pikseli tego zakresu.

11.216.1 Examples

  • Zwiększ cyjan o 50% i zmniejsz żółty o 33% na wszystkich zielonych obszarach i zwiększ magenta o 27% na niebieskich obszarach:
    selectivecolor=greens=.5 0 -.33 0:blues=0 .27
    
  • Użyj ustawienia kolorów selektywnych programu Photoshop:
    selectivecolor=psfile=MySelectiveColorPresets/Misty.asv
    

11.217 separatefields

Pobiera sygnał wejściowy wideo oparty na separatefieldsklatkach i dzieli każdą klatkę na jej pola składowe, tworząc nowy klip o połowie wysokości z dwukrotnie większą liczbą klatek na sekundę i dwukrotnie większą liczbą klatek.

Ten filtr wykorzystuje informacje o dominacji pól w ramce, aby zdecydować, które z każdej pary pól umieścić jako pierwsze w danych wyjściowych. Jeśli się nie powiedzie, użyj filtra setfield przed separatefieldsfiltrem.

11.218 setdar, setsar

Filtr setdarustawia współczynnik proporcji wyświetlania dla wyjściowego wideo filtra.

Odbywa się to poprzez zmianę określonego współczynnika proporcji próbki (aka piksela), zgodnie z następującym równaniem:

DAR = HORIZONTAL_RESOLUTION / VERTICAL_RESOLUTION * SAR

Pamiętaj, że setdarfiltr nie zmienia wymiarów klatki wideo w pikselach. Również proporcje wyświetlania ustawione przez ten filtr mogą być zmieniane przez późniejsze filtry w łańcuchu filtrów, np. w przypadku skalowania lub zastosowania innego filtra „setdar” lub „setsar”.

Filtr setsarustawia współczynnik proporcji próbki (aka Pixel) dla wyjściowego wideo filtra.

Zwróć uwagę, że w wyniku zastosowania tego filtru proporcje obrazu wyjściowego zmienią się zgodnie z powyższym równaniem.

Pamiętaj, że proporcje próbki ustawione przez setsar filtr mogą zostać zmienione przez późniejsze filtry w łańcuchu filtrów, np. jeśli zostanie zastosowany inny filtr „setsar” lub „setdar”.

Przyjmuje następujące parametry:

r, ratio, dar (setdar only), sar (setsar only)

Ustaw proporcje używane przez filtr.

Parametr może być ciągiem liczb zmiennoprzecinkowych, wyrażeniem lub ciągiem w postaci num: den, gdzie numi densą licznikiem i mianownikiem współczynnika proporcji. Jeżeli parametr nie jest określony, przyjmowana jest wartość „0”. W przypadku użycia postaci " num: den" :znak powinien zostać zmieniony.

max

Ustaw maksymalną wartość całkowitą, która ma być używana do wyrażania licznika i mianownika podczas zmniejszania wyrażonego współczynnika proporcji do liczby wymiernej. Wartość domyślna to 100.

Parametr sarjest wyrażeniem zawierającym następujące stałe:

E, PI, PHI

Są to przybliżone wartości stałych matematycznych e (liczba Eulera), pi (greckie pi) i phi (złoty podział).

w, h

Wejściowa szerokość i wysokość.

a

Są takie same jak w/ h.

sar

Wejściowy współczynnik proporcji próbki.

dar

Format obrazu wejściowego. Jest taki sam jak ( w/ h) * sar.

hsub, vsub

Poziome i pionowe wartości podpróbki chrominancji. Na przykład dla formatu piksela „yuv422p” hsubto 2 i vsub1.

11.218.1 Examples

  • Aby zmienić proporcje ekranu na 16:9, określ jedną z następujących opcji:
    setdar=dar=1.77777
    setdar=dar=16/9
    
  • Aby zmienić proporcje próbki na 10:11, określ:
    setsar=sar=10/11
    
  • Aby ustawić współczynnik proporcji wyświetlania 16:9 i określić maksymalną wartość całkowitą 1000 w redukcji współczynnika proporcji, użyj polecenia:
    setdar=ratio=16/9:max=1000
    

11.219 setfield

Pole siłowe dla wyjściowej klatki wideo.

Filtr setfieldoznacza pole typu przeplotu dla klatek wyjściowych. Nie zmienia ramki wejściowej, a jedynie ustawia odpowiednią właściwość, która wpływa na sposób traktowania ramki przez następujące filtry (np . fieldorderlub yadif).

Filtr akceptuje następujące opcje:

mode

Dostępne wartości to:

'auto'

Zachowaj tę samą właściwość pola.

'bff'

Oznacz ramkę jako najpierw dolne pole.

'tff'

Oznacz ramkę jako pierwszą w górnym polu.

'prog'

Oznacz ramkę jako progresywną.

11.220 setparams

Wymuś parametr ramki dla wyjściowej ramki wideo.

Filtr setparamsoznacza przeplot i zakres kolorów dla klatek wyjściowych. Nie zmienia ramki wejściowej, a jedynie ustawia odpowiednią właściwość, która wpływa na sposób traktowania ramki przez filtry/enkodery.

field_mode

Dostępne wartości to:

'auto'

Zachowaj tę samą właściwość pola (domyślnie).

'bff'

Oznacz ramkę jako najpierw dolne pole.

'tff'

Oznacz ramkę jako pierwszą w górnym polu.

'prog'

Oznacz ramkę jako progresywną.

range

Dostępne wartości to:

'auto'

Zachowaj tę samą właściwość zakresu kolorów (domyślnie).

'unspecified, unknown'

Oznacz ramkę jako nieokreślony zakres kolorów.

'limited, tv, mpeg'

Oznacz ramkę jako ograniczony zasięg.

'full, pc, jpeg'

Oznacz klatkę jako pełny zakres.

color_primaries

Ustaw kolory podstawowe. Dostępne wartości to:

'auto'

Zachowaj tę samą właściwość kolorów podstawowych (domyślnie).

'bt709'
'unknown'
'bt470m'
'bt470bg'
'smpte170m'
'smpte240m'
'film'
'bt2020'
'smpte428'
'smpte431'
'smpte432'
'jedec-p22'
color_trc

Ustaw transfer kolorów. Dostępne wartości to:

'auto'

Zachowaj tę samą właściwość trc koloru (domyślnie).

'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

Ustaw przestrzeń kolorów. Dostępne wartości to:

'auto'

Zachowaj tę samą właściwość przestrzeni kolorów (domyślnie).

'gbr'
'bt709'
'unknown'
'fcc'
'bt470bg'
'smpte170m'
'smpte240m'
'ycgco'
'bt2020nc'
'bt2020c'
'smpte2085'
'chroma-derived-nc'
'chroma-derived-c'
'ictcp'

11.221 sharpen_npp

Użyj narzędzi NVIDIA Performance Primitives (libnpp) do wyostrzania obrazu z kontrolą granic.

Akceptowane są następujące opcje dodatkowe:

border_type

Rodzaj próbkowania, jaki ma być użyty do obramowania ramek reklamowych. Jeden z następujących:

replicate

Replikuj wartości pikseli.

11.222 shear

Zastosuj transformację ścinającą do wejściowego wideo.

Ten filtr obsługuje następujące opcje:

shx

Współczynnik ścinania w kierunku X. Wartość domyślna to 0. Dozwolony zakres to od -2 do 2.

shy

Współczynnik ścinania w kierunku Y. Wartość domyślna to 0. Dozwolony zakres to od -2 do 2.

fillcolor, c

Ustaw kolor używany do wypełnienia obszaru wyjściowego, którego nie obejmuje przekształcone wideo. Aby uzyskać ogólną składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Color" w podręczniku ffmpeg-utils . W przypadku wybrania specjalnej wartości „none” tło nie jest drukowane (przydatne na przykład, jeśli tło nigdy nie jest pokazywane).

Wartość domyślna to „czarny”.

interp

Ustaw typ interpolacji. Może być bilinearlub nearest. Wartość domyślna to bilinear.

11.222.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

11.223 showinfo

Pokaż wiersz zawierający różne informacje dla każdej wejściowej klatki wideo. Wejściowy sygnał wideo nie jest modyfikowany.

Ten filtr obsługuje następujące opcje:

checksum

Oblicz sumy kontrolne każdej płaszczyzny. Domyślnie włączone.

Pokazany wiersz zawiera sekwencję par klucz/wartość postaci key: value.

Na wyjściu pokazane są następujące wartości:

n

Numer (sekwencyjny) ramki wejściowej, zaczynając od 0.

pts

Znacznik czasu prezentacji ramki wejściowej wyrażony jako liczba jednostek podstawy czasu. Podstawa czasu zależy od wkładki wejściowej filtra.

pts_time

Znacznik czasu prezentacji ramki wejściowej wyrażony jako liczba sekund.

pos

Pozycja klatki w strumieniu wejściowym lub -1, jeśli ta informacja jest niedostępna i/lub bez znaczenia (na przykład w przypadku syntetycznego wideo).

fmt

Nazwa formatu pikseli.

sar

Przykładowe proporcje klatki wejściowej wyrażone w postaci num/ den.

s

Rozmiar ramki wejściowej. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Rozmiar wideo" w podręczniku ffmpeg-utils .

i

Rodzaj trybu z przeplotem („P” dla „progresywnego”, „T” dla najpierw górnego pola, „B” dla najpierw dolnego pola).

iskey

To jest 1, jeśli ramka jest klatką kluczową, 0 w przeciwnym razie.

type

Typ obrazu ramki wejściowej („I” dla ramki I, „P” dla ramki P, „B” dla ramki B lub „?” dla nieznanego typu). Zapoznaj się również z dokumentacją AVPictureTypewyliczenia i av_get_picture_type_charfunkcji zdefiniowanej w libavutil/avutil.h.

checksum

Suma kontrolna Adler-32 (wydrukowana szesnastkowo) wszystkich płaszczyzn ramki wejściowej.

plane_checksum

Suma kontrolna Adlera-32 (wydrukowana w systemie szesnastkowym) każdej płaszczyzny ramki wejściowej, wyrażona w postaci „[ ]”. c0 c1 c2 c3

mean

Średnia wartość pikseli w każdej płaszczyźnie klatki wejściowej, wyrażona w postaci „[ ]”. mean0 mean1 mean2 mean3

stdev

Odchylenie standardowe wartości pikseli w każdej płaszczyźnie klatki wejściowej, wyrażone w postaci „[ ]”. stdev0 stdev1 stdev2 stdev3

11.224 showpalette

Wyświetla paletę 256 kolorów każdej klatki. Ten filtr dotyczy tylko pal8ramek w formacie pikselowym.

Akceptuje następującą opcję:

s

Ustaw rozmiar pola używanego do reprezentowania jednego wpisu koloru palety. Wartość domyślna to 30(dla 30x30pola z pikselami).

11.225 shuffleframes

Zmień kolejność i/lub duplikuj i/lub upuszczaj klatki wideo.

Przyjmuje następujące parametry:

mapping

Ustaw indeksy docelowe ramek wejściowych. To jest spacja lub „|” oddzielona lista indeksów, która odwzorowuje ramki wejściowe na ramki wyjściowe. Liczba indeksów określa również maksymalną wartość, jaką może mieć każdy indeks. Indeks '-1' ma specjalne znaczenie i oznacza opuszczenie klatki.

Pierwsza ramka ma indeks 0. Domyślnie dane wejściowe pozostają niezmienione.

11.225.1 Examples

  • Zamień drugą i trzecią klatkę co trzy klatki danych wejściowych:
    ffmpeg -i INPUT -vf "shuffleframes=0 2 1" OUTPUT
    
  • Zamień dziesiątą i pierwszą klatkę na każde dziesięć ramek danych wejściowych:
    ffmpeg -i INPUT -vf "shuffleframes=9 1 2 3 4 5 6 7 8 0" OUTPUT
    

11.226 shufflepixels

Zmień kolejność pikseli w klatkach wideo.

Ten filtr akceptuje następujące opcje:

direction, d

Ustaw kierunek odtwarzania losowego. Może być w kierunku do przodu lub do tyłu. Domyślny kierunek to do przodu.

mode, m

Ustaw tryb losowy. Może być w trybie poziomym, pionowym lub blokowym.

width, w
height, h

Ustaw losowo blok_rozmiar. W trybie tasowania poziomego używana jest tylko część szerokości rozmiaru, aw przypadku trybu tasowania pionowego wykorzystywana jest tylko część rozmiaru rozmiaru.

seed, s

Ustaw losowe ziarno używane z tasowaniem pikseli. Głównie przydatne do ustawienia, aby móc odwrócić proces filtrowania, aby uzyskać oryginalne dane wejściowe. Na przykład, aby odwrócić tasowanie do przodu, musisz użyć tych samych parametrów i dokładnie tego samego ziarna i ustawić kierunek na odwrotny.

11.227 shuffleplanes

Zmień kolejność i/lub zduplikuj samoloty wideo.

Przyjmuje następujące parametry:

map0

Indeks płaszczyzny wejściowej, która ma być używana jako pierwsza płaszczyzna wyjściowa.

map1

Indeks płaszczyzny wejściowej, która ma być używana jako druga płaszczyzna wyjściowa.

map2

Indeks płaszczyzny wejściowej, która ma być używana jako trzecia płaszczyzna wyjściowa.

map3

Indeks płaszczyzny wejściowej, która ma być używana jako czwarta płaszczyzna wyjściowa.

Pierwsza płaszczyzna ma indeks 0. Domyślnie dane wejściowe pozostają niezmienione.

11.227.1 Examples

  • Zamień drugą i trzecią płaszczyznę wejścia:
    ffmpeg -i INPUT -vf shuffleplanes=0:2:1:3 OUTPUT
    

11.228 signalstats

Oceń różne wskaźniki wizualne, które pomagają w określeniu problemów związanych z cyfryzacją analogowych nośników wideo.

Domyślnie filtr rejestruje te wartości metadanych:

YMIN

Wyświetla minimalną wartość Y zawartą w ramce wejściowej. Wyrażony w zakresie [0-255].

YLOW

Wyświetl wartość Y na 10% percentylu w ramce wejściowej. Wyrażony w zakresie [0-255].

YAVG

Wyświetl średnią wartość Y w ramce wejściowej. Wyrażony w zakresie [0-255].

YHIGH

Wyświetl wartość Y na poziomie 90% w ramce wejściowej. Wyrażony w zakresie [0-255].

YMAX

Wyświetla maksymalną wartość Y zawartą w ramce wejściowej. Wyrażony w zakresie [0-255].

UMIN

Wyświetla minimalną wartość U zawartą w ramce wejściowej. Wyrażony w zakresie [0-255].

ULOW

Wyświetl wartość U na 10% percentylu w ramce wejściowej. Wyrażony w zakresie [0-255].

UAVG

Wyświetl średnią wartość U w ramce wejściowej. Wyrażony w zakresie [0-255].

UHIGH

Wyświetl wartość U na poziomie 90% w ramce wejściowej. Wyrażony w zakresie [0-255].

UMAX

Wyświetla maksymalną wartość U zawartą w ramce wejściowej. Wyrażony w zakresie [0-255].

VMIN

Wyświetla minimalną wartość V zawartą w ramce wejściowej. Wyrażony w zakresie [0-255].

VLOW

Wyświetl wartość V na 10% percentylu w ramce wejściowej. Wyrażony w zakresie [0-255].

VAVG

Wyświetl średnią wartość V w ramce wejściowej. Wyrażony w zakresie [0-255].

VHIGH

Wyświetl wartość V na poziomie 90% w ramce wejściowej. Wyrażony w zakresie [0-255].

VMAX

Wyświetla maksymalną wartość V zawartą w ramce wejściowej. Wyrażony w zakresie [0-255].

SATMIN

Wyświetla minimalną wartość nasycenia zawartą w ramce wejściowej. Wyrażony w zakresie [0-~181,02].

SATLOW

Wyświetl wartość nasycenia na poziomie 10% w ramce wejściowej. Wyrażony w zakresie [0-~181,02].

SATAVG

Wyświetla średnią wartość nasycenia w ramce wejściowej. Wyrażony w zakresie [0-~181,02].

SATHIGH

Wyświetl wartość nasycenia na poziomie 90% w ramce wejściowej. Wyrażony w zakresie [0-~181,02].

SATMAX

Wyświetla maksymalną wartość nasycenia zawartą w ramce wejściowej. Wyrażony w zakresie [0-~181,02].

HUEMED

Wyświetl medianę barwy w ramce wejściowej. Wyrażony w zakresie [0-360].

HUEAVG

Wyświetl średnią wartość odcienia w ramce wejściowej. Wyrażony w zakresie [0-360].

YDIF

Wyświetla średnią różnicę wartości próbki między wszystkimi wartościami płaszczyzny Y w bieżącej ramce i odpowiadającymi wartościami poprzedniej ramki wejściowej. Wyrażony w zakresie [0-255].

UDIF

Wyświetla średnią różnicę wartości próbki między wszystkimi wartościami płaszczyzny U w bieżącej ramce i odpowiadającymi wartościami poprzedniej ramki wejściowej. Wyrażony w zakresie [0-255].

VDIF

Wyświetla średnią różnicę wartości próbki między wszystkimi wartościami płaszczyzny V w bieżącej ramce i odpowiadającymi wartościami poprzedniej ramki wejściowej. Wyrażony w zakresie [0-255].

YBITDEPTH

Wyświetla głębię bitową płaszczyzny Y w bieżącej ramce. Wyrażony w przedziale [0-16].

UBITDEPTH

Wyświetla głębię bitową płaszczyzny U w bieżącej ramce. Wyrażony w przedziale [0-16].

VBITDEPTH

Wyświetla głębię bitową płaszczyzny V w bieżącej ramce. Wyrażony w przedziale [0-16].

Filtr akceptuje następujące opcje:

stat
out

statokreślić dodatkową formę analizy obrazu. outwyjście wideo z podświetlonym określonym typem piksela.

Obie opcje akceptują następujące wartości:

'tout'

Zidentyfikuj temporal outlierspiksele. A temporal outlierto piksel w przeciwieństwie do sąsiednich pikseli tego samego pola. Przykłady chwilowych wartości odstających obejmują wyniki przerw w odtwarzaniu wideo, zatkania głowy lub problemów ze śledzeniem taśmy.

'vrep'

Zidentyfikuj vertical line repetition. Pionowe powtórzenie linii obejmuje podobne rzędy pikseli w ramce. W urodzonym cyfrowym wideo powtarzanie linii pionowej jest powszechne, ale ten wzór jest rzadki w wideo cyfrowym ze źródła analogowego. Gdy występuje w wideo, które wynika z cyfryzacji źródła analogowego, może wskazywać na ukrycie przed kompensatorem zaniku.

'brng'

Identyfikuj piksele, które wykraczają poza legalny zasięg transmisji.

color, c

Ustaw kolor podświetlenia dlaoutopcja. Domyślny kolor to żółty.

11.228.1 Examples

  • Dane wyjściowe różnych metryk wideo:
    ffprobe -f lavfi movie=example.mov,signalstats="stat=tout+vrep+brng" -show_frames
    
  • Wyprowadź określone dane dotyczące minimalnych i maksymalnych wartości płaszczyzny Y na klatkę:
    ffprobe -f lavfi movie=example.mov,signalstats -show_entries frame_tags=lavfi.signalstats.YMAX,lavfi.signalstats.YMIN
    
  • Odtwarzaj wideo, podświetlając na czerwono piksele znajdujące się poza zasięgiem transmisji.
    ffplay example.mov -vf signalstats="out=brng:color=red"
    
  • Odtwórz wideo z metadanymi statystyk sygnału narysowanymi na ramce.
    ffplay example.mov -vf signalstats=stat=brng+vrep+tout,drawtext=fontfile=FreeSerif.ttf:textfile=signalstat_drawtext.txt
    

    Zawartość pliku signalstat_drawtext.txt użytego w poleceniu to:

    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

Oblicza sygnaturę wideo MPEG-7. Filtr może obsłużyć więcej niż jedno wejście. W takim przypadku dopasowanie między wejściami można dodatkowo obliczyć. Filtr zawsze przechodzi przez pierwsze wejście. Sygnatura każdego strumienia może zostać zapisana w pliku.

Akceptuje następujące opcje:

detectmode

Włącz lub wyłącz proces dopasowywania.

Dostępne wartości to:

'off'

Wyłącz obliczanie dopasowania (domyślnie).

'full'

Oblicz dopasowanie dla całego filmu i wyślij, czy pasuje cały film, czy tylko części.

'fast'

Obliczaj tylko do momentu znalezienia dopasowania lub zakończenia filmu. W niektórych przypadkach powinno być szybsze.

nb_inputs

Ustaw liczbę wejść. Wartość opcji musi być nieujemną liczbą całkowitą. Wartość domyślna to 1.

filename

Ustaw ścieżkę, do której zapisywane są dane wyjściowe. Jeśli istnieje więcej niż jedno wejście, ścieżka musi być prototypem, tj. musi zawierać %d lub %0nd (gdzie n jest dodatnią liczbą całkowitą), które zostaną zastąpione numerem wejścia. Jeśli nie podano nazwy pliku, żadne dane wyjściowe nie zostaną zapisane. To jest ustawienie domyślne.

format

Wybierz format wyjściowy.

Dostępne wartości to:

'binary'

Użyj określonej reprezentacji binarnej (domyślnie).

'xml'

Użyj określonej reprezentacji XML.

th_d

Ustaw próg, aby wykryć jedno słowo jako podobne. Wartość opcji musi być liczbą całkowitą większą od zera. Wartość domyślna to 9000.

th_dc

Ustaw próg, aby wszystkie słowa były podobne. Wartość opcji musi być liczbą całkowitą większą od zera. Wartość domyślna to 60000.

th_xh

Ustaw próg, aby wykrywać klatki jako podobne. Wartość opcji musi być liczbą całkowitą większą od zera. Wartość domyślna to 116.

th_di

Ustaw minimalną długość sekwencji w ramkach, aby rozpoznać ją jako pasującą sekwencję. Wartość opcji musi być nieujemną liczbą całkowitą. Wartość domyślna to 0.

th_it

Ustaw minimalną relację, jaką muszą mieć pasujące ramki do wszystkich ramek. Wartość opcji musi być podwójną wartością z zakresu od 0 do 1. Wartość domyślna to 0,5.

11.229.1 Examples

  • Aby obliczyć podpis wideo wejściowego i zapisać go w signature.bin:
    ffmpeg -i input.mkv -vf signature=filename=signature.bin -map 0:v -f null -
    
  • Aby wykryć, czy dwa filmy wideo pasują do siebie i zapisać podpisy w formacie XML w plikach signature0.xml i 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

Oblicz wyniki informacji przestrzennej (SI) i informacji czasowych (TI) dla wideo, zgodnie z definicją w ITU-T P.910: Subiektywne metody oceny jakości wideo dla aplikacji multimedialnych. Dostępny w formacie PDF pod adresem https://www.itu.int/rec/T-REC-P.910-199909-S/en .

Akceptuje następującą opcję:

print_summary

Jeśli ustawiono na 1, statystyki podsumowujące zostaną wydrukowane na konsoli. Domyślnie 0.

11.230.1 Examples

  • Aby obliczyć metryki SI/TI i wydrukować podsumowanie:
    ffmpeg -i input.mp4 -vf siti=print_summary=1 -f null -
    

11.231 smartblur

Rozmyj wideo wejściowe bez wpływu na kontury.

Akceptuje następujące opcje:

luma_radius, lr

Ustaw promień światła. Wartość opcji musi być liczbą zmiennoprzecinkową z zakresu [0.1,5.0], który określa wariancję filtra Gaussa używanego do rozmycia obrazu (wolniej, jeśli jest większy). Wartość domyślna to 1.0.

luma_strength, ls

Ustaw siłę lumy. Wartość opcji musi być liczbą zmiennoprzecinkową z zakresu [-1.0,1.0], która konfiguruje rozmycie. Wartość zawarta w [0.0,1.0] spowoduje rozmycie obrazu, podczas gdy wartość zawarta w [-1.0,0.0] wyostrzy obraz. Wartość domyślna to 1.0.

luma_threshold, lt

Ustaw próg jasności używany jako współczynnik, aby określić, czy piksel powinien być rozmyty, czy nie. Wartość opcji musi być liczbą całkowitą z zakresu [-30,30]. Wartość 0 przefiltruje cały obraz, wartość zawarta w [0,30] przefiltruje płaskie obszary, a wartość zawarta w [-30,0] przefiltruje krawędzie. Wartość domyślna to 0.

chroma_radius, cr

Ustaw promień chrominancji. Wartość opcji musi być liczbą zmiennoprzecinkową z zakresu [0.1,5.0], który określa wariancję filtra Gaussa używanego do rozmycia obrazu (wolniej, jeśli jest większy). Wartość domyślna toluma_radius.

chroma_strength, cs

Ustaw siłę chromatyczną. Wartość opcji musi być liczbą zmiennoprzecinkową z zakresu [-1.0,1.0], która konfiguruje rozmycie. Wartość zawarta w [0.0,1.0] spowoduje rozmycie obrazu, podczas gdy wartość zawarta w [-1.0,0.0] wyostrzy obraz. Wartość domyślna toluma_strength.

chroma_threshold, ct

Ustaw próg chrominancji używany jako współczynnik, aby określić, czy piksel powinien być rozmyty, czy nie. Wartość opcji musi być liczbą całkowitą z zakresu [-30,30]. Wartość 0 przefiltruje cały obraz, wartość zawarta w [0,30] przefiltruje płaskie obszary, a wartość zawarta w [-30,0] przefiltruje krawędzie. Wartość domyślna toluma_threshold.

Jeśli opcja chroma nie jest jawnie ustawiona, ustawiana jest odpowiadająca jej wartość luma.

11.232 sobel

Zastosuj operator Sobela do wejścia strumienia wideo.

Filtr akceptuje następującą opcję:

planes

Ustaw, które płaszczyzny będą przetwarzane, nieprzetworzone płaszczyzny zostaną skopiowane. Domyślna wartość 0xf, wszystkie płaszczyzny będą przetwarzane.

scale

Ustaw wartość, która zostanie pomnożona przez przefiltrowany wynik.

delta

Ustaw wartość, która zostanie dodana do przefiltrowanego wyniku.

11.232.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

11.233 spp

Zastosuj prosty filtr postprocessingu, który kompresuje i dekompresuje obraz na kilka (lub - w przypadkuqualitypoziom 6- wszystkie) przesunięć i uśrednienia wyników.

Filtr akceptuje następujące opcje:

quality

Ustaw jakość. Ta opcja określa liczbę poziomów do uśredniania. Przyjmuje liczbę całkowitą z zakresu 0-6. Jeśli jest ustawiony na 0, filtr nie będzie działał. Wartość 6oznacza wyższą jakość. Dla każdego przyrostu tej wartości prędkość spada o współczynnik około 2. Wartość domyślna to 3.

qp

Wymuś stały parametr kwantyzacji. Jeśli nie jest ustawiony, filtr użyje QP ze strumienia wideo (jeśli jest dostępny).

mode

Ustaw tryb progowania. Dostępne tryby to:

'hard'

Ustaw twardy próg (domyślnie).

'soft'

Ustaw miękkie progi (lepszy efekt wygładzania, ale prawdopodobnie bardziej rozmyty).

use_bframe_qp

Włącz korzystanie z QP z ramek B, jeśli jest ustawione na 1. Użycie tej opcji może powodować migotanie, ponieważ ramki B mają często większe QP. Wartość domyślna to 0(nie włączone).

11.233.1 Commands

Ten filtr obsługuje następujące polecenia:

quality, level

Ustaw poziom jakości. Wartość maxmoże być użyta do ustawienia maksymalnego poziomu, aktualnie 6.

11.234 sr

Skaluj dane wejściowe, stosując jedną z metod superrozdzielczości opartych na splotowych sieciach neuronowych. Obsługiwane modele:

Skrypty szkoleniowe oraz skrypty do zapisywania pliku modelu (.pb) można znaleźć na stronie https://github.com/XueweiMeng/sr/tree/sr_dnn_native . Oryginalne repozytorium znajduje się pod adresem https://github.com/HighVoltageRocknRoll/sr.git .

Pliki modeli natywnych (.model) można generować z plików modeli TensorFlow (.pb) za pomocą tools/python/convert.py

Filtr akceptuje następujące opcje:

dnn_backend

Określ backend DNN, który ma być używany do ładowania i wykonywania modelu. Ta opcja akceptuje następujące wartości:

'native'

Natywna implementacja ładowania i wykonywania DNN.

'tensorflow'

Zaplecze TensorFlow. Aby włączyć ten backend, musisz zainstalować bibliotekę TensorFlow for C (zobacz https://www.tensorflow.org/install/lang_c ) i skonfigurować FFmpeg za pomocą --enable-libtensorflow

Wartość domyślna to 'native„.

model

Ustaw ścieżkę do pliku modelu określając architekturę sieci i jej parametry. Pamiętaj, że różne backendy używają różnych formatów plików. Backend TensorFlow może ładować pliki dla obu formatów, podczas gdy natywny backend może ładować pliki tylko dla swojego formatu.

scale_factor

Ustaw współczynnik skali dla modelu SRCNN. Dozwolone wartości to 2, 3i 4. Wartość domyślna to 2. Współczynnik skali jest niezbędny dla modelu SRCNN, ponieważ akceptuje dane wejściowe przeskalowane za pomocą skalowania dwusześciennego z odpowiednim współczynnikiem skali.

Aby uzyskać pełną funkcjonalność (np. wykonywanie asynchroniczne), użyj filtra dnn_processing .

11.235 ssim

Uzyskaj SSIM (Metryka podobieństwa strukturalnego) między dwoma wejściowymi filmami wideo.

Ten filtr pobiera dwa wejściowe filmy wideo, pierwsze wejście jest uważane za „główne” źródło i jest przekazywane bez zmian do wyjścia. Drugie wejście jest używane jako wideo „odniesienia” do obliczania SSIM.

Aby filtr działał poprawnie, oba wejścia wideo muszą mieć tę samą rozdzielczość i format pikseli. Zakłada również, że oba wejścia mają taką samą liczbę klatek, które są porównywane jedna po drugiej.

Filtr przechowuje obliczony SSIM każdej ramki.

Poniżej znajduje się opis akceptowanych parametrów.

stats_file, f

Jeśli zostanie określony, filtr użyje nazwanego pliku do zapisania SSIM każdej pojedynczej ramki. Gdy nazwa pliku jest równa "-" dane są wysyłane na standardowe wyjście.

Plik drukowany, jeśli stats_filejest zaznaczony, zawiera sekwencję par klucz/wartość postaci key: valuedla każdej porównywanej pary ramek.

Poniżej znajduje się opis każdego pokazanego parametru:

n

kolejny numer ramki wejściowej, zaczynając od 1

Y, U, V, R, G, B

SSIM porównywanych ramek dla składnika określonego przez sufiks.

All

SSIM porównywanych klatek dla całej klatki.

dB

Tak samo jak powyżej, ale w reprezentacji dB.

Ten filtr obsługuje również opcje framesync .

11.235.1 Examples

  • Na przykład:
    movie=ref_movie.mpg, setpts=PTS-STARTPTS [main];
    [main][ref] ssim="stats_file=stats.log" [out]
    

    W tym przykładzie przetwarzany plik wejściowy jest porównywany z plikiem referencyjnymref_movie.mpg. SSIM każdej pojedynczej ramki jest przechowywany wstats.log.

  • Kolejny przykład z psnr i ssim w tym samym czasie:
    ffmpeg -i main.mpg -i ref.mpg -lavfi  "ssim;[0:v][1:v]psnr" -f null -
    
  • Kolejny przykład z różnymi pojemnikami:
    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

Konwersja między różnymi formatami obrazów stereoskopowych.

Filtry akceptują następujące opcje:

in

Ustaw stereoskopowy format obrazu wejściowego.

Dostępne wartości dla wejściowych formatów obrazu to:

'sbsl'

obok siebie równolegle (lewe oko lewe, prawe oko)

'sbsr'

obok siebie crosseye (prawe oko lewe, lewe oko prawe)

'sbs2l'

obok siebie równolegle z rozdzielczością połowy szerokości (lewe oko lewe, prawe oko)

'sbs2r'

obok siebie crosseye z rozdzielczością połowy szerokości (prawe oko lewe, lewe oko prawe)

'abl'
'tbl'

powyżej-poniżej (lewe oko powyżej, prawe oko poniżej)

'abr'
'tbr'

powyżej-poniżej (prawe oko powyżej, lewe oko poniżej)

'ab2l'
'tb2l'

powyżej i poniżej z rozdzielczością połowy wysokości (lewe oko powyżej, prawe oko poniżej)

'ab2r'
'tb2r'

powyżej i poniżej z rozdzielczością połowy wysokości (prawe oko powyżej, lewe oko poniżej)

'al'

naprzemienne ramki (lewe oko jako pierwsze, prawe oko jako drugie)

'ar'

naprzemienne ramki (prawe oko jako pierwsze, lewe oko jako drugie)

'irl'

przeplatane rzędy (lewe oko ma górny rząd, prawe oko zaczyna się od następnego)

'irr'

przeplatane rzędy (prawe oko ma górny rząd, lewe zaczyna się od następnego)

'icl'

kolumny z przeplotem, najpierw lewe oko

'icr'

kolumny z przeplotem, najpierw prawe oko

Wartość domyślna to 'sbsl„.

out

Ustaw stereoskopowy format obrazu wyjściowego.

'sbsl'

obok siebie równolegle (lewe oko lewe, prawe oko)

'sbsr'

obok siebie crosseye (prawe oko lewe, lewe oko prawe)

'sbs2l'

obok siebie równolegle z rozdzielczością połowy szerokości (lewe oko lewe, prawe oko)

'sbs2r'

obok siebie crosseye z rozdzielczością połowy szerokości (prawe oko lewe, lewe oko prawe)

'abl'
'tbl'

powyżej-poniżej (lewe oko powyżej, prawe oko poniżej)

'abr'
'tbr'

powyżej-poniżej (prawe oko powyżej, lewe oko poniżej)

'ab2l'
'tb2l'

powyżej i poniżej z rozdzielczością połowy wysokości (lewe oko powyżej, prawe oko poniżej)

'ab2r'
'tb2r'

powyżej i poniżej z rozdzielczością połowy wysokości (prawe oko powyżej, lewe oko poniżej)

'al'

naprzemienne ramki (lewe oko jako pierwsze, prawe oko jako drugie)

'ar'

naprzemienne ramki (prawe oko jako pierwsze, lewe oko jako drugie)

'irl'

przeplatane rzędy (lewe oko ma górny rząd, prawe oko zaczyna się od następnego)

'irr'

przeplatane rzędy (prawe oko ma górny rząd, lewe zaczyna się od następnego)

'arbg'

anaglif czerwony/niebieski szary (czerwony filtr na lewym oku, niebieski filtr na prawym oku)

'argg'

anaglif czerwony/zielony szary (czerwony filtr na lewym oku, zielony filtr na prawym oku)

'arcg'

anaglif czerwony/cyjan szary (czerwony filtr na lewym oku, cyjan filtr na prawym oku)

'arch'

anaglif czerwony/cyjan w połowie kolorowy (czerwony filtr na lewym oku, cyjan filtr na prawym oku)

'arcc'

kolor anaglifowy czerwony/cyjan (czerwony filtr na lewym oku, cyjan filtr na prawym oku)

'arcd'

anaglifowy kolor czerwony/cyjan zoptymalizowany z odwzorowaniem najmniejszych kwadratów dubois (filtr czerwony na lewym oku, filtr cyjan na prawym oku)

'agmg'

anaglif zielony/magenta szary (zielony filtr na lewym oku, magenta na prawym oku)

'agmh'

anaglif zielony/magenta w połowie kolorowy (zielony filtr na lewym oku, magenta na prawym oku)

'agmc'

anaglif zielony/magenta (zielony filtr na lewym oku, magenta na prawym oku)

'agmd'

anaglifowy kolor zielony/magenta zoptymalizowany z projekcją najmniejszych kwadratów dubois (zielony filtr na lewym oku, filtr magenta na prawym oku)

'aybg'

anaglif żółty/niebieski szary (żółty filtr na lewym oku, niebieski filtr na prawym oku)

'aybh'

anaglif żółty/niebieski półkolorowy (żółty filtr na lewym oku, niebieski filtr na prawym oku)

'aybc'

anaglif żółto/niebieski kolor (żółty filtr na lewym oku, niebieski filtr na prawym oku)

'aybd'

anaglif żółty/niebieski kolor zoptymalizowany z odwzorowaniem najmniejszych kwadratów dubois (żółty filtr na lewym oku, niebieski filtr na prawym oku)

'ml'

wyjście mono (tylko lewe oko)

'mr'

wyjście mono (tylko prawe oko)

'chl'

szachownica, najpierw lewe oko

'chr'

szachownica, najpierw prawe oko

'icl'

kolumny z przeplotem, najpierw lewe oko

'icr'

kolumny z przeplotem, najpierw prawe oko

'hdmi'

Pakiet ramek HDMI

Wartość domyślna to 'arcd„.

11.236.1 Examples

  • Konwertuj wideo wejściowe obok siebie równolegle do anaglifowego żółtego / niebieskiego dubois:
    stereo3d=sbsl:aybd
    
  • Konwertuj wideo wejściowe z góry poniżej (lewe oko powyżej, prawe oko poniżej) na obok siebie crosseye.
    stereo3d=abl:sbsr
    

11.237 streamselect, astreamselect

Wybierz strumienie wideo lub audio.

Filtr akceptuje następujące opcje:

inputs

Ustaw liczbę wejść. Wartość domyślna to 2.

map

Ustaw indeksy wejściowe, aby zmienić mapowanie na wyjścia.

11.237.1 Commands

Filtr streamselecti astreamselectobsługuje następujące polecenia:

map

Ustaw indeksy wejściowe, aby zmienić mapowanie na wyjścia.

11.237.2 Examples

  • Wybierz pierwsze 5 sekund 1. strumień i resztę czasu 2. strumień:
    sendcmd='5.0 streamselect map 1',streamselect=inputs=2:map=0
    
  • Tak samo jak powyżej, ale w przypadku dźwięku:
    asendcmd='5.0 astreamselect map 1',astreamselect=inputs=2:map=0
    

11.238 subtitles

Narysuj napisy na wejściu wideo, korzystając z biblioteki libass.

Aby umożliwić kompilację tego filtra musisz skonfigurować FFmpeg z --enable-libass. Ten filtr wymaga również kompilacji z libavcodec i libavformat, aby przekonwertować przekazany plik napisów do formatu napisów ASS (Advanced Substation Alpha).

Filtr akceptuje następujące opcje:

filename, f

Ustaw nazwę pliku napisów do odczytu. Musi być określony.

original_size

Określ rozmiar oryginalnego wideo, wideo, dla którego skomponowano plik ASS. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Rozmiar wideo" w podręczniku ffmpeg-utils . Ze względu na błąd w arytmetyce proporcji ASS, konieczne jest prawidłowe skalowanie czcionek, jeśli proporcje zostały zmienione.

fontsdir

Ustaw ścieżkę katalogu zawierającą czcionki, których może używać filtr. Te czcionki będą używane niezależnie od tego, czego używa dostawca czcionek.

alpha

Przetwarzaj kanał alfa, domyślnie kanał alfa jest nietknięty.

charenc

Ustaw kodowanie znaków wejściowych napisów. subtitlestylko filtr. Przydatne tylko, jeśli nie UTF-8.

stream_index, si

Ustaw indeks strumienia napisów. subtitlestylko filtr.

force_style

Zastąp domyślny styl lub parametry informacji o skrypcie napisów. Akceptuje ciąg zawierający pary formatu ASS KEY=VALUErozdzielone znakiem ",".

Jeśli pierwszy klucz nie jest określony, zakłada się, że pierwsza wartość określafilename.

Na przykład, aby wyrenderować pliksub.srtna wierzchu wejściowego wideo użyj polecenia:

subtitles=sub.srt

co jest równoznaczne z:

subtitles=filename=sub.srt

Aby renderować domyślny strumień napisów z plikuvideo.mkv, posługiwać się:

subtitles=video.mkv

Aby wyrenderować drugi strumień napisów z tego pliku, użyj:

subtitles=video.mkv:si=1

Aby napisy były przesyłane strumieniowo zsub.srtpojawiają się w 80% przezroczysty niebieski DejaVu Serif, użyj:

subtitles=sub.srt:force_style='Fontname=DejaVu Serif,PrimaryColour=&HCCFF0000'

11.239 super2xsai

Skaluj wejście 2x i wygładzaj przy użyciu algorytmu skalowania grafiki pikselowej Super2xSaI (Scale and Interpolate).

Przydatne do powiększania obrazów pixel art bez zmniejszania ostrości.

11.240 swaprect

Zamień dwa prostokątne obiekty w filmie.

Ten filtr akceptuje następujące opcje:

w

Ustaw szerokość obiektu.

h

Ustaw wysokość obiektu.

x1

Ustaw pierwszy prostokąt x współrzędną.

y1

Ustaw współrzędną y pierwszego prostokąta.

x2

Ustaw drugi prostokąt x współrzędną.

y2

Ustaw drugą współrzędną y prostokąta.

Wszystkie wyrażenia są oceniane raz dla każdej klatki.

Wszystkie opcje to wyrażenia zawierające następujące stałe:

w
h

Wejściowa szerokość i wysokość.

a

tak samo jak w/h

sar

wejściowy współczynnik proporcji próbki

dar

format obrazu wejściowego, taki sam jak ( w/ h) *sar

n

Numer ramki wejściowej, zaczynając od 0.

t

Znacznik czasu wyrażony w sekundach. Jest to NAN, jeśli wejściowy znacznik czasu jest nieznany.

pos

pozycja w pliku ramki wejściowej, NAN jeśli nieznana

11.240.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

11.241 swapuv

Zamień płaszczyznę U i V.

11.242 tblend

Łącz kolejne klatki wideo.

Zobacz mieszankę

11.243 telecine

Zastosuj proces telecine do wideo.

Ten filtr akceptuje następujące opcje:

first_field
'top, t'

najpierw górne pole

'bottom, b'

najpierw dolne pole Wartość domyślna to top.

pattern

Ciąg liczb reprezentujący wzór rozwijany, który chcesz zastosować. Wartość domyślna to 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

Oblicz i narysuj histogram rozkładu kolorów dla wejściowego wideo w czasie.

W przeciwieństwie do filtru histogramu wideo, który pokazuje tylko histogram pojedynczej klatki wejściowej w określonym czasie, ten filtr pokazuje również histogramy z przeszłości liczby klatek zdefiniowanej przez widthopcję.

Obliczony histogram jest reprezentacją rozkładu składowej koloru na obrazie.

Filtr akceptuje następujące opcje:

width, w

Ustaw szerokość wyjścia składowego pojedynczego koloru. Wartość domyślna to 0. Wartość 0szerokości oznacza zostanie pobrana z wejściowego wideo. To również ustawiło liczbę przekazanych histogramów do zachowania. Dozwolony zakres to [0, 8192].

display_mode, d

Ustaw tryb wyświetlania. Przyjmuje następujące wartości:

'stack'

Wykresy składowe dla poszczególnych kolorów są umieszczane pod sobą.

'parade'

Wykresy składowe kolorów są umieszczane obok siebie.

'overlay'

Przedstawia informacje identyczne jak w parade, z tą różnicą, że wykresy przedstawiające składowe kolorów nakładają się bezpośrednio na siebie.

Wartość domyślna to stack.

levels_mode, m

Ustaw tryb. Może być linear, lub logarithmic. Wartość domyślna to linear.

components, c

Ustaw komponenty kolorów do wyświetlenia. Wartość domyślna to 7.

bgopacity, b

Ustaw krycie tła. Wartość domyślna to 0.9.

envelope, e

Pokaż kopertę. Domyślnie jest wyłączone.

ecolor, ec

Ustaw kolor koperty. Wartość domyślna to gold.

slide

Ustaw tryb slajdów.

Dostępne wartości dla slajdu to:

'frame'

Narysuj nową ramkę po osiągnięciu prawej granicy.

'replace'

Wymień stare kolumny na nowe.

'scroll'

Przewiń od prawej do lewej.

'rscroll'

Przewiń od lewej do prawej.

'picture'

Narysuj pojedynczy obrazek.

Wartość domyślna to replace.

11.245 threshold

Zastosuj efekt progowy do strumienia wideo.

Ten filtr wymaga czterech strumieni wideo do wykonania progu. Pierwszy strumień to strumień, który filtrujemy. Drugi strumień przechowuje wartości progowe, trzeci strumień przechowuje wartości minimalne, a ostatni, czwarty strumień przechowuje wartości maksymalne.

Filtr akceptuje następującą opcję:

planes

Ustaw, które płaszczyzny będą przetwarzane, nieprzetworzone płaszczyzny zostaną skopiowane. Domyślna wartość 0xf, wszystkie płaszczyzny będą przetwarzane.

Na przykład, jeśli wartość składnika piksela pierwszego strumienia jest mniejsza niż wartość progowa składnika piksela z drugiego strumienia progowego, wybrana zostanie wartość trzeciego strumienia, w przeciwnym razie zostanie wybrana wartość składnika pikselowego czwartego strumienia.

Za pomocą filtra źródła koloru można wykonać różne rodzaje progowania:

11.245.1 Commands

Ten filtr obsługuje wszystkie opcje jako polecenia .

11.245.2 Examples

  • Próg binarny, jako próg stosuje się kolor szary:
    ffmpeg -i 320x240.avi -f lavfi -i color=gray -f lavfi -i color=black -f lavfi -i color=white -lavfi threshold output.avi
    
  • Odwrócony próg binarny, jako próg stosuje się kolor szary:
    ffmpeg -i 320x240.avi -f lavfi -i color=gray -f lavfi -i color=white -f lavfi -i color=black -lavfi threshold output.avi
    
  • Obetnij próg binarny, używając szarego koloru jako progu:
    ffmpeg -i 320x240.avi -f lavfi -i color=gray -i 320x240.avi -f lavfi -i color=gray -lavfi threshold output.avi
    
  • Próg do zera, używając szarego koloru jako progu:
    ffmpeg -i 320x240.avi -f lavfi -i color=gray -f lavfi -i color=white -i 320x240.avi -lavfi threshold output.avi
    
  • Odwrócony próg do zera, używając szarego koloru jako progu:
    ffmpeg -i 320x240.avi -f lavfi -i color=gray -i 320x240.avi -f lavfi -i color=white -lavfi threshold output.avi
    

11.246 thumbnail

Wybierz najbardziej reprezentatywną klatkę w danej sekwencji kolejnych klatek.

Filtr akceptuje następujące opcje:

n

Ustaw wielkość partii ramek do analizy; w zestawie nramek filtr wybierze jedną z nich, a następnie obsłuży kolejną partię nramek do końca. Wartość domyślna to 100.

Ponieważ filtr śledzi całą sekwencję klatek, wyższa n wartość spowoduje większe zużycie pamięci, więc wysoka wartość nie jest zalecana.

11.246.1 Examples

  • Wyodrębnij jedno zdjęcie na każde 50 klatek:
    thumbnail=50
    
  • Kompletny przykład tworzenia miniatury za pomocą ffmpeg:
    ffmpeg -i in.avi -vf thumbnail,scale=300:200 -frames:v 1 out.png
    

11.247 tile

Ułóż kilka kolejnych ramek razem.

Filtr do włosów może zrobić coś odwrotnego.

Filtr akceptuje następujące opcje:

layout

Ustaw rozmiar siatki w formularzu COLUMNSxROWS. Zakres wynosi do UINT_MAX komórek. Wartość domyślna to 6x5.

nb_frames

Ustaw maksymalną liczbę klatek do renderowania w danym obszarze. Musi być mniejsza lub równa wx h. Wartość domyślna to 0, co oznacza, że ​​zostanie wykorzystany cały obszar.

margin

Ustaw zewnętrzny margines obramowania w pikselach. Zakres wynosi od 0 do 1024. Wartość domyślna to 0.

padding

Ustaw wewnętrzną grubość obramowania (tzn. liczbę pikseli między ramkami). Aby uzyskać bardziej zaawansowane opcje dopełnienia (takie jak różne wartości dla krawędzi), zapoznaj się z filtrem wideo padów. Zakres wynosi od 0 do 1024. Wartość domyślna to 0.

color

Określ kolor nieużywanego obszaru. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Color" w podręczniku ffmpeg-utils . Domyślna wartość colorto „czarny”.

overlap

Ustaw liczbę klatek, które mają się nakładać, gdy kilka kolejnych klatek będzie się układać razem. Wartość musi znajdować się między 0i nb_frames - 1. Wartość domyślna to 0.

init_padding

Ustaw liczbę klatek, które będą początkowo puste przed wyświetleniem pierwszej klatki wyjściowej. Kontroluje to, jak szybko otrzymamy pierwszą klatkę wyjściową. Wartość musi znajdować się między 0i nb_frames - 1. Wartość domyślna to 0.

11.247.1 Examples

  • Twórz kafelki 8x8 PNG wszystkich klatek kluczowych (-skip_frame nokey) w filmie:
    ffmpeg -skip_frame nokey -i file.avi -vf 'scale=128:72,tile=8x8' -an -vsync 0 keyframes%03d.png
    

    The-vsync 0jest konieczne, aby zapobiec ffmpegduplikowaniu każdej ramki wyjściowej w celu dostosowania pierwotnie wykrytej liczby klatek na sekundę.

  • Wyświetlaj 5obrazy w obszarze 3x2ramek, z 7pikselami między nimi i 2pikselami początkowego marginesu, używając mieszanych opcji płaskich i nazwanych:
    tile=3x2:nb_frames=5:padding=7:margin=2
    

11.248 tinterlace

Wykonuj różne rodzaje czasowego przeplotu pól.

Klatki są liczone począwszy od 1, więc pierwsza ramka wejściowa jest uważana za nieparzystą.

Filtr akceptuje następujące opcje:

mode

Określ tryb przeplotu. Tę opcję można również określić jako samą wartość. Zobacz poniżej listę wartości dla tej opcji.

Dostępne wartości to:

'merge, 0'

Przenieś nieparzyste klatki do górnego pola, a nawet do dolnego, generując klatkę o podwójnej wysokości z połową szybkości klatek.

 ------> 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'

Wyprowadzaj tylko nieparzyste klatki, parzyste klatki są odrzucane, generując klatkę o niezmienionej wysokości z połową szybkości klatek.

 ------> 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'

Wyprowadza tylko parzyste klatki, nieparzyste klatki są odrzucane, generując klatkę o niezmienionej wysokości z połową szybkości klatek.

 ------> 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'

Rozszerz każdą klatkę do pełnej wysokości, ale dopełnij naprzemienne linie kolorem czarnym, generując klatkę o podwójnej wysokości przy tej samej wejściowej liczbie klatek na sekundę.

 ------> 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'

Przeplataj górne pole z klatek nieparzystych z dolnym polem z klatek parzystych, generując klatkę o niezmienionej wysokości z połową szybkości klatek.

 ------> 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'

Przeplataj dolne pole z klatek nieparzystych z górnym polem z klatek parzystych, generując klatkę o niezmienionej wysokości z połową szybkości klatek.

 ------> 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'

Podwójna liczba klatek na sekundę przy niezmienionej wysokości. Wstawiane są ramki, z których każda zawiera drugie pole czasowe z poprzedniej ramki wejściowej i pierwsze pole czasowe z następnej ramki wejściowej. Ten tryb opiera się na fladze top_field_first. Przydatne w przypadku wyświetlaczy wideo z przeplotem bez synchronizacji pola.

 ------> 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'

Przenieś nieparzyste klatki do górnego pola, a nawet do dolnego pola, generując klatkę o podwójnej wysokości przy tej samej liczbie klatek na sekundę.

 ------> 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

Wartości liczbowe są przestarzałe, ale są akceptowane ze względu na zgodność z poprzednimi wersjami.

Tryb domyślny to merge.

flags

Określ flagi wpływające na proces filtrowania.

Dostępna wartość dla flagsto:

low_pass_filter, vlpf

Włącz w filtrze liniowe pionowe filtrowanie dolnoprzepustowe. Pionowe filtrowanie dolnoprzepustowe jest wymagane podczas tworzenia miejsca docelowego z przeplotem ze źródła progresywnego, które zawiera pionowe szczegóły o wysokiej częstotliwości. Filtrowanie zredukuje „twitter” z przeplotem i wzór mory.

complex_filter, cvlpf

Włącz złożone pionowe filtrowanie dolnoprzepustowe. Zmniejszy to nieco mniej przeplotu „twittera” i wzorów mory, ale lepiej zachowa szczegóły i subiektywne wrażenie ostrości.

bypass_il

Pomiń już klatki z przeplotem, dostosuj tylko szybkość klatek.

Pionowe filtrowanie dolnoprzepustowe i pomijanie już przeplatanych ramek można włączyć tylko dlamode interleave_topi interleave_bottom.

11.249 tmedian

Wybierz medianę pikseli z kilku kolejnych wejściowych klatek wideo.

Filtr akceptuje następujące opcje:

radius

Ustaw promień filtra mediany. Wartość domyślna to 1. Dozwolony zakres to od 1 do 127.

planes

Ustaw samoloty do filtrowania. Wartość domyślna to 15, według której przetwarzane są wszystkie płaszczyzny.

percentile

Ustaw medianę percentyla. Wartość domyślna to 0.5. Domyślna wartość 0.5wybierze zawsze wartości mediany, podczas gdy 0wybierze wartości minimalne i 1maksymalne.

11.249.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako komendy , wyłączając opcję radius.

11.250 tmidequalizer

Zastosuj efekt Temporal Midway Video Equalization.

Wyrównanie obrazu w połowie drogi dostosowuje sekwencję klatek wideo tak, aby miały te same histogramy, zachowując jednocześnie ich dynamikę w jak największym stopniu. Jest to przydatne np. do dopasowywania ekspozycji z sekwencji klatek wideo.

Ten filtr akceptuje następującą opcję:

radius

Ustaw promień filtrowania. Wartość domyślna to 5. Dozwolony zakres to od 1 do 127.

sigma

Ustaw sigma filtrowania. Wartość domyślna to 0.5. To kontroluje siłę filtrowania. Ustawienie tej opcji na 0 skutecznie nic nie robi.

planes

Ustaw samoloty do przetworzenia. Domyślnie jest to 15, co oznacza wszystkie dostępne płaszczyzny.

11.251 tmix

Miksuj kolejne klatki wideo.

Poniżej znajduje się opis akceptowanych opcji.

frames

Liczba kolejnych klatek do zmiksowania. Jeśli nie jest określony, domyślnie wynosi 3.

weights

Określ wagę każdej wejściowej klatki wideo. Każda waga jest oddzielona spacją. Jeśli liczba odważników jest mniejsza niż liczba framesostatnio określonych odważników, zostanie użyta dla wszystkich pozostałych nieustawionych odważników.

scale

Określ skalę, jeśli jest ustawiona, zostanie pomnożona przez sumę każdej wagi pomnożoną przez wartości pikseli, aby uzyskać ostateczną docelową wartość piksela. Domyślnie scalejest skalowane automatycznie do sumy wag.

planes

Ustaw samoloty do filtrowania. Domyślność to wszystko. Dozwolony zakres to od 0 do 15.

11.251.1 Examples

  • Średnio 7 kolejnych klatek:
    tmix=frames=7:weights="1 1 1 1 1 1 1"
    
  • Zastosuj prosty splot czasowy:
    tmix=frames=3:weights="-1 3 -1"
    
  • Podobnie jak powyżej, ale pokazujące tylko różnice czasowe:
    tmix=frames=3:weights="-1 2 -1":scale=1
    

11.251.2 Commands

Ten filtr obsługuje następujące polecenia:

weights
scale
planes

Składnia jest taka sama jak opcja o tej samej nazwie.

11.252 tonemap

Kolory mapy tonalnej z różnych zakresów dynamicznych.

Ten filtr oczekuje danych w postaci zmiennoprzecinkowej pojedynczej precyzji, ponieważ musi operować (i może wyprowadzać) wartości spoza zakresu. Potrzebny jest inny filtr, taki jak zscale , aby przekonwertować wynikową ramkę na użyteczny format.

Zaimplementowane algorytmy mapowania tonalnego działają tylko w świetle liniowym, dlatego dane wejściowe powinny być wcześniej linearyzowane (i możliwie poprawnie otagowane).

ffmpeg -i INPUT -vf zscale=transfer=linear,tonemap=clip,zscale=transfer=bt709,format=yuv420p OUTPUT

11.252.1 Options

Filtr akceptuje następujące opcje.

tonemap

Ustaw algorytm mapy tonalnej do użycia.

Możliwe wartości to:

none

Nie stosuj żadnej mapy tonalnej, tylko zmniejsz nasycenie jasnych pikseli.

clip

Przytnij wszystkie wartości spoza zakresu. Użyj go, aby uzyskać idealną dokładność kolorów dla wartości z zakresu, jednocześnie zniekształcając wartości spoza zakresu.

linear

Rozciągnij całą gamę odniesienia do liniowej wielokrotności wyświetlacza.

gamma

Dopasuj logarytmiczny transfer między krzywymi tonów.

reinhard

Zachowaj ogólną jasność obrazu za pomocą prostej krzywej, używając kontrastu nieliniowego, co skutkuje spłaszczeniem szczegółów i pogorszeniem dokładności kolorów.

hable

Zachowaj zarówno ciemne, jak i jasne detale lepiej niż reinhard, kosztem lekkiego przyciemnienia wszystkiego. Użyj go, gdy zachowanie szczegółów jest ważniejsze niż dokładność kolorów i jasności.

mobius

Płynnie mapuj wartości spoza zakresu, zachowując w jak największym stopniu kontrast i kolory dla materiału z zakresu. Użyj go, gdy dokładność kolorów jest ważniejsza niż zachowanie szczegółów.

Wartość domyślna to brak.

param

Dostrój algorytm mapowania tonów.

Ma to wpływ na następujące algorytmy:

none

Zignorowano.

linear

Określa współczynnik skali używany podczas rozciągania. Domyślnie 1,0.

gamma

Określa wykładnik funkcji. Domyślnie 1.8.

clip

Określ dodatkowy współczynnik liniowy do pomnożenia przez sygnał przed obcięciem. Domyślnie 1,0.

reinhard

Określ lokalny współczynnik kontrastu w piku wyświetlacza. Domyślnie 0,5, co oznacza, że ​​wartości w gamie będą o połowę jaśniejsze niż podczas przycinania.

hable

Zignorowano.

mobius

Określ punkt przejścia od transformacji liniowej do transformacji Mobiusa. Każda wartość poniżej tego punktu gwarantuje odwzorowanie 1:1. Im wyższa wartość, tym dokładniejszy będzie wynik, kosztem utraty jasnych szczegółów. Domyślnie 0,3, co ze względu na strome początkowe nachylenie nadal dość dokładnie zachowuje kolory z zakresu.

desat

Zastosuj desaturację dla świateł, które przekraczają ten poziom jasności. Im wyższy parametr, tym więcej informacji o kolorze zostanie zachowanych. To ustawienie pomaga zapobiegać nienaturalnemu wyblaknięciu kolorów w przypadku super jasnych obszarów poprzez (płynnie) zamianę w biel. Dzięki temu obrazy wydają się bardziej naturalne, kosztem zmniejszenia informacji o kolorach spoza zakresu.

Domyślna wartość 2.0 jest nieco konserwatywna i dotyczy głównie nieba lub powierzchni nasłonecznionych. Ustawienie 0.0 wyłącza tę opcję.

Ta opcja działa tylko wtedy, gdy ramka wejściowa ma obsługiwany znacznik koloru.

peak

Zastąp sygnał/nominalny/szczyt odniesienia tą wartością. Przydatne, gdy osadzone informacje o pikach w wyświetlanych metadanych nie są wiarygodne lub gdy mapowanie tonów z niższego zakresu do wyższego zakresu.

11.253 tpad

Tymczasowo nagraj klatki wideo.

Filtr akceptuje następujące opcje:

start

Określ liczbę klatek opóźnionych przed wejściowym strumieniem wideo. Wartość domyślna to 0.

stop

Określ liczbę klatek dopełnienia po wejściowym strumieniu wideo. Ustaw na -1, aby padać w nieskończoność. Wartość domyślna to 0.

start_mode

Ustaw rodzaj ramek dodawanych na początku strumienia. Może być albo addlub clone. Z addramkami w jednolitym kolorze są dodawane. Z cloneramkami są klony pierwszej ramki. Wartość domyślna to add.

stop_mode

Ustaw rodzaj ramek dodawanych na końcu strumienia. Może być albo addlub clone. Z addramkami w jednolitym kolorze są dodawane. Z cloneramkami są klony ostatniej ramki. Wartość domyślna to add.

start_duration, stop_duration

Określ czas trwania opóźnienia startu/stopu. Zobacz (ffmpeg-utils) sekcję Czas trwania w podręczniku ffmpeg-utils(1), aby poznać akceptowaną składnię. Te opcje zastępują starti stop. Wartość domyślna to 0.

color

Określ kolor wyściełanego obszaru. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Color" w podręczniku ffmpeg-utils .

Domyślna wartość colorto „czarny”.

11.254 transpose

Transponuj wiersze z kolumnami w wejściowym wideo i opcjonalnie je odwróć.

Przyjmuje następujące parametry:

dir

Określ kierunek transpozycji.

Może przyjąć następujące wartości:

'0, 4, cclock_flip'

Obróć o 90 stopni w kierunku przeciwnym do ruchu wskazówek zegara i odwróć w pionie (domyślnie), czyli:

L.R     L.l
. . ->  . .
l.r     R.r
'1, 5, clock'

Obróć o 90 stopni zgodnie z ruchem wskazówek zegara, czyli:

L.R     l.L
. . ->  . .
l.r     r.R
'2, 6, cclock'

Obróć o 90 stopni w lewo, czyli:

L.R     R.r
. . ->  . .
l.r     L.l
'3, 7, clock_flip'

Obróć o 90 stopni zgodnie z ruchem wskazówek zegara i odwróć w pionie, czyli:

L.R     r.R
. . ->  . .
l.r     l.L

W przypadku wartości pomiędzy 4-7 transpozycja jest wykonywana tylko wtedy, gdy geometria wejściowego wideo jest pionowa, a nie pozioma. Te wartości są przestarzałe, passthroughzamiast tego należy użyć opcji.

Wartości liczbowe są przestarzałe i należy je pominąć na rzecz stałych symbolicznych.

passthrough

Nie stosuj transpozycji, jeśli geometria wejściowa jest zgodna z geometrią określoną przez określoną wartość. Przyjmuje następujące wartości:

'none'

Zawsze stosuj transpozycję.

'portrait'

Zachowaj geometrię pionową (gdy height>= width).

'landscape'

Zachowaj geometrię krajobrazu (gdy width>= height).

Wartość domyślna to none.

Na przykład, aby obrócić o 90 stopni zgodnie z ruchem wskazówek zegara i zachować układ pionowy:

transpose=dir=1:passthrough=portrait

Powyższe polecenie można również określić jako:

transpose=1:portrait

11.255 transpose_npp

Transponuj wiersze z kolumnami w wejściowym wideo i opcjonalnie je odwróć. Aby uzyskać więcej szczegółowych przykładów, zobacz filtr wideo transponowania , który ma w większości te same opcje.

Przyjmuje następujące parametry:

dir

Określ kierunek transpozycji.

Może przyjąć następujące wartości:

'cclock_flip'

Obróć o 90 stopni w kierunku przeciwnym do ruchu wskazówek zegara i odwróć w pionie. (domyślna)

'clock'

Obróć o 90 stopni zgodnie z ruchem wskazówek zegara.

'cclock'

Obróć o 90 stopni w lewo.

'clock_flip'

Obróć o 90 stopni zgodnie z ruchem wskazówek zegara i odwróć w pionie.

passthrough

Nie stosuj transpozycji, jeśli geometria wejściowa jest zgodna z geometrią określoną przez określoną wartość. Przyjmuje następujące wartości:

'none'

Zawsze stosuj transpozycję. (domyślna)

'portrait'

Zachowaj geometrię pionową (gdy height>= width).

'landscape'

Zachowaj geometrię krajobrazu (gdy width>= height).

11.256 trim

Przytnij dane wejściowe tak, aby dane wyjściowe zawierały jedną ciągłą podczęść danych wejściowych.

Przyjmuje następujące parametry:

start

Określ czas rozpoczęcia zachowanej sekcji, tzn. ramka ze znacznikiem czasu startbędzie pierwszą ramką w wyjściu.

end

Określ czas pierwszej klatki, która zostanie pominięta, tzn. klatka bezpośrednio poprzedzająca tę ze znacznikiem czasu endbędzie ostatnią klatką w wyjściu.

start_pts

Jest to to samo co start, z tą różnicą, że ta opcja ustawia początkowy znacznik czasu w jednostkach podstawy czasu zamiast sekundach.

end_pts

Jest to to samo co end, z tą różnicą, że ta opcja ustawia znacznik czasu zakończenia w jednostkach podstawy czasu zamiast w sekundach.

duration

Maksymalny czas trwania wyjścia w sekundach.

start_frame

Numer pierwszej klatki, która powinna zostać przekazana do wyjścia.

end_frame

Numer pierwszej klatki, która powinna zostać usunięta.

start,end, orazdurationsą wyrażone jako specyfikacje czasu trwania; zobacz (ffmpeg-utils) sekcję Czas trwania w podręczniku ffmpeg-utils(1), aby poznać akceptowaną składnię.

Zwróć uwagę, że pierwsze dwa zestawy opcji początku/końca orazduration spójrz na znacznik czasu klatki, podczas gdy warianty _frame po prostu zliczają klatki, które przechodzą przez filtr. Pamiętaj też, że ten filtr nie modyfikuje znaczników czasu. Jeśli chcesz, aby wyjściowe znaczniki czasu zaczynały się od zera, wstaw filtr setpts po filtrze przycinania.

Jeśli ustawionych jest wiele opcji początku lub końca, ten filtr stara się być zachłanny i zachować wszystkie klatki, które pasują do co najmniej jednego z określonych ograniczeń. Aby jednocześnie zachować tylko tę część, która pasuje do wszystkich wiązań, połącz wiele filtrów przycinania.

Wartości domyślne są takie, że wszystkie dane wejściowe są zachowywane. Można więc ustawić np. tylko wartości końcowe, aby zachować wszystko przed określonym czasem.

Przykłady:

  • Upuść wszystko z wyjątkiem drugiej minuty wprowadzania danych:
    ffmpeg -i INPUT -vf trim=60:120
    
  • Zachowaj tylko pierwszą sekundę:
    ffmpeg -i INPUT -vf trim=duration=1
    

11.257 unpremultiply

Zastosuj efekt alpha unpremultiply do wejściowego strumienia wideo, używając pierwszej płaszczyzny drugiego strumienia jako alfa.

Oba strumienie muszą mieć te same wymiary i ten sam format pikseli.

Filtr akceptuje następującą opcję:

planes

Ustaw, które płaszczyzny będą przetwarzane, nieprzetworzone płaszczyzny zostaną skopiowane. Domyślna wartość 0xf, wszystkie płaszczyzny będą przetwarzane.

Jeśli format ma 1 lub 2 składowe, to luma wynosi bit 0. Jeżeli format ma 3 lub 4 składowe: dla formatów RGB bit 0 jest zielony, bit 1 jest niebieski, a bit 2 jest czerwony; dla formatów YUV bit 0 to luma, bit 1 to chroma-U, a bit 2 to chroma-V. Jeśli jest obecny, kanał alfa jest zawsze ostatnim bitem.

inplace

Nie wymagaj drugiego wejścia do przetwarzania, zamiast tego użyj płaszczyzny alfa ze strumienia wejściowego.

11.258 unsharp

Wyostrz lub rozmyj wideo wejściowe.

Przyjmuje następujące parametry:

luma_msize_x, lx

Ustaw poziomą wielkość luma matrix. Musi to być nieparzysta liczba całkowita z przedziału od 3 do 23. Wartość domyślna to 5.

luma_msize_y, ly

Ustaw pionowy rozmiar matrycy luma. Musi to być nieparzysta liczba całkowita z przedziału od 3 do 23. Wartość domyślna to 5.

luma_amount, la

Ustaw siłę efektu luma. Musi to być liczba zmiennoprzecinkowa, rozsądne wartości mieszczą się w przedziale od -1,5 do 1,5.

Wartości ujemne spowodują rozmycie obrazu wejściowego, wartości dodatnie go wyostrzą, wartość zero wyłączy efekt.

Wartość domyślna to 1.0.

chroma_msize_x, cx

Ustaw rozmiar poziomy matrycy chromatycznej. Musi to być nieparzysta liczba całkowita z przedziału od 3 do 23. Wartość domyślna to 5.

chroma_msize_y, cy

Ustaw pionowy rozmiar matrycy chromatycznej. Musi to być nieparzysta liczba całkowita z przedziału od 3 do 23. Wartość domyślna to 5.

chroma_amount, ca

Ustaw siłę efektu chromatycznego. Musi to być liczba zmiennoprzecinkowa, rozsądne wartości mieszczą się w przedziale od -1,5 do 1,5.

Wartości ujemne spowodują rozmycie obrazu wejściowego, wartości dodatnie go wyostrzą, wartość zero wyłączy efekt.

Wartość domyślna to 0,0.

alpha_msize_x, ax

Ustaw rozmiar poziomy macierzy alfa. Musi to być nieparzysta liczba całkowita z przedziału od 3 do 23. Wartość domyślna to 5.

alpha_msize_y, ay

Ustaw rozmiar pionowy macierzy alfa. Musi to być nieparzysta liczba całkowita z przedziału od 3 do 23. Wartość domyślna to 5.

alpha_amount, aa

Ustaw siłę efektu alfa. Musi to być liczba zmiennoprzecinkowa, rozsądne wartości mieszczą się w przedziale od -1,5 do 1,5.

Wartości ujemne spowodują rozmycie obrazu wejściowego, wartości dodatnie go wyostrzą, wartość zero wyłączy efekt.

Wartość domyślna to 0,0.

Wszystkie parametry są opcjonalne i domyślnie odpowiadają ciągowi „5:5:1.0:5:5:0.0”.

11.258.1 Examples

  • Zastosuj mocny efekt wyostrzenia lumy:
    unsharp=luma_msize_x=7:luma_msize_y=7:luma_amount=2.5
    
  • Zastosuj mocne rozmycie zarówno parametrów luma, jak i chroma:
    unsharp=7:7:-2:7:7:-2
    

11.259 untile

Rozłóż wideo złożone z obrazów sąsiadujących na poszczególne obrazy.

Szybkość klatek wyjściowego wideo to szybkość klatek wejściowego wideo pomnożona przez liczbę płytek.

Ten filtr działa odwrotnie niż kafelek .

Filtr akceptuje następujące opcje:

layout

Ustaw rozmiar siatki (tzn. liczbę wierszy i kolumn). Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Rozmiar wideo" w podręczniku ffmpeg-utils .

11.259.1 Examples

  • Utwórz jednosekundowy film z pliku obrazu składającego się z 25 klatek ułożonych pionowo, jak na analogowej taśmie filmowej:
    ffmpeg -r 1 -i image.jpg -vf untile=1x25 movie.mkv
    

11.260 uspp

Zastosuj ultra wolny/prosty filtr postprocessingu, który kompresuje i dekompresuje obraz na kilka (lub - w przypadkuqualitypoziom 8- wszystkie) przesunięć i uśrednienia wyników.

Sposób, w jaki różni się to od zachowania spp, polega na tym, że uspp faktycznie koduje i dekoduje każdy przypadek za pomocą libavcodec Snow, podczas gdy spp używa uproszczonego intra tylko 8x8 DCT, podobnego do MJPEG.

Ten filtr jest dostępny tylko w ffmpeg w wersji 4.4 lub wcześniejszej.

Filtr akceptuje następujące opcje:

quality

Ustaw jakość. Ta opcja określa liczbę poziomów do uśredniania. Przyjmuje liczbę całkowitą z zakresu 0-8. Jeśli jest ustawiony na 0, filtr nie będzie działał. Wartość 8oznacza wyższą jakość. Dla każdego przyrostu tej wartości prędkość spada o współczynnik około 2. Wartość domyślna to 3.

qp

Wymuś stały parametr kwantyzacji. Jeśli nie jest ustawiony, filtr użyje QP ze strumienia wideo (jeśli jest dostępny).

11.261 v360

Konwertuj filmy 360 między różnymi formatami.

Filtr akceptuje następujące opcje:

input
output

Ustaw format wejścia/wyjścia wideo.

Dostępne formaty:

'e'
'equirect'

Rzut równokątny.

'c3x2'
'c6x1'
'c1x6'

Cubemapa z układem 3x2/6x1/1x6.

Opcje specyficzne dla formatu:

in_pad
out_pad

Ustaw proporcję wypełnienia dla cubemapy wejścia/wyjścia. Wartości w ułamkach dziesiętnych.

Przykładowe wartości:

'0'

Bez wyściółki.

'0.01'

1% twarzy to wyściółka. Na przykład przy rozdzielczości 1920x1280 rozmiar twarzy będzie wynosił 640x640, a dopełnienie będzie miało 3 piksele z każdej strony. (640 * 0,01 = 6 pikseli)

Wartość domyślna to '0' . Maksymalna wartość to '0.1' .

fin_pad
fout_pad

Ustaw stałe dopełnienie dla cubemapy wejścia/wyjścia. Wartości w pikselach.

Wartość domyślna to '0' . Jeśli jest większa niż zero, zastępuje inne opcje dopełnienia.

in_forder
out_forder

Ustaw kolejność ścian dla cubemapy wejścia/wyjścia. Wybierz jeden kierunek dla każdej pozycji.

Oznaczenie kierunków:

'r'

prawo

'l'

lewy

'u'

w górę

'd'

na dół

'f'

Naprzód

'b'

plecy

Wartość domyślna to 'rludfb' .

in_frot
out_frot

Ustaw rotację ścian dla wejścia/wyjścia cubemapy. Wybierz jeden kąt dla każdej pozycji.

Oznaczenie kątów:

'0'

0 stopni zgodnie z ruchem wskazówek zegara

'1'

90 stopni zgodnie z ruchem wskazówek zegara

'2'

180 stopni zgodnie z ruchem wskazówek zegara

'3'

270 stopni zgodnie z ruchem wskazówek zegara

Wartość domyślna to '000000' .

'eac'

Równokątowa mapa sześcienna.

'flat'
'gnomonic'
'rectilinear'

Zwykłe wideo.

Opcje specyficzne dla formatu:

h_fov
v_fov
d_fov

Ustaw wyjściowe pole widzenia poziome/pionowe/ukośne. Wartości w stopniach.

Jeśli ustawione jest ukośne pole widzenia, zastępuje ono poziome i pionowe pole widzenia.

ih_fov
iv_fov
id_fov

Ustaw wejściowe poziome/pionowe/ukośne pole widzenia. Wartości w stopniach.

Jeśli ustawione jest ukośne pole widzenia, zastępuje ono poziome i pionowe pole widzenia.

'dfisheye'

Podwójne „rybie oko”.

Opcje specyficzne dla formatu:

h_fov
v_fov
d_fov

Ustaw wyjściowe pole widzenia poziome/pionowe/ukośne. Wartości w stopniach.

Jeśli ustawione jest ukośne pole widzenia, zastępuje ono poziome i pionowe pole widzenia.

ih_fov
iv_fov
id_fov

Ustaw wejściowe poziome/pionowe/ukośne pole widzenia. Wartości w stopniach.

Jeśli ustawione jest ukośne pole widzenia, zastępuje ono poziome i pionowe pole widzenia.

'barrel'
'fb'
'barrelsplit'

Formaty 360 Facebooka.

'sg'

Format stereograficzny.

Opcje specyficzne dla formatu:

h_fov
v_fov
d_fov

Ustaw wyjściowe pole widzenia poziome/pionowe/ukośne. Wartości w stopniach.

Jeśli ustawione jest ukośne pole widzenia, zastępuje ono poziome i pionowe pole widzenia.

ih_fov
iv_fov
id_fov

Ustaw wejściowe poziome/pionowe/ukośne pole widzenia. Wartości w stopniach.

Jeśli ustawione jest ukośne pole widzenia, zastępuje ono poziome i pionowe pole widzenia.

'mercator'

Format Mercatora.

'ball'

Forma kulkowa, dająca znaczne zniekształcenie ku tyłowi.

'hammer'

Format odwzorowania mapy Hammer-Aitoff.

'sinusoidal'

Format odwzorowania mapy sinusoidalnej.

'fisheye'

Projekcja rybiego oka.

Opcje specyficzne dla formatu:

h_fov
v_fov
d_fov

Ustaw wyjściowe pole widzenia poziome/pionowe/ukośne. Wartości w stopniach.

Jeśli ustawione jest ukośne pole widzenia, zastępuje ono poziome i pionowe pole widzenia.

ih_fov
iv_fov
id_fov

Ustaw wejściowe poziome/pionowe/ukośne pole widzenia. Wartości w stopniach.

Jeśli ustawione jest ukośne pole widzenia, zastępuje ono poziome i pionowe pole widzenia.

'pannini'

Projekcja Panniniego.

Opcje specyficzne dla formatu:

h_fov

Ustaw wyjściowy parametr pannini.

ih_fov

Ustaw wejściowy parametr pannini.

'cylindrical'

Rzut cylindryczny.

Opcje specyficzne dla formatu:

h_fov
v_fov
d_fov

Ustaw wyjściowe pole widzenia poziome/pionowe/ukośne. Wartości w stopniach.

Jeśli ustawione jest ukośne pole widzenia, zastępuje ono poziome i pionowe pole widzenia.

ih_fov
iv_fov
id_fov

Ustaw wejściowe poziome/pionowe/ukośne pole widzenia. Wartości w stopniach.

Jeśli ustawione jest ukośne pole widzenia, zastępuje ono poziome i pionowe pole widzenia.

'perspective'

Projekcja perspektywiczna. (tylko wyjście)

Opcje specyficzne dla formatu:

v_fov

Ustaw parametr perspektywy.

'tetrahedron'

Projekcja czworościanu.

'tsp'

Ścięty rzut ostrosłupa kwadratowego.

'he'
'hequirect'

Rzut półprostokątny.

'equisolid'

Format równosolidny.

Opcje specyficzne dla formatu:

h_fov
v_fov
d_fov

Ustaw wyjściowe pole widzenia poziome/pionowe/ukośne. Wartości w stopniach.

Jeśli ustawione jest ukośne pole widzenia, zastępuje ono poziome i pionowe pole widzenia.

ih_fov
iv_fov
id_fov

Ustaw wejściowe poziome/pionowe/ukośne pole widzenia. Wartości w stopniach.

Jeśli ustawione jest ukośne pole widzenia, zastępuje ono poziome i pionowe pole widzenia.

'og'

Format ortogonalny.

Opcje specyficzne dla formatu:

h_fov
v_fov
d_fov

Ustaw wyjściowe pole widzenia poziome/pionowe/ukośne. Wartości w stopniach.

Jeśli ustawione jest ukośne pole widzenia, zastępuje ono poziome i pionowe pole widzenia.

ih_fov
iv_fov
id_fov

Ustaw wejściowe poziome/pionowe/ukośne pole widzenia. Wartości w stopniach.

Jeśli ustawione jest ukośne pole widzenia, zastępuje ono poziome i pionowe pole widzenia.

'octahedron'

Rzut ośmiościanu.

'cylindricalea'

Cylindryczna projekcja równopowierzchniowa.

interp

Ustaw metodę interpolacji.
Uwaga: bardziej złożone metody interpolacji wymagają znacznie więcej pamięci do uruchomienia.

Dostępne metody:

'near'
'nearest'

Najbliższy sąsiad.

'line'
'linear'

Interpolacja dwuliniowa.

'lagrange9'

Interpolacja Lagrange9.

'cube'
'cubic'

Interpolacja dwusześcienna.

'lanc'
'lanczos'

Interpolacja Lanczosa.

'sp16'
'spline16'

Interpolacja Spline16.

'gauss'
'gaussian'

Interpolacja Gaussa.

'mitchell'

Interpolacja Mitchella.

Wartość domyślna to 'line' .

w
h

Ustaw wyjściową rozdzielczość wideo.

Domyślna rozdzielczość zależy od formatów.

in_stereo
out_stereo

Ustaw format wejścia/wyjścia stereo.

'2d'

monochromatyczny 2D

'sbs'

Obok siebie

'tb'

Góra dół

Wartość domyślna to '2d' dla formatu wejściowego i wyjściowego.

yaw
pitch
roll

Ustaw obrót wyjściowego wideo. Wartości w stopniach.

rorder

Ustaw kolejność rotacji dla wyjściowego wideo. Wybierz jeden przedmiot dla każdej pozycji.

'y, Y'

myszkować

'p, P'

poziom

'r, R'

rolka

Wartość domyślna to 'ypr' .

h_flip
v_flip
d_flip

Odwróć wyjściowe wideo poziomo (zamienia lewo-prawo)/pionowo (zamienia górę-dół)/dogłębnie (zamienia wstecz-do przodu). Wartości logiczne.

ih_flip
iv_flip

Ustaw, czy wejście wideo ma być odwrócone poziomo/pionowo. Wartości logiczne.

in_trans

Ustaw, czy wejściowy sygnał wideo jest transponowany. Wartość logiczna, domyślnie wyłączona.

out_trans

Ustaw, czy wyjściowy sygnał wideo ma być transponowany. Wartość logiczna, domyślnie wyłączona.

h_offset
v_offset

Ustaw wyjściowe przesunięcie w poziomie/pionie poza osią. Wartość domyślna to 0. Dozwolony zakres to od -1 do 1.

alpha_mask

Zbuduj maskę w płaszczyźnie alfa dla wszystkich niezmapowanych pikseli, oznaczając je w pełni przezroczystymi. Wartość logiczna, domyślnie wyłączona.

reset_rot

Zresetuj obrót wyjściowego wideo. Wartość logiczna, domyślnie wyłączona.

11.261.1 Examples

  • Konwertuj wideo w formacie equirectangular na cubemapę z układem 3x2 i wypełnieniem 1% za pomocą interpolacji dwusześciennej:
    ffmpeg -i input.mkv -vf v360=e:c3x2:cubic:out_pad=0.01 output.mkv
    
  • Wyodrębnij widok z tyłu mapy sześciennej równokątowej:
    ffmpeg -i input.mkv -vf v360=eac:flat:yaw=180 output.mkv
    
  • Konwertuj transponowaną i odwróconą w poziomie Equi-Angular Cubemap w formacie stereo side-by-side na format stereo równoprostokątny góra-dół:
    v360=eac:equirect:in_stereo=sbs:in_trans=1:ih_flip=1:out_stereo=tb
    

11.261.2 Commands

Ten filtr obsługuje podzbiór powyższych opcji jako komendy .

11.262 vaguedenoiser

Zastosuj denoiser na bazie falek.

Przekształca każdą klatkę z wejścia wideo na domenę falkową, używając Cohen-Daubechies-Feauveau 9/7. Następnie stosuje pewne filtrowanie do uzyskanych współczynników. Następnie wykonuje odwrotną transformację falkową. Ze względu na właściwości falki powinien dawać ładny, wygładzony efekt i zmniejszony szum, bez rozmycia cech obrazu.

Ten filtr akceptuje następujące opcje:

threshold

Siła filtrowania. Im wyższy, tym bardziej filtrowany będzie film. Twarde progowanie może wykorzystywać wyższy próg niż progowanie miękkie, zanim wideo będzie wyglądało na przefiltrowane. Wartość domyślna to 2.

method

Metoda filtrowania, której użyje filtr.

Przyjmuje następujące wartości:

'hard'

Wszystkie wartości poniżej progu zostaną wyzerowane.

'soft'

Wszystkie wartości poniżej progu zostaną wyzerowane. Wszystkie powyższe wartości zostaną zmniejszone o próg.

'garrote'

Skaluje lub unieważnia współczynniki - pośrednie między (bardziej) miękkim i (mniej) twardym progiem.

Domyślnie jest garota.

nsteps

Ile razy falka rozłoży obraz. Obraz nie może zostać rozłożony poza określony punkt (zazwyczaj 8 dla klatki 640x480 - jako 2^9 = 512 > 480). Prawidłowe wartości to liczby całkowite od 1 do 32. Wartość domyślna to 6.

percent

Częściowe pełne odszumianie (ograniczone zmniejszanie się współczynników), od 0 do 100. Wartość domyślna to 85.

planes

Lista samolotów do przetworzenia. Domyślnie przetwarzane są wszystkie płaszczyzny.

type

Typ progu, który będzie używany przez filtr.

Przyjmuje następujące wartości:

'universal'

Zastosowany próg jest taki sam dla wszystkich dekompozycji.

'bayes'

Stosowany próg zależy również od poszczególnych współczynników dekompozycji.

Domyślnie jest uniwersalny.

11.263 varblur

Zastosuj zmienny filtr rozmycia, używając drugiego strumienia wideo, aby ustawić promień rozmycia. Drugi strumień musi mieć te same wymiary.

Ten filtr akceptuje następujące opcje:

min_r

Ustaw minimalny dozwolony promień. Dozwolony zakres to od 0 do 254. Wartość domyślna to 0.

max_r

Ustaw maksymalny dozwolony promień. Dozwolony zakres to od 1 do 255. Wartość domyślna to 8.

planes

Ustaw samoloty do przetworzenia. Domyślnie używane są wszystkie.

Filtr varblurobsługuje również opcje framesync .

11.263.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

11.264 vectorscope

Wyświetl 2 wartości składowych kolorów na wykresie dwuwymiarowym (nazywanym wektoroskopem).

Ten filtr akceptuje następujące opcje:

mode, m

Ustaw tryb wektoroskopu.

Przyjmuje następujące wartości:

'gray'
'tint'

Wartości szarości są wyświetlane na wykresie, wyższa jasność oznacza, że ​​więcej pikseli ma tę samą wartość koloru składnika w lokalizacji na wykresie. To jest tryb domyślny.

'color'

Wartości szarości są wyświetlane na wykresie. Wartości otaczających pikseli, które nie występują w klatce wideo są rysowane w gradiencie 2 składowych kolorów, które są ustawione przez opcję xi y. Trzeci składnik koloru jest statyczny.

'color2'

Rzeczywiste wartości składowych kolorów obecnych w ramce wideo są wyświetlane na wykresie.

'color3'

Podobnie jak color2 ale wyższa częstotliwość tych samych wartości xi y na wykresie zwiększa wartość innego składnika koloru jakim jest luminancja domyślnie wartości xi y.

'color4'

Aktualne kolory obecne w kadrze wideo są wyświetlane na wykresie. Jeżeli dwa różne kolory mapują się do tej samej pozycji na wykresie, to wybierany jest kolor o wyższej wartości składnika nieobecnego na wykresie.

'color5'

Wartości szarości są wyświetlane na wykresie. Podobny, colorale z trzecim składnikiem koloru pobranym z gradientu promieniowego.

x

Ustaw, który składnik koloru będzie reprezentowany na osi X. Wartość domyślna to 1.

y

Ustaw, który składnik koloru będzie reprezentowany na osi Y. Wartość domyślna to 2.

intensity, i

Ustaw intensywność, używaną przez tryby: grey, color, color3 i color5 do zwiększania jasności składowej koloru, która reprezentuje częstotliwość lokalizacji (X, Y) na wykresie.

envelope, e
'none'

Brak koperty, to jest ustawienie domyślne.

'instant'

Natychmiastowa koperta, nawet najciemniejszy pojedynczy piksel będzie wyraźnie podświetlony.

'peak'

Utrzymuj maksymalne i minimalne wartości przedstawione na wykresie w czasie. W ten sposób nadal możesz wykryć wartości spoza zakresu bez ciągłego patrzenia na wektoroskop.

'peak+instant'

Obwiednia szczytowa i natychmiastowa połączone razem.

graticule, g

Ustaw rodzaj siatki do rysowania.

'none'
'green'
'color'
'invert'
opacity, o

Ustaw przezroczystość siatki.

flags, f

Ustaw flagi siatki.

'white'

Narysuj siatkę dla białego punktu.

'black'

Narysuj siatkę dla czarnego punktu.

'name'

Narysuj krótkie nazwy punktów koloru.

bgopacity, b

Ustaw krycie tła.

lthreshold, l

Ustaw dolny próg dla składnika koloru, który nie jest reprezentowany na osi X lub Y. Wartości niższe od tej wartości będą ignorowane. Wartość domyślna to 0. Zauważ, że ta wartość jest mnożona przez rzeczywistą maksymalną możliwą wartość, jaką może mieć jeden składnik piksela. Tak więc dla wejścia 8-bitowego i dolnego progu wartość 0,1 rzeczywistego progu wynosi 0,1 * 255 = 25.

hthreshold, h

Ustaw górny próg dla składnika koloru, który nie jest reprezentowany na osi X lub Y. Wartości wyższe od tej wartości będą ignorowane. Wartość domyślna to 1. Zauważ, że ta wartość jest mnożona przez rzeczywistą maksymalną możliwą wartość, jaką może mieć jeden składnik piksela. Tak więc dla wejścia 8-bitowego i górnego progu wartość 0,9 rzeczywistego progu wynosi 0,9 * 255 = 230.

colorspace, c

Ustaw rodzaj przestrzeni kolorów, która ma być używana podczas rysowania siatki.

'auto'
'601'
'709'

Domyślnie jest to auto.

tint0, t0
tint1, t1

Ustaw odcień koloru dla trybu wektoroskopu szary/odcień. Domyślnie obie opcje mają wartość zero. Oznacza to brak odcienia, a wydruk pozostanie szary.

11.265 vidstabdetect

Przeanalizuj stabilizację wideo/otrząsanie się. Wykonaj krok 1 z 2, zobacz vidstabtransform dla kroku 2.

Ten filtr generuje plik z informacjami o względnym przesunięciu i przekształceniu rotacji o kolejnych klatkach, który jest następnie używany przez filtr vidstabtransform .

Aby umożliwić kompilację tego filtra musisz skonfigurować FFmpeg z --enable-libvidstab.

Ten filtr akceptuje następujące opcje:

result

Ustaw ścieżkę do pliku używanego do zapisywania informacji o przekształceniach. Wartość domyślna totransforms.trf.

shakiness

Ustaw, jak chwiejny jest film i jak szybki jest aparat. Przyjmuje liczbę całkowitą z zakresu 1-10, wartość 1 oznacza małą drżenie, wartość 10 oznacza silne drżenie. Wartość domyślna to 5.

accuracy

Ustaw dokładność procesu wykrywania. Musi to być wartość z zakresu 1-15. Wartość 1 oznacza niską dokładność, wartość 15 oznacza wysoką dokładność. Wartość domyślna to 15.

stepsize

Ustaw wielkość kroku procesu wyszukiwania. Obszar wokół minimum jest skanowany z rozdzielczością 1 piksela. Wartość domyślna to 6.

mincontrast

Ustaw minimalny kontrast. Poniżej tej wartości lokalne pole pomiaru jest odrzucane. Musi być wartością zmiennoprzecinkową z zakresu 0-1. Wartość domyślna to 0,3.

tripod

Ustaw numer klatki odniesienia dla trybu statywu.

Jeśli ta opcja jest włączona, ruch ramek jest porównywany z ramką odniesienia w filtrowanym strumieniu, identyfikowaną przez określony numer. Chodzi o to, aby skompensować wszystkie ruchy w mniej lub bardziej statycznej scenie i zachować absolutnie nieruchomy widok z kamery.

Jeśli jest ustawiony na 0, jest wyłączony. Klatki liczone są od 1.

show

Pokaż pola i przekształcenia w wynikowych ramkach. Przyjmuje liczbę całkowitą z zakresu 0-2. Wartość domyślna to 0, co wyłącza dowolną wizualizację.

11.265.1 Examples

  • Użyj wartości domyślnych:
    vidstabdetect
    
  • Przeanalizuj mocno chwiejny film i umieść wyniki w pliku mytransforms.trf:
    vidstabdetect=shakiness=10:accuracy=15:result="mytransforms.trf"
    
  • Wizualizuj wynik wewnętrznych przekształceń w powstałym filmie:
    vidstabdetect=show=1
    
  • Przeanalizuj film o średnim stopniu drżenia, używając ffmpeg:
    ffmpeg -i input -vf vidstabdetect=shakiness=5:show=1 dummy.avi
    

11.266 vidstabtransform

Stabilizacja wideo/deshaking: przejście 2 z 2, patrz vidstabdetect dla przejścia 1.

Przeczytaj plik z informacjami o transformacji dla każdej klatki i zastosuj/skompensuj je. Razem z filtrem vidstabdetect może być używany do rozbijania filmów. Zobacz także http://public.hronopik.de/vid.stab . Ważne jest, aby używać również filtra nieostrego , patrz poniżej.

Aby umożliwić kompilację tego filtra musisz skonfigurować FFmpeg z --enable-libvidstab.

11.266.1 Options

input

Ustaw ścieżkę do pliku używanego do odczytu przekształceń. Wartość domyślna to transforms.trf.

smoothing

Ustaw liczbę klatek (wartość*2 + 1) używanych do dolnoprzepustowego filtrowania ruchów kamery. Wartość domyślna to 10.

Na przykład liczba 10 oznacza, że ​​wykorzystano 21 klatek (10 w przeszłości i 10 w przyszłości), aby wygładzić ruch w filmie. Większa wartość prowadzi do płynniejszego wideo, ale ogranicza przyspieszenie kamery (ruchy pan/tilt). 0 to szczególny przypadek, w którym symulowana jest kamera statyczna.

optalgo

Ustaw algorytm optymalizacji ścieżki kamery.

Akceptowane wartości to:

'gauss'

filtr dolnoprzepustowy jądra Gaussa przy ruchu kamery (domyślnie)

'avg'

uśrednianie na przekształceniach

maxshift

Ustaw maksymalną liczbę pikseli do przetłumaczenia klatek. Wartość domyślna to -1, co oznacza brak limitu.

maxangle

Ustaw maksymalny kąt w radianach (stopnie*PI/180), aby obrócić klatki. Wartość domyślna to -1, co oznacza brak limitu.

crop

Określ, jak radzić sobie z granicami, które mogą być widoczne z powodu kompensacji ruchu.

Dostępne wartości to:

'keep'

zachowaj informacje o obrazie z poprzedniej klatki (domyślnie)

'black'

wypełnij czarne obramowanie

invert

Odwróć transformacje, jeśli ustawiono na 1. Wartość domyślna to 0.

relative

Rozważ transformacje jako względne w stosunku do poprzedniej klatki, jeśli jest ustawione na 1, bezwzględne, jeśli ustawione na 0. Wartość domyślna to 0.

zoom

Ustaw procent do powiększenia. Wartość dodatnia spowoduje efekt powiększenia, a wartość ujemna efekt oddalenia. Wartość domyślna to 0 (bez powiększenia).

optzoom

Ustaw optymalne powiększenie, aby uniknąć obramowań.

Akceptowane wartości to:

'0'

wyłączone

'1'

określana jest optymalna wartość powiększenia statycznego (tylko bardzo silne ruchy prowadzą do widocznych granic) (domyślnie)

'2'

określana jest optymalna wartość powiększenia adaptacyjnego (brak będzie widocznych granic), patrzzoomspeed

Zauważ, że wartość podana przy powiększeniu jest dodawana do obliczonej tutaj.

zoomspeed

Ustaw procent, aby maksymalnie powiększyć każdą klatkę (włączone, gdy optzoomjest ustawiony na 2). Zakres wynosi od 0 do 5, domyślna wartość to 0,25.

interpol

Określ typ interpolacji.

Dostępne wartości to:

'no'

bez interpolacji

'linear'

liniowa tylko pozioma

'bilinear'

liniowy w obu kierunkach (domyślnie)

'bicubic'

sześcienny w obu kierunkach (wolno)

tripod

Włącz tryb wirtualnego statywu, jeśli jest ustawiony na 1, co odpowiada relative=0:smoothing=0 . Wartość domyślna to 0.

Użyj również tripodopcji vidstabdetect .

debug

Zwiększ szczegółowość dziennika, jeśli jest ustawiona na 1. Również wykryte ruchy globalne są zapisywane w pliku tymczasowymglobal_motions.trf. Wartość domyślna to 0.

11.266.2 Examples

  • Użyj ffmpegdla typowej stabilizacji z wartościami domyślnymi:
    ffmpeg -i inp.mpeg -vf vidstabtransform,unsharp=5:5:0.8:3:3:0.4 inp_stabilized.mpeg
    

    Zwróć uwagę na użycie nieostrego , który jest zawsze zalecany.

  • Powiększ trochę i wczytaj dane transformacji z danego pliku:
    vidstabtransform=zoom=5:input="mytransforms.trf"
    
  • Wygładź wideo jeszcze bardziej:
    vidstabtransform=smoothing=30
    

11.267 vflip

Odwróć wejściowy obraz wideo w pionie.

Na przykład, aby obrócić wideo w pionie za pomocą ffmpeg:

ffmpeg -i in.avi -vf "vflip" out.avi

11.268 vfrdet

Wykryj wideo ze zmienną liczbą klatek na sekundę.

Ten filtr próbuje wykryć, czy dane wejściowe są zmienne, czy stałe.

Na koniec wypisze liczbę ramek wykrytych jako posiadające zmienną delta pts i te ze stałą delta pts. Jeśli były klatki ze zmienną deltą, to pokaże również napotkaną minimalną, maksymalną i średnią deltę.

11.269 vibrance

Zwiększ lub zmień nasycenie.

Filtr akceptuje następujące opcje:

intensity

Ustaw siłę wzmocnienia, jeśli wartość dodatnią lub siłę zmiany, jeśli wartość ujemną. Wartość domyślna to 0. Dozwolony zakres to od -2 do 2.

rbal

Ustaw balans czerwieni. Wartość domyślna to 1. Dozwolony zakres to od -10 do 10.

gbal

Ustaw zielony balans. Wartość domyślna to 1. Dozwolony zakres to od -10 do 10.

bbal

Ustaw balans koloru niebieskiego. Wartość domyślna to 1. Dozwolony zakres to od -10 do 10.

rlum

Ustaw czerwony współczynnik luma.

glum

Ustaw zielony współczynnik luma.

blum

Ustaw niebieski współczynnik luma.

alternate

Jeśli intensityjest ujemny i jest ustawiony na 1, kolory się zmienią, w przeciwnym razie kolory będą mniej nasycone, bardziej w kierunku szarości.

11.269.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .

11.270 vif

Uzyskaj średnią wartość VIF (Visual Information Fidelity) między dwoma wejściowymi filmami wideo.

Ten filtr pobiera dwa wideo wejściowe.

Aby ten filtr działał poprawnie, oba wideo wejściowe muszą mieć tę samą rozdzielczość i format pikseli. Zakłada również, że oba wejścia mają taką samą liczbę klatek, które są porównywane jedna po drugiej.

Uzyskany średni wynik VIF jest drukowany przez system rejestrowania.

Filtr przechowuje obliczony wynik VIF każdej klatki.

W poniższym przykładzie plik wejściowymain.mpgprzetwarzany jest porównywany z plikiem referencyjnymref.mpg.

ffmpeg -i main.mpg -i ref.mpg -lavfi vif -f null -

11.271 vignette

Stwórz lub odwróć naturalny efekt winietowania.

Filtr akceptuje następujące opcje:

angle, a

Ustaw wyrażenie kąta obiektywu jako liczbę radianów.

Wartość jest obcinana w [0,PI/2]zakresie.

Domyślna wartość:"PI/5"

x0
y0

Ustaw wyrażenia współrzędnych środka. Odpowiednio "w/2"i "h/2" domyślnie.

mode

Ustaw tryb do przodu/do tyłu.

Dostępne tryby to:

'forward'

Im większa odległość od centralnego punktu, tym ciemniejszy staje się obraz.

'backward'

Im większa odległość od centralnego punktu, tym jaśniejszy obraz. Można to wykorzystać do odwrócenia efektu winietowania, chociaż nie ma automatycznego wykrywania w celu wyciągnięcia soczewkianglei inne ustawienia (jeszcze). Może być również używany do tworzenia efektu spalania.

Wartość domyślna to 'forward„.

eval

Ustaw tryb oceny dla wyrażeń (angle,x0,y0).

Przyjmuje następujące wartości:

'init'

Oceniaj wyrażenia tylko raz podczas inicjowania filtru.

'frame'

Oceń wyrażenia dla każdej przychodzącej ramki. To jest o wiele wolniejsze niż „init', ponieważ wymaga ponownego obliczenia wszystkich skalerów, ale umożliwia zaawansowane wyrażenia dynamiczne.

Wartość domyślna to 'init„.

dither

Ustaw dithering, aby zredukować efekty kołowych pasm. Wartość domyślna to 1 (włączone).

aspect

Ustaw aspekt winiety. To ustawienie pozwala dostosować kształt winiety. Ustawienie tej wartości na SAR wejścia spowoduje prostokątne winietowanie zgodne z wymiarami wideo.

Wartość domyślna to 1/1.

11.271.1 Expressions

Thealpha,x0orazy0wyrażenia mogą zawierać następujące parametry.

w
h

szerokość i wysokość wejściowa

n

liczba klatek wejściowych, zaczynając od 0

pts

czas PTS (Presentation TimeStamp) przefiltrowanej klatki wideo, wyrażony w TBjednostkach, NAN, jeśli niezdefiniowany

r

liczba klatek na sekundę wejściowego wideo, NAN, jeśli liczba klatek na sekundę wejściowa jest nieznana

t

PTS (Presentation TimeStamp) przefiltrowanej klatki wideo, wyrażony w sekundach, NAN, jeśli niezdefiniowany

tb

podstawa czasu wejściowego wideo

11.271.2 Examples

  • Zastosuj prosty, mocny efekt winietowania:
    vignette=PI/4
    
  • Zrób migoczące winietowanie:
    vignette='PI/4+random(1)*PI/50':eval=frame
    

11.272 vmafmotion

Uzyskaj średni wynik ruchu VMAF filmu. Jest to jedna z metryk składowych VMAF.

Uzyskany średni wynik ruchu jest drukowany przez system rejestrowania.

Filtr akceptuje następujące opcje:

stats_file

Jeśli zostanie określony, filtr użyje nazwanego pliku do zapisania wyniku ruchu każdej klatki w odniesieniu do poprzedniej klatki. Gdy nazwa pliku jest równa "-" dane są wysyłane na standardowe wyjście.

Przykład:

ffmpeg -i ref.mpg -vf vmafmotion -f null -

11.273 vstack

Ułóż wideo wejściowe w pionie.

Wszystkie strumienie muszą mieć ten sam format pikseli i tę samą szerokość.

Pamiętaj, że ten filtr jest szybszy niż użycie nakładki i podkładki do stworzenia tego samego wyjścia.

Filtr akceptuje następujące opcje:

inputs

Ustaw liczbę strumieni wejściowych. Wartość domyślna to 2.

shortest

Jeśli jest ustawiony na 1, wymusza zakończenie wyjścia po zakończeniu najkrótszego wejścia. Wartość domyślna to 0.

11.274 w3fdif

Usuń przeplot wideo wejściowego („w3fdif” oznacza „Weston 3 Field Deinterlacing Filter”).

W oparciu o proces opisany przez Martina Westona dla BBC R&D i zaimplementowany w oparciu o algorytm usuwania przeplotu napisany przez Jima Easterbrooka dla BBC R&D, filtr usuwania przeplotu z pól Weston 3 wykorzystuje współczynniki filtru obliczone przez BBC R&D.

Ten filtr wykorzystuje informacje o dominacji pól w ramce, aby zdecydować, które z każdej pary pól umieścić jako pierwsze w danych wyjściowych. Jeśli się nie powiedzie, użyj filtra setfield przed w3fdiffiltrem.

Istnieją dwa zestawy współczynników filtra, tzw. „prosty” i „złożony”. Który zestaw współczynników filtra jest używany, można ustawić, przekazując opcjonalny parametr:

filter

Ustaw współczynniki filtra przeplotu. Akceptuje jedną z następujących wartości:

'simple'

Prosty zestaw współczynników filtra.

'complex'

Bardziej złożony zestaw współczynników filtra.

Wartość domyślna to 'complex„.

mode

Tryb przeplotu do przyjęcia. Przyjmuje jedną z następujących wartości:

frame

Wyprowadza jedną klatkę na każdą klatkę.

field

Wyprowadza jedną ramkę dla każdego pola.

Wartość domyślna to field.

parity

Parzystość pola obrazu przyjęta dla wejściowego wideo z przeplotem. Przyjmuje jedną z następujących wartości:

tff

Załóżmy, że górne pole jest pierwsze.

bff

Załóżmy, że dolne pole jest pierwsze.

auto

Włącz automatyczne wykrywanie parzystości pola.

Wartość domyślna to auto. Jeśli przeplot jest nieznany lub dekoder nie eksportuje tych informacji, jako pierwsze zostanie przyjęte górne pole.

deint

Określ, które klatki usunąć z przeplotu. Akceptuje jedną z następujących wartości:

'all'

Usuń przeplot ze wszystkich klatek,

'interlaced'

Usuwaj tylko klatki oznaczone jako z przeplotem.

Wartość domyślna to 'all„.

11.274.1 Commands

Ten filtr obsługuje te same polecenia, co opcje.

11.275 waveform

Monitor przebiegu wideo.

Monitor przebiegu kreśli intensywność składowej koloru. Domyślnie tylko luminancja. Każda kolumna przebiegu odpowiada kolumnie pikseli w źródłowym wideo.

Akceptuje następujące opcje:

mode, m

Może być row, lub column. Wartość domyślna to column. W trybie wierszowym wykres po lewej stronie przedstawia wartość składowej koloru 0, a po prawej wartość składową koloru 255. W trybie kolumnowym górna strona przedstawia wartość składowej koloru 0, a dolna wartość składową 255.

intensity, i

Ustaw intensywność. Mniejsze wartości są przydatne do sprawdzenia, ile wartości tej samej luminancji jest rozłożonych na wejściowe wiersze/kolumny. Wartość domyślna to 0.04. Dozwolony zakres to [0, 1].

mirror, r

Ustaw tryb dublowania. 0oznacza bez lustra, 1oznacza lustrzane. W trybie lustrzanym wyższe wartości będą reprezentowane po lewej stronie dla rowtrybu i na górze dla columntrybu. Wartość domyślna to 1(dublowane).

display, d

Ustaw tryb wyświetlania. Przyjmuje następujące wartości:

'overlay'

Przedstawia informacje identyczne jak w parade, z tą różnicą, że wykresy przedstawiające składowe kolorów nakładają się bezpośrednio na siebie.

Ten tryb wyświetlania ułatwia dostrzeżenie względnych różnic lub podobieństw w nakładających się obszarach składników kolorów, które powinny być identyczne, takich jak neutralna biel, szarość lub czerń.

'stack'

Wyświetl osobny wykres dla składników koloru obok siebie w rowtrybie lub jeden pod drugim w columntrybie.

'parade'

Wyświetl osobny wykres dla składników koloru obok siebie w columntrybie lub jeden pod drugim w rowtrybie.

Korzystanie z tego trybu wyświetlania ułatwia dostrzeżenie przebarwień w światłach i cieniach obrazu, porównując kontury górnego i dolnego wykresu każdego przebiegu. Ponieważ biel, szarość i czerń charakteryzują się dokładnie równymi ilościami czerwieni, zieleni i niebieskiego, neutralne obszary obrazu powinny wyświetlać trzy przebiegi o mniej więcej równej szerokości/wysokości. Jeśli nie, korekta jest łatwa do wykonania, dostosowując poziom trzech przebiegów.

Wartość domyślna to stack.

components, c

Ustaw, które składniki kolorów mają być wyświetlane. Wartość domyślna to 1, co oznacza tylko luminancję lub składową koloru czerwonego, jeśli wejście jest w przestrzeni kolorów RGB. Jeśli jest ustawiony na przykład na 7, wyświetli wszystkie 3 (jeśli) dostępne składniki kolorów.

envelope, e
'none'

Brak koperty, to jest ustawienie domyślne.

'instant'

Natychmiastowa koperta, wartości minimalne i maksymalne prezentowane na wykresie będą dobrze widoczne nawet przy małej stepwartości.

'peak'

Utrzymuj minimalne i maksymalne wartości przedstawione na wykresie w czasie. W ten sposób możesz nadal wykrywać wartości spoza zakresu bez ciągłego patrzenia na przebiegi.

'peak+instant'

Obwiednia szczytowa i natychmiastowa połączone razem.

filter, f
'lowpass'

Brak filtrowania, jest to ustawienie domyślne.

'flat'

Luma i chroma połączone razem.

'aflat'

Podobnie jak powyżej, ale pokazuje różnicę między niebieskim i czerwonym nasyceniem.

'xflat'

Podobnie jak powyżej, ale użyj innych kolorów.

'yflat'

Podobnie jak powyżej, ale znowu w innych kolorach.

'chroma'

Wyświetla tylko kolor.

'color'

Wyświetla aktualną wartość koloru na przebiegu.

'acolor'

Podobnie jak powyżej, ale z lumą pokazującą częstotliwość wartości chrominancji.

graticule, g

Ustaw siatkę do wyświetlenia.

'none'

Nie wyświetlaj siatki.

'green'

Wyświetl zieloną siatkę pokazującą legalne zasięgi transmisji.

'orange'

Wyświetl pomarańczową siatkę pokazującą legalne zasięgi transmisji.

'invert'

Wyświetl siatkę odwróconą pokazującą legalne zasięgi transmisji.

opacity, o

Ustaw przezroczystość siatki.

flags, fl

Ustaw flagi siatki.

'numbers'

Narysuj liczby nad liniami. Domyślnie włączone.

'dots'

Narysuj kropki zamiast linii.

scale, s

Ustaw skalę używaną do wyświetlania siatki.

'digital'
'millivolts'
'ire'

Domyślnie jest to cyfrowe.

bgopacity, b

Ustaw krycie tła.

tint0, t0
tint1, t1

Ustaw odcień wydruku. Używany tylko z filtrem dolnoprzepustowym i gdy wyświetlacz nie jest nałożony, a formaty pikseli wejściowych nie są RGB.

fitmode, fm

Ustaw przykładowe proporcje klatek wyjściowych wideo. Może służyć do konfiguracji przebiegu tak, aby nie był zbytnio rozciągnięty w jednym z kierunków.

'none'

Ustaw proporcje próbki na 1/1.

'size'

Ustaw przykładowe proporcje, aby dopasować rozmiar wejściowy wideo

Wartość domyślna to 'none„.

11.276 weave, doubleweave

Theweave polach i łączy każde dwa kolejne pola w pojedynczą klatkę, tworząc nowy klip o podwójnej wysokości z połową szybkości klatek i połową liczby klatek.

doubleweaveDziała tak samo, ale bez zmniejszania o weavepołowę liczby klatek na sekundę i liczby klatek.

Akceptuje następującą opcję:

first_field

Ustaw pierwsze pole. Dostępne wartości to:

'top, t'

Ustaw ramkę jako pierwszą w górnym polu.

'bottom, b'

Ustaw ramkę jako najpierw dolne pole.

11.276.1 Examples

  • Wideo z przeplotem przy użyciu filtru wyboru i rozdzielania pól:
    separatefields,select=eq(mod(n,4),0)+eq(mod(n,4),3),weave
    

11.277 xbr

Zastosuj wysokiej jakości filtr powiększenia xBR, który jest przeznaczony do sztuki pikselowej. Jest zgodny z zestawem reguł wykrywania krawędzi, zobacz https://forums.libretro.com/t/xbr-algorithm-tutorial/123 .

Akceptuje następującą opcję:

n

Ustaw wymiar skalowania: 2for 2xBR, 3for 3xBRi 4for 4xBR. Wartość domyślna to 3.

11.278 xcorrelate

Zastosuj znormalizowaną korelację krzyżową między pierwszym i drugim wejściowym strumieniem wideo.

Wymiary drugiego wejściowego strumienia wideo muszą być mniejsze niż pierwszego wejściowego strumienia wideo.

Filtr akceptuje następujące opcje:

planes

Ustaw samoloty do przetworzenia.

secondary

Ustaw, które drugorzędne klatki wideo będą przetwarzane z drugiego wejściowego strumienia wideo, może to być firstlub all. Wartość domyślna to all.

Filtr xcorrelateobsługuje również opcje framesync .

11.279 xfade

Zastosuj przenikanie z jednego wejściowego strumienia wideo do innego wejściowego strumienia wideo. Przenikanie jest stosowane przez określony czas.

Oba wejścia muszą mieć stałą liczbę klatek na sekundę i mieć tę samą rozdzielczość, format pikseli, liczbę klatek na sekundę i podstawę czasu.

Filtr akceptuje następujące opcje:

transition

Ustaw jeden z dostępnych efektów przejścia:

'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'

Domyślny efekt przejścia to zanikanie.

duration

Ustaw czas przenikania w sekundach. Zakres wynosi od 0 do 60 sekund. Domyślny czas trwania to 1 sekunda.

offset

Ustaw początek przenikania w stosunku do pierwszego strumienia wejściowego w sekundach. Domyślne przesunięcie to 0.

expr

Ustaw wyrażenie dla niestandardowego efektu przejścia.

Wyrażenia mogą wykorzystywać następujące zmienne i funkcje:

X
Y

Współrzędne bieżącej próbki.

W
H

Szerokość i wysokość obrazu.

P

Postęp efektu przejścia.

PLANE

Obecnie przetworzony samolot.

A

Zwraca wartość pierwszego wejścia w bieżącej lokalizacji i płaszczyźnie.

B

Zwraca wartość drugiego wejścia w bieżącej lokalizacji i płaszczyźnie.

a0(x, y)
a1(x, y)
a2(x, y)
a3(x, y)

Zwraca wartość piksela w lokalizacji ( x, y) pierwszego/drugiego/trzeciego/czwartego składnika pierwszego wejścia.

b0(x, y)
b1(x, y)
b2(x, y)
b3(x, y)

Zwraca wartość piksela w lokalizacji ( x, y) pierwszego/drugiego/trzeciego/czwartego składnika drugiego wejścia.

11.279.1 Examples

  • Przenikanie z jednego wejściowego wideo do drugiego wejściowego wideo, z przejściem zanikania i czasem trwania przejścia 2 sekundy, począwszy od przesunięcia 5 sekund:
    ffmpeg -i first.mp4 -i second.mp4 -filter_complex xfade=transition=fade:duration=2:offset=5 output.mp4
    

11.280 xmedian

Wybierz medianę pikseli z kilku wejściowych filmów wideo.

Filtr akceptuje następujące opcje:

inputs

Ustaw liczbę wejść. Domyślnie 3. Dozwolony zakres to od 3 do 255. Jeżeli liczba wejść jest parzysta, to wynik będzie wartością średnią pomiędzy dwiema medianami.

planes

Ustaw samoloty do filtrowania. Wartość domyślna to 15, według której przetwarzane są wszystkie płaszczyzny.

percentile

Ustaw medianę percentyla. Wartość domyślna to 0.5. Domyślna wartość 0.5wybierze zawsze wartości mediany, podczas gdy 0wybierze wartości minimalne i 1maksymalne.

11.280.1 Commands

Ten filtr obsługuje wszystkie powyższe opcje jako komendy , wyłączając opcję inputs.

11.281 xstack

Układaj wejścia wideo w niestandardowy układ.

Wszystkie strumienie muszą mieć ten sam format pikseli.

Filtr akceptuje następujące opcje:

inputs

Ustaw liczbę strumieni wejściowych. Wartość domyślna to 2.

layout

Określ układ wejść. Ta opcja wymaga, aby żądana konfiguracja układu została jawnie ustawiona przez użytkownika. Ustawia to pozycję każdego wejścia wideo na wyjściu. Każde wejście jest oddzielone znakiem „|”. Pierwsza liczba reprezentuje kolumnę, a druga liczba reprezentuje wiersz. Liczby zaczynają się od 0 i są oddzielone '_'. Opcjonalnie można użyć wX i hX, gdzie X to wejście wideo, z którego pobierana jest szerokość lub wysokość. Można użyć wielu wartości rozdzielonych znakiem „+”. W takim przypadku wartości są sumowane.

Zwróć uwagę, że jeśli wejścia mają różne rozmiary, mogą pojawić się przerwy, ponieważ nie cała wyjściowa klatka wideo zostanie wypełniona. Podobnie filmy mogą się na siebie nakładać, jeśli ich pozycja nie pozostawia wystarczająco dużo miejsca na całą klatkę sąsiednich filmów.

Dla 2 wejść ustawiony jest domyślny układ 0_0|w0_0(odpowiednik grid=2x1). We wszystkich innych przypadkach układ lub siatka musi być ustawiona przez użytkownika. Albo gridlub layoutmożna określić na raz. Określenie obu spowoduje błąd.

grid

Określ siatkę danych wejściowych o stałym rozmiarze. Ta opcja służy do tworzenia siatki o stałym rozmiarze strumieni wejściowych. Ustaw rozmiar siatki w formularzu COLUMNSxROWS. Muszą istnieć ROWS * COLUMNS strumienie wejściowe i zostaną one ułożone jako siatka z ROWSrzędami i COLUMNS kolumnami. W przypadku korzystania z tej opcji każdy strumień wejściowy w wierszu musi mieć tę samą wysokość, a wszystkie wiersze muszą mieć tę samą szerokość.

Jeśli gridjest ustawiona, to inputsopcja jest ignorowana i jest domyślnie ustawiona na ROWS * COLUMNS.

Dla 2 wejść ustawiona jest domyślna siatka 2x1(odpowiednik layout=0_0|w0_0). We wszystkich innych przypadkach układ lub siatka musi być ustawiona przez użytkownika. Albo gridlub layoutmożna określić na raz. Określenie obu spowoduje błąd.

shortest

Jeśli jest ustawiony na 1, wymusza zakończenie wyjścia po zakończeniu najkrótszego wejścia. Wartość domyślna to 0.

fill

Jeśli ustawiony na prawidłowy kolor, wszystkie nieużywane piksele zostaną wypełnione tym kolorem. Domyślnie wypełnienie jest ustawione na brak, więc jest wyłączone.

11.281.1 Examples

  • Wyświetl 4 wejścia w siatce 2x2.

    Układ:

    input1(0, 0)  | input3(w0, 0)
    input2(0, h0) | input4(w0, h0)
    
    xstack=inputs=4:layout=0_0|0_h0|w0_0|w0_h0
    

    Należy pamiętać, że jeśli dane wejściowe mają różne rozmiary, mogą wystąpić luki lub nakładanie się.

  • Wyświetl 4 wejścia w siatce 1x4.

    Układ:

    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
    

    Zwróć uwagę, że jeśli dane wejściowe mają różne szerokości, pojawi się niewykorzystana przestrzeń.

  • Wyświetl 9 wejść w siatce 3x3.

    Układ:

    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
    

    Należy pamiętać, że jeśli dane wejściowe mają różne rozmiary, mogą wystąpić luki lub nakładanie się.

  • Wyświetl 16 wejść w siatce 4x4.

    Układ:

    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
    

    Należy pamiętać, że jeśli dane wejściowe mają różne rozmiary, mogą wystąpić luki lub nakładanie się.

11.282 yadif

Usuń przeplot z wejściowego wideo ("yadif" oznacza "jeszcze inny filtr usuwający przeplot").

Przyjmuje następujące parametry:

mode

Tryb przeplotu do przyjęcia. Przyjmuje jedną z następujących wartości:

0, send_frame

Wyprowadza jedną klatkę na każdą klatkę.

1, send_field

Wyprowadza jedną ramkę dla każdego pola.

2, send_frame_nospatial

Podobnie jak send_frame, ale pomija sprawdzanie przeplotu przestrzennego.

3, send_field_nospatial

Podobnie jak send_field, ale pomija sprawdzanie przeplotu przestrzennego.

Wartość domyślna to send_frame.

parity

Parzystość pola obrazu przyjęta dla wejściowego wideo z przeplotem. Przyjmuje jedną z następujących wartości:

0, tff

Załóżmy, że górne pole jest pierwsze.

1, bff

Załóżmy, że dolne pole jest pierwsze.

-1, auto

Włącz automatyczne wykrywanie parzystości pola.

Wartość domyślna to auto. Jeśli przeplot jest nieznany lub dekoder nie eksportuje tych informacji, jako pierwsze zostanie przyjęte górne pole.

deint

Określ, które klatki usunąć z przeplotu. Akceptuje jedną z następujących wartości:

0, all

Usuń przeplot ze wszystkich klatek.

1, interlaced

Usuwaj tylko klatki oznaczone jako z przeplotem.

Wartość domyślna to all.

11.283 yadif_cuda

Usuń przeplot z wejściowego wideo za pomocą algorytmu yadif , ale zaimplementowanego w CUDA, aby mogło działać jako część potoku przyspieszanego przez GPU z nvdec i/lub nvenc.

Przyjmuje następujące parametry:

mode

Tryb przeplotu do przyjęcia. Przyjmuje jedną z następujących wartości:

0, send_frame

Wyprowadza jedną klatkę na każdą klatkę.

1, send_field

Wyprowadza jedną ramkę dla każdego pola.

2, send_frame_nospatial

Podobnie jak send_frame, ale pomija sprawdzanie przeplotu przestrzennego.

3, send_field_nospatial

Podobnie jak send_field, ale pomija sprawdzanie przeplotu przestrzennego.

Wartość domyślna to send_frame.

parity

Parzystość pola obrazu przyjęta dla wejściowego wideo z przeplotem. Przyjmuje jedną z następujących wartości:

0, tff

Załóżmy, że górne pole jest pierwsze.

1, bff

Załóżmy, że dolne pole jest pierwsze.

-1, auto

Włącz automatyczne wykrywanie parzystości pola.

Wartość domyślna to auto. Jeśli przeplot jest nieznany lub dekoder nie eksportuje tych informacji, jako pierwsze zostanie przyjęte górne pole.

deint

Określ, które klatki usunąć z przeplotu. Akceptuje jedną z następujących wartości:

0, all

Usuń przeplot ze wszystkich klatek.

1, interlaced

Usuwaj tylko klatki oznaczone jako z przeplotem.

Wartość domyślna to all.

11.284 yaepblur

Zastosuj filtr rozmycia, zachowując krawędzie („yaepblur” oznacza „jeszcze inny filtr zachowujący krawędzie”). Algorytm jest opisany w „JS Lee, Digital image selection and noise filtering przy użyciu lokalnych statystyk, IEEE Trans. Pattern Anal. Mach. Intell. PAMI-2, 1980”.

Przyjmuje następujące parametry:

radius, r

Ustaw promień okna. Wartość domyślna to 3.

planes, p

Ustaw samoloty do filtrowania. Domyślnie jest tylko pierwsza płaszczyzna.

sigma, s

Ustaw siłę rozmycia. Wartość domyślna to 128.

11.284.1 Commands

Ten filtr obsługuje te same polecenia, co opcje.

11.285 zoompan

Zastosuj efekt powiększania i panoramowania.

Ten filtr akceptuje następujące opcje:

zoom, z

Ustaw wyrażenie powiększenia. Zakres to 1-10. Wartość domyślna to 1.

x
y

Ustaw wyrażenie x i y. Wartość domyślna to 0.

d

Ustaw wyrażenie czasu trwania w liczbie klatek. Ustawia to, ile klatek efekt będzie trwał dla pojedynczego obrazu wejściowego. Wartość domyślna to 90.

s

Ustaw rozmiar obrazu wyjściowego, domyślnie jest to „hd720”.

fps

Ustaw wyjściową liczbę klatek na sekundę, domyślnie '25'.

Każde wyrażenie może zawierać następujące stałe:

in_w, iw

Szerokość wejściowa.

in_h, ih

Wysokość wejściowa.

out_w, ow

Szerokość wyjściowa.

out_h, oh

Wysokość wyjściowa.

in

Liczba klatek wejściowych.

on

Liczba klatek wyjściowych.

in_time, it

Wejściowy znacznik czasu wyrażony w sekundach. Jest to NAN, jeśli wejściowy znacznik czasu jest nieznany.

out_time, time, ot

Wyjściowy znacznik czasu wyrażony w sekundach.

x
y

Ostatnia obliczona pozycja 'x' i 'y' na podstawie wyrażenia 'x' i 'y' dla bieżącej ramki wejściowej.

px
py

'x' i 'y' ostatniej ramki wyjściowej poprzedniej ramki wejściowej lub 0, gdy takiej ramki jeszcze nie było (pierwsza ramka wejściowa).

zoom

Ostatnio obliczone powiększenie z wyrażenia „z” dla bieżącej klatki wejściowej.

pzoom

Ostatnie obliczone powiększenie ostatniej klatki wyjściowej poprzedniej klatki wejściowej.

duration

Liczba ramek wyjściowych dla bieżącej ramki wejściowej. Obliczane na podstawie wyrażenia „d” dla każdej ramki wejściowej.

pduration

liczba ramek wyjściowych utworzonych dla poprzedniej ramki wejściowej

a

Liczba wymierna: szerokość wejściowa / wysokość wejściowa

sar

przykładowe proporcje

dar

proporcje wyświetlacza

11.285.1 Examples

  • Powiększ do 1,5x i jednocześnie przesuń do jakiegoś miejsca w pobliżu środka obrazu:
    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
    
  • Powiększ do 1,5x i panoramuj zawsze na środku obrazu:
    zoompan=z='min(zoom+0.0015,1.5)':d=700:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)'
    
  • Tak samo jak powyżej, ale bez wstrzymywania:
    zoompan=z='min(max(zoom,pzoom)+0.0015,1.5)':d=1:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)'
    
  • Powiększ 2x do środka obrazu tylko przez pierwszą sekundę wejściowego wideo:
    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

Skaluj (zmień rozmiar) wejściowego wideo, korzystając z biblioteki z.lib: https://github.com/sekrit-twc/zimg . Aby umożliwić kompilację tego filtra, musisz skonfigurować FFmpeg za pomocą --enable-libzimg.

Filtr zscale wymusza, aby wyjściowy współczynnik proporcji wyświetlania był taki sam jak wejściowy, poprzez zmianę wyjściowego współczynnika proporcji próbki.

Jeśli format obrazu wejściowego jest inny niż format żądany przez następny filtr, filtr zscale przekonwertuje dane wejściowe na żądany format.

11.286.1 Options

Filtr akceptuje następujące opcje.

width, w
height, h

Ustaw wyrażenie wyjściowego wymiaru wideo. Wartość domyślna to wymiar wejściowy.

Jeśli wartość widthlub wwynosi 0, dla danych wyjściowych jest używana szerokość wejściowa. Jeśli wartość heightlub hwynosi 0, wysokość wejściowa jest używana dla danych wyjściowych.

Jeśli jedna i tylko jedna z wartości to -n przy n >= 1, filtr zscale użyje wartości, która zachowuje proporcje obrazu wejściowego, obliczone na podstawie innego określonego wymiaru. Po tym jednak upewni się, że obliczony wymiar jest podzielny przez n iw razie potrzeby dostosuje wartość.

Jeśli obie wartości to -n przy n >= 1, zachowanie będzie identyczne z obiema wartościami ustawionymi na 0, jak opisano wcześniej.

Zobacz poniżej listę stałych akceptowanych do użycia w wyrażeniu wymiaru.

size, s

Ustaw rozmiar wideo. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Rozmiar wideo" w podręczniku ffmpeg-utils .

dither, d

Ustaw typ roztrząsania.

Możliwe wartości to:

none
ordered
random
error_diffusion

Wartość domyślna to brak.

filter, f

Ustaw typ filtra zmiany rozmiaru.

Możliwe wartości to:

point
bilinear
bicubic
spline16
spline36
lanczos

Domyślnie jest dwuliniowy.

range, r

Ustaw zakres kolorów.

Możliwe wartości to:

input
limited
full

Wartość domyślna jest taka sama jak wejście.

primaries, p

Ustaw kolory podstawowe.

Możliwe wartości to:

input
709
unspecified
170m
240m
2020

Wartość domyślna jest taka sama jak wejście.

transfer, t

Ustaw charakterystykę transferu.

Możliwe wartości to:

input
709
unspecified
601
linear
2020_10
2020_12
smpte2084
iec61966-2-1
arib-std-b67

Wartość domyślna jest taka sama jak wejście.

matrix, m

Ustaw macierz przestrzeni kolorów.

Możliwe wartości to:

input
709
unspecified
470bg
170m
2020_ncl
2020_cl

Wartość domyślna jest taka sama jak wejście.

rangein, rin

Ustaw wejściowy zakres kolorów.

Możliwe wartości to:

input
limited
full

Wartość domyślna jest taka sama jak wejście.

primariesin, pin

Ustaw podstawowe kolory wejściowe.

Możliwe wartości to:

input
709
unspecified
170m
240m
2020

Wartość domyślna jest taka sama jak wejście.

transferin, tin

Ustaw wejściowe charakterystyki transferu.

Możliwe wartości to:

input
709
unspecified
601
linear
2020_10
2020_12

Wartość domyślna jest taka sama jak wejście.

matrixin, min

Ustaw macierz wejściowej przestrzeni kolorów.

Możliwe wartości to:

input
709
unspecified
470bg
170m
2020_ncl
2020_cl
chromal, c

Ustaw lokalizację wyjściowej barwy.

Możliwe wartości to:

input
left
center
topleft
top
bottomleft
bottom
chromalin, cin

Ustaw lokalizację wejścia chrominancji.

Możliwe wartości to:

input
left
center
topleft
top
bottomleft
bottom
npl

Ustaw nominalną szczytową luminancję.

param_a

Parametr A dla filtrów skalujących. Parametr „b” dla dwusześciennych, a liczba zaczepów filtracyjnych dla lanczosa.

param_b

Parametr B dla filtrów skalujących. Parametr „c” dla dwusześciennych.

Wartościworazhopcje to wyrażenia zawierające następujące stałe:

in_w
in_h

Szerokość i wysokość wejściowa

iw
ih

Są takie same jak in_wi in_h.

out_w
out_h

Wyjściowa (skalowana) szerokość i wysokość

ow
oh

Są takie same jak out_wiout_h

a

Tak samo jak iw/ih

sar

wejściowy współczynnik proporcji próbki

dar

Format obrazu wejściowego. Obliczono od (iw / ih) * sar.

hsub
vsub

wartości podpróbek wejścia poziomego i pionowego. Na przykład dla formatu piksela „yuv422p” hsubto 2 i vsub1.

ohsub
ovsub

wartości podpróbki poziomej i pionowej barwy wyjściowej. Na przykład dla formatu piksela „yuv422p” hsubto 2 i vsub1.

11.286.2 Commands

Ten filtr obsługuje następujące polecenia:

width, w
height, h

Ustaw wyrażenie wyjściowego wymiaru wideo. Polecenie akceptuje tę samą składnię odpowiedniej opcji.

Jeśli podane wyrażenie jest niepoprawne, jest zachowywane z bieżącą wartością.

12 OpenCL Video Filters

Poniżej znajduje się opis aktualnie dostępnych filtrów wideo OpenCL.

Aby umożliwić kompilację tych filtrów, musisz skonfigurować FFmpeg za pomocą --enable-opencl.

Uruchomienie filtrów OpenCL wymaga zainicjowania urządzenia sprzętowego i przekazania tego urządzenia do wszystkich filtrów na dowolnym wykresie filtra.

-init_hw_device opencl[=name][:device[,key=value...]]

Zainicjuj nowe urządzenie sprzętowe typu openclo nazwie name, używając podanych parametrów urządzenia.

-filter_hw_device name

Przekaż wywoływane urządzenie sprzętowe namedo wszystkich filtrów na dowolnym wykresie filtra.

Więcej szczegółowych informacji można znaleźć na stronie https://www.ffmpeg.org/ffmpeg.html#Advanced-Video-options

  • Przykład wyboru pierwszego urządzenia na drugiej platformie i uruchomienia na nim filtru avgblur_opencl z domyślnymi parametrami.
    -init_hw_device opencl=gpu:1.0 -filter_hw_device gpu -i INPUT -vf "hwupload, avgblur_opencl, hwdownload" OUTPUT
    

Ponieważ filtry OpenCL nie są w stanie uzyskać dostępu do danych ramek w normalnej pamięci, wszystkie dane ramek muszą zostać przesłane ( hwupload ) na powierzchnie sprzętowe podłączone do odpowiedniego urządzenia przed użyciem, a następnie pobrane ( hwdownload ) z powrotem do normalnej pamięci. Zwróć uwagę, że hwupload zostanie załadowany na powierzchnię z tym samym układem, co ramka oprogramowania, więc może być konieczne dodanie filtra formatu bezpośrednio przed uzyskaniem właściwego formatu danych wejściowych, a hwdownload nie obsługuje wszystkich formatów na wyjściu - może konieczne jest wstawienie dodatkowego filtra formatu bezpośrednio po wykresie, aby uzyskać dane wyjściowe w obsługiwanym formacie.

12.1 avgblur_opencl

Zastosuj filtr średniego rozmycia.

Filtr akceptuje następujące opcje:

sizeX

Ustaw rozmiar promienia poziomego. Zakres to [1, 1024]i wartość domyślna to 1.

planes

Ustaw samoloty do filtrowania. Wartość domyślna to 0xf, według której przetwarzane są wszystkie płaszczyzny.

sizeY

Ustaw rozmiar promienia pionowego. Zakres to [1, 1024]i wartość domyślna to 0. Jeśli zero, sizeXzostanie użyta wartość.

12.1.1 Example

  • Zastosuj filtr średniego rozmycia o rozmiarze 3 w poziomie iw pionie, ustawiając każdy piksel na wyjściu na średnią wartość regionu 7x7 wyśrodkowanego na nim na wejściu. W przypadku pikseli na krawędziach obrazu region nie wykracza poza granice obrazu, dlatego w obliczeniach nie są używane współrzędne spoza zakresu.
    -i INPUT -vf "hwupload, avgblur_opencl=3, hwdownload" OUTPUT
    

12.2 boxblur_opencl

Zastosuj algorytm boxblur do wejściowego wideo.

Przyjmuje następujące parametry:

luma_radius, lr
luma_power, lp
chroma_radius, cr
chroma_power, cp
alpha_radius, ar
alpha_power, ap

Poniżej znajduje się opis akceptowanych opcji.

luma_radius, lr
chroma_radius, cr
alpha_radius, ar

Ustaw wyrażenie dla promienia prostokąta w pikselach używanego do rozmycia odpowiedniej płaszczyzny wejściowej.

Wartość promienia musi być liczbą nieujemną i nie może być większa niż wartość wyrażenia min(w,h)/2dla płaszczyzn luma i alfa oraz min(cw,ch)/2dla płaszczyzn chroma.

Wartość domyślna dlaluma_radiusto „2”. Jeśli nie określono, chroma_radiusorazalpha_radiusdomyślnie na odpowiednią wartość ustawioną dlaluma_radius.

Wyrażenia mogą zawierać następujące stałe:

w
h

Wejściowa szerokość i wysokość w pikselach.

cw
ch

Wejściowa szerokość i wysokość obrazu chrominancji w pikselach.

hsub
vsub

Wartości podpróbki chrominancji poziomej i pionowej. Na przykład dla formatu pikseli „yuv422p” hsubwynosi 2, a vsub1.

luma_power, lp
chroma_power, cp
alpha_power, ap

Określ, ile razy filtr boxblur zostanie zastosowany do odpowiedniej płaszczyzny.

Wartość domyślna dlaluma_powerwynosi 2. Jeśli nie określono, chroma_powerorazalpha_powerdomyślnie na odpowiednią wartość ustawioną dlaluma_power.

Wartość 0 wyłączy efekt.

12.2.1 Examples

Zastosuj filtr boxblur, ustawiając każdy piksel wyniku na średnią wartość box-radiuses luma_radius, chroma_radius, alpha_radiusodpowiednio dla każdej płaszczyzny. Filtr zastosuje luma_power, chroma_power, alpha_powerrazy do odpowiedniej płaszczyzny. W przypadku pikseli na krawędziach obrazu promień nie wykracza poza granice obrazu, dlatego w obliczeniach nie są używane współrzędne spoza zakresu.

  • Zastosuj filtr boxblur z luma, chroma i alpha promieniem ustawionym na 2 i luma, chroma i alpha power ustawionym na 3. Filtr uruchomi się 3 razy z box-radius ustawionym na 2 dla każdej płaszczyzny obrazu.
    -i INPUT -vf "hwupload, boxblur_opencl=luma_radius=2:luma_power=3, hwdownload" OUTPUT
    -i INPUT -vf "hwupload, boxblur_opencl=2:3, hwdownload" OUTPUT
    
  • Zastosuj filtr boxblur z promieniem lumy ustawionym na 2, luma_power na 1, chroma_radius na 4, chroma_power na 5, alpha_radius na 3 i alpha_power na 7.

    W przypadku płaszczyzny luma promień prostokąta 2x2 zostanie wykonany raz.

    W przypadku płaszczyzny chroma promień prostokąta 4x4 zostanie wykonany 5 razy.

    W przypadku płaszczyzny alfa promień prostokąta 3x3 zostanie wykonany 7 razy.

    -i INPUT -vf "hwupload, boxblur_opencl=2:1:4:5:3:7, hwdownload" OUTPUT
    

12.3 colorkey_opencl

Kluczowanie kolorów w przestrzeni kolorów RGB.

Filtr akceptuje następujące opcje:

color

Kolor, który zostanie zastąpiony przezroczystością.

similarity

Procent podobieństwa z kolorem klucza.

0.01 pasuje tylko do dokładnego koloru klucza, a 1.0 pasuje do wszystkiego.

blend

Procent mieszanki.

0.0 sprawia, że ​​piksele są w pełni przezroczyste lub w ogóle nie są przezroczyste.

Wyższe wartości skutkują półprzezroczystymi pikselami, przy większej przezroczystości kolor pikseli jest bardziej zbliżony do koloru kluczowego.

12.3.1 Examples

  • Spraw, aby każdy półzielony piksel w wejściu był przezroczysty, z niewielkim mieszaniem:
    -i INPUT -vf "hwupload, colorkey_opencl=green:0.3:0.1, hwdownload" OUTPUT
    

12.4 convolution_opencl

Zastosuj splot macierzy 3x3,5x5,7x7.

Filtr akceptuje następujące opcje:

0m
1m
2m
3m

Ustaw matrycę dla każdej płaszczyzny. Macierz to ciąg 9, 25 lub 49 podpisanych liczb. Domyślna wartość dla każdej płaszczyzny to 0 0 0 0 1 0 0 0 0.

0rdiv
1rdiv
2rdiv
3rdiv

Ustaw mnożnik dla obliczonej wartości dla każdej płaszczyzny. Jeśli nie jest ustawiona lub 0, będzie to suma wszystkich elementów macierzy. Wartość opcji musi być liczbą zmiennoprzecinkową większą lub równą 0.0. Wartość domyślna to 1.0.

0bias
1bias
2bias
3bias

Ustaw bias dla każdego samolotu. Ta wartość jest dodawana do wyniku mnożenia. Przydatne do rozjaśniania lub przyciemniania całego obrazu. Wartość opcji musi być liczbą zmiennoprzecinkową większą lub równą 0.0. Wartość domyślna to 0.0.

12.4.1 Examples

  • Zastosuj wyostrzenie:
    -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
    
  • Zastosuj rozmycie:
    -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
    
  • Zastosuj wzmocnienie krawędzi:
    -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
    
  • Zastosuj wykrywanie krawędzi:
    -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
    
  • Zastosuj wykrywacz krawędzi Laplacian, który obejmuje przekątne:
    -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
    
  • Zastosuj wytłoczenie:
    -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

Zastosuj efekt erozji do filmu.

Filtr ten zastępuje piksel przez minimum lokalne (3x3).

Akceptuje następujące opcje:

threshold0
threshold1
threshold2
threshold3

Ogranicz maksymalną zmianę dla każdego samolotu. Zakres to [0, 65535]i wartość domyślna to 65535. Jeśli 0, samolot pozostanie niezmieniony.

coordinates

Flaga określająca piksel, do którego ma się odnosić. Zakres to [0, 255], a domyślna wartość to 255, tzn. używane jest wszystkie osiem pikseli.

Flagi lokalnego regionu o współrzędnych 3x3 wyśrodkowane na x:

1 2 3

4x5

6 7 8

12.5.1 Example

  • Zastosuj filtr erozji z progiem 0 ustawionym na 30, próg1 ustawiony na 40, próg2 ustawiony na 50 i współrzędne ustawione na 231, ustawiając każdy piksel wyjścia na lokalne minimum między pikselami: 1, 2, 3, 6, 7, 8 z 3x3 region wyśrodkowany na nim w wejściu. Jeżeli różnica między pikselem wejściowym a minimum lokalnym jest większa niż próg odpowiedniej płaszczyzny, piksel wyjściowy zostanie ustawiony na piksel wejściowy - próg odpowiedniej płaszczyzny.
    -i INPUT -vf "hwupload, erosion_opencl=30:40:50:coordinates=231, hwdownload" OUTPUT
    

12.6 deshake_opencl

Filtr stabilizacji wideo oparty na punktach funkcji.

Filtr akceptuje następujące opcje:

tripod

Symuluje statyw, zapobiegając wszelkim ruchom kamery z oryginalnej ramki. Domyślnie 0.

debug

Czy powinny być wyświetlane dodatkowe informacje debugowania, zarówno w przetworzonych danych wyjściowych, jak i w konsoli.

Zauważ, że aby zobaczyć wyjście debugowania konsoli, musisz również przejść -v verbosedo ffmpeg.

Oglądanie dopasowań punktów w wyjściowym wideo jest obsługiwane tylko dla wejścia RGB.

Domyślnie 0.

adaptive_crop

Czy zrobić trochę przycinania na granicach, aby zmniejszyć ilość lustrzanych pikseli.

Domyślnie 1.

refine_features

Czy punkty charakterystyczne powinny być poprawiane na poziomie subpikseli.

Można to wyłączyć, aby uzyskać niewielki wzrost wydajności kosztem precyzji.

Domyślnie 1.

smooth_strength

Siła wygładzania zastosowanego do ścieżki kamery od 0.0do 1.0.

1.0to maksymalna siła wygładzania, podczas gdy wartości mniejsze niż ta powodują mniejsze wygładzenie.

0.0powoduje, że filtr adaptacyjnie wybiera siłę wygładzania dla każdej klatki.

Domyślnie 0.0.

smooth_window_multiplier

Steruje rozmiarem okna wygładzania (liczba klatek buforowanych w celu określenia informacji o ruchu).

Rozmiar okna wygładzania jest określany przez pomnożenie szybkości klatek wideo przez tę liczbę.

Dopuszczalne wartości to od 0.1do 10.0.

Większe wartości zwiększają ilość danych ruchu dostępnych do określenia sposobu wygładzenia ścieżki kamery, potencjalnie poprawiając płynność, ale także zwiększając opóźnienie i zużycie pamięci.

Domyślnie 2.0.

12.6.1 Examples

  • Ustabilizuj wideo ze stałą, średnią siłą wygładzania:
    -i INPUT -vf "hwupload, deshake_opencl=smooth_strength=0.5, hwdownload" OUTPUT
    
  • Ustabilizuj wideo za pomocą debugowania (zarówno w konsoli, jak i w renderowanym wideo):
    -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

Zastosuj efekt dylatacji do wideo.

Ten filtr zastępuje piksel przez maksimum lokalne (3x3).

Akceptuje następujące opcje:

threshold0
threshold1
threshold2
threshold3

Ogranicz maksymalną zmianę dla każdego samolotu. Zakres to [0, 65535]i wartość domyślna to 65535. Jeśli 0, samolot pozostanie niezmieniony.

coordinates

Flaga określająca piksel, do którego ma się odnosić. Zakres to [0, 255], a domyślna wartość to 255, tzn. używane jest wszystkie osiem pikseli.

Flagi lokalnego regionu o współrzędnych 3x3 wyśrodkowane na x:

1 2 3

4x5

6 7 8

12.7.1 Example

  • Zastosuj filtr dylatacyjny z progiem 0 ustawionym na 30, próg1 ustawiony na 40, próg2 ustawiony na 50 i współrzędne ustawione na 231, ustawiając każdy piksel wyjścia na lokalne maksimum między pikselami: 1, 2, 3, 6, 7, 8 z 3x3 region wyśrodkowany na nim w wejściu. Jeśli różnica między pikselem wejściowym a lokalnym maksimum jest większa niż próg odpowiedniej płaszczyzny, piksel wyjściowy zostanie ustawiony na piksel wejściowy + próg odpowiedniej płaszczyzny.
    -i INPUT -vf "hwupload, dilation_opencl=30:40:50:coordinates=231, hwdownload" OUTPUT
    

12.8 nlmeans_opencl

Non-local Oznacza filtr odszumiania przez OpenCL, ten filtr akceptuje te same opcje co nlmeans .

12.9 overlay_opencl

Nakładaj jeden film na drugi.

Zajmuje dwa wejścia i ma jedno wyjście. Pierwsze wejście to „główne” wideo, na które nakładane jest drugie wejście. Ten filtr wymaga tego samego układu pamięci dla wszystkich wejść. Może więc być potrzebna konwersja formatu.

Filtr akceptuje następujące opcje:

x

Ustaw współrzędną x nałożonego wideo na głównym wideo. Wartość domyślna to 0.

y

Ustaw współrzędną y nałożonego wideo na głównym wideo. Wartość domyślna to 0.

12.9.1 Examples

  • Nałóż LOGO obrazu w lewym górnym rogu wejściowego wideo. Oba wejścia mają format yuv420p.
    -i INPUT -i LOGO -filter_complex "[0:v]hwupload[a], [1:v]format=yuv420p, hwupload[b], [a][b]overlay_opencl, hwdownload" OUTPUT
    
  • Wejścia mają taki sam układ pamięci dla kanałów kolorów, nakładka ma dodatkową płaszczyznę alfa, np. INPUT to yuv420p, a LOGO to 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

Dodaj dopełnienia do obrazu wejściowego i umieść oryginalne dane wejściowe w podanych xwspółrzędnych y.

Akceptuje następujące opcje:

width, w
height, h

Określ wyrażenie określające rozmiar obrazu wyjściowego z dodanymi dopełnieniami. Jeśli wartość widthlub heightwynosi 0, odpowiedni rozmiar wejściowy jest używany dla danych wyjściowych.

Wyrażenie widthmoże odwoływać się do wartości ustawionej przez heightwyrażenie i na odwrót.

Domyślna wartość widthi heightwynosi 0.

x
y

Określ przesunięcia, w których ma zostać umieszczony obraz wejściowy w obszarze dopełnienia, w odniesieniu do górnej/lewej krawędzi obrazu wyjściowego.

Wyrażenie xmoże odwoływać się do wartości ustawionej przez y wyrażenie i na odwrót.

Domyślna wartość xi ywynosi 0.

Jeśli xlub yocenisz na liczbę ujemną, zostaną one zmienione tak, aby obraz wejściowy był wyśrodkowany na obszarze z wypełnieniem.

color

Określ kolor wyściełanego obszaru. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Color" w podręczniku ffmpeg-utils .

aspect

Dopasuj do aspektu zamiast do rozdzielczości.

Wartością opcji width, height, xi y są wyrażenia zawierające następujące stałe:

in_w
in_h

Wejściowa szerokość i wysokość wideo.

iw
ih

Są takie same jak in_wi in_h.

out_w
out_h

Wyjściowa szerokość i wysokość (rozmiar obszaru dopełnionego), określona przez wyrażenia widthi .height

ow
oh

Są takie same jak out_wi out_h.

x
y

Przesunięcia x i y określone przez wyrażenia i lub NAN, jeśli jeszcze nie zostały określone x.y

a

tak samo jak iw/ih

sar

wejściowy współczynnik proporcji próbki

dar

format obrazu wejściowego, taki sam jak ( iw/ ih) *sar

12.11 prewitt_opencl

Zastosuj operator Prewitt ( https://en.wikipedia.org/wiki/Prewitt_operator ) do wejścia strumienia wideo.

Filtr akceptuje następującą opcję:

planes

Ustaw samoloty do filtrowania. Wartość domyślna to 0xf, według której przetwarzane są wszystkie płaszczyzny.

scale

Ustaw wartość, która zostanie pomnożona przez przefiltrowany wynik. Zakres to [0.0, 65535]i wartość domyślna to 1.0.

delta

Ustaw wartość, która zostanie dodana do przefiltrowanego wyniku. Zakres to [-65535, 65535]i wartość domyślna to 0.0.

12.11.1 Example

  • Zastosuj operator Prewitt ze skalą ustawioną na 2 i deltą ustawioną na 10.
    -i INPUT -vf "hwupload, prewitt_opencl=scale=2:delta=10, hwdownload" OUTPUT
    

12.12 program_opencl

Filtruj wideo za pomocą programu OpenCL.

source

Plik źródłowy programu OpenCL.

kernel

Nazwa jądra w programie.

inputs

Liczba wejść do filtra. Domyślnie 1.

size, s

Rozmiar klatek wyjściowych. Domyślnie to samo, co pierwsze wejście.

Filtr program_openclobsługuje również opcje framesync .

Plik źródłowy programu musi zawierać funkcję jądra o podanej nazwie, która zostanie uruchomiona raz dla każdej płaszczyzny wyjściowej. Każdy przebieg na płaszczyźnie jest umieszczany w kolejce jako oddzielny globalny NDRange 2D z jednym elementem roboczym dla każdego generowanego piksela. Globalne przesunięcie ID dla każdego elementu roboczego jest zatem współrzędnymi piksela w obrazie docelowym.

Funkcja jądra musi przyjmować następujące argumenty:

  • Obraz docelowy, __write_only image2d_t.

    Ten obraz stanie się wyjściem; jądro powinno to wszystko zapisać.

  • Indeks ramki, unsigned int.

    Jest to licznik zaczynający się od zera i zwiększający się o jeden dla każdej klatki.

  • Obrazy źródłowe, __read_only image2d_t.

    Są to najnowsze obrazy na każdym wejściu. Jądro może z nich czytać, aby wygenerować dane wyjściowe, ale nie można do nich zapisywać.

Przykładowe programy:

  • Skopiuj dane wejściowe do danych wyjściowych (wyjście musi mieć taki sam rozmiar jak dane wejściowe).
    __kernel void copy(__write_only image2d_t miejsce docelowe,
                       indeks int bez znaku,
                       __read_only image2d_t źródło)
    {
        const sampler_t sampler = CLK_NORMALIZED_COORDS_FALSE;
    
        int2 lokalizacja = (int2)(get_global_id(0), get_global_id(1));
    
        wartość float4 = read_imagef(źródło, próbnik, lokalizacja);
    
        write_imagef(cel, lokalizacja, wartość);
    }
    
  • Zastosuj prostą transformację, obracając dane wejściowe o wartość rosnącą wraz z licznikiem indeksu. Wartości pikseli są interpolowane liniowo przez próbnik, a dane wyjściowe nie muszą mieć takich samych wymiarów jak dane wejściowe.
    __kernel void rotate_image(__write_only image2d_t dst,
                               indeks int bez znaku,
                               __read_only image2d_t src)
    {
        const sampler_t sampler = (CLK_NORMALIZED_COORDS_FALSE |
                                   CLK_FILTER_LINEAR);
    
        kąt pływania = (float)indeks / 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(kąt) * dst_pos.x - sin(kąt) * dst_pos.y,
            sin(kąt) * dst_pos.x + cos(kąt) * dst_pos.y
        };
        src_pos = src_pos * src_dim / dst_dim;
    
        float2 src_loc = src_pos + src_cen;
    
        if (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);
        w przeciwnym razie
            write_imagef(dst, dst_loc, read_imagef(src, sampler, src_loc));
    }
    
  • Połącz ze sobą dwa wejścia, przy czym ilość każdego użytego wejścia zmienia się wraz z licznikiem indeksu.
    __kernel void blend_images(__write_only image2d_t dst,
                               indeks int bez znaku,
                               __tylko do odczytu image2d_t src1,
                               __tylko do odczytu image2d_t src2)
    {
        const sampler_t sampler = (CLK_NORMALIZED_COORDS_FALSE |
                                   CLK_FILTER_LINEAR);
    
        mieszanka zmiennoprzecinkowa = (cos((zmiennoprzecinkowa)indeks / 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

Ponownie mapuj piksele za pomocą wejściowego strumienia wideo 2: Xmap i 3: Ymap.

Piksel docelowy na pozycji (X, Y) zostanie pobrany z pozycji źródłowej (x, y), gdzie x = Xmap(X, Y) i y = Ymap(X, Y). Jeśli wartości mapowania są poza zakresem, dla piksela docelowego zostanie użyta wartość zerowa dla piksela.

Wejściowe strumienie wideo Xmap i Ymap muszą mieć te same wymiary. Wyjściowy strumień wideo będzie miał wymiary strumienia wideo Xmap/Ymap. Wejściowe strumienie wideo Xmap i Ymap mają 32-bitowy format float pixel, pojedynczy kanał.

interp

Określ interpolację używaną do ponownego mapowania pikseli. Dozwolone wartości to neari linear. Wartość domyślna to linear.

fill

Określ kolor niezmapowanych pikseli. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Color" w podręczniku ffmpeg-utils . Kolor domyślny to black.

12.14 roberts_opencl

Zastosuj operator krzyżowy Robertsa ( https://en.wikipedia.org/wiki/Roberts_cross ) do wejściowego strumienia wideo.

Filtr akceptuje następującą opcję:

planes

Ustaw samoloty do filtrowania. Wartość domyślna to 0xf, według której przetwarzane są wszystkie płaszczyzny.

scale

Ustaw wartość, która zostanie pomnożona przez przefiltrowany wynik. Zakres to [0.0, 65535]i wartość domyślna to 1.0.

delta

Ustaw wartość, która zostanie dodana do przefiltrowanego wyniku. Zakres to [-65535, 65535]i wartość domyślna to 0.0.

12.14.1 Example

  • Zastosuj operator krzyżowy Robertsa ze skalą ustawioną na 2 i deltą ustawioną na 10
    -i INPUT -vf "hwupload, roberts_opencl=scale=2:delta=10, hwdownload" OUTPUT
    

12.15 sobel_opencl

Zastosuj operator Sobela ( https://en.wikipedia.org/wiki/Sobel_operator ) do wejścia strumienia wideo.

Filtr akceptuje następującą opcję:

planes

Ustaw samoloty do filtrowania. Wartość domyślna to 0xf, według której przetwarzane są wszystkie płaszczyzny.

scale

Ustaw wartość, która zostanie pomnożona przez przefiltrowany wynik. Zakres to [0.0, 65535]i wartość domyślna to 1.0.

delta

Ustaw wartość, która zostanie dodana do przefiltrowanego wyniku. Zakres to [-65535, 65535]i wartość domyślna to 0.0.

12.15.1 Example

  • Zastosuj operator sobela ze skalą ustawioną na 2 i deltą ustawioną na 10
    -i INPUT -vf "hwupload, sobel_opencl=scale=2:delta=10, hwdownload" OUTPUT
    

12.16 tonemap_opencl

Wykonaj konwersję HDR(PQ/HLG) na SDR z mapowaniem tonów.

Przyjmuje następujące parametry:

tonemap

Określ operatora mapowania tonów, który ma zostać użyty. Taka sama jak opcja tonemap w tonemap .

param

Dostrój algorytm mapowania tonów. tak samo jak opcja param w tonemap .

desat

Zastosuj desaturację dla świateł, które przekraczają ten poziom jasności. Im wyższy parametr, tym więcej informacji o kolorze zostanie zachowanych. To ustawienie pomaga zapobiegać nienaturalnemu wyblaknięciu kolorów w przypadku super jasnych obszarów poprzez (płynnie) zamianę w biel. Dzięki temu obrazy wydają się bardziej naturalne, kosztem zmniejszenia informacji o kolorach spoza zakresu.

Domyślna wartość to 0.5, a algorytm tutaj różni się nieco od aktualnej mapy dźwiękowej wersji procesora. Ustawienie 0.0 wyłącza tę opcję.

threshold

Parametry algorytmu mapowania tonalnego są dostrajane dla każdej sceny. A próg służy do wykrycia, czy scena się zmieniła, czy nie. Jeśli odległość między bieżącą średnią jasnością klatki a bieżącą średnią jasnością przekracza wartość progową, ponownie obliczymy średnią i szczytową jasność sceny. Wartość domyślna to 0,2.

format

Określ wyjściowy format pikseli.

Obecnie obsługiwane formaty to:

p010
nv12
range, r

Ustaw wyjściowy zakres kolorów.

Możliwe wartości to:

tv/mpeg
pc/jpeg

Wartość domyślna jest taka sama jak wejście.

primaries, p

Ustaw podstawowe kolory wyjściowe.

Możliwe wartości to:

bt709
bt2020

Wartość domyślna jest taka sama jak wejście.

transfer, t

Ustaw wyjściowe charakterystyki transferu.

Możliwe wartości to:

bt709
bt2020

Domyślnie jest to bt709.

matrix, m

Ustaw wyjściową macierz przestrzeni kolorów.

Możliwe wartości to:

bt709
bt2020

Wartość domyślna jest taka sama jak wejście.

12.16.1 Example

  • Konwertuj wideo HDR(PQ/HLG) na format p010 z charakterystyką transferu bt2020 za pomocą operatora liniowego.
    -i INPUT -vf "format=p010,hwupload,tonemap_opencl=t=bt2020:tonemap=linear:format=p010,hwdownload,format=p010" OUTPUT
    

12.17 unsharp_opencl

Wyostrz lub rozmyj wideo wejściowe.

Przyjmuje następujące parametry:

luma_msize_x, lx

Ustaw poziomą wielkość luma matrix. Zakres to [1, 23]i wartość domyślna to 5.

luma_msize_y, ly

Ustaw pionowy rozmiar matrycy luma. Zakres to [1, 23]i wartość domyślna to 5.

luma_amount, la

Ustaw siłę efektu luma. Zakres to [-10, 10]i wartość domyślna to 1.0.

Wartości ujemne spowodują rozmycie obrazu wejściowego, wartości dodatnie go wyostrzą, wartość zero wyłączy efekt.

chroma_msize_x, cx

Ustaw rozmiar poziomy matrycy chromatycznej. Zakres to [1, 23]i wartość domyślna to 5.

chroma_msize_y, cy

Ustaw pionowy rozmiar matrycy chromatycznej. Zakres to [1, 23]i wartość domyślna to 5.

chroma_amount, ca

Ustaw siłę efektu chromatycznego. Zakres to [-10, 10]i wartość domyślna to 0.0.

Wartości ujemne spowodują rozmycie obrazu wejściowego, wartości dodatnie go wyostrzą, wartość zero wyłączy efekt.

Wszystkie parametry są opcjonalne i domyślnie odpowiadają ciągowi „5:5:1.0:5:5:0.0”.

12.17.1 Examples

  • Zastosuj mocny efekt wyostrzenia lumy:
    -i INPUT -vf "hwupload, unsharp_opencl=luma_msize_x=7:luma_msize_y=7:luma_amount=2.5, hwdownload" OUTPUT
    
  • Zastosuj mocne rozmycie zarówno parametrów luma, jak i chroma:
    -i INPUT -vf "hwupload, unsharp_opencl=7:7:-2:7:7:-2, hwdownload" OUTPUT
    

12.18 xfade_opencl

Przenikaj dwa filmy z niestandardowym efektem przejścia za pomocą OpenCL.

Akceptuje następujące opcje:

transition

Ustaw jeden z możliwych efektów przejścia.

custom

Wybierz niestandardowy efekt przejścia, rzeczywisty opis przejścia zostanie wybrany z opcji źródła i jądra.

fade
wipeleft
wiperight
wipeup
wipedown
slideleft
slideright
slideup
slidedown

Domyślne przejście to zanikanie.

source

Plik źródłowy programu OpenCL do niestandardowego przejścia.

kernel

Ustaw nazwę jądra używanego do niestandardowego przejścia z pliku źródłowego programu.

duration

Ustaw czas trwania przejścia wideo.

offset

Ustaw czas rozpoczęcia przejścia w stosunku do pierwszego wideo.

Plik źródłowy programu musi zawierać funkcję jądra o podanej nazwie, która zostanie uruchomiona raz dla każdej płaszczyzny wyjściowej. Każdy przebieg na płaszczyźnie jest umieszczany w kolejce jako oddzielny globalny NDRange 2D z jednym elementem roboczym dla każdego generowanego piksela. Globalne przesunięcie ID dla każdego elementu roboczego jest zatem współrzędnymi piksela w obrazie docelowym.

Funkcja jądra musi przyjmować następujące argumenty:

  • Obraz docelowy, __write_only image2d_t.

    Ten obraz stanie się wyjściem; jądro powinno to wszystko zapisać.

  • Pierwszy obraz źródłowy, __read_only image2d_t. Drugi obraz źródłowy, __read_only image2d_t.

    Są to najnowsze obrazy na każdym wejściu. Jądro może z nich czytać, aby wygenerować dane wyjściowe, ale nie można do nich zapisywać.

  • Postęp przejścia, float. Ta wartość jest zawsze z zakresu od 0 do 1 włącznie.

Przykładowe programy:

  • Zastosuj efekt przejścia kurtyny w kropki:
    __kernel void blend_images(__write_only image2d_t dst,
                               __tylko do odczytu image2d_t src1,
                               __tylko do odczytu image2d_t src2,
                               postęp pływania)
    {
        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 / przyciemnienie;
    
        float2 kropki = (float2)(20,0, 20,0);
        środek float2 = (float2)(0,0);
        float2 nieużywany;
    
        float4 wart1 = read_imagef(src1, próbnik, p);
        float4 val2 = read_imagef(src2, sampler, p);
        bool next = odległość(frakt(rp * kropki, &nieużywane), (float2)(0.5, 0.5)) < (postęp / odległość(rp, środek));
    
        write_imagef(dst, p, next ? wart1 : wart2);
    }
    

13 VAAPI Video Filters

Filtry wideo VAAPI są zwykle używane z dekoderem VAAPI i koderem VAAPI. Poniżej znajduje się opis filtrów wideo VAAPI.

Aby umożliwić kompilację tych filtrów, musisz skonfigurować FFmpeg za pomocą --enable-vaapi.

Aby korzystać z filtrów vaapi, musisz poprawnie skonfigurować urządzenie vaapi. Aby uzyskać więcej informacji, przeczytaj https://trac.ffmpeg.org/wiki/Hardware/VAAPI

13.1 overlay_vaapi

Nakładaj jeden film na drugi.

Zajmuje dwa wejścia i ma jedno wyjście. Pierwsze wejście to „główne” wideo, na które nakładane jest drugie wejście. Ten filtr wymaga tego samego układu pamięci dla wszystkich wejść. Może więc być potrzebna konwersja formatu.

Filtr akceptuje następujące opcje:

x

Ustaw współrzędną x nałożonego wideo na głównym wideo. Wartość domyślna to 0.

y

Ustaw współrzędną y nałożonego wideo na głównym wideo. Wartość domyślna to 0.

w

Ustaw szerokość nałożonego wideo na głównym wideo. Wartość domyślna to szerokość wejściowego wideo nakładki.

h

Ustaw wysokość nałożonego wideo na głównym wideo. Wartość domyślna to wysokość wejściowego wideo nakładki.

alpha

Ustaw progi wykrywania blokowania. Dozwolony zakres to 0,0 do 1,0, wymaga wejścia wideo z kanałem alfa. Wartość domyślna to 0.0.

13.1.1 Examples

  • Nałóż LOGO obrazu w lewym górnym rogu wejściowego wideo. Oba wejścia dla tego filtra mają format yuv420p.
    -i INPUT -i LOGO -filter_complex "[0:v]hwupload[a], [1:v]format=yuv420p, hwupload[b], [a][b]overlay_vaapi" OUTPUT
    
  • Nałóż LOGO obrazu w przesunięciu (200, 100) od lewego górnego rogu wideo WEJŚCIOWEGO. Wejścia mają taki sam układ pamięci dla kanałów kolorów, nakładka ma dodatkową płaszczyznę alfa, np. INPUT to yuv420p, a LOGO to 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

Wykonaj konwersję HDR (High Dynamic Range) na SDR (Standard Dynamic Range) z mapowaniem tonów. Mapuje zakres dynamiczny treści HDR10 do treści SDR. Obecnie jako wejście akceptuje tylko HDR10.

Przyjmuje następujące parametry:

format

Określ wyjściowy format pikseli.

Obecnie obsługiwane formaty to:

p010
nv12

Domyślnie jest to nv12.

primaries, p

Ustaw podstawowe kolory wyjściowe.

Wartość domyślna jest taka sama jak wejście.

transfer, t

Ustaw wyjściowe charakterystyki transferu.

Domyślnie jest to bt709.

matrix, m

Ustaw wyjściową macierz przestrzeni kolorów.

Wartość domyślna jest taka sama jak wejście.

13.2.1 Example

  • Konwertuj wideo HDR (HDR10) na format p010 z charakterystycznym transferem bt2020
    tonemap_vaapi=format=p010:t=bt2020-10
    

14 Video Sources

Poniżej znajduje się opis aktualnie dostępnych źródeł wideo.

14.1 buffer

Buforuj klatki wideo i udostępniaj je w łańcuchu filtrów.

To źródło jest przeznaczone głównie do użytku programistycznego, w szczególności za pośrednictwem interfejsu zdefiniowanego wlibavfilter/buffersrc.h.

Przyjmuje następujące parametry:

video_size

Określ rozmiar (szerokość i wysokość) buforowanych klatek wideo. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Rozmiar wideo" w podręczniku ffmpeg-utils .

width

Wejściowa szerokość wideo.

height

Wejściowa wysokość wideo.

pix_fmt

Ciąg reprezentujący format pikseli buforowanych klatek wideo. Może to być liczba odpowiadająca formatowi piksela lub nazwa formatu piksela.

time_base

Określ podstawę czasu przyjmowaną przez sygnatury czasowe buforowanych ramek.

frame_rate

Określ oczekiwaną liczbę klatek na sekundę dla strumienia wideo.

pixel_aspect, sar

Współczynnik proporcji próbki (pikseli) wejściowego wideo.

sws_param

Ta opcja jest przestarzała i ignorowana. Dołącz do opisu wykresu filtra, aby określić flagi swscale dla automatycznie wstawianych skalerów. Zobacz Składnia Filtergraph . sws_flags=flags;

hw_frames_ctx

W przypadku korzystania ze sprzętowego formatu pikseli, powinno to być odniesienie do AVHWFramesContext opisującego ramki wejściowe.

Na przykład:

buffer=width=320:height=240:pix_fmt=yuv410p:time_base=1/24:sar=1

poinstruuje źródło, aby akceptowało klatki wideo o rozmiarze 320x240 i formacie „yuv410p”, przyjmując 1/24 jako podstawę czasową i kwadratowe piksele (proporcje próbki 1:1). Ponieważ format piksela o nazwie "yuv410p" odpowiada liczbie 6 (sprawdź definicję enum AVPixelFormat wlibavutil/pixfmt.h), ten przykład odpowiada:

buffer=size=320x240:pixfmt=6:time_base=1/24:pixel_aspect=1/1

Alternatywnie opcje można określić jako płaski ciąg, ale ta składnia jest przestarzała:

width: height: pix_fmt: time_base.num: time_base.den: pixel_aspect.num:pixel_aspect.den

14.2 cellauto

Utwórz wzór wygenerowany przez elementarny automat komórkowy.

Stan początkowy automatu komórkowego można zdefiniować za pomocą filenameorazpatternopcje. Jeśli takie opcje nie są określone, stan początkowy jest tworzony losowo.

W każdej nowej klatce nowy wiersz w filmie jest wypełniany wynikiem działania automatu komórkowego następnej generacji. Zachowanie, gdy cała ramka jest wypełniona, jest określone przezscrollopcja.

To źródło akceptuje następujące opcje:

filename, f

Odczytaj początkowy stan automatu komórkowego, czyli początkowy wiersz, z podanego pliku. W pliku każdy znak inny niż biały jest uważany za żywą komórkę, znak nowej linii kończy wiersz, a dalsze znaki w pliku będą ignorowane.

pattern, p

Odczytaj początkowy stan automatu komórkowego, czyli początkowy wiersz, z podanego ciągu.

Każdy znak inny niż biały w ciągu jest uważany za żywą komórkę, znak nowej linii kończy wiersz, a kolejne znaki w ciągu są ignorowane.

rate, r

Ustaw szybkość wideo, czyli liczbę klatek generowanych na sekundę. Wartość domyślna to 25.

random_fill_ratio, ratio

Ustaw losowy współczynnik wypełnienia dla początkowego wiersza automatu komórkowego. Jest to liczba zmiennoprzecinkowa z zakresu od 0 do 1, domyślnie 1/PHI.

Ta opcja jest ignorowana, gdy określony jest plik lub wzorzec.

random_seed, seed

Ustaw ziarno do losowego wypełnienia początkowego wiersza, musi być liczbą całkowitą zawartą między 0 a UINT32_MAX. Jeśli nie zostanie określony lub jeśli zostanie jawnie ustawiony na -1, filtr spróbuje użyć dobrego losowego inicjatora na zasadzie najlepszego wysiłku.

rule

Ustaw regułę automatu komórkowego, jest to liczba z zakresu od 0 do 255. Wartość domyślna to 110.

size, s

Ustaw rozmiar wyjściowego wideo. Aby zapoznać się ze składnią tej opcji, sprawdź sekcję (ffmpeg-utils) „Rozmiar wideo” w podręczniku ffmpeg-utils .

Jeślifilenamelubpatternjest określony, rozmiar jest domyślnie ustawiany na szerokość określonego wiersza stanu początkowego, a wysokość jest ustawiana na width* PHI.

Jeślisizejest ustawiony, musi zawierać szerokość określonego ciągu wzorcowego, a określony wzorzec zostanie wyśrodkowany w większym wierszu.

Jeśli nie określono nazwy pliku lub ciągu wzorca, domyślną wartością rozmiaru jest „320x518” (używana do losowo generowanego stanu początkowego).

scroll

Jeśli jest ustawiona na 1, przewiń dane wyjściowe w górę, gdy wszystkie wiersze w danych wyjściowych zostaną już wypełnione. Jeśli ustawione na 0, nowy wygenerowany wiersz zostanie nadpisany nad wierszem górnym zaraz po wypełnieniu wiersza dolnego. Domyślnie 1.

start_full, full

Jeśli jest ustawiona na 1, całkowicie wypełnij dane wyjściowe wygenerowanymi wierszami przed wysłaniem pierwszej ramki. Jest to domyślne zachowanie, aby wyłączyć, należy ustawić wartość na 0.

stitch

Jeśli ustawiono na 1, zszyj razem lewy i prawy brzeg rzędu. Jest to domyślne zachowanie, aby wyłączyć, należy ustawić wartość na 0.

14.2.1 Examples

  • Odczytaj stan początkowy zpatterni określ dane wyjściowe o rozmiarze 200x400.
    cellauto=f=pattern:s=200x400
    
  • Wygeneruj losowy początkowy wiersz o szerokości 200 komórek ze współczynnikiem wypełnienia 2/3:
    cellauto=ratio=2/3:s=200x200
    
  • Utwórz wzór wygenerowany przez regułę 18, zaczynając od pojedynczej żywej komórki wyśrodkowanej na początkowym rzędzie o szerokości 100:
    cellauto=p=@:s=100x400:full=0:rule=18
    
  • Określ bardziej rozbudowany wzorzec początkowy:
    cellauto=p='@@ @ @@':s=100x400:full=0:rule=18
    

14.3 coreimagesrc

Źródło wideo wygenerowane na GPU przy użyciu interfejsu Apple CoreImage API na OSX.

To źródło wideo jest specjalistyczną wersją obrazu rdzenia filtra wideoUżyj generatora obrazu rdzenia na początku zastosowanego łańcucha filtrów, aby wygenerować zawartość.

Źródło wideo coreimagesrc akceptuje następujące opcje:

list_generators

Wymień wszystkie dostępne generatory wraz ze wszystkimi ich opcjami, a także możliwymi wartościami minimalnymi i maksymalnymi wraz z wartościami domyślnymi.

list_generators=true
size, s

Określ rozmiar źródłowego wideo. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Rozmiar wideo" w podręczniku ffmpeg-utils . Wartość domyślna to 320x240.

rate, r

Określ szybkość klatek źródła wideo jako liczbę klatek generowanych na sekundę. Musi to być ciąg w formacie frame_rate_num/ frame_rate_den, liczba całkowita, liczba zmiennoprzecinkowa lub poprawny skrót szybkości klatek wideo. Wartość domyślna to „25”.

sar

Ustaw przykładowe proporcje źródła wideo.

duration, d

Ustaw czas trwania źródłowego wideo. Zobacz (ffmpeg-utils) sekcję Czas trwania w podręczniku ffmpeg-utils(1), aby poznać akceptowaną składnię.

Jeśli nie zostanie określony lub podany czas trwania jest ujemny, wideo powinno zostać wygenerowane na zawsze.

Dodatkowo akceptowane są wszystkie opcje filtra wideo coreimage . Kompletny łańcuch filtrów może być użyty do dalszego przetwarzania wygenerowanych danych wejściowych bez transferu CPU-HOST. Zobacz dokumentację coreimage i przykłady, aby uzyskać szczegółowe informacje.

14.3.1 Examples

  • Użyj CIQRCodeGenerator, aby utworzyć kod QR dla strony głównej FFmpeg, podany jako kompletny i zmieniony wiersz poleceń dla standardowej powłoki bash firmy Apple:
    ffmpeg -f lavfi -i coreimagesrc=s=100x100:filter=CIQRCodeGenerator@inputMessage=https\\\\\://FFmpeg.org/@inputCorrectionLevel=H -frames:v 1 QRCode.png
    

    Ten przykład jest odpowiednikiem przykładu QRCode z coreimage bez potrzeby źródła wideo nullsrc.

14.4 gradients

Wygeneruj kilka gradientów.

size, s

Ustaw rozmiar ramki. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Rozmiar wideo" w podręczniku ffmpeg-utils . Wartość domyślna to „640x480”.

rate, r

Ustaw liczbę klatek wyrażoną jako liczba klatek na sekundę. Wartość domyślna to „25”.

c0, c1, c2, c3, c4, c5, c6, c7

Zestaw 8 kolorów. Domyślne wartości kolorów to wybór losowy.

x0, y0, y0, y1

Ustaw źródło i punkty docelowe linii gradientu. Jeśli są ujemne lub poza zakresem, wybierane są losowe.

nb_colors, n

Ustaw liczbę kolorów do użycia naraz. Dozwolony zakres to od 2 do 8. Wartość domyślna to 2.

seed

Ustaw ziarno do zbierania punktów linii gradientu.

duration, d

Ustaw czas trwania źródłowego wideo. Zobacz (ffmpeg-utils) sekcję Czas trwania w podręczniku ffmpeg-utils(1), aby poznać akceptowaną składnię.

Jeśli nie zostanie określony lub podany czas trwania jest ujemny, wideo powinno zostać wygenerowane na zawsze.

speed

Ustaw prędkość obrotu gradientów.

type, t

Ustaw typ gradientów, może być linearlub radiallub circularlub spiral.

14.5 mandelbrot

Wygeneruj fraktal zbioru Mandelbrota i stopniowo zbliżaj się do punktu określonego za pomocą start_xi start_y.

To źródło akceptuje następujące opcje:

end_pts

Ustaw wartość terminala pts. Wartość domyślna to 400.

end_scale

Ustaw wartość skali terminala. Musi być wartością zmiennoprzecinkową. Wartość domyślna to 0,3.

inner

Ustaw tryb kolorowania wewnętrznego, czyli algorytm używany do rysowania wewnętrznego obszaru fraktalnego Mandelbrota.

Przyjmuje jedną z następujących wartości:

black

Ustaw tryb czarny.

convergence

Pokaż czas do zbieżności.

mincol

Ustaw kolor na podstawie punktu znajdującego się najbliżej początku iteracji.

period

Ustaw tryb okresu.

Wartość domyślna to mincol.

bailout

Ustaw wartość ratowania. Wartość domyślna to 10,0.

maxiter

Ustaw maksymalną liczbę iteracji wykonywanych przez algorytm renderowania. Wartość domyślna to 7189.

outer

Ustaw tryb kolorowania zewnętrznego. Przyjmie jedną z następujących wartości:

iteration_count

Ustaw tryb liczenia iteracji.

normalized_iteration_count

ustaw znormalizowany tryb liczenia iteracji.

Wartość domyślna to normalized_iteration_count.

rate, r

Ustaw liczbę klatek wyrażoną jako liczba klatek na sekundę. Wartość domyślna to „25”.

size, s

Ustaw rozmiar ramki. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Rozmiar wideo" w podręczniku ffmpeg-utils . Wartość domyślna to „640x480”.

start_scale

Ustaw początkową wartość skali. Wartość domyślna to 3.0.

start_x

Ustaw początkową pozycję x. Musi być wartością zmiennoprzecinkową z zakresu od -100 do 100. Wartość domyślna to -0,743643887037158704752191506114774.

start_y

Ustaw początkową pozycję y. Musi być wartością zmiennoprzecinkową z zakresu od -100 do 100. Wartość domyślna to -0,131825904205311970493132056385139.

14.6 mptestsrc

Generuj różne wzorce testowe, generowane przez filtr testowy MPlayera.

Rozmiar wygenerowanego wideo jest stały i wynosi 256x256. To źródło jest przydatne w szczególności do testowania funkcji kodowania.

To źródło akceptuje następujące opcje:

rate, r

Określ szybkość klatek źródła wideo jako liczbę klatek generowanych na sekundę. Musi to być ciąg w formacie frame_rate_num/ frame_rate_den, liczba całkowita, liczba zmiennoprzecinkowa lub poprawny skrót szybkości klatek wideo. Wartość domyślna to „25”.

duration, d

Ustaw czas trwania źródłowego wideo. Zobacz (ffmpeg-utils) sekcję Czas trwania w podręczniku ffmpeg-utils(1), aby poznać akceptowaną składnię.

Jeśli nie zostanie określony lub podany czas trwania jest ujemny, wideo powinno zostać wygenerowane na zawsze.

test, t

Ustaw numer lub nazwę testu do wykonania. Obsługiwane testy to:

dc_luma
dc_chroma
freq_luma
freq_chroma
amp_luma
amp_chroma
cbp
mv
ring1
ring2
all
max_frames, m

Ustaw maksymalną liczbę klatek generowanych dla każdego testu, domyślna wartość to 30.

Wartość domyślna to „all”, co spowoduje przechodzenie przez listę wszystkich testów.

Kilka przykładów:

mptestsrc=t=dc_luma

wygeneruje wzorzec testowy „dc_luma”.

14.7 frei0r_src

Podaj darmowe źródło.

Aby umożliwić kompilację tego filtra musisz zainstalować nagłówek frei0r i skonfigurować FFmpeg z --enable-frei0r.

To źródło akceptuje następujące parametry:

size

Rozmiar filmu do wygenerowania. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Rozmiar wideo" w podręczniku ffmpeg-utils .

framerate

Liczba klatek na sekundę wygenerowanego wideo. Może to być ciąg znaków w postaci num/ denlub skrót liczby klatek na sekundę.

filter_name

Nazwa frei0r źródła do załadowania. Aby uzyskać więcej informacji na temat frei0r i jak ustawić parametry, przeczytaj sekcję frei0r w dokumentacji filtrów wideo.

filter_params

Oddzielona '|' lista parametrów do przekazania do źródła frei0r.

Na przykład, aby wygenerować źródło frei0r partik0l o rozmiarze 200x200 i liczbie klatek na sekundę 10, które jest nakładane na główne wejście filtra nakładki:

frei0r_src=size=200x200:framerate=10:filter_name=partik0l:filter_params=1234 [overlay]; [in][overlay] overlay

14.8 life

Wygeneruj wzór życia.

To źródło jest oparte na uogólnieniu gry życiowej Johna Conwaya.

Dane wejściowe reprezentują siatkę życia, każdy piksel reprezentuje komórkę, która może znajdować się w jednym z dwóch możliwych stanów, żywym lub martwym. Każda komórka oddziałuje ze swoimi ośmioma sąsiadami, czyli komórkami sąsiadującymi ze sobą poziomo, pionowo lub po przekątnej.

Przy każdej interakcji siatka ewoluuje zgodnie z przyjętą regułą, która określa liczbę sąsiednich żywych komórek, które sprawią, że komórka pozostanie przy życiu lub narodzi się. Theruleopcja pozwala określić regułę do przyjęcia.

To źródło akceptuje następujące opcje:

filename, f

Ustaw plik, z którego ma zostać odczytany początkowy stan siatki. W pliku każdy znak inny niż biały jest uważany za żywą komórkę, a znak nowej linii jest używany do odgraniczenia końca każdego wiersza.

Jeśli ta opcja nie zostanie określona, ​​początkowa siatka jest generowana losowo.

rate, r

Ustaw szybkość wideo, czyli liczbę klatek generowanych na sekundę. Wartość domyślna to 25.

random_fill_ratio, ratio

Ustaw losowy współczynnik wypełnienia dla początkowej losowej siatki. Jest to liczba zmiennoprzecinkowa z zakresu od 0 do 1, domyślnie 1/PHI. Jest ignorowany, gdy określony jest plik.

random_seed, seed

Ustaw ziarno do wypełnienia początkowej losowej siatki, musi być liczbą całkowitą zawartą między 0 a UINT32_MAX. Jeśli nie zostanie określony lub jeśli zostanie jawnie ustawiony na -1, filtr spróbuje użyć dobrego losowego inicjatora na zasadzie najlepszego wysiłku.

rule

Ustaw zasadę życia.

Regułę można określić za pomocą kodu typu "S NS/B NB", gdzie NSi NBsą ciągami liczb z zakresu 0-8, NSokreśla liczbę żywych sąsiednich komórek, które sprawiają, że żywa komórka pozostaje żywa, oraz NBliczbę żywych komórek sąsiednie komórki, które sprawiają, że martwa komórka staje się żywa (tj. „rodzi się”). „s” i „b” mogą być użyte w miejsce odpowiednio „S” i „B”.

Alternatywnie regułę można określić za pomocą 18-bitowej liczby całkowitej. 9 bitów wyższego rzędu jest używanych do kodowania następnego stanu komórki, jeśli jest ona żywa, dla każdej liczby sąsiednich żywych komórek, bity niższego rzędu określają regułę „rodzenia się” nowych komórek. Bity wyższego rzędu kodują większą liczbę sąsiednich komórek. Na przykład liczba 6153 = (12<<9)+9określa zasadę pozostania przy życiu o wartości 12 i urodzoną zasadę 9, co odpowiada „S23/B03”.

Wartość domyślna to „S23/B3”, która jest oryginalną regułą gry życia Conwaya i utrzyma komórkę przy życiu, jeśli ma 2 lub 3 sąsiednie żywe komórki, i urodzi nową komórkę, jeśli są trzy żywe komórki wokół martwej komórka.

size, s

Ustaw rozmiar wyjściowego wideo. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Rozmiar wideo" w podręczniku ffmpeg-utils .

Jeślifilenamejest określony, rozmiar jest domyślnie ustawiony na taki sam rozmiar pliku wejściowego. Jeślisizejest ustawiona, musi zawierać rozmiar określony w pliku wejściowym, a początkowa siatka zdefiniowana w tym pliku jest wyśrodkowana w większym obszarze wynikowym.

Jeśli nie określono nazwy pliku, domyślną wartością rozmiaru jest „320x240” (używana do losowo generowanej siatki początkowej).

stitch

Jeśli ustawiono na 1, zszyj razem lewą i prawą krawędź siatki, a także górną i dolną krawędź. Domyślnie 1.

mold

Ustaw prędkość formy komórkowej. Jeśli ustawione, martwa komórka wyjdziedeath_colordo mold_colorz krokiemmold.moldmoże mieć wartość od 0 do 255.

life_color

Ustaw kolor żywych (lub nowo narodzonych) komórek.

death_color

Ustaw kolor martwych komórek. Jeślimoldjest ustawiony, jest to pierwszy kolor używany do reprezentowania martwej komórki.

mold_color

Ustaw kolor pleśni, dla zdecydowanie martwych i spleśniałych komórek.

Aby zapoznać się ze składnią tych 3 opcji kolorów, sprawdź sekcję (ffmpeg-utils)"Color" w podręczniku ffmpeg-utils .

14.8.1 Examples

  • Przeczytaj siatkę zpatterni wyśrodkuj go na siatce o rozmiarze 300x300 pikseli:
    life=f=pattern:s=300x300
    
  • Wygeneruj losową siatkę o wymiarach 200x200 ze współczynnikiem wypełnienia 2/3:
    life=ratio=2/3:s=200x200
    
  • Określ niestandardową regułę rozwoju losowo generowanej siatki:
    life=rule=S14/B34
    
  • Pełny przykład z efektem powolnej śmierci (pleśń) przy użyciu 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

Źródło allrgbzwraca klatki o rozmiarze 4096x4096 wszystkich kolorów rgb.

Źródło allyuvzwraca klatki o rozmiarze 4096x4096 wszystkich kolorów yuv.

Źródło colorzapewnia jednolicie zabarwiony sygnał wejściowy.

Źródło colorchartzawiera tabelę sprawdzania kolorów.

Źródło colorspectrumzapewnia wejście widma kolorów.

Źródło haldclutsrczapewnia tożsamość Hald CLUT. Zobacz także filtr haldclut .

Źródło nullsrczwraca nieprzetworzone klatki wideo. Przydaje się głównie do wykorzystania w narzędziach do analizy / debugowania lub jako źródło filtrów, które ignorują dane wejściowe.

Źródło pal75barsgeneruje wzór pasków kolorów w oparciu o zalecenia EBU PAL z 75% poziomami kolorów.

Źródło pal100barsgeneruje wzór pasków kolorów w oparciu o zalecenia EBU PAL ze 100% poziomami kolorów.

Źródło rgbtestsrcgeneruje wzór testowy RGB przydatny do wykrywania problemów RGB z BGR. Powinieneś zobaczyć czerwony, zielony i niebieski pasek od góry do dołu.

Źródło smptebarsgeneruje wzór pasków kolorów, w oparciu o wytyczne SMPTE Engineering Guideline EG 1-1990.

Źródło smptehdbarsgeneruje wzór pasków kolorów, oparty na SMPTE RP 219-2002.

Źródło testsrcgeneruje testowy wzór wideo, pokazując wzór koloru, gradient przewijania i znacznik czasu. Jest to przeznaczone głównie do celów testowych.

Źródło testsrc2jest podobne do testingrc, ale obsługuje więcej formatów pikseli, a nie tylko rgb24. Pozwala to na użycie go jako danych wejściowych do innych testów bez konieczności konwersji formatu.

Źródło yuvtestsrcgeneruje wzór testowy YUV. Powinieneś zobaczyć paski ay, cb i cr od góry do dołu.

Źródła przyjmują następujące parametry:

level

Określ poziom Hald CLUT, dostępny tylko w haldclutsrc źródle. Poziom Ngeneruje obraz w N*N*Npikselach N*N*N , który ma być używany jako macierz tożsamości dla tabel przeglądowych 3D. Każdy komponent jest kodowany na 1/(N*N)skali.

color, c

Określ kolor źródła, dostępny tylko w color źródle. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Color" w podręczniku ffmpeg-utils .

size, s

Określ rozmiar źródłowego wideo. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Rozmiar wideo" w podręczniku ffmpeg-utils . Wartość domyślna to 320x240.

Ta opcja nie jest dostępna w przypadku filtrów allrgb, allyuvi .haldclutsrc

rate, r

Określ szybkość klatek źródła wideo jako liczbę klatek generowanych na sekundę. Musi to być ciąg w formacie frame_rate_num/ frame_rate_den, liczba całkowita, liczba zmiennoprzecinkowa lub poprawny skrót szybkości klatek wideo. Wartość domyślna to „25”.

duration, d

Ustaw czas trwania źródłowego wideo. Zobacz (ffmpeg-utils) sekcję Czas trwania w podręczniku ffmpeg-utils(1), aby poznać akceptowaną składnię.

Jeśli nie zostanie określony lub podany czas trwania jest ujemny, wideo powinno zostać wygenerowane na zawsze.

Ponieważ liczba klatek na sekundę jest używana jako podstawa czasu, wszystkie klatki, w tym ostatnia, będą miały pełny czas trwania. Jeśli określony czas trwania nie jest wielokrotnością czasu trwania klatki, zostanie zaokrąglony w górę.

sar

Ustaw przykładowe proporcje źródła wideo.

alpha

Określ alfa (krycie) tła, dostępne tylko w testsrc2źródle. Wartość musi mieścić się w zakresie od 0 (w pełni przezroczysta) do 255 (w pełni nieprzezroczysta, domyślna).

decimals, n

Ustaw liczbę miejsc dziesiętnych, które mają być wyświetlane w sygnaturze czasowej, dostępne tylko w testsrcźródle.

Wyświetlana wartość znacznika czasu będzie odpowiadać oryginalnej wartości znacznika czasu pomnożonej przez potęgę 10 określonej wartości. Wartość domyślna to 0.

type

Ustaw typ widma kolorów, dostępny tylko w colorspectrumźródle. Może być jednym z następujących:

'black'
'white'
'all'
patch_size

Ustaw rozmiar wstawki pojedynczego koloru, dostępnej tylko w colorchartźródle. Wartość domyślna to 64x64.

preset

Ustaw wstępnie ustawione kolory sprawdzania kolorów, dostępne tylko w colorchartźródle.

Dostępne wartości to:

'reference'
'skintones'

Wartość domyślna to reference.

14.9.1 Examples

  • Wygeneruj wideo o czasie trwania 5,3 sekundy, o rozmiarze 176x144 i liczbie klatek na sekundę 10 klatek na sekundę:
    testsrc=duration=5.3:size=qcif:rate=10
    
  • Poniższy opis wykresu wygeneruje czerwone źródło z nieprzezroczystością 0,2, rozmiarem „qcif” i szybkością klatek 10 klatek na sekundę:
    color=c=red@0.2:s=qcif:r=10
    
  • Jeśli treść wejściowa ma zostać zignorowana, nullsrcmożna użyć. Następujące polecenie generuje szum w płaszczyźnie luminancji przy użyciu geqfiltra:
    nullsrc=s=256x256, geq=random(1)*255:128:128
    

14.9.2 Commands

Źródło colorobsługuje następujące polecenia:

c, color

Ustaw kolor tworzonego obrazu. Akceptuje tę samą składnię odpowiedniegocoloropcja.

14.10 openclsrc

Wygeneruj wideo za pomocą programu OpenCL.

source

Plik źródłowy programu OpenCL.

kernel

Nazwa jądra w programie.

size, s

Rozmiar ramek do wygenerowania. To musi być ustawione.

format

Format pikseli do użycia w wygenerowanych ramkach. To musi być ustawione.

rate, r

Liczba klatek generowanych na sekundę. Wartość domyślna to „25”.

Aby uzyskać szczegółowe informacje o tym, jak działa ładowanie programu, zobacz filtr program_opencl .

Przykładowe programy:

  • Generuj rampę kolorów, ustawiając wartości pikseli na podstawie pozycji piksela na obrazie wyjściowym. (Zauważ, że będzie to działać ze wszystkimi formatami pikseli, ale wygenerowane wyjście nie będzie takie samo.)
    __kernel void ramp(__write_only image2d_t dst,
                       niepodpisany indeks int)
    {
        int2 loc = (int2)(get_global_id(0), get_global_id(1));
    
        pływak4 wart;
        val.xy = val.zw = convert_float2(loc) / convert_float2(get_image_dim(dst));
    
        write_imagef(dst, loc, val);
    }
    
  • Wygeneruj wzór dywanu Sierpińskiego, przesuwając o jeden piksel w każdej klatce.
    __kernel void sierpinski_carpet(__write_only image2d_t dst,
                                    niepodpisany indeks int)
    {
        int2 loc = (int2)(get_global_id(0), get_global_id(1));
    
        wartość float4 = 0.0f;
        int x = loc.x + indeks;
        int y = loc.y + indeks;
        podczas gdy (x > 0 || y > 0) {
            if (x % 3 == 1 && y % 3 == 1) {
                wartość = 1,0f;
                przerwanie;
            }
            x /= 3;
            y /= 3;
        }
    
        write_imagef(dst, loc, wartość);
    }
    

14.11 sierpinski

Wygeneruj fraktal dywan/trójkąt Sierpińskiego i losowo przesuwaj.

To źródło akceptuje następujące opcje:

size, s

Ustaw rozmiar ramki. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Rozmiar wideo" w podręczniku ffmpeg-utils . Wartość domyślna to „640x480”.

rate, r

Ustaw liczbę klatek wyrażoną jako liczba klatek na sekundę. Wartość domyślna to „25”.

seed

Ustaw ziarno, które jest używane do losowego panoramowania.

jump

Ustaw maksymalny skok dla pojedynczego miejsca docelowego panoramy. Dozwolony zakres to od 1 do 10000.

type

Ustaw typ fraktalny, może być domyślny carpetlub triangle.

15 Video Sinks

Poniżej znajduje się opis aktualnie dostępnych umywalek wideo.

15.1 buffersink

Buforuj klatki wideo i udostępniaj je na końcu wykresu filtra.

To ujście jest przeznaczone głównie do użytku programistycznego, w szczególności za pośrednictwem interfejsu zdefiniowanego wlibavfilter/buffersink.h lub system opcji.

Akceptuje wskaźnik do struktury AVBufferSinkContext, która definiuje formaty buforów przychodzących, które mają być przekazywane jako parametr nieprzezroczysty do avfilter_init_filterinicjalizacji.

15.2 nullsink

Null video sink: nie rób absolutnie nic z wejściowym wideo. Przydaje się głównie jako szablon oraz do wykorzystania w narzędziach do analizy/debugowania.

16 Multimedia Filters

Poniżej znajduje się opis aktualnie dostępnych filtrów multimedialnych.

16.1 abitscope

Konwertuj wejściowy dźwięk na wyjście wideo, wyświetlając zakres bitów audio.

Filtr akceptuje następujące opcje:

rate, r

Ustaw liczbę klatek wyrażoną jako liczba klatek na sekundę. Wartość domyślna to „25”.

size, s

Określ rozmiar wideo dla wyjścia. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Rozmiar wideo" w podręczniku ffmpeg-utils . Wartość domyślna to 1024x256.

colors

Określ listę kolorów oddzielonych spacją lub znakiem „|” który będzie używany do rysowania kanałów. Nierozpoznane lub brakujące kolory zostaną zastąpione kolorem białym.

mode, m

Ustaw tryb wyjścia. Może być barslub trace. Wartość domyślna to bars.

16.2 adrawgraph

Narysuj wykres, używając wejściowych metadanych audio.

Zobacz rysunek

16.3 agraphmonitor

Zobacz graphmonitor .

16.4 ahistogram

Konwertuj wejściowy dźwięk na wyjście wideo, wyświetlając histogram głośności.

Filtr akceptuje następujące opcje:

dmode

Określ sposób obliczania histogramu.

Przyjmuje następujące wartości:

'single'

Użyj jednego histogramu dla wszystkich kanałów.

'separate'

Użyj oddzielnego histogramu dla każdego kanału.

Wartość domyślna to single.

rate, r

Ustaw liczbę klatek wyrażoną jako liczba klatek na sekundę. Wartość domyślna to „25”.

size, s

Określ rozmiar wideo dla wyjścia. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Rozmiar wideo" w podręczniku ffmpeg-utils . Wartość domyślna to hd720.

scale

Ustaw skalę wyświetlacza.

Przyjmuje następujące wartości:

'log'

logarytmiczny

'sqrt'

pierwiastek kwadratowy

'cbrt'

korzeń sześcienny

'lin'

liniowy

'rlog'

odwrotna logarytmiczna

Wartość domyślna to log.

ascale

Ustaw skalę amplitudy.

Przyjmuje następujące wartości:

'log'

logarytmiczny

'lin'

liniowy

Wartość domyślna to log.

acount

Ustaw liczbę klatek do akumulacji w histogramie. Wartość domyślna to 1. Ustawienie -1 powoduje akumulację wszystkich ramek.

rheight

Ustaw współczynnik histogramu wysokości okna.

slide

Ustaw przesuwanie sonogramu.

Przyjmuje następujące wartości:

'replace'

zastąpić stare wiersze nowymi.

'scroll'

przewiń od góry do dołu.

Wartość domyślna to replace.

hmode

Ustaw tryb histogramu.

Przyjmuje następujące wartości:

'abs'

Użyj wartości bezwzględnych próbek.

'sign'

Użyj nietkniętych wartości próbek.

Wartość domyślna to abs.

16.5 aphasemeter

Mierzy fazę wejściowego dźwięku, która jest eksportowana jako metadane lavfi.aphasemeter.phase, reprezentująca średnią fazę bieżącej klatki dźwięku. Można również wyprodukować wyjście wideo i jest ono domyślnie włączone. Dźwięk jest przekazywany jako pierwsze wyjście.

Dźwięk zostanie zrematryfikowany do stereo, jeśli ma inny układ kanałów. Wartość fazy mieści się w zakresie , w [-1, 1]którym -1oznacza, że ​​lewy i prawy kanał są całkowicie przesunięte w fazie, a 1kanały są w fazie.

Filtr akceptuje następujące opcje, wszystkie związane z wyjściem wideo:

rate, r

Ustaw wyjściową liczbę klatek na sekundę. Wartość domyślna to 25.

size, s

Ustaw rozmiar wideo dla wyjścia. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Rozmiar wideo" w podręczniku ffmpeg-utils . Wartość domyślna to 800x400.

rc
gc
bc

Określ kontrast czerwony, zielony, niebieski. Wartości domyślne to 2, 7i 1. Dozwolony zakres to [0, 255].

mpc

Ustaw kolor, który będzie używany do rysowania fazy mediany. Jeśli kolor jest noneustawiony domyślnie, nie zostanie narysowana żadna mediana wartości fazy.

video

Włącz wyjście wideo. Domyślnie jest włączone.

16.5.1 phasing detection

Filtr wykrywa również sekwencje przesunięte w fazie i mono w strumieniach stereo. Rejestruje początek, koniec i czas trwania sekwencji, gdy trwa ona dłużej lub tak długo, jak zestaw minimalny.

Filtr akceptuje następujące opcje tego wykrywania:

phasing

Włącz wykrywanie mono i poza fazą. Domyślnie jest wyłączone.

tolerance, t

Ustaw tolerancję fazy dla detekcji mono, w stosunku amplitudy. Wartość domyślna to 0. Dozwolony zakres to [0, 1].

angle, a

Ustaw próg kąta dla wykrywania braku fazy, w stopniach. Wartość domyślna to 170. Dozwolony zakres to [90, 180].

duration, d

Ustaw czas trwania mono lub poza fazą do powiadomienia, wyrażony w sekundach. Wartość domyślna to 2.

16.5.2 Examples

  • Kompletny przykład z ffmpegwykrywaniem 1 sekundy mono z tolerancją 0,001 fazy:
    ffmpeg -i stereo.wav -af aphasemeter=video=0:phasing=1:duration=1:tolerance=0.001 -f null -
    

16.6 avectorscope

Konwertuj wejście audio na wyjście wideo, reprezentujące zakres wektora audio.

Filtr służy do pomiaru różnicy między kanałami strumienia dźwięku stereo. Sygnał monofoniczny, składający się z identycznego sygnału lewego i prawego, daje w wyniku prostą linię pionową. Każda separacja stereo jest widoczna jako odchylenie od tej linii, tworzące figurę Lissajous. Jeśli pojawi się linia prosta (lub odchylenie od niej), ale pozioma, oznacza to, że lewy i prawy kanał są przesunięte w fazie.

Filtr akceptuje następujące opcje:

mode, m

Ustaw tryb wektoroskopu.

Dostępne wartości to:

'lissajous'

Lissajous obrócony o 45 stopni.

'lissajous_xy'

Tak samo jak powyżej, ale nie obrócony.

'polar'

Kształt przypominający pół koła.

Wartość domyślna to 'lissajous„.

size, s

Ustaw rozmiar wideo dla wyjścia. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Rozmiar wideo" w podręczniku ffmpeg-utils . Wartość domyślna to 400x400.

rate, r

Ustaw wyjściową liczbę klatek na sekundę. Wartość domyślna to 25.

rc
gc
bc
ac

Określ kontrast czerwony, zielony, niebieski i alfa. Wartości domyślne to 40, 160i 80. 255Dozwolony zakres to [0, 255].

rf
gf
bf
af

Określ zanikanie koloru czerwonego, zielonego, niebieskiego i alfa. Wartości domyślne to 15, 10i 5. 5Dozwolony zakres to [0, 255].

zoom

Ustaw współczynnik powiększenia. Wartość domyślna to 1. Dozwolony zakres to [0, 10]. Wartości niższe niż 1automatycznie dostosują współczynnik powiększenia do maksymalnej możliwej wartości.

draw

Ustaw tryb rysowania wektoroskopu.

Dostępne wartości to:

'dot'

Narysuj kropkę dla każdej próbki.

'line'

Narysuj linię między poprzednią a bieżącą próbką.

Wartość domyślna to 'dot„.

scale

Określ skalę amplitudy próbek audio.

Dostępne wartości to:

'lin'

Liniowy.

'sqrt'

Pierwiastek kwadratowy.

'cbrt'

Korzeń sześcienny.

'log'

Logarytmiczny.

swap

Zamień oś lewego kanału na oś prawego kanału.

mirror

Oś lustra.

'none'

Bez lustra.

'x'

Odbij tylko oś x.

'y'

Odbij tylko oś y.

'xy'

Odbij obie osie.

16.6.1 Examples

  • Kompletny przykład za pomocą 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

Ten filtr obsługuje wszystkie powyższe opcje jako polecenia z wyjątkiem opcji sizei rate.

16.7 bench, abench

Część wzorcowa wykresu filtracyjnego.

Filtr akceptuje następujące opcje:

action

Uruchom lub zatrzymaj minutnik.

Dostępne wartości to:

'start'

Pobierz aktualny czas, ustaw go jako metadane klatki (używając klawisza lavfi.bench.start_time) i prześlij klatkę do następnego filtra.

'stop'

Pobierz aktualny czas i pobierz lavfi.bench.start_timemetadane z metadanych ramki wejściowej, aby uzyskać różnicę czasu. Następnie drukowana jest różnica czasu, czas średni, maksymalny i minimalny (odpowiednio t, avg, maxi ). minSygnatury czasowe są wyrażone w sekundach.

16.7.1 Examples

  • Benchmarkowy filtr koloru selektywnego :
    bench=start,selectivecolor=reds=-.2 .12 -.49,bench=stop
    

16.8 concat

Łącz strumienie audio i wideo, łącząc je jeden po drugim.

Filtr działa na segmentach zsynchronizowanych strumieni wideo i audio. Wszystkie segmenty muszą mieć taką samą liczbę strumieni każdego typu i taka będzie również liczba strumieni na wyjściu.

Filtr akceptuje następujące opcje:

n

Ustaw liczbę segmentów. Wartość domyślna to 2.

v

Ustaw liczbę wyjściowych strumieni wideo, czyli również liczbę strumieni wideo w każdym segmencie. Wartość domyślna to 1.

a

Ustaw liczbę wyjściowych strumieni audio, czyli również liczbę strumieni audio w każdym segmencie. Wartość domyślna to 0.

unsafe

Aktywuj tryb niebezpieczny: nie zawiedź, jeśli segmenty mają inny format.

Filtr ma wyjścia v+ a: najpierw vwyjścia wideo, potem awyjścia audio.

Jest nx( v+ a) wejść: najpierw wejścia dla pierwszego segmentu, w tej samej kolejności co wyjścia, potem wejścia dla drugiego segmentu itd.

Powiązane strumienie nie zawsze mają dokładnie taki sam czas trwania, z różnych powodów, takich jak rozmiar ramki kodeka lub niechlujny proces tworzenia. Z tego powodu powiązane zsynchronizowane strumienie (np. wideo i jego ścieżka audio) powinny być połączone jednocześnie. Filtr concat użyje czasu trwania najdłuższego strumienia w każdym segmencie (poza ostatnim) i, jeśli to konieczne, dopełni krótsze strumienie audio ciszą.

Aby ten filtr działał poprawnie, wszystkie segmenty muszą zaczynać się od sygnatury czasowej 0.

Wszystkie odpowiadające strumienie muszą mieć te same parametry we wszystkich segmentach; system filtrowania automatycznie wybierze typowy format pikseli dla strumieni wideo oraz typowy format próbkowania, częstotliwość próbkowania i układ kanałów dla strumieni audio, ale inne ustawienia, takie jak rozdzielczość, muszą być wyraźnie przekonwertowane przez użytkownika.

Dopuszczalne są różne szybkości klatek, ale skutkują one zmienną szybkością klatek na wyjściu; pamiętaj, aby skonfigurować plik wyjściowy, aby go obsłużyć.

16.8.1 Examples

  • Połącz początek, odcinek i zakończenie, wszystko w wersji dwujęzycznej (wideo w strumieniu 0, audio w strumieniach 1 i 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
    
  • Połącz dwie części, obsługując osobno dźwięk i wideo, korzystając ze źródeł (a)filmów i dostosowując rozdzielczość:
    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]
    

    Zauważ, że desynchronizacja nastąpi w ściegu, jeśli strumienie audio i wideo nie mają dokładnie takiego samego czasu trwania w pierwszym pliku.

16.8.2 Commands

Ten filtr obsługuje następujące polecenia:

next

Zamknij bieżący segment i przejdź do następnego

16.9 ebur128

Filtr skanera EBU R128. Filtr ten pobiera strumień audio i analizuje jego poziom głośności. Domyślnie rejestruje wiadomość o częstotliwości 10 Hz z chwilową głośnością (oznaczoną M), krótkotrwałą głośnością ( S), zintegrowaną głośnością ( I) i zakresem głośności ( LRA).

Filtr może analizować tylko strumienie, których format próbki jest zmiennoprzecinkowy podwójnej precyzji. W razie potrzeby strumień wejściowy zostanie przekonwertowany do tej specyfikacji. Użytkownicy mogą potrzebować wstawić aformat i/lub aresample filtry po tym filtrze, aby uzyskać oryginalne parametry.

Filtr posiada również wyjście wideo (patrz videoopcja) z wykresem w czasie rzeczywistym do obserwacji ewolucji głośności. Grafika zawiera zarejestrowaną wiadomość wspomnianą powyżej, więc nie jest już drukowana, gdy ta opcja jest ustawiona, chyba że ustawiono szczegółowe rejestrowanie. Główny obszar wykresu zawiera krótkotrwałą głośność (3 sekundy analizy), a wskaźnik po prawej stronie służy do chwilowej głośności (400 milisekund), ale można go opcjonalnie skonfigurować tak, aby zamiast tego wyświetlał krótkotrwałą głośność (patrz gauge).

Zielony obszar oznacza docelowy zakres +/- 1LU wokół docelowej głośności (domyślnie -23LUFS, chyba że zmodyfikowano przez target).

Więcej informacji na temat Rekomendacji Głośności EBU R128 na http://tech.ebu.ch/loudness .

Filtr akceptuje następujące opcje:

video

Aktywuj wyjście wideo. Strumień audio jest przekazywany bez zmian, niezależnie od tego, czy ta opcja jest ustawiona, czy nie. Strumień wideo będzie pierwszym strumieniem wyjściowym, jeśli zostanie aktywowany. Wartość domyślna to 0.

size

Ustaw rozmiar wideo. Ta opcja dotyczy tylko wideo. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Rozmiar wideo" w podręczniku ffmpeg-utils . Domyślna i minimalna rozdzielczość to 640x480.

meter

Ustaw miernik skali EBU. Wartość domyślna to 9. Wspólne wartości to 9i 18odpowiednio dla miernika skali EBU +9 i miernika skali EBU +18. Dozwolona jest każda inna wartość całkowita z tego zakresu.

metadata

Ustaw wstrzykiwanie metadanych. Jeśli ustawione na 1, wejście audio zostanie podzielone na 100ms ramki wyjściowe, z których każda zawiera różne informacje o głośności w metadanych. Wszystkie klucze metadanych są poprzedzone lavfi.r128..

Wartość domyślna to 0.

framelog

Wymuś poziom rejestrowania ramki.

Dostępne wartości to:

'info'

poziom logowania informacji

'verbose'

szczegółowy poziom rejestrowania

Domyślnie poziom rejestrowania jest ustawiony na info. Jeślivideoalbometadataopcje są ustawione, przełącza się na verbose.

peak

Ustaw tryby szczytowe.

Dostępne tryby można kumulować (opcja jest flagtypem). Możliwe wartości to:

'none'

Wyłącz dowolny tryb szczytowy (domyślnie).

'sample'

Włącz tryb szczytowy próbki.

Prosty tryb pików poszukujący wyższej wartości próbki. Rejestruje komunikat dla sample-peak (identyfikowany przez SPK).

'true'

Włącz tryb prawdziwej wartości szczytowej.

Jeśli ta opcja jest włączona, wyszukiwanie szczytów odbywa się na nadmiernie próbkowanej wersji strumienia wejściowego w celu uzyskania lepszej dokładności pików. Rejestruje wiadomość dla true-peak. (oznaczone przez TPK) i true-peak na klatkę (oznaczone przez FTPK). Ten tryb wymaga kompilacji z libswresample.

dualmono

Traktuj pliki wejściowe mono jako „dual mono”. Jeśli plik mono jest przeznaczony do odtwarzania w systemie stereo, jego pomiar EBU R128 będzie percepcyjnie nieprawidłowy. Jeśli jest ustawiona na true, ta opcja zrekompensuje ten efekt. Ta opcja nie ma wpływu na wielokanałowe pliki wejściowe.

panlaw

Ustaw konkretne prawo panoramy, które będzie używane do pomiaru plików dual mono. Ten parametr jest opcjonalny i ma domyślną wartość -3,01 dB.

target

Ustaw określony poziom docelowy (w LUFS) używany jako względne zero w wizualizacji. Ten parametr jest opcjonalny i ma domyślną wartość -23LUFS, jak określono w EBU R128. Jednak materiały publikowane online mogą preferować poziom -16LUFS (np. do użytku z podcastami lub platformami wideo).

gauge

Ustaw wartość wyświetlaną przez miernik. Prawidłowe wartości to momentaryi s shortterm. Domyślnie zostanie użyta wartość chwilowa, ale w niektórych scenariuszach bardziej przydatne może być obserwowanie wartości krótkoterminowej (np. miksowanie na żywo).

scale

Ustawia skalę wyświetlania głośności. Prawidłowe parametry to absolute (w LUFS) lub relative(LU) względem celu. Ma to wpływ tylko na wyjście wideo, a nie na podsumowanie lub ciągłe wyjście dziennika.

16.9.1 Examples

  • Wykres w czasie rzeczywistym z wykorzystaniem ffplaymiernika skali EBU +18:
    ffplay -f lavfi -i "amovie=input.mp3,ebur128=video=1:meter=18 [out0][out1]"
    
  • Przeprowadź analizę za pomocą ffmpeg:
    ffmpeg -nostats -i input.mp3 -filter_complex ebur128 -f null -
    

16.10 interleave, ainterleave

Czasowo przeplataj ramki z kilku wejść.

interleavewspółpracuje z wejściami wideo, ainterleavez dźwiękiem.

Filtry te odczytują ramki z kilku wejść i wysyłają najstarszą ramkę w kolejce do wyjścia.

Strumienie wejściowe muszą mieć dobrze zdefiniowane, monotonicznie rosnące wartości znaczników czasu klatek.

Aby przesłać jedną ramkę na wyjście, filtry te muszą umieścić w kolejce co najmniej jedną ramkę dla każdego wejścia, więc nie mogą działać w przypadku, gdy jedno wejście nie jest jeszcze zakończone i nie odbiera ramek przychodzących.

Rozważmy na przykład przypadek, gdy jedno wejście jest selectfiltrem, który zawsze odrzuca ramki wejściowe. Filtr interleavebędzie kontynuował odczytywanie z tego wejścia, ale nigdy nie będzie w stanie wysłać nowych ramek na wyjście, dopóki wejście nie wyśle ​​sygnału końca strumienia.

Ponadto, w zależności od synchronizacji wejść, filtry porzucają ramki w przypadku, gdy jedno wejście otrzyma więcej ramek niż inne, a kolejka jest już wypełniona.

Te filtry akceptują następujące opcje:

nb_inputs, n

Ustaw liczbę różnych wejść, domyślnie jest to 2.

duration

Jak określić koniec strumienia.

longest

Czas trwania najdłuższego wejścia. (domyślna)

shortest

Czas trwania najkrótszego wejścia.

first

Czas trwania pierwszego wejścia.

16.10.1 Examples

  • Przeplataj ramki należące do różnych strumieni za pomocą ffmpeg:
    ffmpeg -i bambi.avi -i pr0n.mkv -filter_complex "[0:v][1:v] interleave" out.avi
    
  • Dodaj efekt migotania rozmycia:
    select='if(gt(random(0), 0.2), 1, 2)':n=2 [tmp], boxblur=2:2, [tmp] interleave
    

16.11 latency, alatency

Zmierz opóźnienie filtrowania.

Zgłoś poprzednie opóźnienie filtrowania, opóźnienie liczby próbek audio dla filtrów audio lub liczbę klatek wideo dla filtrów wideo.

Na końcu strumienia wejściowego filtr zgłosi min. i maks. zmierzone opóźnienie dla poprzedniego uruchomionego filtru na wykresie filtra.

16.12 metadata, ametadata

Manipuluj metadanymi ramki.

Ten filtr akceptuje następujące opcje:

mode

Ustaw tryb pracy filtra.

Może być jednym z następujących:

'select'

Jeśli oba valuei keysą ustawione, wybierz klatki, które mają takie metadane. Jeśli tylko keyjest ustawione, zaznacz każdą klatkę, która ma taki klucz w metadanych.

'add'

Dodaj nowe metadane keyi value. Jeśli klucz jest już dostępny, nie rób nic.

'modify'

Zmodyfikuj wartość już istniejącego klucza.

'delete'

Jeśli valuejest ustawiona, usuń tylko klucze, które mają taką wartość. W przeciwnym razie usuń klucz. Jeśli keynie jest ustawiona, usuń wszystkie wartości metadanych w ramce.

'print'

Klucz wydruku i jego wartość, jeśli znaleziono metadane. Jeśli keynie jest ustawione, drukuj wszystkie wartości metadanych dostępne w ramce.

key

Ustaw klucz używany we wszystkich trybach. Musi być ustawiony dla wszystkich trybów z wyjątkiem printi delete.

value

Ustaw wartość metadanych, która będzie używana. Ta opcja jest obowiązkowa dla trybu modifyi .add

function

Którą funkcję użyć podczas porównywania wartości metadanych i value.

Może być jednym z następujących:

'same_str'

Wartości są interpretowane jako ciągi, zwraca prawdę, jeśli wartość metadanych jest taka sama jak value.

'starts_with'

Wartości są interpretowane jako ciągi, zwraca prawdę, jeśli wartość metadanych zaczyna się od valueciągu opcji.

'less'

Wartości są interpretowane jako zmiennoprzecinkowe, zwraca prawdę, jeśli wartość metadanych jest mniejsza niż value.

'equal'

Wartości są interpretowane jako zmiennoprzecinkowe, zwraca prawdę, jeśli valuejest równa wartości metadanych.

'greater'

Wartości są interpretowane jako zmiennoprzecinkowe, zwraca prawdę, jeśli wartość metadanych jest większa niż value.

'expr'

Wartości są interpretowane jako zmiennoprzecinkowe, zwraca prawdę, jeśli wyrażenie z opcji expr ma wartość prawda.

'ends_with'

Wartości są interpretowane jako ciągi, zwraca prawdę, jeśli wartość metadanych kończy się valueciągiem opcji.

expr

Ustaw wyrażenie, które jest używane, gdy functionjest ustawione na expr. Wyrażenie jest oceniane przez eval API i może zawierać następujące stałe:

VALUE1, FRAMEVAL

Reprezentacja zmiennoprzecinkowa valuez klucza metadanych.

VALUE2, USERVAL

Reprezentacja zmiennoprzecinkowa valuedostarczona przez użytkownika w valueopcji.

file

Jeśli określono w printtrybie, dane wyjściowe są zapisywane do nazwanego pliku. Zamiast zwykłej nazwy pliku można podać dowolny zapisywalny adres URL. Nazwa pliku „-” jest skrótem dla standardowego wyjścia. Jeśli fileopcja nie jest ustawiona, dane wyjściowe są zapisywane do logu z AV_LOG_INFO loglevel.

direct

Zmniejsza buforowanie w trybie drukowania, gdy dane wyjściowe są zapisywane pod adresem URL ustawionym za pomocą file.

16.12.1 Examples

  • Wydrukuj wszystkie wartości metadanych dla ramek z kluczem lavfi.signalstats.YDIFo wartościach od 0 do 1.
    signalstats,metadata=print:key=lavfi.signalstats.YDIF:value=0:function=expr:expr='between(VALUE1,0,1)'
    
  • Wydrukuj dane wyjściowe dotyczące wykrywania ciszy do plikumetadata.txt.
    silencedetect,ametadata=mode=print:file=metadata.txt
    
  • Skieruj wszystkie metadane do potoku z deskryptorem pliku 4.
    metadata=mode=print:file='pipe\:4'
    

16.13 perms, aperms

Ustaw uprawnienia do odczytu/zapisu dla ramek wyjściowych.

Filtry te są przeznaczone głównie dla programistów do testowania bezpośredniej ścieżki w następującym filtrze na wykresie filtra.

Filtry akceptują następujące opcje:

mode

Wybierz tryb uprawnień.

Przyjmuje następujące wartości:

'none'

Nic nie robić. To jest ustawienie domyślne.

'ro'

Ustaw wszystkie ramki wyjściowe tylko do odczytu.

'rw'

Ustaw wszystkie ramki wyjściowe bezpośrednio do zapisu.

'toggle'

Ustaw ramkę tylko do odczytu, jeśli jest zapisywalna, i zapisywalną, jeśli jest tylko do odczytu.

'random'

Ustaw losowo każdą ramkę wyjściową tylko do odczytu lub do zapisu.

seed

Ustaw ziarno dla randomtrybu, musi być liczbą całkowitą zawartą między 0i UINT32_MAX. Jeśli nie zostanie określony lub zostanie jawnie ustawiony na -1, filtr spróbuje użyć dobrego losowego inicjatora na zasadzie najlepszego wysiłku.

Uwaga: w przypadku automatycznego wstawienia filtra między filtrem uprawnień a następnym, uprawnienie może nie zostać odebrane zgodnie z oczekiwaniami w tym kolejnym filtrze. Wstawienie filtru format lub aformat przed filtrem perms/aperms pozwala uniknąć tego problemu.

16.14 realtime, arealtime

Zwolnij filtrowanie, aby dopasować mniej więcej w czasie rzeczywistym.

Filtry te wstrzymają filtrowanie na zmienny czas, aby dopasować szybkość wyjściową do wejściowych znaczników czasu. Są podobne doreopcja ffmpeg.

Akceptują następujące opcje:

limit

Termin przerw. Każda przerwa dłuższa niż ta będzie uważana za nieciągłość znacznika czasu i zresetuje timer. Wartość domyślna to 2 sekundy.

speed

Współczynnik szybkości przetwarzania. Wartość musi być liczbą zmiennoprzecinkową większą od zera. Wartości większe niż 1.0 spowodują szybsze przetwarzanie niż w czasie rzeczywistym, mniejsze spowalniają przetwarzanie. Jest limitautomatycznie odpowiednio dostosowywany. Wartość domyślna to 1.0.

Nie można osiągnąć szybkości przetwarzania większej niż jest to możliwe bez tych filtrów.

16.14.1 Commands

Oba filtry obsługują wszystkie powyższe opcje jako polecenia .

16.15 segment, asegment

Podziel pojedynczy strumień wejściowy na wiele strumieni.

Ten filtr działa odwrotnie niż filtry concat.

segmentpracuje na klatkach wideo, asegmentna samplach audio.

Ten filtr akceptuje następujące opcje:

timestamps

Sygnatury czasowe segmentów wyjściowych oddzielone znakiem „|”. Pierwszy segment będzie uruchamiany od początku strumienia wejściowego. Ostatni segment będzie działał do końca strumienia wejściowego

frames, samples

Dokładna liczba klatek/próbek, aby podzielić segmenty.

We wszystkich przypadkach poprzedzenie każdego segmentu znakiem „+” sprawi, że będzie on powiązany z poprzednim segmentem.

16.15.1 Examples

  • Podziel wejściowy strumień audio na trzy wyjściowe strumienie audio, zaczynając od początku wejściowego strumienia audio i zapisując go w pierwszym wyjściowym strumieniu audio, następnie po 60. sekundzie i zapisując niż w drugim wyjściowym strumieniu audio, a ostatni po 150. sekundzie wejściowego strumienia audio w trzecim wyjściowym strumieniu audio:
    asegment=timestamps="60|150"
    

16.16 select, aselect

Wybierz klatki do przekazania na wyjściu.

Ten filtr akceptuje następujące opcje:

expr, e

Ustaw wyrażenie, które jest oceniane dla każdej ramki wejściowej.

Jeśli wyrażenie ma wartość zero, ramka jest odrzucana.

Jeśli wynik oceny jest ujemny lub NaN, ramka jest wysyłana na pierwsze wyjście; w przeciwnym razie jest wysyłany na wyjście z index ceil(val)-1, zakładając, że indeks wejściowy zaczyna się od 0.

Np. wartość 1.2odpowiada wyjściu o indeksie ceil(1.2)-1 = 2-1 = 1, czyli drugiemu wyjściu.

outputs, n

Ustaw liczbę wyjść. Dane wyjściowe, do których należy wysłać wybraną ramkę, są oparte na wyniku oceny. Wartość domyślna to 1.

Wyrażenie może zawierać następujące stałe:

n

Numer (sekwencyjny) przefiltrowanej ramki, zaczynając od 0.

selected_n

Numer (sekwencyjny) wybranej ramki, zaczynając od 0.

prev_selected_n

Numer sekwencyjny ostatniej wybranej klatki. Jest to NAN, jeśli nie jest zdefiniowany.

TB

Podstawa czasowa wejściowych sygnatur czasowych.

pts

PTS (Presentation TimeStamp) filtrowanej ramki, wyrażony w TBjednostkach. Jest to NAN, jeśli nie jest zdefiniowany.

t

PTS przefiltrowanej klatki wyrażony w sekundach. Jest to NAN, jeśli nie jest zdefiniowany.

prev_pts

PTS poprzednio filtrowanej klatki. Jest to NAN, jeśli nie jest zdefiniowany.

prev_selected_pts

PTS ostatniej wcześniej filtrowanej klatki. Jest to NAN, jeśli nie jest zdefiniowany.

prev_selected_t

PTS ostatnio wybranej klatki wyrażony w sekundach. Jest to NAN, jeśli nie jest zdefiniowany.

start_pts

Pierwszy PTS w strumieniu, który nie jest NAN. Pozostaje NAN, jeśli nie zostanie znaleziony.

start_t

Pierwszy PTS w ciągu kilku sekund w strumieniu, który nie jest NAN. Pozostaje NAN, jeśli nie zostanie znaleziony.

pict_type (video only)

Typ przefiltrowanej ramki. Może przyjąć jedną z następujących wartości:

I
P
B
S
SI
SP
BI
interlace_type (video only)

Typ z przeplotem ramek. Może przyjąć jedną z następujących wartości:

PROGRESSIVE

Ramka jest progresywna (bez przeplotu).

TOPFIRST

Rama jest na pierwszym miejscu.

BOTTOMFIRST

Ramka jest najpierw dolna.

consumed_sample_n (audio only)

liczba wybranych próbek przed bieżącą klatką

samples_n (audio only)

liczba próbek w bieżącej ramce

sample_rate (audio only)

częstotliwość próbkowania wejściowego

key

Jest to 1, jeśli filtrowana klatka jest klatką kluczową, 0 w przeciwnym razie.

pos

pozycja w pliku przefiltrowanej klatki, -1 jeśli informacja nie jest dostępna (np. dla wideo syntetycznego)

scene (video only)

wartość od 0 do 1, aby wskazać nową scenę; niska wartość odzwierciedla małe prawdopodobieństwo, że bieżąca klatka wprowadzi nową scenę, podczas gdy wyższa wartość oznacza, że ​​bieżąca klatka jest bardziej prawdopodobna (patrz przykład poniżej)

concatdec_select

Demuxer concat może wybrać tylko część pliku wejściowego concat przez ustawienie punktu wejściowego i wyjściowego, ale pakiety wyjściowe mogą nie być całkowicie zawarte w wybranym przedziale. Używając tej zmiennej możliwe jest pominięcie ramek generowanych przez demukser concat, które nie są dokładnie zawarte w wybranym przedziale.

Działa to poprzez porównanie pts ramki z lavf.concat.start_time wartościami lavf.concat.durationmetadanych pakietów, które są również obecne w dekodowanych ramkach.

Zmienna concatdec_selectma wartość -1, jeśli ramka pts wynosi co najmniej start_time i albo brakuje metadanych czasu trwania, albo ramka pts jest krótsza niż start_time + czas trwania, 0 w przeciwnym razie i NaN, jeśli brakuje metadanych start_time.

Zasadniczo oznacza to, że ramka wejściowa jest wybierana, jeśli jej punkty mieszczą się w przedziale ustawionym przez demukser concat.

Domyślna wartość wyrażenia select to „1”.

16.16.1 Examples

  • Wybierz wszystkie klatki w wejściu:
    select
    

    Powyższy przykład jest taki sam jak:

    select=1
    
  • Pomiń wszystkie klatki:
    select=0
    
  • Wybierz tylko I-ramki:
    select='eq(pict_type\,I)'
    
  • Wybierz jedną klatkę co 100:
    select='not(mod(n\,100))'
    
  • Wybierz tylko klatki zawarte w przedziale czasowym 10-20:
    select=between(t\,10\,20)
    
  • Wybierz tylko I-ramki zawarte w przedziale czasowym 10-20:
    select=between(t\,10\,20)*eq(pict_type\,I)
    
  • Wybierz klatki o minimalnej odległości 10 sekund:
    select='isnan(prev_selected_t)+gte(t-prev_selected_t\,10)'
    
  • Użyj aselect, aby wybrać tylko klatki audio z liczbą próbek > 100:
    aselect='gt(samples_n\,100)'
    
  • Stwórz mozaikę pierwszych scen:
    ffmpeg -i video.avi -vf select='gt(scene\,0.4)',scale=160:120,tile -frames:v 1 preview.png
    

    Porównanie scenez wartością od 0,3 do 0,5 jest na ogół rozsądnym wyborem.

  • Wyślij parzyste i nieparzyste ramki do oddzielnych wyjść i skomponuj je:
    select=n=2:e='mod(n, 2)+1' [odd][even]; [odd] pad=h=2*ih [tmp]; [tmp][even] overlay=y=h
    
  • Wybierz przydatne klatki z pliku ffconcat, który używa punktów wejściowych i wyjściowych, ale gdzie pliki źródłowe nie są tylko intraframe.
    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

Wysyłaj polecenia do filtrów na wykresie filtrów.

Filtry te odczytują polecenia, które mają być wysłane do innych filtrów na wykresie filtrów.

sendcmdmuszą być wstawione pomiędzy dwa filtry wideo, asendcmdmuszą być wstawione pomiędzy dwa filtry audio, ale poza tym działają w ten sam sposób.

Specyfikacja poleceń może być podana w argumentach filtru z commandsopcją lub w pliku określonym przez filenameopcję.

Te filtry akceptują następujące opcje:

commands, c

Ustaw polecenia, które mają być odczytywane i wysyłane do innych filtrów.

filename, f

Ustaw nazwę pliku poleceń, które mają być odczytywane i wysyłane do innych filtrów.

16.17.1 Commands syntax

Opis poleceń składa się z sekwencji specyfikacji interwałów, zawierającej listę poleceń do wykonania, gdy wystąpi określone zdarzenie związane z tym interwałem. Występujące zdarzenie to zazwyczaj czas, w którym bieżąca klatka wchodzi lub wychodzi z danego przedziału czasu.

Interwał określa następująca składnia:

START[-END] COMMANDS;

Przedział czasu jest określony przez STARTi ENDrazy. ENDjest opcjonalny i domyślnie ustawiony jest na maksymalny czas.

Bieżący czas klatki jest uważany za mieszczący się w określonym przedziale, jeśli jest zawarty w przedziale [ START, END), to znaczy, gdy czas jest większy lub równy STARTi mniejszy niż END.

COMMANDSskłada się z sekwencji jednej lub więcej specyfikacji poleceń, oddzielonych znakiem ",", odnoszących się do tego przedziału. Składnia specyfikacji polecenia jest podana przez:

[FLAGS] TARGET COMMAND ARG

FLAGSjest opcjonalna i określa typ zdarzeń dotyczących przedziału czasowego, który umożliwia wysłanie określonego polecenia i musi być niezerową sekwencją flag identyfikatorów oddzielonych znakami „+” lub „|” i ujęte między "[" i "]".

Rozpoznawane są następujące flagi:

enter

Polecenie jest wysyłane, gdy znacznik czasu bieżącej ramki wejdzie w określony interwał. Innymi słowy, polecenie jest wysyłane, gdy znacznik czasu poprzedniej ramki nie znajdował się w podanym przedziale, a obecny jest.

leave

Polecenie jest wysyłane, gdy znacznik czasu bieżącej ramki opuszcza określony interwał. Innymi słowy, polecenie jest wysyłane, gdy znacznik czasu poprzedniej ramki znajdował się w podanym przedziale, a obecny nie.

expr

Polecenie ARGjest interpretowane jako wyrażenie, a wynik wyrażenia jest przekazywany jako ARG.

Wyrażenie jest oceniane przez eval API i może zawierać następujące stałe:

POS

Oryginalna pozycja w pliku ramki lub niezdefiniowana, jeśli nie została zdefiniowana dla bieżącej ramki.

PTS

Sygnatura czasowa prezentacji na wejściu.

N

Liczba klatek wejściowych dla wideo lub audio, zaczynając od 0.

T

Czas bieżącej klatki w sekundach.

TS

Czas rozpoczęcia w sekundach bieżącego interwału polecenia.

TE

Czas zakończenia w sekundach bieżącego interwału polecenia.

TI

Interpolowany czas bieżącego przedziału poleceń, TI = (T - TS) / (TE - TS).

W

Szerokość klatki wideo.

H

Wysokość klatki wideo.

Jeśli nie jest określony, przyjmowana jest FLAGSwartość domyślna .[enter]

TARGETokreśla cel polecenia, zwykle nazwę klasy filtra lub konkretną nazwę instancji filtra.

COMMANDokreśla nazwę polecenia dla filtru docelowego.

ARGjest opcjonalny i określa opcjonalną listę argumentów dla danego COMMAND.

Pomiędzy jedną specyfikacją interwału a drugą spacje lub sekwencje znaków zaczynające się od #aż do końca linii są ignorowane i mogą być używane do opisywania komentarzy.

Uproszczony opis składni specyfikacji poleceń BNF jest następujący:

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

  • Określ zmianę tempa dźwięku w drugim 4:
    asendcmd=c='4.0 atempo tempo 1.5',atempo
    
  • Kieruj na konkretną instancję filtra:
    asendcmd=c='4.0 atempo@my tempo 1.5',atempo@my
    
  • Określ listę poleceń tekstu rysunkowego i odcienia w pliku.
    # 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)
    

    Wykres filtra pozwalający na odczytanie i przetworzenie powyższej listy poleceń zapisanej w plikutest.cmd, można określić za pomocą:

    sendcmd=f=test.cmd,drawtext=fontfile=FreeSerif.ttf:text='',hue
    

16.18 setpts, asetpts

Zmień PTS (sygnatura czasowa prezentacji) ramek wejściowych.

setptsdziała na ramkach wideo, asetptsna ramkach audio.

Ten filtr akceptuje następujące opcje:

expr

Wyrażenie, które jest oceniane dla każdej klatki w celu skonstruowania jej znacznika czasu.

Wyrażenie jest oceniane przez eval API i może zawierać następujące stałe:

FRAME_RATE, FR

liczba klatek na sekundę, zdefiniowana tylko dla filmów ze stałą liczbą klatek na sekundę

PTS

Sygnatura czasowa prezentacji na wejściu

N

Liczba klatek wejściowych dla wideo lub liczba wykorzystanych próbek, nie wliczając bieżącej klatki dla dźwięku, zaczynając od 0.

NB_CONSUMED_SAMPLES

Liczba zużytych próbek, nie wliczając bieżącej klatki (tylko audio)

NB_SAMPLES, S

Liczba próbek w bieżącej ramce (tylko audio)

SAMPLE_RATE, SR

Częstotliwość próbkowania dźwięku.

STARTPTS

PTS pierwszej klatki.

STARTT

czas w sekundach pierwszej klatki

INTERLACED

Określ, czy bieżąca ramka jest z przeplotem.

T

czas w sekundach bieżącej klatki

POS

oryginalna pozycja w pliku ramki lub niezdefiniowana, jeśli nie została zdefiniowana dla bieżącej ramki

PREV_INPTS

Poprzednie wejście PTS.

PREV_INT

poprzedni czas wprowadzania w sekundach

PREV_OUTPTS

Poprzednie wyjście PTS.

PREV_OUTT

poprzedni czas wyjścia w sekundach

RTCTIME

Czas zegara ściennego (RTC) w mikrosekundach. To jest przestarzałe, zamiast tego użyj time(0).

RTCSTART

Zegar ścienny (RTC) na początku filmu w mikrosekundach.

TB

Podstawa czasowa wejściowych sygnatur czasowych.

16.18.1 Examples

  • Zacznij liczyć PTS od zera
    setpts=PTS-STARTPTS
    
  • Zastosuj efekt szybkiego ruchu:
    setpts=0.5*PTS
    
  • Zastosuj efekt zwolnionego tempa:
    setpts=2.0*PTS
    
  • Ustaw stałą szybkość 25 klatek na sekundę:
    setpts=N/(25*TB)
    
  • Ustaw stałą szybkość 25 fps z pewnym jitterem:
    setpts='1/(25*TB) * (N + 0.05 * sin(N*2*PI/25))'
    
  • Zastosuj 10-sekundowe przesunięcie do wejściowego PTS:
    setpts=PTS+10/TB
    
  • Generuj sygnatury czasowe z „źródła na żywo” i przestawiaj bazę na bieżącą podstawę czasową:
    setpts='(RTCTIME - RTCSTART) / (TB * 1000000)'
    
  • Generuj znaczniki czasu, licząc próbki:
    asetpts=N/SR/TB
    

16.19 setrange

Wymuś zakres kolorów dla wyjściowej klatki wideo.

Filtr setrangeoznacza właściwość zakresu kolorów dla klatek wyjściowych. Nie zmienia ramki wejściowej, a jedynie ustawia odpowiednią właściwość, która wpływa na sposób traktowania ramki przez następujące filtry.

Filtr akceptuje następujące opcje:

range

Dostępne wartości to:

'auto'

Zachowaj tę samą właściwość zakresu kolorów.

'unspecified, unknown'

Ustaw zakres kolorów jako nieokreślony.

'limited, tv, mpeg'

Ustaw zakres kolorów jako ograniczony.

'full, pc, jpeg'

Ustaw pełny zakres kolorów.

16.20 settb, asettb

Ustaw podstawę czasową używaną dla znaczników czasu ramek wyjściowych. Przydaje się głównie do testowania konfiguracji podstawy czasu.

Przyjmuje następujące parametry:

expr, tb

Wyrażenie, które jest oceniane w wyjściowej podstawie czasu.

Wartość dlatbjest wyrażeniem arytmetycznym reprezentującym wymierność. Wyrażenie może zawierać stałe „AVTB” (domyślna podstawa czasu), „intb” (wejściowa podstawa czasu) i „sr” (częstotliwość próbkowania, tylko audio). Wartość domyślna to "intb".

16.20.1 Examples

  • Ustaw podstawę czasu na 1/25:
    settb=expr=1/25
    
  • Ustaw podstawę czasu na 1/10:
    settb=expr=0.1
    
  • Ustaw podstawę czasu na 1001/1000:
    settb=1+0.001
    
  • Ustaw podstawę czasu na 2*intb:
    settb=2*intb
    
  • Ustaw domyślną wartość podstawy czasu:
    settb=AVTB
    

16.21 showcqt

Konwertuj wejściowy dźwięk na wyjście wideo reprezentujące widmo częstotliwości logarytmicznie za pomocą algorytmu transformacji stałej Q Browna-Puckette z bezpośrednim obliczeniem współczynnika domeny częstotliwości (ale sama transformacja nie jest tak naprawdę stała Q, zamiast tego współczynnik Q jest w rzeczywistości zmienny/zaciśnięty), z tonem muzycznym skala od E0 do D#10.

Filtr akceptuje następujące opcje:

size, s

Określ rozmiar wideo dla wyjścia. Musi być równo. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Rozmiar wideo" w podręczniku ffmpeg-utils . Wartość domyślna to 1920x1080.

fps, rate, r

Ustaw wyjściową liczbę klatek na sekundę. Wartość domyślna to 25.

bar_h

Ustaw wysokość bargrafu. Musi być równo. Domyślną wartością jest -1automatyczne obliczanie wysokości bargrafu.

axis_h

Ustaw wysokość osi. Musi być równo. Wartość domyślna to -1automatyczne obliczanie wysokości osi.

sono_h

Ustaw wysokość sonogramu. Musi być równo. Domyślną wartością jest -1automatyczne obliczanie wysokości sonogramu.

fullhd

Ustaw rozdzielczość FullHD. Ta opcja jest przestarzała, użyj sizezamiast s niej. Wartość domyślna to 1.

sono_v, volume

Określ wyrażenie głośności sonogramu. Może zawierać zmienne:

bar_v

bar_voceniane wyrażenie

frequency, freq, f

częstotliwość, w której jest oceniany

timeclamp, tc

wartość timeclampopcji

i funkcje:

a_weighting(f)

Ważenie A równej głośności

b_weighting(f)

Ważenie B równej głośności

c_weighting(f)

Ważenie C równej głośności.

Wartość domyślna to 16.

bar_v, volume2

Określ wyrażenie objętości wykresu słupkowego. Może zawierać zmienne:

sono_v

sono_voceniane wyrażenie

frequency, freq, f

częstotliwość, w której jest oceniany

timeclamp, tc

wartość timeclampopcji

i funkcje:

a_weighting(f)

Ważenie A równej głośności

b_weighting(f)

Ważenie B równej głośności

c_weighting(f)

Ważenie C równej głośności.

Wartość domyślna to sono_v.

sono_g, gamma

Określ gamma sonogramu. Niższa gamma sprawia, że ​​widmo jest bardziej kontrastowe, wyższa gamma sprawia, że ​​widmo ma większy zasięg. Wartość domyślna to 3. Dopuszczalny zakres to [1, 7].

bar_g, gamma2

Określ gamma bargrafu. Wartość domyślna to 1. Dopuszczalny zakres to [1, 7].

bar_t

Określ poziom przezroczystości bargrafu. Niższa wartość sprawia, że ​​bargraf jest ostrzejszy. Wartość domyślna to 1. Dopuszczalny zakres to [0, 1].

timeclamp, tc

Określ znacznik czasu transformacji. Przy niskiej częstotliwości występuje kompromis między dokładnością w dziedzinie czasu a domeną częstotliwości. Jeśli timeclamp jest niższy, zdarzenie w domenie czasu jest reprezentowane dokładniej (np. szybki bęben basowy), w przeciwnym razie zdarzenie w domenie częstotliwości jest reprezentowane dokładniej (np. gitara basowa). Dopuszczalny zakres to [0.002, 1]. Wartość domyślna to 0.17.

attack

Ustaw czas ataku w sekundach. Wartość domyślna to 0(wyłączone). W przeciwnym razie ogranicza przyszłe próbki, stosując asymetryczne okienkowanie w dziedzinie czasu, przydatne, gdy wymagana jest niska latencja. Akceptowany zakres to [0, 1].

basefreq

Określ częstotliwość podstawową transformacji. Wartość domyślna to 20.01523126408007475, czyli częstotliwość 50 centów poniżej E0. Dopuszczalny zakres to [10, 100000].

endfreq

Określ częstotliwość końcową transformacji. Wartość domyślna to 20495.59681441799654, czyli częstotliwość 50 centów powyżej D#10. Dopuszczalny zakres to [10, 100000].

coeffclamp

Ta opcja jest przestarzała i ignorowana.

tlength

Określ długość transformacji w dziedzinie czasu. Użyj tej opcji, aby kontrolować kompromis między domeną czasu a domeną częstotliwości w każdej próbce częstotliwości. Może zawierać zmienne:

frequency, freq, f

częstotliwość, w której jest oceniany

timeclamp, tc

wartość timeclampopcji.

Wartość domyślna to 384*tc/(384+tc*f).

count

Określ liczbę przekształceń dla każdej klatki wideo. Wartość domyślna to 6. Dopuszczalny zakres to [1, 30].

fcount

Określ liczbę przekształceń dla każdego piksela. Wartość domyślna to 0, co sprawia, że ​​jest obliczana automatycznie. Dopuszczalny zakres to [0, 10].

fontfile

Określ plik czcionki do użycia z dowolnym typem, aby narysować oś. Jeśli nie określono, użyj osadzonej czcionki. Zwróć uwagę, że rysowanie z plikiem czcionki lub czcionką osadzoną nie jest zaimplementowane za pomocą opcji niestandardowej basefreqi endfrequżyj axisfile zamiast niej.

font

Określ wzorzec fontconfig. Ma to niższy priorytet niż fontfile. We :wzorze można zastąpić, |aby uniknąć niepotrzebnych ucieczek.

fontcolor

Określ wyrażenie koloru czcionki. Jest to wyrażenie arytmetyczne, które powinno zwrócić wartość całkowitą 0xRRGGBB. Może zawierać zmienne:

frequency, freq, f

częstotliwość, w której jest oceniany

timeclamp, tc

wartość timeclampopcji

i funkcje:

midi(f)

liczba midi częstotliwości f, niektóre liczby midi: E0(16), C1(24), C2(36), A4(69)

r(x), g(x), b(x)

czerwona, zielona i niebieska wartość intensywności x.

Wartość domyślna to 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

Określ plik obrazu, aby narysować oś. Ta opcja zastępuje fontfilei fontcoloropcję.

axis, text

Włącz/wyłącz rysowanie tekstu na osi. Jeśli jest ustawiony na 0, rysowanie do osi jest wyłączone, ignorowane fontfilei axisfileopcja. Wartość domyślna to 1.

csp

Ustaw przestrzeń kolorów. Akceptowane wartości to:

'unspecified'

Nieokreślony (domyślny)

'bt709'

BT.709

'fcc'

FCC

'bt470bg'

BT.470BG lub BT.601-6 625

'smpte170m'

SMPTE-170M lub BT.601-6 525

'smpte240m'

SMPTE-240M

'bt2020ncl'

BT.2020 z niestałą luminancją

cscheme

Ustaw schemat kolorów spektrogramu. To jest lista wartości zmiennoprzecinkowych z formatem left_r|left_g|left_b|right_r|right_g|right_b. Wartość domyślna to 1|0.5|0|0|0.5|1.

16.21.1 Examples

  • Odtwarzanie dźwięku podczas wyświetlania widma:
    ffplay -f lavfi 'amovie=a.mp3, asplit [a][out1]; [a] showcqt [out0]'
    
  • Tak samo jak powyżej, ale z szybkością 30 kl./s:
    ffplay -f lavfi 'amovie=a.mp3, asplit [a][out1]; [a] showcqt=fps=30:count=5 [out0]'
    
  • Gra w rozdzielczości 1280x720:
    ffplay -f lavfi 'amovie=a.mp3, asplit [a][out1]; [a] showcqt=s=1280x720:count=4 [out0]'
    
  • Wyłącz wyświetlanie sonogramu:
    sono_h=0
    
  • A1 i jego harmoniczne: A1, A2, (blisko)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]'
    
  • Tak samo jak powyżej, ale z większą dokładnością w dziedzinie częstotliwości:
    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]'
    
  • Głośność niestandardowa:
    bar_v=10:sono_v=bar_v*a_weighting(f)
    
  • Niestandardowa gamma, teraz widmo jest liniowe do amplitudy.
    bar_g=2:sono_g=2
    
  • Niestandardowe równanie długości:
    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)))'
    
  • Niestandardowy kolor czcionki i plik czcionki, C-note jest w kolorze zielonym, inne w kolorze niebieskim:
    fontcolor='if(mod(floor(midi(f)+0.5),12), 0x0000FF, g(1))':fontfile=myfont.ttf
    
  • Niestandardowa czcionka przy użyciu fontconfig:
    font='Courier New,Monospace,mono|bold'
    
  • Niestandardowy zakres częstotliwości z niestandardową osią przy użyciu pliku obrazu:
    axisfile=myaxis.png:basefreq=40:endfreq=10000
    

16.22 showfreqs

Konwertuj wejście audio na wyjście wideo reprezentujące widmo mocy dźwięku. Amplituda dźwięku jest na osi Y, a częstotliwość na osi X.

Filtr akceptuje następujące opcje:

size, s

Określ rozmiar wideo. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Rozmiar wideo" w podręczniku ffmpeg-utils . Wartość domyślna to 1024x512.

rate, r

Ustaw szybkość wideo. Wartość domyślna to 25.

mode

Ustaw tryb wyświetlania. Ustawia to, w jaki sposób będzie reprezentowany każdy przedział częstotliwości.

Przyjmuje następujące wartości:

'line'
'bar'
'dot'

Wartość domyślna to bar.

ascale

Ustaw skalę amplitudy.

Przyjmuje następujące wartości:

'lin'

Skala liniowa.

'sqrt'

Skala pierwiastka kwadratowego.

'cbrt'

Skala pierwiastka sześciennego.

'log'

Skala logarytmiczna.

Wartość domyślna to log.

fscale

Ustaw skalę częstotliwości.

Przyjmuje następujące wartości:

'lin'

Skala liniowa.

'log'

Skala logarytmiczna.

'rlog'

Odwrócona skala logarytmiczna.

Wartość domyślna to lin.

win_size

Ustaw rozmiar okna. Dozwolony zakres to od 16 do 65536.

Wartość domyślna to2048

win_func

Ustaw funkcję okienkowania.

Przyjmuje następujące wartości:

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

Wartość domyślna to hanning.

overlap

Ustaw nakładanie się okien. W zasięgu [0, 1]. Domyślnie jest to 1, co oznacza, że ​​zostanie wybrane optymalne nakładanie się dla wybranej funkcji okna.

averaging

Ustaw uśrednianie czasu. Ustawienie tego na 0 spowoduje wyświetlenie bieżących maksymalnych szczytów. Wartość domyślna to 1, co oznacza, że ​​uśrednianie czasu jest wyłączone.

colors

Określ listę kolorów oddzielonych spacją lub znakiem „|” który będzie używany do rysowania częstotliwości kanałów. Nierozpoznane lub brakujące kolory zostaną zastąpione kolorem białym.

cmode

Ustaw tryb wyświetlania kanału.

Przyjmuje następujące wartości:

'combined'
'separate'

Wartość domyślna to combined.

minamp

Ustaw minimalną amplitudę używaną w logskalerze amplitudy.

data

Ustaw tryb wyświetlania danych.

Przyjmuje następujące wartości:

'magnitude'
'phase'
'delay'

Wartość domyślna to magnitude.

channels

Ustaw kanały, które będą używane podczas przetwarzania dźwięku. Domyślnie wszystkie są przetwarzane.

16.23 showspatial

Konwertuj dźwięk stereo z wejścia na wyjście wideo, reprezentując przestrzenną relację między dwoma kanałami.

Filtr akceptuje następujące opcje:

size, s

Określ rozmiar wideo dla wyjścia. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Rozmiar wideo" w podręczniku ffmpeg-utils . Wartość domyślna to 512x512.

win_size

Ustaw rozmiar okna. Dozwolony zakres to od 1024do 65536. Rozmiar domyślny to 4096.

win_func

Ustaw funkcję okna.

Przyjmuje następujące wartości:

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

Wartość domyślna to hann.

overlap

Ustaw stosunek okna nakładania. Wartość domyślna to 0.5. Gdy wartość jest 1ustawiona na nakładanie się, jest ustawiony na zalecany rozmiar dla określonej aktualnie używanej funkcji okna.

16.24 showspectrum

Konwertuj wejściowy dźwięk na wyjście wideo, reprezentujące widmo częstotliwości dźwięku.

Filtr akceptuje następujące opcje:

size, s

Określ rozmiar wideo dla wyjścia. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Rozmiar wideo" w podręczniku ffmpeg-utils . Wartość domyślna to 640x512.

slide

Określ, jak widmo powinno przesuwać się w oknie.

Przyjmuje następujące wartości:

'replace'

próbki zaczynają się ponownie po lewej stronie, gdy dotrą do prawej

'scroll'

próbki przewijają się od prawej do lewej

'fullframe'

ramki są produkowane tylko wtedy, gdy próbki docierają do prawej

'rscroll'

próbki przewijają się od lewej do prawej

'lreplace'

próbki zaczynają się ponownie po prawej stronie, gdy dotrą do lewej

Wartość domyślna to replace.

mode

Określ tryb wyświetlania.

Przyjmuje następujące wartości:

'combined'

wszystkie kanały są wyświetlane w tym samym wierszu

'separate'

wszystkie kanały są wyświetlane w osobnych wierszach

Wartość domyślna to 'combined„.

color

Określ tryb wyświetlania kolorów.

Przyjmuje następujące wartości:

'channel'

każdy kanał jest wyświetlany w osobnym kolorze

'intensity'

każdy kanał jest wyświetlany w tym samym schemacie kolorów

'rainbow'

każdy kanał jest wyświetlany w schemacie kolorów tęczy

'moreland'

każdy kanał jest wyświetlany w kolorystyce moreland

'nebulae'

każdy kanał jest wyświetlany przy użyciu schematu kolorów mgławic

'fire'

każdy kanał jest wyświetlany przy użyciu schematu kolorów ognia

'fiery'

każdy kanał jest wyświetlany w ognistej kolorystyce

'fruit'

każdy kanał jest wyświetlany przy użyciu schematu kolorów owoców

'cool'

każdy kanał jest wyświetlany w chłodnej kolorystyce

'magma'

każdy kanał jest wyświetlany w schemacie kolorów magmy

'green'

każdy kanał jest wyświetlany w zielonej kolorystyce

'viridis'

każdy kanał jest wyświetlany w schemacie kolorów viridis

'plasma'

każdy kanał jest wyświetlany w schemacie kolorów plazmy

'cividis'

każdy kanał jest wyświetlany w schemacie kolorów cividis

'terrain'

każdy kanał jest wyświetlany przy użyciu schematu kolorów terenu

Wartość domyślna to 'channel„.

scale

Określ skalę używaną do obliczania wartości intensywności kolorów.

Przyjmuje następujące wartości:

'lin'

liniowy

'sqrt'

pierwiastek kwadratowy, domyślny

'cbrt'

korzeń sześcienny

'log'

logarytmiczny

'4thrt'

Czwarty korzeń

'5thrt'

5-ty korzeń

Wartość domyślna to 'sqrt„.

fscale

Określ skalę częstotliwości.

Przyjmuje następujące wartości:

'lin'

liniowy

'log'

logarytmiczny

Wartość domyślna to 'lin„.

saturation

Ustaw modyfikator nasycenia dla wyświetlanych kolorów. Wartości ujemne zapewniają alternatywny schemat kolorów. 0w ogóle nie ma nasycenia. Nasycenie musi mieścić się w zakresie [-10,0, 10,0]. Wartość domyślna to 1.

win_func

Ustaw funkcję okna.

Przyjmuje następujące wartości:

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

Wartość domyślna to hann.

orientation

Ustaw orientację osi czasu i częstotliwości. Może być verticallub horizontal. Wartość domyślna to vertical.

overlap

Ustaw stosunek okna nakładania. Wartość domyślna to 0. Gdy wartość jest 1ustawiona na nakładanie się, jest ustawiony na zalecany rozmiar dla określonej aktualnie używanej funkcji okna.

gain

Ustaw wzmocnienie skali do obliczania wartości intensywności kolorów. Wartość domyślna to 1.

data

Ustaw dane do wyświetlenia. Może być fazą magnitude, default lub phase, lub rozpakowaną: uphase.

rotation

Ustaw rotację kolorów, musi mieścić się w zakresie [-1,0, 1,0]. Wartość domyślna to 0.

start

Ustaw częstotliwość początkową, od której ma być wyświetlany spektrogram. Wartość domyślna to 0.

stop

Ustaw częstotliwość zatrzymania, do której ma być wyświetlany spektrogram. Wartość domyślna to 0.

fps

Ustaw górny limit szybkości klatek. Wartość domyślna to auto, nieograniczona.

legend

Rysuj osie czasu i częstotliwości oraz legendy. Domyślnie jest wyłączone.

drange

Ustaw zakres dynamiczny używany do obliczania wartości intensywności kolorów. Wartość domyślna to 120 dBFS. Dozwolony zakres to od 10 do 200.

limit

Ustaw górny limit głośności wejściowych próbek audio w dBFS. Wartość domyślna to 0 dBFS. Dozwolony zakres to od -100 do 100.

opacity

Ustaw siłę nieprzezroczystości podczas korzystania z formatu pikselowego z komponentem alfa.

Użycie jest bardzo podobne do filtra showwaves; zobacz przykłady w tej sekcji.

16.24.1 Examples

  • Duże okno z logarytmicznym skalowaniem kolorów:
    showspectrum=s=1280x480:scale=log
    
  • Kompletny przykład dla kolorowego i przesuwającego się widma na kanał przy użyciu ffplay:
    ffplay -f lavfi 'amovie=input.mp3, asplit [a][out1];
                 [a] showspectrum=mode=separate:color=intensity:slide=1:scale=cbrt [out0]'
    

16.25 showspectrumpic

Konwertuj dźwięk wejściowy na pojedynczą ramkę wideo, reprezentującą widmo częstotliwości dźwięku.

Filtr akceptuje następujące opcje:

size, s

Określ rozmiar wideo dla wyjścia. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Rozmiar wideo" w podręczniku ffmpeg-utils . Wartość domyślna to 4096x2048.

mode

Określ tryb wyświetlania.

Przyjmuje następujące wartości:

'combined'

wszystkie kanały są wyświetlane w tym samym wierszu

'separate'

wszystkie kanały są wyświetlane w osobnych wierszach

Wartość domyślna to 'combined„.

color

Określ tryb wyświetlania kolorów.

Przyjmuje następujące wartości:

'channel'

każdy kanał jest wyświetlany w osobnym kolorze

'intensity'

każdy kanał jest wyświetlany w tym samym schemacie kolorów

'rainbow'

każdy kanał jest wyświetlany w schemacie kolorów tęczy

'moreland'

każdy kanał jest wyświetlany w kolorystyce moreland

'nebulae'

każdy kanał jest wyświetlany przy użyciu schematu kolorów mgławic

'fire'

każdy kanał jest wyświetlany przy użyciu schematu kolorów ognia

'fiery'

każdy kanał jest wyświetlany w ognistej kolorystyce

'fruit'

każdy kanał jest wyświetlany przy użyciu schematu kolorów owoców

'cool'

każdy kanał jest wyświetlany w chłodnej kolorystyce

'magma'

każdy kanał jest wyświetlany w schemacie kolorów magmy

'green'

każdy kanał jest wyświetlany w zielonej kolorystyce

'viridis'

każdy kanał jest wyświetlany w schemacie kolorów viridis

'plasma'

każdy kanał jest wyświetlany w schemacie kolorów plazmy

'cividis'

każdy kanał jest wyświetlany w schemacie kolorów cividis

'terrain'

każdy kanał jest wyświetlany przy użyciu schematu kolorów terenu

Wartość domyślna to 'intensity„.

scale

Określ skalę używaną do obliczania wartości intensywności kolorów.

Przyjmuje następujące wartości:

'lin'

liniowy

'sqrt'

pierwiastek kwadratowy, domyślny

'cbrt'

korzeń sześcienny

'log'

logarytmiczny

'4thrt'

Czwarty korzeń

'5thrt'

5-ty korzeń

Wartość domyślna to 'log„.

fscale

Określ skalę częstotliwości.

Przyjmuje następujące wartości:

'lin'

liniowy

'log'

logarytmiczny

Wartość domyślna to 'lin„.

saturation

Ustaw modyfikator nasycenia dla wyświetlanych kolorów. Wartości ujemne zapewniają alternatywny schemat kolorów. 0w ogóle nie ma nasycenia. Nasycenie musi mieścić się w zakresie [-10,0, 10,0]. Wartość domyślna to 1.

win_func

Ustaw funkcję okna.

Przyjmuje następujące wartości:

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

Wartość domyślna to hann.

orientation

Ustaw orientację osi czasu i częstotliwości. Może być verticallub horizontal. Wartość domyślna to vertical.

gain

Ustaw wzmocnienie skali do obliczania wartości intensywności kolorów. Wartość domyślna to 1.

legend

Rysuj osie czasu i częstotliwości oraz legendy. Domyślnie jest włączone.

rotation

Ustaw rotację kolorów, musi mieścić się w zakresie [-1,0, 1,0]. Wartość domyślna to 0.

start

Ustaw częstotliwość początkową, od której ma być wyświetlany spektrogram. Wartość domyślna to 0.

stop

Ustaw częstotliwość zatrzymania, do której ma być wyświetlany spektrogram. Wartość domyślna to 0.

drange

Ustaw zakres dynamiczny używany do obliczania wartości intensywności kolorów. Wartość domyślna to 120 dBFS. Dozwolony zakres to od 10 do 200.

limit

Ustaw górny limit głośności wejściowych próbek audio w dBFS. Wartość domyślna to 0 dBFS. Dozwolony zakres to od -100 do 100.

opacity

Ustaw siłę nieprzezroczystości podczas korzystania z formatu pikselowego z komponentem alfa.

16.25.1 Examples

  • Wyodrębnij spektrogram dźwiękowy całej ścieżki dźwiękowej na obrazie 1024x1024 za pomocą ffmpeg:
    ffmpeg -i audio.flac -lavfi showspectrumpic=s=1024x1024 spectrogram.png
    

16.26 showvolume

Konwertuj wejściową głośność audio na wyjście wideo.

Filtr akceptuje następujące opcje:

rate, r

Ustaw szybkość wideo.

b

Ustaw szerokość obramowania, dozwolony zakres to [0, 5]. Wartość domyślna to 1.

w

Ustaw szerokość kanału, dozwolony zakres to [80, 8192]. Wartość domyślna to 400.

h

Ustaw wysokość kanału, dozwolony zakres to [1, 900]. Wartość domyślna to 20.

f

Ustaw zanikanie, dozwolony zakres to [0, 1]. Wartość domyślna to 0,95.

c

Ustaw ekspresję koloru głośności.

Wyrażenie może używać następujących zmiennych:

VOLUME

Aktualna maksymalna głośność kanału w dB.

PEAK

Aktualny szczyt.

CHANNEL

Aktualny numer kanału, zaczynając od 0.

t

Jeśli ustawione, wyświetla nazwy kanałów. Domyślnie jest włączone.

v

Jeśli ustawione, wyświetla wartości głośności. Domyślnie jest włączone.

o

Ustaw orientację, może być pozioma: hlub pionowa: v, domyślnie h.

s

Ustaw wielkość kroku, dozwolony zakres to [0, 5]. Wartość domyślna to 0, co oznacza, że ​​krok jest wyłączony.

p

Ustaw krycie tła, dozwolony zakres to [0, 1]. Wartość domyślna to 0.

m

Ustaw tryb pomiaru, może to być peak: plub rms: r, domyślnie p.

ds

Ustaw skalę wyświetlania, może być liniowa: linlub log: log, domyślnie lin.

dm

W sekundę. Jeśli ustawione na > 0., wyświetl linię dla maksymalnego poziomu w poprzednich sekundach. domyślnie jest wyłączone:0.

dmc

Kolor linii max. Użyj, gdy dmopcja jest ustawiona na > 0. domyślnie:orange

16.27 showwaves

Konwertuj wejściowy dźwięk na wyjście wideo, reprezentujące fale próbek.

Filtr akceptuje następujące opcje:

size, s

Określ rozmiar wideo dla wyjścia. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Rozmiar wideo" w podręczniku ffmpeg-utils . Wartość domyślna to 600x240.

mode

Ustaw tryb wyświetlania.

Dostępne wartości to:

'point'

Narysuj punkt dla każdej próbki.

'line'

Narysuj pionową linię dla każdej próbki.

'p2p'

Narysuj punkt dla każdej próbki i linię między nimi.

'cline'

Narysuj wyśrodkowaną linię pionową dla każdej próbki.

Wartość domyślna to point.

n

Ustaw liczbę próbek, które są drukowane w tej samej kolumnie. Większa wartość zmniejszy liczbę klatek na sekundę. Musi być dodatnią liczbą całkowitą. Tę opcję można ustawić tylko wtedy, gdy wartość for rate nie jest wyraźnie określona.

rate, r

Ustaw (przybliżoną) wyjściową liczbę klatek na sekundę. Odbywa się to poprzez ustawienie opcji n. Wartość domyślna to „25”.

split_channels

Ustaw, czy kanały mają być rysowane osobno, czy nakładają się. Wartość domyślna to 0.

colors

Ustaw kolory oddzielone znakiem „|” które posłużą do rysowania każdego kanału.

scale

Ustaw skalę amplitudy.

Dostępne wartości to:

'lin'

Liniowy.

'log'

Logarytmiczny.

'sqrt'

Pierwiastek kwadratowy.

'cbrt'

Korzeń sześcienny.

Wartość domyślna jest liniowa.

draw

Ustaw tryb rysowania. Przydaje się to głównie do ustawienia na wysoki n.

Dostępne wartości to:

'scale'

Skaluj wartości pikseli dla każdej narysowanej próbki.

'full'

Narysuj każdą próbkę bezpośrednio.

Wartość domyślna to scale.

16.27.1 Examples

  • Wyprowadzaj jednocześnie dźwięk pliku wejściowego i odpowiednią reprezentację wideo:
    amovie=a.mp3,asplit[out0],showwaves[out1]
    
  • Utwórz syntetyczny sygnał i pokaż go za pomocą fal pokazowych, wymuszając szybkość 30 klatek na sekundę:
    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

Konwertuj dźwięk wejściowy na pojedynczą klatkę wideo, reprezentującą fale próbek.

Filtr akceptuje następujące opcje:

size, s

Określ rozmiar wideo dla wyjścia. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Rozmiar wideo" w podręczniku ffmpeg-utils . Wartość domyślna to 600x240.

split_channels

Ustaw, czy kanały mają być rysowane osobno, czy nakładają się. Wartość domyślna to 0.

colors

Ustaw kolory oddzielone znakiem „|” które posłużą do rysowania każdego kanału.

scale

Ustaw skalę amplitudy.

Dostępne wartości to:

'lin'

Liniowy.

'log'

Logarytmiczny.

'sqrt'

Pierwiastek kwadratowy.

'cbrt'

Korzeń sześcienny.

Wartość domyślna jest liniowa.

draw

Ustaw tryb rysowania.

Dostępne wartości to:

'scale'

Skaluj wartości pikseli dla każdej narysowanej próbki.

'full'

Narysuj każdą próbkę bezpośrednio.

Wartość domyślna to scale.

filter

Ustaw tryb filtra.

Dostępne wartości to:

'average'

Użyj średnich wartości próbek dla każdej wylosowanej próbki.

'peak'

Użyj wartości szczytowych próbek dla każdej pobranej próbki.

Wartość domyślna to average.

16.28.1 Examples

  • Wyodrębnij reprezentację podziału kanału z kształtu fali całej ścieżki dźwiękowej w obrazie 1024x800 za pomocą ffmpeg:
    ffmpeg -i audio.flac -lavfi showwavespic=split_channels=1:s=1024x800 waveform.png
    

16.29 sidedata, asidedata

Usuń dane po stronie klatki lub wybierz klatki na ich podstawie.

Ten filtr akceptuje następujące opcje:

mode

Ustaw tryb pracy filtra.

Może być jednym z następujących:

'select'

Wybierz każdą klatkę z danymi bocznymi type.

'delete'

Usuń dane poboczne type. Jeśli typenie jest ustawione, usuń wszystkie dane boczne w ramce.

type

Ustaw poboczny typ danych używany we wszystkich trybach. Musi być ustawiony na selecttryb. Listę typów danych po stronie ramki można znaleźć w AVFrameSideDataTypewyliczeniu wlibavutil/frame.h. Na przykład, aby wybrać AV_FRAME_DATA_PANSCANdane boczne, musisz określić PANSCAN.

16.30 spectrumsynth

Syntetyzuj dźwięk z 2 wejściowych widm wideo, pierwszy strumień wejściowy reprezentuje wielkość w czasie, a drugi fazę w czasie. Filtr przekształci się z domeny częstotliwości wyświetlanej w filmach z powrotem do domeny czasu, jak pokazano na wyjściu audio.

Ten filtr jest przede wszystkim stworzony do odwracania przetworzonych wyjść filtra showspectrum , ale może również syntetyzować dźwięk z innych spektrogramów. Ale w takim przypadku wyniki będą słabe, jeśli dane fazy nie są dostępne, ponieważ w takich przypadkach dane fazy muszą zostać odtworzone, zwykle są one odtwarzane z losowego szumu. Aby uzyskać najlepsze wyniki, użyj wyjścia tylko w kolorze szarym ( channeltryb kolorów w filtrze showspectrum ) i logskali dla wideo magnitudo i linskali dla wideo fazy. Aby wyprodukować fazę, dla drugiego wideo użyj dataopcji. Wejścia wideo powinny zasadniczo używać fullframe trybu slajdów, ponieważ oszczędza to zasoby potrzebne do dekodowania wideo.

Filtr akceptuje następujące opcje:

sample_rate

Określ częstotliwość próbkowania dźwięku wyjściowego, częstotliwość próbkowania dźwięku, z którego zostało wygenerowane widmo, może się różnić.

channels

Ustaw liczbę kanałów reprezentowanych w widmach wejściowych wideo.

scale

Ustaw skalę, która była używana podczas generowania widma wejściowego amplitudy. Może być linlub log. Wartość domyślna to log.

slide

Ustaw slajd, który był używany podczas generowania widm wejściowych. Może być replace, scrolllub . Wartość domyślna to . fullframerscrollfullframe

win_func

Ustaw funkcję okna używaną do resyntezy.

overlap

Ustaw nakładanie się okien. W zasięgu [0, 1]. Domyślnie jest to 1, co oznacza, że ​​zostanie wybrane optymalne nakładanie się dla wybranej funkcji okna.

orientation

Ustaw orientację wejściowych filmów wideo. Może być verticallub horizontal. Wartość domyślna to vertical.

16.30.1 Examples

  • Najpierw utwórz wideo wielkości i fazy z dźwięku, zakładając, że dźwięk jest stereofoniczny z częstotliwością próbkowania 44100, a następnie ponownie zsyntetuj wideo z powrotem do dźwięku za pomocą widma:
    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

Podziel wejście na kilka identycznych wyjść.

asplitwspółpracuje z wejściem audio, splitz wideo.

Filtr akceptuje pojedynczy parametr określający liczbę wyjść. Jeśli nie jest określony, domyślnie wynosi 2.

16.31.1 Examples

  • Utwórz dwa oddzielne wyjścia z tego samego wejścia:
    [in] split [out0][out1]
    
  • Aby utworzyć 3 lub więcej wyjść, należy określić liczbę wyjść, jak w:
    [in] asplit=3 [out0][out1][out2]
    
  • Utwórz dwa oddzielne dane wyjściowe z tego samego wejścia, jeden przycięty i jeden dopełniony:
    [in] split [splitout1][splitout2];
    [splitout1] crop=100:100:0:0    [cropout];
    [splitout2] pad=200:200:100:100 [padout];
    
  • Utwórz 5 kopii wejściowego dźwięku za pomocą ffmpeg:
    ffmpeg -i INPUT -filter_complex asplit=5 OUTPUT
    

16.32 zmq, azmq

Odbieraj polecenia wysyłane przez klienta libzmq i przesyłaj je do filtrów na wykresie filtrów.

zmqi azmqdziałają jako filtry przelotowe. zmq należy umieścić między dwoma filtrami wideo, azmqmiędzy dwoma filtrami audio. Oba są w stanie wysyłać wiadomości do dowolnego typu filtra.

Aby włączyć te filtry, musisz zainstalować bibliotekę libzmq i nagłówki oraz skonfigurować FFmpeg za pomocą --enable-libzmq.

Więcej informacji o libzmq znajdziesz na: http://www.zeromq.org/

Filtry zmqi azmqdziałają jako serwer libzmq, który odbiera wiadomości wysyłane przez interfejs sieciowy zdefiniowany przez bind_address(lub skrót „b"). Domyślna wartość tej opcji totcp://localhost:5555. Możesz chcieć zmienić tę wartość do swoich potrzeb, ale nie zapomnij uciec przed znakami ':' (zobacz: filtergraph escaping ).

Otrzymana wiadomość musi mieć postać:

TARGET COMMAND [ARG]

TARGETokreśla cel polecenia, zwykle nazwę klasy filtra lub konkretną nazwę instancji filtra. Domyślna nazwa instancji filtra używa wzorca „Parsed_<filter_name>_<index>', ale możesz to zmienić, używając 'filter_name@idskładnia ' (zobacz Składnia Filtergraph ).

COMMANDokreśla nazwę polecenia dla filtru docelowego.

ARGjest opcjonalny i określa opcjonalną listę argumentów dla danego COMMAND.

Po odebraniu wiadomość jest przetwarzana, a odpowiednie polecenie jest wstrzykiwane do wykresu filtra. W zależności od wyniku filtr wyśle ​​odpowiedź do klienta, przyjmując format:

ERROR_CODE ERROR_REASON
MESSAGE

MESSAGEjest opcjonalne.

16.32.1 Examples

Patrzeć natools/zmqsendna przykład klienta zmq, który może być używany do wysyłania poleceń przetwarzanych przez te filtry.

Rozważmy poniższy wykres filtra wygenerowany przez ffplay. W tym przykładzie ostatni filtr nakładki ma nazwę instancji. Wszystkie inne filtry będą miały domyślne nazwy instancji.

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 "

Aby zmienić kolor lewej strony wideo, można użyć następującego polecenia:

echo Parsed_color_0 c yellow | tools/zmqsend

Aby zmienić prawą stronę:

echo Parsed_color_1 c pink | tools/zmqsend

Aby zmienić położenie prawej strony:

echo overlay@my x 150 | tools/zmqsend

17 Multimedia Sources

Poniżej znajduje się opis aktualnie dostępnych źródeł multimediów.

17.1 amovie

Jest to to samo, co źródło filmu , z wyjątkiem tego, że domyślnie wybiera strumień audio.

17.2 avsynctest

Wygeneruj test synchronizacji audio/wideo.

Generowany strumień okresowo pokazuje klatkę wideo flash i emituje sygnał dźwiękowy. Przydatne do sprawdzania problemów z synchronizacją A/V.

Akceptuje następujące opcje:

size, s

Ustaw wyjściowy rozmiar wideo. Wartość domyślna to hd720.

framerate, fr

Ustaw szybkość klatek wyjściowego wideo. Wartość domyślna to 30.

samplerate, sr

Ustaw wyjściową częstotliwość próbkowania dźwięku. Wartość domyślna to 44100.

amplitude, a

Ustaw amplitudę wyjściowego sygnału dźwiękowego. Wartość domyślna to 0.7.

period, p

Ustaw wyjściowy sygnał dźwiękowy w sekundach. Wartość domyślna to 3.

delay, dl

Ustaw opóźnienie błysku wyjściowego wideo w liczbie klatek. Wartość domyślna to 0.

cycle, c

Włącz cykliczne opóźnienia wideo, domyślnie jest wyłączone.

duration, d

Ustaw czas trwania strumienia wyjściowego. Domyślnie czas trwania jest nieograniczony.

fg, bg, ag

Ustaw pierwszy plan/tło/dodatkowy kolor.

17.3 movie

Odczytuj strumienie audio i/lub wideo z kontenera filmów.

Przyjmuje następujące parametry:

filename

Nazwa zasobu do odczytu (niekoniecznie plik; może to być również urządzenie lub strumień, do którego dostęp uzyskuje się przez jakiś protokół).

format_name, f

Określa format przyjęty dla filmu do odczytu i może być nazwą kontenera lub urządzenia wejściowego. Jeśli nie jest określony, format jest odgadywany na podstawie movie_namelub przez sondowanie.

seek_point, sp

Określa punkt wyszukiwania w sekundach. Ramki będą wyprowadzane począwszy od tego punktu wyszukiwania. Parametr jest oceniany za pomocą av_strtod, więc wartość liczbowa może być poprzedzona przyrostkiem IS. Wartość domyślna to „0”.

streams, s

Określa strumienie do odczytu. Można określić kilka strumieni, oddzielonych znakiem „+”. Źródło będzie wtedy miało tyle samo wyjść w tej samej kolejności. Składnia jest wyjaśniona w sekcji (ffmpeg)"Specyfikatory strumienia" w podręczniku ffmpeg . Dwie specjalne nazwy, „dv” i „da”, określają odpowiednio domyślny (najlepiej dopasowany) strumień wideo i audio. Domyślnie jest to „dv” lub „da”, jeśli filtr nazywa się „amovie”.

stream_index, si

Określa indeks strumienia wideo do odczytania. Jeśli wartość wynosi -1, najbardziej odpowiedni strumień wideo zostanie wybrany automatycznie. Wartość domyślna to „-1”. Przestarzałe. Jeśli filtr nazywa się „amovie”, wybierze dźwięk zamiast wideo.

loop

Określa, ile razy należy odczytać strumień w sekwencji. Jeśli wartość wynosi 0, strumień będzie zapętlony w nieskończoność. Wartość domyślna to „1”.

Zwróć uwagę, że gdy film jest zapętlony, znaczniki czasu źródła nie są zmieniane, więc wygeneruje on niemonotonicznie rosnące znaczniki czasu.

discontinuity

Określa różnicę czasu między klatkami, powyżej której punkt jest uważany za nieciągłość znacznika czasu, która jest usuwana przez dostosowanie późniejszych znaczników czasu.

dec_threads

Określa liczbę wątków do dekodowania

format_opts

Określ opcje formatu dla otwartego pliku. Opcje formatu można określić jako listę par key= valueoddzielonych znakiem ':'. Poniższy przykład pokazuje, jak dodać opcje protocol_whitelist i protocol_blacklist:

ffplay -f lavfi
"movie=filename='1.sdp':format_opts='protocol_whitelist=file,rtp,udp\:protocol_blacklist=http'"

Pozwala na nałożenie drugiego wideo na główne wejście wykresu filtra, jak pokazano na tym wykresie:

input -----------> deltapts0 --> overlay --> output
                                    ^
                                    |
movie --> scale--> deltapts1 -------+

17.3.1 Examples

  • Pomiń 3,2 sekundy od początku pliku AVI in.avi i nałóż go na wejście oznaczone jako „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]
    
  • Odczytaj z urządzenia video4linux2 i nałóż go na wejście oznaczone "in":
    movie=/dev/video0:f=video4linux2, scale=180:-1, setpts=PTS-STARTPTS [over];
    [in] setpts=PTS-STARTPTS [main];
    [main][over] overlay=16:16 [out]
    
  • Przeczytaj pierwszy strumień wideo i strumień audio o identyfikatorze 0x81 z dvd.vob; wideo jest podłączone do pada o nazwie „wideo”, a dźwięk jest podłączony do pada o nazwie „audio”:
    movie=dvd.vob:s=v:0+#0x81 [video] [audio]
    

17.3.2 Commands

Zarówno movie, jak i amovie obsługują następujące polecenia:

seek

Wykonaj wyszukiwanie za pomocą "av_seek_frame". Składnia to: search stream_index| timestamp|flags

  • stream_index: Jeśli stream_index wynosi -1, wybierany jest domyślny strumień, który timestampjest automatycznie konwertowany z jednostek AV_TIME_BASE na określoną dla strumienia podstawę czasu.
  • timestamp: sygnatura czasowa w jednostkach AVStream.time_base lub, jeśli nie określono strumienia, w jednostkach AV_TIME_BASE.
  • flags: Flagi, które wybierają kierunek i tryb wyszukiwania.
get_duration

Uzyskaj czas trwania filmu w jednostkach AV_TIME_BASE.

18 See Also

ffmpeg , ffplay , ffprobe , libavfilter

19 Authors

Twórcy FFmpeg.

Aby uzyskać szczegółowe informacje na temat autorstwa, zobacz historię projektu Git (git://source.ffmpeg.org/ffmpeg), np. wpisując polecenie git logw katalogu źródłowym FFmpeg lub przeglądając repozytorium online pod adresem http://source. ffmpeg.org .

W pliku wymieniono opiekunów poszczególnych komponentów MAINTAINERSw drzewie kodu źródłowego.

Ten dokument został wygenerowany 11 lipca 2022 roku przy użyciu makeinfo .

Hosting dostarczany przez telepoint.bg

Исходный текст