如何自动替换视频中的音轨?



我想为自创建的视频实现音频增强的自动化。

这些视频都有共同点

  • 麦克风是经典的笔记本电脑麦克风(中等质量,有很多白噪声(

我大胆地创建了一个白噪声配置文件,如果我手动将降噪应用于音轨,音频听起来几乎就像在工作室中创建一样。

现在,我想运行一个应用程序或脚本来:

  1. 使用给定的噪声配置文件应用降噪,并将新的音频文件作为MP3写入磁盘
  2. 将新音轨应用于给定视频(将现有音轨替换为新音轨(
  3. 将新视频另存为新文件到磁盘

周围有谁可以帮忙吗?我需要决定建造或购买... 而且我不知道是否存在自动化此步骤的工具......

我的开发要求:

平台
  • 中立语言或平台,最好是Java

如果应用程序存在(例如在Linux下,因此几乎与平台无关(

  • 应用程序或软件包,并简要描述了如何处理它(例如 Audacity 和 ffmpeg,但我没有找到有用的入门(

要求:

  • 袜 队
  • FFMPEG

创建一些更长的示例录音,您根本不说话,但为您的麦克风和周围环境捕捉一些常见的噪音。

将其转换为wav,将其命名为noisesample.wav然后将其保存到视频文件夹中。打开命令行,导航到文件夹并执行:

sox noisesample.wav -n noiseprof noise_profile_file

创建文件夹 mp3

mkdir mp3

将每个视频转换为mp3以供以后处理

for f in *.mp4; do ffmpeg -i "$f" -c:a libmp3lame "mp3/${f%.mp4}.mp3"; done

将目录更改为 mp3 并将 sox 降噪(如大胆(应用于每个 mp3 文件

cd mp3    
for f in *.mp3; do sox "$f" "${f%.mp3}_new.mp3" noisered noise_profile_file 0.26

再次切换到父目录,创建目录并将新的mp3文件与mp4文件合并

cd ..
mkdir out
for f in *.mp4; do ffmpeg -i "$f" -i "mp3/${f%.mp4}_new.mp3" -map 0:v -map 1:a -c:v copy -shortest "out/${f%.mp4}.mp4"; done

这应该是你要求的技巧。 只要您的噪音配置文件保持不变,您就可以在所有视频中重复使用它。

最新更新