【问题标题】:Changing volume halfway through video using FFmpeg?使用FFmpeg在视频中途改变音量?
【发布时间】:2019-09-01 00:15:04
【问题描述】:

我正在尝试在应用程序中使用fluent-ffmpeg NPM 模块来降低视频前半部分的音频音量,然后在达到中间点时增加音量。我写了这段代码来尝试这样做:

const ffmpeg = require("fluent-ffmpeg");

ffmpeg("test.mp4")
 .audioFilters("volume=enable='between(t,0,t/2)':volume='0.25'", "volume=enable='between(t,t/2,t)':volume='1'")
 .save("output.mp4");

但是,每当我运行此代码时,output.mp4 的音量级别与test.mp4 完全相同。我该怎么办?

【问题讨论】:

  • t 表示当前时间,而不是总时长。您必须事先找出总持续时间,然后使用该值。假设它是 48 秒。那么第一个启用 expr 将是 between(t,0,24)between(t,0,48/2)

标签: javascript audio video ffmpeg fluent-ffmpeg


【解决方案1】:

在 Gyan 的评论的帮助下,我能够使用 ffprobe 和 JS 模板文字组合我想要的效果。这是固定代码(使用 fluent-ffmpeg 表示法):

const ffmpeg = require("fluent-ffmpeg");

ffmpeg.ffprobe("test.mp4", (error, metadata) => {
  ffmpeg("test.mp4").audioFilters({
    filter: "volume",
    options: {
      enable: `between(t,0,${metadata.format.duration}/2)`,
      volume: "0.25"
    }
  }, {
    filter: "volume",
    options: {
      enable: `between(t,${metadata.format.duration}/2, ${metadata.format.duration})`,
      volume: "1"
    }
  }).save("output.mp4");
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-26
    • 1970-01-01
    • 2016-09-06
    • 1970-01-01
    • 2016-11-06
    • 2022-10-25
    相关资源
    最近更新 更多