discord.py - FFmpegPCMAudio 使用大量 CPU
Posted
技术标签:
【中文标题】discord.py - FFmpegPCMAudio 使用大量 CPU【英文标题】:discord.py - FFmpegPCMAudio using a lot of CPU 【发布时间】:2020-11-02 02:09:52 【问题描述】:我使用 discord.py 库制作了一个 Discord 机器人,该库旨在在多个语音频道中播放网络广播。基本上每个频道都是相同的音频流。
我现在正在做的是:
voice_channel.play(discord.FFmpegPCMAudio(stream_url))
但是,每个 FFmpegPCMAudio 使用大约 10% 的 CPU,并且每个 vc 都有一个,所以最终我的机器人在 10 个通道中播放时崩溃了很多(这不是很多)。
由于是同一个流,我尝试了以下方法:
player = FFmpegPCMAudio(stream_url)
for voice_channel in vcs:
voice_channel.play(player)
但是声音很卡顿(可能是像线程一样按顺序播放声音)
你能想出任何其他方法来减少 CPU 的负载,因为它是在播放相同的音频流吗?可能是 discord.py 技巧或 FFmpeg 技巧,例如手动运行一个 FFmpeg 并将其用于每个通道?
【问题讨论】:
【参考方案1】:从FFmpegPCMAudio
更改为FFmpegOpusAudio
似乎是一种解决方案,因为它大大降低了CPU 使用率。可能不是最好的解决方案,所以我还在等着看是否有某种方法可以只拥有一个 FFmpeg 音频源。
【讨论】:
这里也一样,谢谢! FFmpegOpusAudio 的使用量减少了 30% 是的,来自FFmpegOpusAudio“而不是像FFmpegPCMAudio那样产生需要编码为Opus的PCM数据包,这个类产生Opus数据包,跳过编码步骤完成图书馆。”以上是关于discord.py - FFmpegPCMAudio 使用大量 CPU的主要内容,如果未能解决你的问题,请参考以下文章
discord.Embed 不被视为嵌入 discord.py