iwo*_*can 5 video windows ffmpeg motion
我正在尝试在我的视频中使用慢动作效果。假设我有一个 2 分钟长的视频,我想在 20 到 30 秒之间使用这种效果。
我从博客中找到了这个命令:
ffmpeg -i input.mp4 -vf "setpts=(<speed>/1)*PTS" output.mp4
Run Code Online (Sandbox Code Playgroud)
但我不知道如何在其中实现持续时间。
llo*_*gan 10
该setpts过滤器不像其他一些过滤器那样具有时间线编辑功能(请参阅ffmpeg -filters查看哪些功能)。
这意味着您必须制作慢速视频并将其连接到正常速度的视频中或执行一些花哨的过滤。
此示例中的输入的持续时间为 60 秒。0-10 将是正常速度,10-30 将慢 50%,而 30-end 将是正常速度,导致输出持续约 80 秒:
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
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
或者,您可以尝试slowmoVideo,与单独的ffmpeg(slowmoVideo使用ffmpeg)相比,它可能会产生更好看的减速效果。它还允许您使用贝塞尔曲线来绘制效果,以便您可以平滑地启动效果,并且它可以包括运动模糊。
| 归档时间: |
|
| 查看次数: |
3741 次 |
| 最近记录: |