Crie miniaturas com 80% de altura da entrada usando o FFmpeg

2

Eu quero fazer uma captura de tela / miniatura de um clipe cujo tamanho é 1024 × 780, mas não quero a altura inteira. Eu só quero que a imagem tire 768 × 80% da altura.

Isso porque eu não quero que nenhuma legenda seja incluída nas miniaturas.

Atualmente, estou usando o seguinte comando para obter capturas de tela:

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

O objetivo é acabar com uma miniatura de 768 × 432, mas a altura 432 é apenas 80% da altura do arquivo de vídeo original.

    
por thevoipman 29.03.2013 / 20:09

1 resposta

3

Você pode usar os scale e crop filtros:

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

Isso será dimensionado para a largura desejada (768) e a altura será dimensionada automaticamente para o valor apropriado para preservar o aspecto. Em seguida, ele irá cortar tomando a altura escalada e multiplicando-o por 0,8. Observe que a cultura será dividida entre as partes superior e inferior. Por exemplo, usar crop=iw:ih-100 removerá 50 pixels da parte superior e 50 pixels da parte inferior. Se você quiser, basta remover os pixels da parte inferior:

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

Você pode visualizar com ffplay :

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

Veja a documentação do filtro FFmpeg para mais exemplos e informações.

    
por 29.03.2013 / 22:06