本文将为大家讲解使用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