ffmpeg从视频旋转和裁剪视频中删除多个片段
我有一个2分25秒的视频,我想将部分从10秒移到16秒,20秒移到26秒并旋转视频然后裁剪
我正在尝试这个命令
"-y", "-i", j,
"-filter_complex",
"[0:v]trim=start=10:end=16,setpts=PTS-STARTPTS[a]; " +
"[0:v]trim=start=20:end=26,setpts=PTS-STARTPTS[b]; " +
"[0:a]atrim=start=10:end=16,asetpts=PTS-STARTPTS[c]; " +
"[0:a]atrim=start=20:end=26,asetpts=PTS-STARTPTS[d]; " +
"[a][c][b][d]concat=n=2:v=1:a=1[e][f],"+
"crop=" + 40 + ":" + 20 + ":" + 100 + ":" + 100,"+
"transpose=1", "-map", "'[e]'" ,"-map",
"'[f]'", "-preset", "ultrafast",out
执行此操作的正确命令是什么
答案 0 :(得分:2)
对于过滤,请使用
ffmpeg -y -i in
-filter_complex,
"[0:v]select='not(between(t,10,16)+between(t,20,26))',setpts=N/30/TB,crop=40:20:100:100,transpose=1[v];
[0:a]aselect='not(between(t,10,16)+between(t,20,26))',asetpts=N/SR/TB[a]"
-map '[v]' -map '[a]' -b:v 2097k -r 60 -vcodec mpeg4 out.mp4
(如果视频旋转,请删除转置过滤器。这是因为ffmpeg预先自动旋转视频。
修剪过滤器将指定的段保留在中并删除其他所有内容。你想做相反的事情。这也可以通过多个修剪滤镜来完成,但单个选择滤镜更方便。