Ezt a szűrőt használom néhány vágásra:
-filter_complex "[0:v]crop=w=320:h=240[v0c]
ami jól működik. A probléma az, hogy néha nem tudom, mi az a bemenet, amelyet kapni fogok. Lehet például egy 1000x500
vagy egy 500x1000
. Tehát amikor ez megtörténik, akkor csak egy kis területet kap a videó közepétől. Az ideális az lenne, ha átméretezné a bemenetet, hogy méretének kisebbik megfeleljen a kívánt kimenetemnek, és a többit levágja. A probléma az, hogy nem tudom, melyik dimenzió lesz.
Hogyan építhetek szűrőt a probléma megoldására?
Megjegyzések
- Mekkora a kívánt kimeneti méret?
- 320×240, ahogyan az általam írt parancsban
Válasz
Használja
[0:v]scale="if(gt(a,4/3),-1,320)":"if(gt(a,4/3),240,-1)",setsar=1,crop=320:240[v0c]
Az x és y skálaszűrő kifejezései ellenőrzik a bemenet képarányát, és ha nagyobbak, mint 4 : 3, állítsa az értéket a 2., és ha nem, a harmadik argumentumra. A -1
azt jelenti, hogy az eredeti képarányt meg kell őrizni pl. scale=-1:400
egy 600x800
vászonra alkalmazva 300x400
.
320
és a240
?(a,234/787)