Я создал бота Discord, используя библиотеку discord.py, которая предназначена для воспроизведения веб-радио по нескольким голосовым каналам. По сути, это один и тот же аудиопоток для каждого канала.
То, что я делаю прямо сейчас:
voice_channel.play(discord.FFmpegPCMAudio(stream_url))
Однако каждый FFmpegPCMAudio использует около 10% моего процессора, и есть по одному для каждого v c так что, в конце концов, мой бот сильно вылетел при игре на 10 каналах (что немного).
Поскольку это тот же поток, я попробовал следующее:
player = FFmpegPCMAudio(stream_url)
for voice_channel in vcs:
voice_channel.play(player)
Но звук сильно прерывался (возможно, он проигрывал звук для каждого последовательно, как при многопоточности)
Можете ли вы придумать какой-либо другой способ уменьшить нагрузку на ЦП, поскольку это воспроизводится тот же аудиопоток? Либо трюк с discord.py, либо с уловкой FFmpeg, например, вручную запустить один FFmpeg и использовать его для каждого канала?