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.