article_image

没有封面的视频,好似剥掉封皮的书籍,抑或遗失了封套的CD,缺乏美感不说,仅凭系统或播放器随意选取的一帧作为缩略图,也不容易辨别彼此。或出于美学考虑,或仅仅想收藏包含封面的完整视频,或纯粹为了一览其主要主题和内容……为视频添加封面,总有各种理由。

Alt text
有封面的MV视频对比无封面的MV视频

本文介绍一套基于 FFmpeg 的自动化封面添加方案,可以自由选择所需的封面素材。目前提供 Shortcuts 版和 LaunchBar 版动作下载,代码为 Shell 脚本,可以移植到大多数自动化工具中。

几种方案的对比

视频封面这事儿,其实也有“看上去就行”和“真的有封面”两种路径,前者依托一些特殊的播放器或者视频管理工具,比如 Plex,可以从网上自动下载视频元数据——其中当然包括封面——并给视频贴上封面,用户所见就不是赤裸裸的某一帧。不过,抛开对特殊软件的依赖不谈,软件自动抓取的封面也严重依赖特定数据来源,不一定符合每个人的喜好,例如我喜好看老电影,最好其封面也是当年的海报,而一般的播放器,抓到的海报往往是后世制作的,往往和电影本身脱节;此外,也不见得所有视频都能匹配上封面,Plex抓到的数据往往限于电影,遇到MV(Music Video)就就只能耸耸肩,至于那些个人创作者制作的视频,就更没有保障。

“真的有封面”,则是把封面图片嵌入视频文件中,可以自由选择封面文件,且在主流播放器列表和文件浏览器中均可正常显示,比如 Finder 和 iOS Files 都能直接显示视频封面,非常醒目。1对比之下,左侧没有封面的视频观感就很差,而且有几个运气不好、踩中了全黑或全白的一帧,根本看不出是什么视频——恐怕还会引发某些不合时宜的联想。

Alt text
添加封面后的视频

天下没有免费的午餐,自制封面,难度当然比自动抓取要高。正常的做法,往往是求助于 iMovie 等剪辑工具,大动干戈,让人毫无兴致2;本文选择使用命令行工具,自制自动化工具解决问题,且配有现成的 Shortcuts 版与 LaunchBar 版动作下载。

万能工具 FFmpeg

可以添加封面的工具不少,我选用 FFmpeg,它没有图形界面,可以很方便地制成自动化动作。当然,当然,有一千个号称更简单的图形化工具,不过大概率都是抄 FFmpeg 的,我就懒得确认这些工具是否被钉在抄袭耻辱柱上了。

插入视频的原理是利用特殊帧位,其可供存放封面文件,与直接为视频文件设置缩略图不同,通过修改帧插入的封面非常清晰,而缩略图不能近观,否则就全是马赛克。惟需注意,使用的图片应当是其真实格式,而很多 macOS 用户误以为改个后缀名就算转换图片格式,结果就是报错——换言之,准备素材时,不要自作主张改图片后缀名。用 FFmpeg 为视频添加封面的命名如下,其中 INPUT.mp4 需更换为视频文件所在的路径,INPUT.jpg 则为封面的路径,不一定非得是 jpg,但据我测试,貌似 web 格式不行。OUTPUT.mp4 则为成品的位置。

ffmpeg -i "INPUT.mp4" -i "INPUT.jpg" -map 0 -map 1 -c copy -disposition:v:1 attached_pic "OUTPUT.mp4"

FFmpeg 强在快速,几个GB的视频,也只是两三秒3,并且没有导入导出环节,不会破坏视频画质——至少没有肉眼可见的损失。此前我还写过用 FFmpeg 快速转换视频格式的文章《音频视频格式批量转换终极工具:FFmpeg(附自动化)》,而包括本文在内,不过是 FFmpeg 的粗浅应用。

将 FFmpeg 命令打包成自动化动作

倘若每次都要手动填写各项参数,恐怕我也要放下面子,从 FFmpeg 的盗版耻辱墙上偷偷取下一个图形化工具了。好在命令行可塑性极好,不难打包成自动化动作,本节以 Shortcuts 为例。

这个 Shortcuts 的逻辑是:

  1. 选中需要处理的视频文件和封面图片,在右键上下文菜单中运行动作“video add Cover”;
  2. Shortcuts 根据文件拓展名,自动识别谁是视频、谁是图片;
  3. Shortcuts 将上一步的识别结果填入 FFmpeg 命令,并运行之,成功后会在当前文件夹中生成成品文件。
Alt text
Shortcuts 步骤

Shortcuts 可以直接调用第三方命令行工具,自然也包括 FFmpeg,通常您可以直接直接运行。而在其他自动化工具对应的动作中,则可能需要在脚本开头加一句 PATH=$PATH:/usr/local/bin/。在自行移植脚本时,务必注意第三方命令行工具的兼容性。

小结

我在业余时间喜欢看老电影,其海报别有风味;也喜欢追一些小众歌手,他们常常上传一些MV,封面一般都很养眼。直接保存视频后,往往会丢失封面,只能面对着或是黑乎乎(运气算好的)、或是停留在诡异一帧(运气差的)视频文件,很煞风景。而电影海报或制作优秀的视频封面,本身就值得收藏,旋即想到,何不将两者结合?遂有本文。

至于如何获得封面素材,天哪,连下载视频这一难关都过了,就不要问这种问题了吧。


  1. 但少部分播放器可能无法识别,例如 iOS 上的 ZOE(截至2023年6月28日)
  2. 并且剪辑类软件需要频繁导入导出,轻轻松松就让电脑存储空间告急。另外,网上还流传着一种直接用封面图充当视频图标(icon)的歪门邪道,这一方案至少有两个致命问题,第一,封面图片一旦粘进图标框,尺寸就会大幅压缩,图片中的物体会模糊难以辨认——这恰是“图标”之本意,可见其根本不适合展示视频封面;第二,额外的自定义图标会给系统增加负担,如果视频存储于外置磁盘中,很可能因读取速等原因而无法显示所谓的封面。
  3. 在M1处理器的最低配置 MacBook Air 上测试。

author_avatar

Lawyer, macOS/iOS Automation Amateur