ffmpeg: Como desacelerar um vídeo por um tempo

1

Eu quero reduzir a velocidade de um vídeo com o FFmpeg por x segundos, depois disso ele deve estar tocando como antes. Existe uma maneira de fazer isso no ffmpeg usando o parâmetro setpts ? Eu só encontrei este documento do FFmpeg para configurar o nível de velocidade whole .

Agora o ffmpeg está lendo uma pasta de imagens com cerca de 200 imagens para criar um vídeo usando:

ffmpeg -f image2 -pattern_type glob -i 'image2/*.png' -vf fps=25/1 -s 640x360 -b 2000k output.mp4
    
por user293004 06.07.2015 / 17:13

1 resposta

1

O FFmpeg não tem uma maneira direta de fazer isso. O que você pode fazer é dividir o vídeo em fatias, aplicar a câmera lenta em cada fatia e concatenar todas juntas novamente. filter_complex pode ser usado com encadeamento de filtros para isso.

ffmpeg -i input_video -filter_complex "
[0:v]trim=0:10[v1];
[0:v]trim=10:30[v2];
[0:v]trim=start=30[v3];
[v2]setpts=PTS/0.5[slowv];
[v1][slowv][v3]concat=n=3:v=1:a=0[outv]" -map [outv] map 0:a -c:v libx264 -c:a copy output_video

Como você está manipulando o vídeo, talvez seja necessário codificar novamente o fluxo. Para isso, você pode selecionar um codec apropriado de aqui .

Espero que isso ajude!

    
por 06.07.2015 / 19:53