无论是在文档中还是在网页上,当有手机截屏作为插图出现时,对其套壳往往可以使文章排版更加美观,不至于显得突兀。其实,视频也可以套壳。
视频套壳这个需求,非常适合让自动化工具来完成,比如这样:
我制作了一对 Automator 工作流以及一对 LaunchBar 动作,可以一键生成套壳视频,只需把视频提交给相应的工作流或者 LaunchBar,等待几秒钟,就可以得到完美的套壳视频。安装和使用也不复杂:
- 通过 Homebrew 安装视频编辑工具 FFmpeg,即在终端中运行以下命令:
brew install ffmpeg
- 下载安装适合你的版本:
- Automator 工作流:
- iPhone 8 版(同时需要下载此 iPhone 8 壳图 放在桌面上)
- iPhone X 版(同时需要下载此 iPhone X 壳图 放在桌面上)
- LaunchBar 动作:
动作思路
这个动作制作思路非常简单。
举个例子,我们偶尔会在一些视频网站上看到这样一些无良视频节目:
也许是出于害怕在机器审核时被发现涉嫌侵权,这些视频会把原本的视频节目放置在一张背景图片上。而这正是本文介绍的视频套壳方法的灵感来源。
实现方法
我曾在 Power+ 中分享了一篇有关 FFmpeg 的使用技巧《利用 FFmpeg 裁剪视频到合适尺寸》,是介绍的是使用 FFmpeg 对视频进行裁剪以及把视频转制成 GIF 动图。同样,利用它也可以轻松完成给视频加壳图的动作。
首先介绍为 iPhone 8 套壳的动作。
我选择了 Facebook Design 提供的 iPhone 8 壳图作为这个动作的底图。
下载完成之后,我选用了其中 Device with Shadow 文件夹中的 Apple iPhone 8 Silver.png,并将其背景填充为白色,原因在于,这张图片背景本身为透明,图片背景中透明的部分会在通过 FFmpeg 往上粘贴视频时作为黑色处理。而我们需要的往往是套壳四周背景为白色的视频。
再把这张壳图和录屏视频放在同一个路径中。如上文所述安装完成 FFmpeg 之后,就可以在终端中直接通过以下这一条命令将 iPhone 录屏视频粘贴在选中的壳图上了:
ffmpeg -loop 1 -i Apple\ iPhone\ 8\ Silver.png -i input.mp4 -filter_complex "overlay=100:280:shortest=1" -c:a copy output.mp4
其中 100:280
为视频左上角在图片中的坐标位置:
而为 iPhone X 的录屏视频套壳,则要比这个方法稍微复杂一点。因为 iPhone X 的屏幕并不是规则的矩形,四角为圆角,且上方有刘海,把录屏视频直接贴在壳图上则会产生如下图中左边的效果:
想要修正得到右边的效果,我想到的一个方法是,把视频粘贴在壳图上,与为 iPhone 8 套壳方法相同。得到如上图所示的视频后,再把壳图贴在这个新生成的视频上。由于壳图中屏幕部分为透明,则会相当于一层蒙板,把视频中展示在屏幕中的内容露出来,而把四边的圆角遮住。具体命令如下:
ffmpeg -loop 1 -i iphonex_mockup.png -i input.mp4 -filter_complex "overlay=110:142:shortest=1" -c:a copy -y output.mp4
ffmpeg -i output.mp4 -framerate 1 -i iphonex_mockup.png -filter_complex overlay -c:a copy -y output1.mp4
制作 Automator 工作流
把以上的动作制作成 Automator 的工作流,即可如前面视频中所示,将文件直接拖放至此工作流应用的图标上,实现视频的快速套壳。
打开 Automator,按 ⌘Command-N
建立新工作流,在弹出的界面选择 应用程序
:
选取后从在左侧的资源库中通过搜索找到运行 Shell 脚本,双击它加入到右边的流程中。在 Shell 下拉菜单中选择 /bin/bash
,并在下面的文本框中写入如下代码:
OLDIFS="$IFS"
IFS=$'\n'
while read f; do
PATH=$PATH:/usr/local/bin/;
ffmpeg -loop 1 -i ~/Desktop/iPhone8.png -i $f -filter_complex "overlay=100:280:shortest=1" -c:a copy -y "${f%.*}_mockup.mp4"
done
如图所示:
其中 ~/Desktop/iPhone8.png
是 iPhone 8 的壳图的存放路径。如果你的这张图并不是放在桌面上,需要改成相应的路径。
完成后保存,这个动作就完成了。
同理,对于 iPhone X 的视频套壳动作,其代码只需改为:
OLDIFS="$IFS"
IFS=$'\n'
while read f; do
PATH=$PATH:/usr/local/bin/;
ffmpeg -loop 1 -i ~/Desktop/iPhoneX.png -i $f -filter_complex "overlay=110:142:shortest=1" -c:a copy -y temp.mp4;
ffmpeg -i temp.mp4 -framerate 1 -i ~/Desktop/iPhoneX.png -filter_complex overlay -c:a copy -y "${f%.*}_mockup.mp4";
rm temp.mp4
done
相应地,其中两处 ~/Desktop/iPhoneX.png
也要改成 iPhone X 壳图的对应路径。
制作 LaunchBar 动作
再把以上的命令制作成 Python 脚本分别打包为 LaunchBar 动作,就可以直接通过 LaunchBar 来实现这个功能了。
至于这个 LaunchBar 动作具体的制作方法,与 Power+ 之前的很多文章中介绍的类似,详细请参阅:
- 通知常用格式,用 LaunchBar 快速无损压缩图片 (@Minja)
- Mac 带壳截图 (@Minja)
- 利用 FFmpeg 裁剪视频到合适尺寸 (@契丹神童)
当然也可以在下载下来的动作中查看 Python 脚本的内容。
得到套壳的视频后,如果想要把它转换成 GIF 动图,则可以利用上面所提到的 FFmpeg 的技巧文章中分享的把视频转换为动图的动作,完成这个功能。
想更系统地了解 LaunchBar 的使用方法,欢迎订阅少数派教程《LaunchBar,全方位优化你的 macOS 使用习惯》。
> 下载 少数派 iOS 客户端、关注 少数派公众号,让智能设备更好用 ⚡️