Python mp3归一化器和长度拆分器

目录

介绍

开始

基本原则

结论和兴趣点


介绍

您是否曾经下载过mp3,但发现它不够响亮?我创建了一个实用程序,可以轻松提高(或降低)mp3的分贝水平。使用ffmpeg-volume命令可以调整mp3文件的音量。

我还包括一个拆分功能,可以将mp3拆分为所需的长度。

Python是我最喜欢的编码语言。几年前,我在一所社区大学学到了它。我喜欢用Python编码,因为它简单易用地获取脚本。我经常下载YouTube视频或mp3来收听(包括播客和教程)。我经常找到有帮助的剪辑,但音量太低,让我感到不舒服。因此,我决定创建此实用程序以使计算机上的声音更响亮,并包含一个下拉框来选择要增加的所需分贝数(分贝)。

开始

首先,安装ffmpeg(通过访问ffmpeg站点:Download FFmpeg)并将ffmpeg目录添加到路径环境变量中,如下所示:

单击第一个浏览按钮以选择mp3的源目录,然后单击第二个浏览按钮以选择目标,如下所示:

输入所选数据库范围后,单击规范化,文件将显示在目标目录中,并将字符串_n4添加到名称中(以区分它已被修改)。

按照相同的步骤拆分文件:只需选择要拆分的所需长度,选择mp3,然后单击拆分。生成的文件将从1开始按顺序编号。

此脚本使用两个ffmpeg命令:volumesegment。以下是每个命令的示例(通常如何使用它们)。

增加音量(在本例中为10为分贝):

ffmpeg -i input.mp3 filter:a volume= 10 output.mp3

按长度拆分(在以下示例中,300是秒):

ffmpeg -i input.mp3 -f segment -segment_time 300 -c copy output.mp3

下面是代码中的实现方式:

subprocess.call(['ffmpeg ', '-i', str(source_dir) + edit_dir_files[i], '-filter:a', 'volume=' + db_level + 'dB', str(dest_dir)+ edit_dir_files[i][:-4] + '_n4.mp3'])
subprocess.call(['ffmpeg ', '-i', str(source_dir) + edit_dir_files[i], '-f', 'segment', '-segment_time', str(seconds), '-c', 'copy', str(dest_dir) +  edit_dir_files[i][:-4] + '_%03d.mp3'])

若要使用该ffmpeg命令,需要调用该subprocess函数(它使用线程库“import threading”)。该subprocess函数旨在将可执行路径作为输入,并带有可选的命令行参数。若要将ffmpeg命令的参数输入到subprocess调用中,每个单独的参数都用引号括起来,并用逗号分隔。

对于拆分ffmpeg命令,从上面可以看出,dest文件的名称中包含%03d(其中edit_dir_files是源文件夹中的mp3列表,此行的[i]部分表示选定的mp3[:-4]部分表示对于文件名,从字符串中删除最后4个字符:

edit_dir_files[i][:-4] + '_%03d.mp3'

使用%03d会向所有块添加自动编号(如000001002等)。这确保了各部分的正确顺序。

如有必要,可以将其更改为%02d,以便只有两位小数,如000102等。

总而言之,希望这个脚本能帮助你提高mp3的音量。源代码包含在本文中,您可以自由修改脚本,并更改不同的变量,例如分贝级别(例如,它可以是1,而不是脚本中的5增量)。

基本原则

了解基本的Python脚本和ffmpeg命令行工具的基本用法会很有帮助。

结论和兴趣点

希望您已经学会了一种提高音量或拆分mp3文件长度的方法。此脚本还将向您介绍如何在脚本中使用ffmpeg。该脚本仅使用可用于编辑/操作音频和视频文件的许多ffmpeg命令中的两个ffmpeg命令(规范化和拆分)。您可以自由使用此脚本进行修改,一种可能性是使用基本的tkinter GUI作为您自己项目的基础。这不一定是ffmpeg GUI,但也许有人可以改进这个脚本。

https://www.codeproject.com/Tips/5383121/Python-mp3-Normalizer-and-Length-Splitter

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值