Como usar o efeito de câmera lenta em um intervalo de tempo específico com ffmpeg

4

Estou tentando usar o efeito de câmera lenta em meus vídeos. Digamos que eu tenha um vídeo de 2 minutos e quero usar esse efeito entre 20 e 30 segundos.

Eu encontrei este comando em um blog:

ffmpeg -i input.mp4 -vf "setpts=(<speed>/1)*PTS" output.mp4

Mas não sei como implementar a duração.

    
por iwocan 10.12.2013 / 23:44

1 resposta

7

O filtro setpts não tem a funcionalidade edição da linha do tempo como alguns dos outros filtros (consulte para ffmpeg -filters para ver o que fazer).

Isso significa que você terá que fazer um vídeo lento e concatená-lo em seus vídeos de velocidade normal ou realizar alguma filtragem sofisticada.

Exemplo: apenas vídeo

Usando o trim , setpts e concat filtros:

A entrada neste exemplo tem uma duração de 60 segundos. 0-10 será velocidade normal, 10-30 será 50% mais lenta e 30-final será velocidade normal resultando em uma saída com uma duração de ~ 80 segundos:

ffmpeg -i input.mkv -filter_complex \
"[0:v]trim=0:10,setpts=PTS-STARTPTS[v1]; \
 [0:v]trim=10:30,setpts=PTS-STARTPTS[v2]; \
 [0:v]trim=start=30,setpts=PTS-STARTPTS[v3]; \
 [v2]setpts=PTS/0.5[slowv]; \
 [v1][slowv][v3]concat=n=3:v=1:a=0[out]" \
-map "[out]" output.mp4

Exemplo: com áudio

ffmpeg -i input.mkv -filter_complex \
"[0:v]trim=0:10,setpts=PTS-STARTPTS[v1]; \
 [0:v]trim=10:30,setpts=PTS-STARTPTS[v2]; \
 [0:v]trim=start=30,setpts=PTS-STARTPTS[v3]; \
 [0:a]atrim=0:10,asetpts=PTS-STARTPTS[a1]; \
 [0:a]atrim=10:30,asetpts=PTS-STARTPTS[a2]; \
 [0:a]atrim=start=30,asetpts=PTS-STARTPTS[a3]; \
 [v2]setpts=PTS/0.5[slowv]; \
 [a2]atempo=0.5[slowa]; \
 [v1][a1][slowv][slowa][v3][a3]concat=n=3:v=1:a=1[v][a]" \
-map "[v]" -map "[a]" output.mp4

slowmoVideo

Como alternativa, você pode tentar o slowmoVideo , o que provavelmente resultará em um efeito de lentidão mais bonito em comparação com o ffmpeg sozinho (o slowmoVideo usa o ffmpeg). Ele também permite que você use as curvas de Bézier para plotar o efeito para que você possa iniciar o efeito suavemente, e ele pode incluir desfoque de movimento.

    
por 11.12.2013 / 00:36