javascript - 使用FFmpeg在视频中途改变音量?

标签 javascript audio video ffmpeg fluent-ffmpeg

我正在尝试使用 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 完全相同.我该怎么办?

最佳答案

在 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");
});

关于javascript - 使用FFmpeg在视频中途改变音量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55614215/

相关文章:

javascript - Selenium 测试 - 事件似乎没有被触发

javascript - 通过使用 JavaScript/jQuery 调整窗口大小来激活和停用脚本

audio - 将 double 转换为声音字节输出的精妙之处

c++ - 用参数初始化

python - 如何在 Windows 10 上使用 Python(无需下载)从 Youtube URL 流式传输音频?

android - youtube 的所有视频 ID 都没有在 webview 中播放?

javascript - 将 addl 参数传递给 angularjs Promise

javascript - HTML、CSS、JS 意外结束输入错误

delphi - 如何将位图转换为视频?

video - 使用 ffmpeg 空复用器获取视频持续时间。有或没有流复制?