Eu estou usando o ffmpeg para extrair imagens estáticas de um vídeo. A partir de um determinado momento, por uma determinada duração usando os parâmetros -ss e -t.
ffmpeg -ss 00:10:01 -t 2 -i /Volumes/OO_8/VideoSource.mkv -qscale:v 2 -start_number /Users/Olivier/Pictures/ScreenCaptures/ViewsOfNature-%4d.jpeg
(Eu começo com o timestamp / duration primeiro para que o ffmpeg inicie o demux nesse ponto.)
No entanto, eu quero usar vários pontos de partida (por exemplo, às 00:01:12, extrair as imagens por 2 segundos, às 00:11:00 minutos, extrair as imagens por 4 segundos, etc.). isso manualmente, substituindo o registro de data e hora e a duração e movendo as imagens de saída de cada vez, mas, idealmente, quero inserir os registros de data e hora de uma só vez e não sobrescrever as imagens de saída. Existe uma maneira de fazer isso? Talvez com um arquivo externo com os timestamps / durações?
Eu sou novo para isso, e prefiro fazê-lo com ffmpeg apenas, não use bash.
00:01:02.01
(o último sendo o quadro) e que parecia resolvê-lo, mas ainda assim, às vezes, um timestamp é recusado. Brincar com os valores parece resolver (aumentar ou diminuir) parece resolvê-lo. Eu suspeito que é com ffmpeg não encontrar essa posição no arquivo de origem. Eu tentei posições aleatórias até agora. Vai tentar com posições reais que eu preciso e voltar a isso.HH:MM:SS.msec
e isso deve sempre trabalhos. Note que não são frames. Quando não encontrar um quadro no horário especificado, ele terá o próximo.00:01:02.000 1.5 00:10:06.000 2 00:12:01.030 2 00:16:06.050 1
Isso funciona. (O valor de 1,5 para a duração na última linha que tentei mais tarde, que funciona também.)