ffmpeg + sox 去除视频中的噪音

录制视频过程中会有嗡嗡的风声,将其去除。原理 1 分离视频和音频 2 噪音取样 3 音频去噪,将音频和视频合并

代码:

#!/usr/bin/env bash

set -X

f=$1
filename=${f%.*}

#分离视频
ffmpeg -i $1 -an -qscale 0 out/$filename.an.mp4;
#分离音频
ffmpeg -i $1 -vn out/$filename.wav
#音频去燥 zaoyin.prof 是去燥样本,生成一次就可
sox out/$filename.wav out/$filename.clean.wav noisered zaoyin.prof 0.21
# 合并音频和视频
ffmpeg -i out/$filename.clean.wav -i out/$filename.an.mp4 out/$filename.clean.mp4

#以上是脚本

#运行
./xxx.sh 视频名字

#zaoyin.prof 这样生成

#以下是脚本

#!/usr/bin/env bash
#先录制没有人声的视频即噪音视频,取出噪音
set -X
f=$1
filename=${f%.*}
ffmpeg -i $1 -vn -ss 00:00:00 -t 00:00:01 $filename.wav
#取出噪音样本
sox  $filename.wav -n noiseprof zaoyin.prof

#运行 最后生成 zaoyin.prof文件复制到将要去燥的视频的同级目录
./xxx.sh 噪音视频名字

输出:

遇到问题?