Cree miniaturas con una altura del 80% de la entrada usando FFmpeg


2

Quiero tomar una captura de pantalla / miniatura de un clip cuyo tamaño es 1024 × 780, pero no quiero la altura completa. Solo quiero que la captura de pantalla tome 768 × 80% de la altura.

Esto se debe a que no quiero que se incluyan subtítulos en las miniaturas.

Actualmente estoy usando el siguiente comando para obtener capturas de pantalla:

ffmpeg -i <input> -f image2 -ss <position> -s 768x432 \
-vf fps=fps=1/10 -vframes 20 <output>

El objetivo es terminar con una miniatura de 768 × 432, pero la altura 432 es solo el 80% de la altura del archivo de video original.

Respuestas:


3

Puede usar los filtros scaley crop:

ffmpeg -i input -filter:v scale=768:-1,crop=iw:ih*0.8,fps=1/10 output

Esto se escalará al ancho deseado (768) y la altura se escalará automáticamente al valor apropiado para preservar el aspecto. Luego recortará tomando la altura escalada y multiplicándola por 0.8. Tenga en cuenta que el cultivo se dividirá entre la parte superior e inferior. Por ejemplo, el uso crop=iw:ih-100eliminará 50 píxeles de la parte superior y 50 píxeles de la parte inferior. Si quieres eliminar solo los píxeles de la parte inferior:

ffmpeg -i input -filter:v scale=768:-1,crop=iw:ih*0.8:0:0,fps=1/10 output

Puedes previsualizar con ffplay:

ffplay input -vf scale=768:-1,crop=iw:ih*0.8

Consulte la documentación del filtro FFmpeg para obtener más ejemplos e información.


bueno, en realidad quería que la altura fuera 432, no 346 ... ¿Es posible que salga 432 mientras se corta?
thevoipman

@thevoipman Tu pregunta era ambigua, por lo que no tenía totalmente claro qué querías. Tratar scale=768:-1,crop=iw:432.
llogan
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.