Recebi uma dúvida bem plausível, sobre extrair imagens de um vídeo. Com os comandos fornecidos em meu ultimo POST, é possível atrasar a captura da imagem, para começar a extrair a partir de 10 segundos por exemplo, depois do vídeo ter iniciado, como mostra o comando a seguir:
ffmpeg -itsoffset -10 -i foo.avi -r 1 -s 800×600 -f image2 snapshot-%03d.jpeg
A dúvida seria exatamente essa:
“Se possuirmos um vídeo de 2 horas de duração, e precisarmos extrair somente uma imagem da posição 1 hora, 30 minutos e 20 segundos, como seria feito ?”
Simples:
Para isso utilizaremos o parametro -vframes, comando utilizado para limitar o numero de frames que vai ser capturado. No nosso caso será 1 frame. O outro comando, bastante similar ao -itsoffset, seria o -ss, serve para atribuir uma posição de inicio para capturarmos o nosso frame. Essa posição deve ser indicada como hh:mm:ss. Sendo hora : minutos : segundos da posição desejada. Abaixo segue a solução para nosso problema:
ffmpeg -vframes 1 -ss 01:30:20 -i foo.avi -r 1 -s 800×600 -f image2 snapshot-%03d.jpeg
Para certificarmos que iremos extrair exatamente o frame que desejamos o valor do vframes pode ser alterado para capturar alguns frames seguintes, por segurança.
Veja o restante do tópico: Extraindo imagens de um vídeo – parte I, pelo link:
https://rafaelbiriba.com/?p=53
Pingback: Timelapse: Acelerando seus vídeos usando o FFmpeg | Planeta Globo.com()