我试图用 ffmpeg 剪切音频的多个部分,我能够找到单个过滤器的有效结果(对于视频):
ffmpeg -i input.avi -vf "select='1-between(t,20,25)', setpts=N/FRAME_RATE/TB" -af "aselect='1-between(t,20,25)', asetpts=N/SR/TB" output.avi
我如何才能将此代码适配到多个过滤器?例如,如果我想删除 10to20、50to60 等片段。
谢谢
答案1
您可以组合多个between
间隔,如下所示:https://stackoverflow.com/questions/50594412/cut-multiple-parts-of-a-video-with-ffmpeg。只需从此链接复制命令:
ffmpeg -i video.mp4 \
-vf "select='between(t,4,6.5)+between(t,17,26)+between(t,74,91)',
setpts=N/FRAME_RATE/TB" \
-af "aselect='between(t,4,6.5)+between(t,17,26)+between(t,74,91)',
asetpts=N/SR/TB" out.mp4
答案2
我能够通过以下命令达到我想要的结果:ffmpeg -i input.mp3 -af "aselect='not(between(t,10,16)+between(t,20,50))'" output.mp3
答案3
将视频复制到新文件并同时删除音频是删除音频最快捷、最简单的方法。此方法很简单,因为您不必在执行此操作时重新编码电影。此处提供了实现此操作的命令行。ffmpeg.exe -i videoWithAudio.mp4 -c:v copy -an videoWithoutAudio.mp4 -c:v copy 将视频轨道复制到 videoWithoutAudio.mp4 -an 告诉 FFmpeg 不要复制音频