Долго пытался разобраться с данной темой сам, я понимаю принцип работы filter_complex для создания сложных графов фильтров и его фильтр amix, позволяющий получить аудио потоки файлов на входе и объединить их воедино. Я бы хотел применить фильтр amix в библиотеке pyav основанной на ffmpeg.
В ней имеется класс Graph (av.filer.graph.Graph) с возможность добавлять входных и выходные буфера. Я точно не знаю, как это работает именно здесь, по этому прошу помощи у тех кто с этим работал.
Мой код:
import av
import av.datasets
from av.filter.graph import Graph
file = 'vidos.mp4'
ffmpeg = av.open(file, mode='r')
streams = ffmpeg.streams
input_audio_streams = next(stream for stream in streams if stream.type == 'audio')
graph = Graph()
audio_buffer = graph.add_abuffer(template=input_audio_streams, channels=2)
audio_buffersink = graph.add('abuffersink')
amix = graph.add('amix', 'inputs=1:duration=longest')
audio_buffer.link_to(amix)
amix.link_to(audio_buffersink)
graph.configure()
Буду очень благодарен если поможете решить данную задачу.