Как создать эффекты затухания / затухания для аудио с заданным значением (кроме 100%), используя ffmpeg и python? - PullRequest
0 голосов
/ 07 октября 2019

Я хотел бы создать эффекты постепенного исчезновения / затухания для значений, отличных от 100% объема и 0% объема. Как мне это сделать?

1 Ответ

0 голосов
/ 07 октября 2019

Чтобы создать строку фильтра с плавным переходом для передачи в ffmpeg, можно использовать эту вспомогательную функцию:

def create_afade_arg(is_in, start, end, fade_to_percent):
    d = 100*(end-start)/(100-fade_to_percent)

    cmd = [f"afade=enable='between(t,{str(start)},{str(end)})':t="]

    if is_in:
        cmd.append("in")
        start = end - d
    else:
        cmd.append("out")

    cmd.append(f":st={start}:d={d}")

    return ''.join(cmd)

Затем вы можете использовать ее, например, в "-filter_complex", например:

fade_t = 2 # duration of fade in seconds
fade_to_percent = 10 # target percent of volume to fade to

afade_arg = create_afade_arg( True, pos, pos+fade_t, fade_to_percent)
afade_str = ','.join(afade_arg)

... и передается в ffmpeg следующим образом:

exit_code = subprocess.call(["ffmpeg", "-i", "input.mp3", "-filter_complex", "[in]" + afade_str + "[out]" ,"-map", "[out]", "out.mp3"])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...