怎样用脚本消除视频噪声

最近单位同事参加某个活动,录制了几段视频,但是其中几段视频的噪音非常严重,几乎听不清人说话的声音了,然后呢,又不想麻烦别人再去录制了,于是找到了我帮忙想想办法。

怎么样才能把噪音去除显得我们够专业呢,我首先想到的是用各种各样的视频处理工具了, 上一搜,发现大部分能处理噪音的软件都是要收费的,那怎么办呢,大家肯定想用免费的了,于是我在想能否利用一些脚本来清除噪音呢?

虽然是用脚本,但是搞定得用到一些工具,所以第一步安装 需要2个小工具:

工具1: FFmpeg :一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序下载地址:https://ffmpeg.zeranoe.com/builds/ 工具2:SOX:音频处理工具里的瑞士军刀下载地址:https://sourceforge.net/projects/sox/files/sox/ 

我们需要将FFmpeg,SOX的命令加入windows环境变量PATH即可。

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

好了,划重点了,首先讲下去噪音的原理,如下图所示,主要分为四步:

视频去噪四大步

1) 分离视频流跟音频流

2) 噪声取样(可以在待处理视频中截取一段噪音,或者只录一段没有不讲话的视频)

3) 将分离出来的音频去噪

4) 合并分离的视频和去噪的音频

具体的各步骤的脚本如下:(可直接将如下各步骤脚本保存为.bat即可双击执行)

1. 分离视频音频

ffmpeg.exe -i 源视频.mp4 -an 输出视频.mp4ffmpeg.exe -i 源视频.mp4 -vn 输出音频.wav

2. 噪音取样

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

3. 将分离出来的音频去噪

#注意后面的0.21,根据google到说明,是说值最好在0.2到0.3之间sox 输出音频.wav 去噪的音频.wav noisered 噪音样本.prof 0.21

4. 合并视频跟去噪的音频

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

最后我们将以上四步统一写成一个脚本吧。(如果各个视频文件噪音一样的话,噪音特征文件噪音样本.prof可以只获取一次)

ffmpeg.exe -i 源视频.mp4 -an 输出视频.mp4ffmpeg.exe -i 源视频.mp4 -vn 输出音频.wavsox 输出音频.wav 去噪的音频.wav noisered 噪音样本.prof 0.21ffmpeg.exe -i 去噪的音频.wav -i 输出视频.mp4 最终视频文件.mp4

以上命令亲测有效,分享给大家,欢迎大家一起讨论研究,学习新东西,挑战自己!

声明:本站部分文章内容及图片转载于互联 、内容不代表本站观点,如有内容涉及侵权,请您立即联系本站处理,非常感谢!

(0)
上一篇 2020年8月22日
下一篇 2020年8月23日

相关推荐