【发布时间】:2021-06-07 00:29:42
【问题描述】:
我使用笔记本电脑(戴尔 XPS13 上的 Ubuntu 18.04 LTS 衍生产品)使用 OBS 录制视频(这些只是旁白的演示文稿)。演示完成后(.flv 格式),我使用 ffmpeg 处理它,使用过滤器尝试减少背景噪音、减小视频大小、将编码更改为 .mp4、插入水印等。几个月后,这个系统效果很好。
但是,我的笔记本电脑现在开始显示它的年龄(它是 4 岁)。这意味着风扇变得响亮 - 响亮到足以在录音中注意到,但在您工作时却不够响亮。因此,即使在 ffmpeg 中对低频进行了过滤后,视频中也会留下点击和其他类型的声音。我是一名科学家,但不是音频/视频专家。所以,我在想 - 我是否可以在我不演示时简单地记录机器发出的噪音,然后使用该录音过滤掉我的机器在演示期间发出的噪音?
过滤掉某些音频频谱范围等一揽子方法不太可能奏效,因为噪声的功率谱可能有许多峰值,而且这些峰值也可能延伸到人声范围内(我能听到他们)。此外,这是一个移动的目标 - 笔记本电脑正在老化,无论如何,它产生的噪音的数量和类型取决于负载和它的运行时间。算法:
- 在我不录制时录制实际计算机噪音(加上背景噪音的额外奖励)。理想情况下,就在开始录制演示文稿之前。这可以采取 1-2 分钟音频样本的形式。
- 在 OBS 上录制演示文稿。
- 使用 1 作为滤波器来去除 2 中的噪声。我想这将涉及对 1 进行傅里叶分析,然后在每个时期从 2 的频谱中去除这些峰值。
我研究过 sox,这是人们有些轻率地指向你而没有提供任何细节的东西。我不知道如何从视频中分离出音频通道,然后将它们交错在一起(这里不是软件专家)。除了 RTFM,还有其他人可以提供的有用建议吗?我已经搜索过,但没有找到 HOWTO。我认为这可能是我搜索的错误,因为我拒绝相信这是一个新想法 - 它是许多领域(包括天文学)用于消除噪音的标准方法。
【问题讨论】:
-
Audacity 使用分析器有一个不错的降噪过滤器。 FFmpeg 也有一个通过
afftdn过滤器 (ffmpeg.org/ffmpeg-filters.html#afftdn) 但使用配置文件有点复杂。
标签: ffmpeg sox noise-reduction obs