【问题标题】:Using a FFmpeg trim filter to trim a video, while preserving its audio (with filter_complex)使用 FFmpeg 修剪过滤器修剪视频,同时保留其音频(使用 filter_complex)
【发布时间】:2021-09-03 22:06:29
【问题描述】:

我到了可以剪辑视频的地方

ffmpeg -i test.mp4 -filter_complex
'[0:v] trim=start=5:end=10,setpts=PTS-STARTPTS [cut]' -map [cut]  output.mp4

它成功地修剪了视频。但是,它会完全删除音频。我正在尝试链接几个不同的过滤器,所以我想保留类似的语法,只是为了以某种方式保留音频。

【问题讨论】:

  • 您是否打算最终也过滤音频?
  • 不,我正在将视频与几张静止图像结合起来,但我想保留视频的原始音频(当然来自修剪部分,因此示例中的音频从第 5 秒到第 10 秒)以上)

标签: video ffmpeg


【解决方案1】:

您还可以使用atrim 过滤器来修剪音频,并使用asetpts 过滤器来修改音频时间戳:

ffmpeg -i test.mp4 -filter_complex \
'[0:v] trim=start=5:end=10, setpts=PTS-STARTPTS [v0]; \
 [0:a]atrim=start=5:end=10,asetpts=PTS-STARTPTS [a0]'\
 -map [v0] -map [a0]  output.mp4

【讨论】:

  • 我需要补充一点,如果您在 Win 上运行此命令并将其用作参考,请不要在过滤器复杂 ['] 周围使用单引号使用双引号["] 否则你会在你的屏幕上大喊大叫,试图理解它为什么不工作。对于 Windows 用户也不要使用反斜杠 [\],如此处所示。这是 linux 中使长命令看起来更清晰的一种方法。
  • 过滤器描述中的最后一个;不应该在那里,因为FFmpeg认为会有另一个过滤器:[AVFilterGraph @ 0x7fcc3ec2aa80] No such filter: ''
【解决方案2】:

音频的一个简单方法是声明两次输入并使用-ss & -t,然后映射这个流:

ffmpeg -i test.mp4 -ss 5 -t 5 -i test.mp4 -filter_complex 
'[0:v] trim=start=5:end=10,setpts=PTS-STARTPTS [cut]' -map [cut] -map 1:a -c:a copy output.mp4

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-31
    • 2018-12-05
    • 2018-03-14
    • 1970-01-01
    • 2017-05-05
    • 2018-02-07
    • 2015-10-27
    • 2023-04-02
    相关资源
    最近更新 更多