用脚本批量消除视频噪声

简介:

  前言:为什么要写这么一篇文章呢?因为我录了一套视频,关于python数据分析可视化的基础入门,然后又买不起录音设备,自己的电脑又老得不行,所以在视频里面伴随着经久不衰的“嗡嗡~”声,然后咱们办呢?就算不是我这么穷的人,我想也遇到过,但是那些处理视频的软件实在是太大,动辄好几百兆。。。。我孱弱的电脑,不想再背负这些了,所以google吧~

 总得来说参考了下面两篇文章,第一篇文章几乎是所有思路,然后第二篇是关于ffpmeg的参数讲解。

 虽然是用脚本,但是搞定得用到一些工具,所以第一步安装

 需要软件:

 git bash    下载地址:https://git-scm.com/download/

 ffmpeg     下载地址:https://ffmpeg.zeranoe.com/builds/

 sox       下载地址:https://sourceforge.net/projects/sox/files/sox/


 第一个自然是windows下面的bash环境了,作为命令行的死忠粉,只能没有命令行。

 第二个比较鼎鼎大名了。

FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。

 第三个用来处理音频。

 

 第一个,第三个基本下载安装就OK了,而第三个只要解压就行。

 最后就ffmpeg,sox的命令加入windows环境变量PATH即可。

  简单来书就是,计算机-->属性-->高级-->系统环境变量-->找到PATH-->然后添加自己相应的安装目录。

 效果如下:wKioL1cQ4KGTrOHGAADThuKSbgY187.png

 关于处理视频噪声,主要四步:

 一 分离视频流跟音频流(就是一个只有画面没有声音,一个没有画面只有声音。)

 二 噪声取样(只要录一段没有不讲话的视频不就OK了么)

 三 将分离出来的音频去噪。

 四 将去噪的音频跟之前分离出来的视频合并起来,就ok了。

 

 怎么批量呢?用shell脚本for一个循环不就OK了么~~~


 其实总得来说,这个脚本不超过十行。

 

 首先进行第一步,视频,音频分离。

1
2
3
4
#-an代表不要音频,可能是audio no的缩写
ffmpeg.exe -i 源视频.mp4 -an 输出视频.mp4
#-vn代表不要视频画面,可能是video no的缩写
ffmpeg.exe -i 源视频.mp4 -vn 输出音频.wav

 然后第二步,噪音取样(其实我们只要取一遍),简单录制一小节大于一秒的视频,只有噪音。

1
2
3
4
#-ss代表起始时间,-t代表时间间隔,我们取一秒,最后的文件名都是输出文件名
ffmpeg -i 噪音视频.mp4 -vn -ss 00:00:00 -t 00:00:01 分离出来的噪音.wav
#通过sox我们将噪音的特征提取出来,然后就需要这个.prof文件
sox 分离出来的噪音.wav -n noiseprof 噪音样本.prof

 第三步,将分离出来的音频去噪

1
2
#注意后面的0.21,根据google到说明,是说值最好在0.2到2.3之间,为什么0.21是因为别人试验后最好的效果,可以自己做相应的调试,取值在0.2到0.3即可
sox 输出音频.wav 去噪的音频.wav noisered 噪音样本.prof 0.21

 最后一步。合并视频跟去噪的音频

1
ffmpeg.exe -i 去噪的音频.wav -i 输出视频.mp4 最终视频文件.mp4

 然后我们写成脚本吧。

1
2
3
4
5
6
7
8
9
set  -x
for  in  ` ls  *mp4`; do
   f=$i
   filename=${f%.*}
   ffmpeg.exe -i $i -an -qscale 0 reduce/$filename.an.mp4;
   ffmpeg.exe -i $i -vn reduce/$filename.wav
   sox.exe reduce/$filename.wav reduce/$filename.clean.wav noisered samplenoise.prof 0.21
   ffmpeg.exe -i reduce/$filename.clean.wav -i reduce/$filename.an.mp4 reduce/$filename.clean.mp4
   done

首先将文件名提取出来,然后依次分离,去噪,合并,这里之所以没有重复提取噪音的那一步,因为我们提取一次就行了~~~我们将处理的文件统一放在reduce这个文件夹。

注:加入的

-qscale 0 代表不压缩,即不损害视频质量,传说中的原画,哈哈~



后记:虽然在一定意义上,是基本去除了噪音,但是因为取的很粗糙,所以还是会在视频中人声的部分,人声会伴随一定量的电子杂音,所以完全之策是换个电脑或者买个录音设备,哈哈~~~




本文转自 youerning 51CTO博客,原文链接:http://blog.51cto.com/youerning/1764295

相关文章
|
IDE 数据可视化 Linux
【matplotlib】plt.show() !真没这么简单!
【matplotlib】plt.show() !真没这么简单!
2649 1
|
6月前
|
存储 缓存 并行计算
LMCache:基于KV缓存复用的LLM推理优化方案
LMCache推出KV缓存持久化方案,显著优化大模型推理首Token延迟(TTFT)。通过将KV缓存存储至GPU、CPU或磁盘,实现跨请求复用,支持任意位置文本匹配,与vLLM深度集成,多轮对话、RAG场景提速3-10倍,降低硬件压力,提升吞吐。开源支持Linux/NVIDIA,正拓展AMD及更多生态支持。
893 15
LMCache:基于KV缓存复用的LLM推理优化方案
|
虚拟化 iOS开发 MacOS
VMware ESXi 7.0U3v macOS Unlocker & OEM BIOS 2.7 集成网卡驱动和 NVMe 驱动 (集成驱动版)
VMware ESXi 7.0U3v macOS Unlocker & OEM BIOS 2.7 集成网卡驱动和 NVMe 驱动 (集成驱动版)
1162 2
VMware ESXi 7.0U3v macOS Unlocker & OEM BIOS 2.7 集成网卡驱动和 NVMe 驱动 (集成驱动版)
|
存储 安全 JavaScript
秘密任务 3.0:如何通过 JWT 认证确保 WebSockets 安全
本文探讨了如何通过JWT认证保障WebSockets通信安全,防止敏感数据泄露和未授权访问。首先介绍了保护WebSockets的重要性,随后详细讲解了JWT与WebSockets的协同工作流程:特工通过API登录获取JWT,建立连接时提供令牌,服务器验证后决定是否授权。还提供了Node.js实现示例及客户端连接方法,并分享了最佳实践,如使用HTTP-only Cookie、短生命周期令牌和WSS加密。最后推荐了Apipost工具助力实时测试与调试,确保构建高效安全的实时网络。
|
存储 NoSQL 大数据
大数据 数据存储优化
【10月更文挑战第25天】
825 2
|
机器学习/深度学习 人工智能 自然语言处理
AI剧本生成与动画创作:能否成为短视频创作的革命性工具?
《AI剧本生成与动画创作》解决方案结合自然语言处理与深度学习技术,能自动生成剧本并转化为动画,极大提升创作效率,降低门槛。部署过程需约3小时,适合非专业用户快速响应热点内容。尽管在创意和细节上仍存不足,但已为短视频创作者提供高效路径,值得尝试。未来,随着技术进步,AI创作工具将带来更多惊喜。
729 10
AI剧本生成与动画创作:能否成为短视频创作的革命性工具?
|
机器学习/深度学习 算法 网络协议
开源上新|通义语音处理技术ClearerVoice-Studio
开源上新|通义语音处理技术ClearerVoice-Studio
|
人工智能 JSON 数据格式
RAG+Agent人工智能平台:RAGflow实现GraphRA知识库问答,打造极致多模态问答与AI编排流体验
【9月更文挑战第6天】RAG+Agent人工智能平台:RAGflow实现GraphRA知识库问答,打造极致多模态问答与AI编排流体验
4531 9
RAG+Agent人工智能平台:RAGflow实现GraphRA知识库问答,打造极致多模态问答与AI编排流体验
Flutter 中优雅切换应用主题的组件
【Flutter】使用adaptive_theme组件优雅切换应用主题:封装MaterialApp,支持light/dark/system模式,自定义色彩,保存选择,含调试按钮。安装配置、设置主题、监听切换、自定义颜色、读取配置步骤详细。代码示例与学习路径推荐。[查看完整教程](https://flutter.ducafecat.com/blog/flutter-app-theme-switch)
411 1
Flutter 中优雅切换应用主题的组件
|
IDE Java Maven
30 个 IDEA 常用小技巧,应有尽有,让你的撸码效率直接起飞...(2)
30 个 IDEA 常用小技巧,应有尽有,让你的撸码效率直接起飞...
544 0
30 个 IDEA 常用小技巧,应有尽有,让你的撸码效率直接起飞...(2)