- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用我的笔记本电脑(戴尔 XPS13 上的 Ubuntu 18.04 LTS 衍生产品)使用 OBS 录制视频(这些只是旁白的演示文稿) .演示完成后(.flv 格式),我使用 ffmpeg 处理它,使用过滤器尝试减少背景噪音、减小视频大小、将编码更改为 .mp4、插入水印等。几个月后,这个系统运作良好。
但是,我的笔记本电脑现在开始显示它的年龄(它是 4 岁)。这意味着风扇会变得响亮 - 响亮到足以在录音中注意到,但在您工作时不会响亮。因此,即使在 ffmpeg 中对低频进行过滤后,视频中仍会保留点击和其他类型的声音。我是一名科学家,但不是音频/视频专家。所以,我在想 - 我是否可以在我不演示时简单地记录机器发出的噪音,然后使用该录音过滤掉我的机器在演示期间发出的噪音?
像过滤掉某些音频频谱范围等一揽子方法不太可能奏效,因为噪声的功率谱可能有很多峰值,而且这些峰值也可能延伸到人声范围内(我能听到它们)。此外,这是一个移动的目标 - 笔记本电脑正在老化,无论如何,它产生的噪音的数量和类型取决于负载和它已经打开了多长时间。算法:
最佳答案
我没有足够的声誉来发表评论,所以这是我的答案,因为它适用于我的情况,我自己也在寻找答案。它可能适用于您的情况,也可能不适用于您的情况,因为我使用 ffmpeg
录制我的屏幕。 (这对于记录屏幕上的所有内容很好,但对于单个程序/窗口或屏幕的一部分来说不是一个很好的选择,可以做到,但我不认为有哪个部分的视觉指示正在录制屏幕)。
我遇到了afftdn
过滤器(https://ffmpeg.org/ffmpeg-filters.html#afftdn@Gyan 在对 OP 问题的评论中也提到)并且能够成功使用它。
该过程可能仅适用于 ffmpeg
制作的现场录音。 - 至少我想不出用预先录制的内容来做这件事的方法。以下过程也适用于仅音频输入,但您需要修改 ffmpeg
命令仅录制音频。它是这样工作的:
ffmpeg
命令来录制您的音频/屏幕。 afftdn
记录背景噪音并安静地坐一会儿。 afftdn
停止录制背景噪音并继续您的语音评论和您的演示文稿的实际录制。 ffmpeg -f pulse -i <my_input_device> -f x11grab -s 1920x1080 -framerate 30 -i :0.0 -s 1280x720 -filter_complex afftdn=tn=enabled /home/my_user_name/Videos/my_output_file.mp4
列出您的输入设备运行
pactl list short sources
并选择要使用的输入设备的名称 - 我的是
alsa_input.pci-000_00_1b.0.analog-stereo
.
ffmpeg
的第一个 -s 参数上面的命令(
-s 1920x1080
)是我的屏幕分辨率(相应地进行调整,您也可以将其设置为小于屏幕分辨率以仅记录屏幕的一部分 - 将其与 offset 参数结合以将记录的部分从左上象限移动屏幕),参数
-i :0.0
表示默认屏幕的左上角像素 - 如果您不想记录整个屏幕,则可以使用其他偏移量(如果您更改此偏移量,请相应地更改您的输入分辨率)。第二个 -s 参数 (
-s 1280x780
) 是输出视频分辨率。
c
告诉
ffmpeg
您正在向过滤器发出命令。
ffmpeg
应通过输出
Enter command: <target>|all <time>| -1 <command>[ <argument>]
提示您输入.类型:
afftdn -1 start
过滤器现在正在记录您的背景噪音。
c
告诉
ffmpeg
您再次向过滤器发出命令,并在出现提示时键入:
afftdn -1 stop
过滤器现在应该从您的音频中过滤背景噪音(在我的情况下,它需要几秒钟才能启动 - 我怀疑这可能取决于噪音记录的长度 - 您可能需要进行一些实验以获得良好的感觉何时开始实际录制)。继续您的录音。
ffmpeg
在此之前删除所有内容:
ffmpeg -ss <duration> -i /home/my_user_name/Videos/my_output_file.mp4 /home/my_user_name/Videos/my_output_file_with_noise_removed.mp4
替换
<duration>
从输入文件中删除的秒数(您还可以提供
HH:mm:ss.d
格式的持续时间,小时 HH 和十进制 .d 是可选的),例如:
ffmpeg -ss 30.5 -i /home/my_user_name/Videos/my_output_file.mp4 /home/my_user_name/Videos/my_output_file_with_noise_removed.mp4
当然,使用您喜欢的文件名 - 我喜欢导航到工作目录并发出表单的命令
ffmpeg -ss 30.5 -i input_file.mp4 noiseless_output_file.mp4
关于ffmpeg - 使用实际录音过滤掉视频中的噪音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66541446/
我正在使用 twilio JS 客户端从 Web 进行调用。客户端调用后端获取 token 。这里是返回 token 的后端代码。如何记录通话。表示在哪里设置录制网址。通话成功。但是不知道从哪里传录音
我有一个软件,可以记录 5 秒间隔的声音,然后将其发送进行处理。它在无限循环中运行,如下所示: while (true) { System.out.println("recording..")
我目前正在做一个项目,需要录制 iPhone 播放的声音。通过这个,我的意思是录制在后台播放的声音,如声音剪辑或其他任何东西,而不是使用内置麦克风。 这能做到吗?我目前正在试验 AVAudioReco
当我将蓝牙免提连接到 Android 手机设备时,是否可以使用手机麦克风录制声音并在免提中听到? 我设法通过手机麦克风录制声音,并通过手机扬声器或耳机听到声音。但是当耳机有麦克风时,通常是免提,它默认
我想访问我在我的应用程序中记录的跟踪数据和自定义数据。 有人可以提供不同数据轨道保存在 mp4 中的格式吗? 使用这个例子https://github.com/google-ar/arcore-and
我想知道,在C++中进行音频记录/回放/搜索的跨平台实用工具是什么?我当时在考虑采用ALUT(OpenAL)的路线,但是有更好的方法吗?如果不是,你们是否知道ALUT的任何优秀教程/示例代码? 最佳答
我目前正在开发一个项目,该项目允许用户录制音频消息,但是最近提出了一个要求,允许他们暂停录制过程,然后继续录制(将新的音频追加到之前的录制之后)。 示例: 用户按下记录并进行初始记录。 用户按下暂停按
我见过几个这样的例子,但它们似乎是针对旧版本的 SDK。我正在尝试设置基本的录音,以下代码在针对 SDK 2.0 版时给我一个 NullPointerException。 ContentValues
我开发了一款安卓游戏,使用 Audio Record 获取麦克风输入。 可以看一下https://play.google.com/store/apps/details?id=fixappmedia.m
我想在最近的项目中使用该插件进行音频捕获。我找到了 Matt Diamond 的努力 demo here正如大多数文章所指向的那样。我尝试在本地重新创建这个完全相同的演示,但没有成功。 我包括了所有依
我正在设置录音机,但在 soundRecorder = try AVAudioRecorder(URL: getFileURL(), settings: recordSettings as! [Str
作为一名吉他手,我一直想开发自己的录音、混音软件。我在 Direct Sound、Windows Multimedia(waveOutOpen 等)方面有一些经验。我意识到这将是一个复杂的项目,但纯粹
我不想记录我自己的击键来创建 asciinema 教程,而是想编写它们的脚本,这样我就可以随着时间的推移轻松地改进我的教程,而不必担心每次我想进行更改时都要重做,或者花很多时间尝试更正录音中的错别字。
我正在尝试使用 Flutter 构建一个应用程序,其中包含录音机。如何访问录音机?请帮我弄清楚它的包、依赖项和代码。 最佳答案 您可以使用 audio_recorder 包: https://pub.
掌握 Java Flight recorder (JFR) 配置,我有一个最合理的配置: -XX:+UnlockCommercialFeatures -XX:+DebugNonSafepoints -
我正在尝试播放我从 twilio 取回的通话录音。到目前为止,我在我的网站上有一个所有通话录音的列表,当我点击它们时,它会将我发送到 twilio 以收听它们。然后我发出一个 ajax 请求以从 tw
我们可以用 iPhone 直接线路输入录制音频吗? 最佳答案 唯一的方法是使用底座连接器创建您自己的配件,然后使用提供的 API! 关于iPhone LINE-IN 录音 可以吗?,我们在Stack
基本上,我希望用户使用 SoundCloud 录音机录制声音,一旦他们单击“保存”,他们刚刚录制的声音就会嵌入到我的网页中。 我使用 SC.record() 方法来获取录音。这是我保存录音的功能...
我正在尝试在网站中实现录音。基本上,用户应该能够按下一个按钮并对着麦克风说些什么。然后应将录制的音频发送到服务器以进行进一步处理。我知道您可以使用 Flash 做到这一点,但现在我正在努力避免这种情况
我正在尝试“录制”一个音频文件,我读过这个 doc ,实际上我想在文件中将“采样”值记录为双倍值,这是我使用的代码(不起作用,我不知道为什么没有): /* Use the newer ALSA API
我是一名优秀的程序员,十分优秀!