【问题标题】:batch FFMPEG-Normalize AND convert via Python?批量 FFMPEG-Normalize 并通过 Python 转换?
【发布时间】:2023-03-30 13:54:01
【问题描述】:

我目前正在编写一个脚本来帮助我批量转换和 规范化音频文件(wma 到 mp3) 在寻找有用的工具时,我很幸运地偶然发现了 FFMPEG-Normalize!

我的脚本是从 Python 运行的,我正在通过子进程调用 FFMPEG。 我无法让 FFMPEG-Normalize 输出 Mp3 文件 - 因此我是 进行另一个 FFMPEG 调用以转换生成的 wav 文件。 你知道如何使 FFMPEG 标准化也转换为 mp3 吗? 第二个问题是我的文件夹中只有部分文件正在 处理,我不明白为什么。在路径中的 8 个文件中, 有时它们都被处理了,有时只有 3 个或 5 个……非常 诡异的! 这是我的代码:

for file in sorted(os.listdir(pathdes)):
    os.chdir(pathdes)
    subprocess.call(['ffmpeg-normalize','-m','-l','-0.1',file])
    file = 'normalized-' + file
    file = file[:-3] + "wav"
    file2 = file[:-3] + "mp3"
    os.chdir(pathdes)
    subprocess.call(['ffmpeg', '-i', file,'-b:a','320k', file2])

我知道 FFMPEG 规范化是用 Python 编写的,也许有 除了 subprocess 之外的另一种调用方式? 我错过了什么吗? (我知道我是!)

非常感谢!

【问题讨论】:

  • 我应该补充一点,ffmpeg-normalize 程序不是 Python 的,因为它的编写方式不是你可以 import 它。

标签: audio ffmpeg python mp3


【解决方案1】:

ffmpeg-normalize 工具还允许您使用-a--acodec <acodec> 选项设置音频编码器。

例如,对一堆 WAV 文件进行 EBU R128 规范化,并使用 libmp3lame 将它们编码为 MP3:

ffmpeg-normalize --ebu --acodec libmp3lame --extra-options "-b:a 192k" *.wav

请注意,特别是对于 MP3,您可以使用 MP3Gain 更改音量,而无需重新编码文件。

【讨论】:

  • command = ['ffmpeg-normalize','--debug','--acodec','libmp3lame','--extra-options','-b:a 320k',' --format','mp3','-m','-l','-0.1',文件]
  • 谢谢!以上是转换为 mp3 的完整命令。 (--format 以及) 没有得到规范化文件的原因是在这种情况下文件包含接近 0db 的剪辑..
猜你喜欢
  • 2019-08-02
  • 2013-04-15
  • 1970-01-01
  • 2017-05-31
  • 2017-11-15
  • 2017-09-27
  • 1970-01-01
  • 2014-05-22
  • 1970-01-01
相关资源
最近更新 更多