音频文件的元数据(如标题、艺术家、专辑等)是很多播放器归类的依据,为了更好的管理音频文件在 VLC 等播放器中的分组,可以根据需要对音频的元数据进行处理。
可以通过 ffmpeg 处理,这里还是用之前使用的 fluent-ffmpeg 库来处理。
import ffmpeg from 'fluent-ffmpeg';
const metadata = {
artist: '歌手名称',
album: '专辑名称',
};
ffmpeg()
.input(inputFile)
.outputOptions([
// 设置新元数据
...Object.entries(config.metadata)
.flatMap(([key, value]) => ['-metadata', `${key}=${value}`]),
// 保持原音频编码,避免重压缩
'-codec', 'copy'
])
.output(outputFile)
.on('end', async () => {
console.log('操作成功');
})
.on('error', err => {
console.log('操作失败');
})
.run();
以上根据需求可再作定制化和调整,如封装为函数,对目录遍历处理等等。
Node.js 在编写这种小工具和脚本的时候还是很方便的,依托于强大的 npm 生态,基本常用的能力都可得到满足。