使用ffmpeg和audipo将音频文件分割为多个mp3(二)

本文为原创,转载请注明来自简书

  本文将为大家讲解使用ffmpeg和audipo将音频分割为多个mp3的另一种方法。ffmpeg的介绍请点此查看,请先在官网[1]下载解压,并添加环境变量,本文不赘述。

接上一篇文章[2]更新:

方法二:

第一步:

在cmd下,输入类似如下的命令:

ffmpeg -ss 00:00:10 -t 00:01:00 -i input.mp3 -c copy output.mp3

这里的参数解释如下:

-i 输入的音频
-c copy 用原来的编码并复制到新文件中
-ss 起始时间
-t 截取音频时间长度

这里的“-t”需要说明的是,后面跟的时间格式。可以是如下两种情况:

-t xx           // 单位:
-t xx:xx:xx  // ::

比如时长“1分钟”,就是-t 00:01:00,它等价于-t 60

ffmpeg -ss 00:00:10 -t 00:01:00 -i input.mp3 -c copy output.mp3

此条命令的意思是:input.mp3这个文件从10s开始,截取时长为1分钟的这一部分,并另存为output.mp3

顺便提一下,对于视频的切割也是差不多的方式,具体请使用参数--help进行查看。

但是这样一条命令只实现了掐头去尾,截取了一部分,如何才能像方法一[2]中的那样,一次可以截取多段音频并导出来呢?也不用太复杂,其实可以写个简单的批处理文件,下面为大家具体介绍。

第二步:

上一次的文章中介绍了audipo导出时间标记的两种格式,忘记的朋友请点此处阅读。

导出格式

因为audipo标记功能确实是非常的方便又直观,所以这次还是要用到它。

BTW,标记之后使用区间复读的功能,还有配合变速功能,用来学英语极其顺手,一般人我不告诉他。

但忍不住要再次强烈推荐一下该app,让你瞬间新技能get√。


1. 导出时间点

这一次,我们选择第二项Readable text format,导出的格式为txt。内容如下:

时间标记

2. 编辑时间点格式

再用正则稍微处理一下,这时使用到的工具是Sublime Text。有时会有复杂的情况可能会用到正则,但一般情况下只用到Sublime Text多行编辑的功能,就已经能让这一步的操作变得很快捷。

习惯用其他文本编辑器的朋友也可以自行尝试这一步的编辑。

将时间标记变成“起 - 止”点,下一行时间为上一行时间的止点,最后一行的止点为音频结束时间。

如以下的格式:

如果不使用此软件,也在可以在播放音频时手动记下需要分割的时间点。
但这里要说明的是,ffmpeg中表示时间的默认格式为hh:mm:ss,所以前面还要再加上“00:”。

其实可以一步到位,这里只是为了说明,作了多步的操作,实际使用时请注意参数格式。

3. 批处理

最终完成如下:


这里我们删除第一行,并另存为“.bat”格式。与这里的“input.mp3”文件放在同一目录下并双击运行,得到分割后的音频文件。

至此完成音频文件分割成多个mp3的操作。

与之前所讲的不同的是,这里没有用到“-t”的参数。这是为什么呢?

因为“-t”的表示的作用其实是“duration”,也就是时长。显然后面的时间点所指的应该是“起 - 止”点中的“”点。

所以这里换成了参数“-to”,也就是“stop time”。

需要注意的地方是:
如果将“-ss”放在“-i”后面则“-to”的作用就没了,跟“-t”一样的效果了,变成了截取多长时间。一定要注意“-ss”的位置。


PS: 有朋友问到分割后的音频可能总有听着比较生硬的地方,ffmpeg能否实现淡入淡出的效果?

答案当然是肯定的了! 举例如下:

从0s开始淡入3s

ffmpeg -i input.mp3 -af "afade=t=in:ss=0:d=3" out.mp3

从50秒开始淡出5s

ffmpeg -i input.mp3 -af "afade=t=out:st=50:d=5" out.mp3

参数-af为音频滤镜,afade为音频淡入淡出。相应的如果是对视频的操作,这里的参数afade处可以使用fade

谢谢您的阅读, 本文为原创,转载请注明出处简书 https://www.jianshu.com/p/7647a55daa18


  1. ffmpeg官网

  2. 请参见此文 使用ffmpeg和audipo将音频文件分割为多个mp3(一)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。