B站的音乐资源非常多,尤其是一些小众或同人编曲的作品。
虽说B站的视频压码率是臭名昭著的事情了,但其音轨的质量基本保持一致(不会特别糊,更有甚支持Hi-Res音频),其丰富的音乐内容,也不乏有很多将B站作为音乐源或者播放器的想法。
B站的视频画面与音轨是分开存储的,这样可以提供多个清晰度。
通过诸如Evolve的油猴脚本,可以取得mp4格式的不同清晰度画面影像文件,以及m4a格式的音轨文件,使用ffmpeg可以将两者进一步合并。
此时的m4a格式虽然可听,但不可添加任何元数据标签像是标题、封面、作者专辑等,这不仅不便于后续的音乐库整理,一部分播放器(比如网易云)会报错 or 拒绝播放没有元数据的m4a音乐文件。
m4a文件本质是只有音轨的mp4容器,其实际存储的是aac latm音频。
这是mp4容器中的atom原子组件导致的,部分mp4原子元数据的存在使之不可以像标准的音乐文件添加标签,判断即音轨而非音乐。
这个问题的解决办法也很简单,可以用ffmpeg将音频流拷贝出来存储为没有任何元数据的纯音频文件,之后便可以使用mp3tag等软件编辑。(这个方法来自mp3tag的一则论坛帖子)
标准的ffmpeg命令为:
ffmpeg -i input.m4a -c copy output.m4a
来自mp3tag论坛 < https://community.mp3tag.de/t/cant-open-erroneous-m4a-file-for-writing/59349/6>
如果要批量转换多个m4a音轨的话,可以使用FFmpeg Batch AV Converter这一开源的可视化软件执行。基于相同的原理,在GUI界面左下角的参数框中仅填写 -c copy ,之后在右侧执行编码操作就可以输出文件了,默认存储在目录下生成的 .\FFBatch 文件夹内。
再将转换输出的m4a音频文件添加至mp3tag或其他标注音乐元数据的工具,便可以像标准的mp3文件一样编辑专辑内容了。相较于标准的mp3或是flac文件格式,m4a在体积与音质的平衡还是很有优势的,既节省了存储空间,音质对于网络视频源取得的音频也很够用了。
目前没有特别好的自动搜刮专辑信息的自动化方案,部分命名规范的视频尚可通过mp3tag的批量转换“文件名 - 标签”规则录入,我个人比较享受手动编辑填写数据的过程。