Tento filtr používám k oříznutí:
-filter_complex "[0:v]crop=w=320:h=240[v0c]
který funguje dobře. Problém je v tom, že někdy nevím, jaký je vstup, který dostanu. Může to být například 1000x500
nebo 500x1000
. Když k tomu dojde, dostane jen malou oblast do středu videa. Ideální by bylo změnit velikost vstupu tak, aby odpovídala menším z jeho rozměrů mému požadovanému výstupu, a zbytek oříznout. Problém je v tom, že nevím, která dimenze bude.
Jak mohu vytvořit filtr, který by tento problém vyřešil?
Komentáře
- Jaká je požadovaná velikost výstupu?
- 320×240, jako v příkazu, který jsem napsal
Odpovědět
Použít
[0:v]scale="if(gt(a,4/3),-1,320)":"if(gt(a,4/3),240,-1)",setsar=1,crop=320:240[v0c]
Výrazy filtru měřítka pro x a y zkontrolují poměr stran vstupu a pokud je větší než 4 : 3, nastavte hodnotu na 2. argument, a pokud ne, na třetí argument. -1
znamená, že by měl být zachován původní poměr stran, např. scale=-1:400
použitý na 600x800
plátně bude mít za následek 300x400
.
320
a240
?(a,234/787)