Utilizo este filtro para hacer algunos recortes:
-filter_complex "[0:v]crop=w=320:h=240[v0c]
que funciona bien. El problema es que, a veces, no sé cuál es la entrada que voy a recibir. Podría ser un 1000x500
o un 500x1000
, por ejemplo. Entonces, cuando eso sucede, solo obtiene una pequeña área del centro del video. Lo ideal sería cambiar el tamaño de la entrada para que coincida con la menor de sus dimensiones con la salida deseada y recortar el resto. El problema es que no sé cuál será la dimensión.
¿Cómo podría construir un filtro para resolver este problema?
Comentarios
- ¿Cuál es el tamaño de salida deseado?
- 320×240, como en el comando que he escrito
Responder
Utilice
[0:v]scale="if(gt(a,4/3),-1,320)":"if(gt(a,4/3),240,-1)",setsar=1,crop=320:240[v0c]
Las expresiones de filtro de escala para xey comprueba la relación de aspecto de la entrada y si es mayor que 4 : 3, establezca el valor en el segundo argumento y, en caso contrario, en el tercer argumento. El -1
significa que la relación de aspecto original debe conservarse, p. Ej. scale=-1:400
aplicado a un 600x800
lienzo dará como resultado 300x400
.
320
y240
?(a,234/787)