Moviepy: смешайте несколько аудиофайлов

Я хочу смешать несколько аудиофайлов и экспортировать один аудиофайл, чтобы продемонстрировать, вот пример временной шкалы;

audio1 : -----------------------------------------------------------------------

audio2 :      ===============

audio3 :                                   +++++++++++

audio4 :                                                         ************

audio5 :                                                     ~~~~~~~~~

У меня есть время задержки, например, audio2 должно воспроизводиться с задержкой в ​​2 секунды после воспроизведения audio1 и т. д. Как я могу смешать эти AudioFileClip()?


person soroushamdg    schedule 13.10.2020    source источник


Ответы (1)


Используйте CompositeAudioClip с clip.set_start().

В одной строке вы можете сделать mixed = CompositeAudioClip([audio1, audio2.set_start(2), audio3.set_start(7)]). Если у вас сложное время начала или другие эффекты, которые вы хотите применить, вы, конечно, можете разбить их на несколько строк.

person Tom Burrows    schedule 14.10.2020
comment
Спасибо. Я предполагаю, что это должно работать нормально, но когда я пытаюсь экспортировать CompositeAudioClip с помощью функции write_audiofile(), она выдает ошибку «CompositeAudioClip», не имеющую атрибута «fps». Что я должен делать? - person soroushamdg; 14.10.2020
comment
Я определил fps CompositeAudioClip по fps файла audio1 и исправил его:mixed.fps = audio1.fps - person soroushamdg; 14.10.2020
comment
Да, это работает. CompositeVideoClip автоматически устанавливает свой FPS на основе входных видео, поэтому я удивлен, что CompositeAudioClip этого не делает. Не стесняйтесь создавать проблему на GitHub, чтобы спросить об этом :) - person Tom Burrows; 15.10.2020