由于种种关系,我需要对一批mp3文件进行分割(切割)。每个音频文件大约1小时,需要切成每10分钟1个文件,文件名要带序号。手工分割工作量太大,不符合我等“懒人”的做法。于是找到了大名的”格式工厂“。
由于每个文件时长不是严格一样,短的50多分钟,长的60多分钟,结合试用格式工厂的结果是它不能探测音频文件的时长(可能是我没找到探测方法),所以我改为固定切成6个文件,前5个文件每个10分钟,第6个包了剩余的部分。第6个文件应该是第3000秒到3600秒的,于是变成3000秒到4000秒,这样剩余的部分应该都包括在内了。
由于分成多段(多个文件)后,两段的切换,在有些播放器上(如带淡进淡出的效果)会听不清楚,所以我增加了1秒钟的重叠。于是第1个文件是0到601秒,第2个文件是600到1201秒,依此类推。
由于每个文件切成6个,我将这6个文件在一个子文件夹,便于管理。
经过调试,得到了这个Dos Shell(批处理)脚本:
@Echo Off
set hide=/hide
set hide=
cd C:\Program Files\FormatFactory
for %%F in (*.mp3) do (
C:FormatFactory "-> MP3" "High quality" "%%~fF" "%%~dpFSplit\%%~nF\1%%~nxF" %hide% /st=0 /et=601
C:FormatFactory "-> MP3" "High quality" "%%~fF" "%%~dpFSplit\%%~nF\2%%~nxF" %hide% /st=600 /et=1201
C:FormatFactory "-> MP3" "High quality" "%%~fF" "%%~dpFSplit\%%~nF\3%%~nxF" %hide% /st=1200 /et=1801
C:FormatFactory "-> MP3" "High quality" "%%~fF" "%%~dpFSplit\%%~nF\4%%~nxF" %hide% /st=1800 /et=2401
C:FormatFactory "-> MP3" "High quality" "%%~fF" "%%~dpFSplit\%%~nF\5%%~nxF" %hide% /st=2400 /et=3001
C:FormatFactory "-> MP3" "High quality" "%%~fF" "%%~dpFSplit\%%~nF\6%%~nxF" %hide% /st=3000 /et=4001
)
说明一下,
“*.mp3"代表我只切割当前文件夹下的mp3文件,
“-> MP3"指定转化成mp3文件,
"High quality“高质量,另外2个选项是"Medium quality"和"Low quality"。实际测试表明,另外2个,除了音质比较差之外,文件大小反而更大,这可能是原来的mp3文件已经经过了良好的压制,所以保持高质量可能就是不编码,反而质量好,文件小,我猜的。
"%%~fF"就是指要分割的文件
"%%~dpFSplit\%%~nF\1%%~nxF",当前文件夹下统一建一个Split的文件夹,里面按按照每个将分割的文件建文件夹,里面存放是分割后的文件。例如,要处理的文件是 abc.mp3 则 分割后的第1个文件是 Split\abc\1abc.mp3
有了这个脚本,只要在命令行窗口下,要处理的mp3文件的当前目录,启动这个脚本,然后看它全自动进行分割,最终收获到一堆分割的文件。懒人就是喜欢这样的。一劳永逸。
要使用这个脚本,你得安装【格式工厂】这个软件,在"cd "那一行设置这个软件安装后的路径,如果不是安装在C盘,则要改FormatFactory左边的盘符。
如果你要处理的输入文件类型,输出文件类型,输出质量,输出文件夹,输出文件名,分割的时间条件,请自行根据我上面的说明作修改。这个修改相比制作出这个脚本,是非常简单。
祝你早日成为懒人。喜欢懒人文化。