Extrai quadros do vídeo usando ffmpeg - frame accurate?

0

Eu preciso extrair quadros da mais alta qualidade de um vídeo. Eu usarei ffmpeg desta maneira:

ffmpeg -i source_vid.mp4 -ss 15:10.123 -to 15:11.249 frames/frame_%03d.png

Minhas perguntas:

  1. O ffmpeg encontrará automaticamente um quadro "adequado" w.r.t. o tempo de -ss , ou será "interpolado" entre dois quadros se o tempo de -ss não cair com precisão no tempo de um quadro?
  2. Se a resposta à pergunta acima for "interpolar", como posso garantir que recebo o quadro "correto" exato em vez de um quadro "interpolado"?

(peço desculpas se os termos que usei não forem precisos ou corretos; fique à vontade para corrigir minhas terminologias)

Obrigado!

    
por pepoluan 07.01.2016 / 11:36

1 resposta

1

Como você especificou ss e to como opções de saída, o FFmpeg irá gerar todos os quadros desde o início do arquivo, mas descartá-los até que a posição inicial seja atingida. Mova essas opções para antes da entrada.

ffmpeg -ss 15:10.123 -to 15:11.249 -i source_vid.mp4 frames/frame_%03d.png

O FFmpeg não interpola, a menos que um filtro seja especificado.

Para uma extração precisa de quadros por índice, use

ffmpeg -i source_vid.mp4 -vf trim=start_frame=n:end_frame=m frames/frame_%03d.png
    
por 07.01.2016 / 11:54

Tags