工作忙时,我囤下不少演讲视频,几乎撑满了电脑空间。1演讲毕竟不比网课,画面上主要就是些肢体动作表演,不看也罢,基本可以当成播客听;于是,工作告一段落,我把这些利维坦级别的视频稍作处理,导成一段一段音频,轻于存储,敏于聆听。
即便不是影像专业工作者,偶尔也会像我这样,遇上需要把视频转音频的时候:看书时播放的白噪音也不用看画面,锁上手机听声音就好2;新发布的单曲可能还没有上架流媒体音乐,倒是先在 YouTube 上发布了 MV,吊足了胃口……总之,在诸多场合下,都可能要把视频转换成音频。
本文将介绍一套将视频和无损音频批量转换为 MP3 的方法,方便在各种设备上离线播放音频的同时,也大大节省体积。下面还附有 Automator 和 LaunchBar 版动作下载,当然,其中代码完全可以移植到其他常见自动化工具中。
安装和使用动作
本文动作基于一款开源音视频处理工具 FFmpeg 打造。你可能没有听说过 FFmpeg,但肯定接触过使用了 FFmpeg 的产品,包括 MPlayer、VLC、Pot Player,以及 Google 的 YouTube。简言之,基本上你能想到的和音视频有关的功能——从格式转换、压缩尺寸、拼接视频到下载 m3u8 文件——基本都可以用 FFmpeg 实现。
使用本文动作首先需要安装 FFmpeg,为了方便日后统一管理,推荐用 HomeBrew 安装。
brew install ffmpeg
之后,将本文动作放置于 ~/Library/Services/
文件夹中,稍等即可在右键菜单(在音视频文件上点击右键)中看到对应动作。视频文件的右键菜单中将出现“Video2MP3”,无损音频文件的菜单中则是“Flac2MP3”,运行后可在当前文件夹中获得对应的 MP3 版本。
本文所提供的动作均支持批量处理文件。我们很可能囤了好几期演讲或脱口秀,或者收集了一批白噪音,又或者下载了一份播放清单中的所有视频……借用自动化动作,处理数量再多的视频也没有太大区别,只需要按下按钮,接下来喝点东西等电脑运行就好了。作为参照,我在 2015 的旧笔记本电脑上转换一首流行歌需要 3 秒钟,对于多数读者来说性能应该不成问题。实在不幸遇上电脑卡顿,可以在点击顶部菜单栏的齿轮按钮,结束当前 Automator 动作。3
了解 FFmpeg 的格式转换命令
FFmpeg 命令多矣,弱水三千,只取一瓢饮,现在需要的只是格式转换相关命令。这里介绍 FFmpeg 并非为了鼓励诸位使用命令行,一般来说也没有必要;只是,多一些了解,就可以自行调整参数,让导出的音频质量更符合个人需求。这就像多了解一些工程知识,并不是真的为了从零开始造一辆汽车,更多时候是方便日常维护和修理。
以视频转 MP3 的命令为例,它大概长这样:
ffmpeg -i "视频文件的路径" -b:a 128k "MP3 文件的路径"
其中 -i
表示输入文件(可能取自 input 的首字母),-b:a
用于控制生成音频的质量(流量)。输出文件的格式会根据文件名自动调整,我在动作中直接写明输出文件为 某某.mp3
,故不再需要手动指定格式。
通常而言,唯一需要调整就是 -b:a
后面的参数,数值越大质量越好,相应的文件体积往往也越大。128k
是一个比较均衡的参数,适合 TAD 演讲、脱口秀、白噪音等“听个响”的音频,这类资源对于音质的要求毕竟不可与音乐同日而语,听者兴许还愿意稍微牺牲一下质量来换取更轻巧的文件体积——它们往往动辄几十分钟几个小时,非常占空间。
另外,FFmpeg 的质量(流量)参数单位除了 k
即 kbits/sec 还有 bits/sec(这种情况的话,在数字后面不带任何单位),可能因 FFmpeg 的版本而有别。通过 HomeBrew 安装的 FFmpeg 一般都是 k
,无需修改就能直接使用本文动作。
了解命令结构之后,就可以合上命令行界面,打开自动化工具,将 FFmpeg 命令打包成更易用的自动化动作。
用 Automator 分别处理音频和视频
了解 FFmpeg 的格式转换命令后,原理上完全可以搭配任何支持 Shell 脚本的自动化工具,但我习惯使用 Automator,几乎只有它可以自动区分音频和视频。4另外,FFmpeg 免费开源,Automator 系统原生,这一组合可以不花一分钱。
和一般的自动化工具不同,Automator 可以区分不同文件类型,只在右键菜单中呈现有关动作,不会混杂不相关的动作。选中音频文件时不会出现视频动作,处理视频时同样不会被音频动作打搅。
具体设置在 Automator 编辑界面顶部的“Workflow receives current … in …”部分,除了圈定当前工作所接受的文件类型,还可以划定动作需要生效的应用范围,就音频处理而言,一般设置“audio files”和“Finder”,而视频处理则选择“movie files”和“Finder”。如果你还需要在 DEVONthink 等第三方文件管理器中处理音视频,也可以将应用范围扩大到“any application”。
其他专用与某一文件类型的自动化动作,也不妨做成 Automator 版本。不少自动化玩家讨论过“给快捷键解压”的话题(本站也有过),指出了自动化动作太多、快捷键“不够用”的现象,其实右键菜单中的 Automator 动作也是出路之一,可以分担快捷键的一部分压力。
较之 FFmpeg 的一身功夫,本文所涉之音视频转换,只是浅尝而已。正如图像处理领域的 imagemagick,或者文本编辑中的 sed 和 awk,FFmpeg 也是十八般武艺俱全。FFmpeg 的开发人员在 采访中 谈到,“FF”是“Fast Forward”(快速推进)之意,至于到底是取自视频播放器的一个常见功能,还是自嘲开发速度太慢,就不得而知。要之,FFmpeg 几乎是目前最可靠的音视频处理工具——无论比较对象是否开源——现成工具力有未逮之事,大可放心交给 FFmpeg“抄底”。