Изменение громкости на полпути через видео с помощью FFmpeg? - PullRequest
0 голосов
/ 10 апреля 2019

Я пытаюсь использовать модуль 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.Что мне делать?

1 Ответ

0 голосов
/ 10 апреля 2019

С помощью комментария Гаяна я смог собрать нужный эффект, используя 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");
});
...