如何在ffmpeg中保持其他轨道完整的同时剪切音频/视频段?

  • 本文关键字:音频 视频 ffmpeg 轨道 其他 ffmpeg
  • 更新时间 :
  • 英文 :


我是ffmpeg的新用户,但是我有一个稍微复杂的用例。我需要能够从视频和/或音频的多个部分中剪切多个部分,视频和音频文件的实际长度保持完整(例如,音频将被剪切,但视频继续,或视频继续,但音频被剪切)。我一直在慢慢学习复杂的滤波器图,但一点帮助将非常感激。

这是目前我的超级基本的测试脚本。看看我是否可以让它工作(在实际用例中,时间戳将是python程序中的变量)

    ffmpeg -i bdt.mkv -filter_complex 
    [0:v]trim=start=10.0:end=15.0,setpts=PTS-STARTPTS[0v];
    [0:a]atrim=start=10.0:end=15.0,asetpts=PTS-STARTPTS[0a];
    [0:v]trim=start=65.0:end=70.0,setpts=PTS-STARTPTS[1v];
    [0:a]atrim=start=65.0:end=70.0,asetpts=PTS-STARTPTS[1a];[0v][0a][1v]
    [1a]concat=n=2:v=1:a=1[outv][outa] -map [outv] -map [outa] out.mp4

使用时间轴选项enablebetween表达式。对于视频,您可以使用overlay过滤器。

-vf color=black[b_];
    [b_][0:v]scale2ref[b][in];
    [in][b]overlay=shortest=1:enable='between(t,1,2)'

音频,使用volume滤波器:

-af volume=0:enable='between(t,1,2)'

你需要逃离' s。如果你想做更复杂的打开/关闭的enable选项使用额外的表达式(见上面的链接)。

这些并不是达到效果的唯一方法,但却是我能想到的最简单的方法。

相关内容

  • 没有找到相关文章

最新更新