本教程适合初次接触视频压制的老师
本着短平快、即开即用的原则,请没时间深入研究,只想快速压制视频的老师,直接翻到第二节“快速压制之Step 1-2-3”。
软件界面一眼看去显得很复杂,但是理解了基础概念后,突然就会觉得很直观了。
目录
前言
一、HandBrake 简介
二、快速压制 之 Step 1-2-3
三、进阶使用 之 媒体参数解析
四、进阶使用 之 调参与建议
五、进阶使用 之 HandBrake Tricks
最后更新时间:2020年4月11日
前言
疫情原因,在线教育迎来了一轮大爆发,很多老师在制作录播视频的过程中,一定遇到了视频转码压制的问题。简单来说,我们希望在保持清晰度的前提下,尽可能缩小录播文件的体积。
一、HandBrake 简介
这是一款全桌面平台的开源免费软件,在 Windows、macOS、Linux 下均有对应的应用程序界面。
HandBrake 基于鼎鼎大名的 FFmpeg 多媒体框架。FFmpeg 本身是命令行程序,可以这么理解:HandBrake 是为方便调用 FFmpeg 而开发的用户友好界面。
注意:HandBrake 仅能用于视频转码压制,不提供视频剪辑和特效等功能!
二、快速压制 之 Step 1-2-3
适合首次接触视频压制,并且时间紧迫、任务繁重的你
Step 1 – 导入源视频
软件启动后,或手动点击 打开源 即可导入视频,可以选择:
- 导入单个视频
- 或指定文件夹,自动批量扫描导入多个视频
Step 2 – 选择预设,设定输出文件保存位置和文件名
- 单个视频:
- 点击 预设;
- 点击 very fast 720p30;
- 确保输出格式为 MP4;
- 点击 浏览 设定保存位置。
- 批量视频:
- 参照上述设置。
- 另外,可在 标题 中逐个选择、编辑并 添加到队列中。
- 或在设置首个视频后,点击 添加到队列中 下拉菜单中的 全部添加,将自动应用第一个视频的参数到所有视频并全部添加到队列。
Step 3 – 开始压制!
- 单个视频:
- 点击 开始编码。
- 批量视频:
- 点击 启动队列。
三、进阶使用 之 媒体参数解析
适合想更多了解辛苦制作出来的录播音视频文件的老师
1. 分辨率(resolution)
- 以像素点数记录的视频的尺寸
- 国际通用标准:
- 4K – UHD,宽3840 × 长2160,画面比例 16:9。
- 1080P – 全高清,FHD,宽1920 × 长1080,画面比例 16:9。
- 720P – 高清,HD,宽1280 × 长720,画面比例 4:3。
- 480P – 标清,SD,宽720 × 长480,画面比例 4:3。
常规教学录播:首选 720P;
文件体积受较大限制:480P;
追求高清晰度:1080P。
2. 帧率(framerate)
- 每秒刷新在屏幕上的画面个数(,frame per second)
- 需要显示器的硬件支持,绝大多数显示器(包括电视、笔记本、手机、平板)的刷新率为 60 Hz,意味着不能显示出大于 60 FPS 的效果。
- 30 FPS – 中规中矩;
- 60 FPS – 丝般顺滑;
- 120 FPS – 极致享受;
- 144 FPS 及以上 – 你是硬核玩家,请不要在本教程上浪费时间。
常规教学录播直播:推荐 29.97 / 30 FPS。
3. 码率 / 比特率 (bitrate)
- 即单位时间内媒体文件包含的数据量
- 1 Gbps = 1000 Mbps,1 Mbps = 1000 kbps
- 同分辨率,码率越高越清晰;超过一定范围后,清晰度不再明显提高
- 文件体积 = 总码率或总比特率 × 时长
推荐参数见 第四节 “进阶使用 之 调参与建议”。
4. 媒体文件封装格式(format)
- 即数据的集中打包方式
- 比喻:《西游记》便携装 / 精装 / 珍藏全彩装
- 国际通用格式:
- MP4
- MKV
- WebM
常规教学录播:推荐 MP4(通用性极强)。
5. 媒体编解码格式(codec)
- 即音视频数据的描述方式;主要用于压缩数据。
- 比喻:《西游记》便携原文版 / 便携节选版。
- 视频编解码器:x264 / x265 / Intel Quicksync / AMD VCE / NVENC。
- x264 / x265 为运行在CPU上的编码器。
- Intel Quicksync / AMD VCE / NVENC 为显卡硬件加速编解码器,可用性取决于你的显卡品牌以及直播软件的支持程度。
常规教学录播视频编码:推荐 x264;
常规教学直播视频编码:推荐 x264 / x265 ± 显卡硬件加速;
常规通用音频编码:推荐 AAC。
四、进阶使用 之 调参与建议
1. 谈谈“清晰度”
其实并没有一个固定的指标来说明清晰度如何。对于不同的视频,清晰与否的感觉可以完全不同。以静态文字为主的PPT类录播视频,即便画面字体模糊一些,甚至出现了一些马赛克,只要能较为轻松地识别出文字,多数观众也不会觉得有何不妥。以图画或者动画为主的录播视频,显然观众对于其清晰度的宽容度要低很多。总的来说,只要观众能够轻松辨认出录播视频中想要传达的信息细节,那么可以认为其就是“清晰”的。
这里可能会有一个误区:企图用 HandBrake 把一个低清视频转化为高清视频。不是简单地把480P的视频转化成1080P就能提高清晰度的,因为源的信息量不足,HandBrake 无法为你补足缺失的信息量,就像你无法把一张普通照片无限放大查看细节一样。所以请老师们在来录制的时候,务必采用条件允许的最高画质和音质。以iPhone拍摄视频为例,目前 iPhone 8 及以后的机型,都可以录制 4K 60 FPS / x265 的视频,虽然 1 分钟视频体积可达约 400M ,但通过HandBrake压制后可以达到非常理想的体积和清晰度。
2. 谈谈“流畅度”
流畅度也是跟主观感觉密切相关的。同样地,不同类型的内容,对于流畅度的要求是不同的。大多数情况下,30 FPS 甚至 24 FPS 足以满足要求。对于画面顺滑程度有追求的,则必须在录制源视频的时候,就要以 60 FPS 或更高来采集。
注意:技术上,想把 30 FPS 的视频转化为 真 · 60 FPS 完全可行,但 HandBrake 做不到,这点在前文已经提醒过:HandBrake 不能用于视频剪辑。这个需求可以通过神经网络计算插帧来实现。
3. 谈谈“兼容性”
现在最为通用的视频编码和封装格式分别为 x264 和 mp4,教学视频的录制非常强调兼容性,考虑到观众将在五花八门的设备上观看,最好是选择一个能在绝大多数平台直接播放的格式。
HandBrake 里面提供了 x264 编解码器,可能老师们会问能不能开启显卡加速,答案是可以,不过显卡加速的调参会有所不同。另外一个疑问就是显卡加速后,比如 x264 + NVENC 最终出来的编码格式是什么,答案是 x264。 NVENC的作用仅仅是加速解码过程,最终的编码打包还是依赖于CPU。
4. 压制参数与建议
对不起,并没有一套适用于所有视频的固定方案,同样的参数用来压制不同的源视频,出来的效果可以有很大差异,请参考上述第 1 点关于“清晰度”的讨论。
在此提供通过简单实测而来的参数作为参考。大多数情况下,能够在清晰度和文件体积之间取得较好的平衡。
如不满意,请以此作为调参的起点,根据实际压制效果做相关调整:
4.1. 画面以静态文字 + 静态图片为主:
- 720P / 500 kbps / 30 FPS / x264 / AAC / .mp4 = 1 小时视频大小约 225M。
- 1080P / 700 kbps / 30 FPS / x264 / AAC / .mp4 = 1 小时视频大小约 315M。
注意:实际上在视频的不同时间点,码率一直在波动,所以上述的码率为平均值。压制后视频的实际平均码率在其 ±100 kbps 范围内,基本上各方面都可以接受。
实测对于压制静态文字为主的教学录播视频,目标平均码率低至 150 kbps 也可以达到不错的清晰度,此时1小时视频大小在 67.5M 左右。
4.2. 含有关键动画或画面变化复杂的:
- 720P / 1 Mbps / 30 FPS / x264 / AAC = 1小时视频大小在 450M 左右。
- 1080P / 2 Mbps / 30 FPS / x264 / AAC = 1小时视频大小在 900M 左右。
基本上相当于从互联网上下载的盗版电影的清晰度和流畅度了,实际上很少有这么大信息量的时候,毕竟教学录播视频不太可能具有如此丰富的画面。
4.3. 在HandBrake中的具体设置方法
其实在软件界面里面已经标识地比较清楚了。
- 在 摘要 > 格式 里可以设置 MP4 格式。
- 在 视频 标签下,设置 视频编解码器、帧率。
- 码率的设置,HandBrake官方推荐采用设定 固定质量,如果源视频清晰度很高,可以将 RF 的值调节至 24 或更高来作为尝试的起点。注意:即便所有参数都相同,用 固定质量 方式压制的不同视频,在平均码率上可以有很大差距,这是由算法决定的,画面越复杂的视频,平均码率越高。
- 码率的设置,还可以采用 平均码率(kbps) 的方式,如果不是很赶时间,建议勾选 二次编码 来让 HandBrake 更合理地压制视频(自动根据首轮压制的经验来优化最终结果)。
- 优化视频 里的选项,如果搞不明白(比如本文作者),采用默认值即可,这是留给对 FFmpeg 有深入理解的高手用的。
五、进阶使用 之 HandBrake Tricks
1. 批量压制时自动命名输出文件
需要在 首选项 中的 输出文件 里设置。
- 勾选 自动命名输出文件 即可。其中 默认路径 和 文件格式 均可以按照提示设置模板,以后在批量添加队列的时候,所有输出文件将按照模板,自动生成保存路径和文件名。
- 下方的 MP4文件扩展名 建议选为 始终使用MP4。
- 其他选项按需设置。
2. 快速预览压制效果
预览功能十分便捷,因为我们迫不及待想要知道最终的压制效果。对于一个长达 1 小时的视频,压制时间很有可能超过1个小时(尤其是电脑性能很一般的情况下)。
HandBrake 贴心地提供了预览功能,可以自动将视频均分为 10 个时间点,并且可以在各个时间点算起渲染一定时长的画面来预览效果。
点击 预览 即可打开预览窗口,此时在窗口标题栏将提示视频与实际大小的百分比。
- 滑动条用于选择不同的时间点;
- 时长 可以选择不同时长的渲染时间;
- 点击 实时预览 即可当下设定的参数来渲染特定 时长 的预览画面;
- 如果渲染完成后,没有自动打开播放器,可以勾选 使用系统默认视频播放器;如果没有效果,直接到输出文件夹里找到以 “_preview.mp4” 结尾的文件手动双击播放即可。
- 预览的压制效果不满意,调整压制参数后,再次点击 实时预览,将自动按照新设定的参数渲染预览画面。
3. 设置压制任务完成后自动关机/休眠
这个比较简单直接:
- 在主界面的右下角 当完成时,
- 或者 队列 窗口的 选项 里设置。
4. 多实例运行 HandBrake 加速批量导入/压制
小部分时候,我们想大批量压制视频,比如上百个视频,此时导入视频时将耗时很久,因为 HandBrake 会扫描每一个视频并为之生成基础预览。其实,此时 CPU 和 IO 不一定满载。在高性能主机上,相当于浪费了部分性能以及白白耗费等待时间。这个时候,可以启动多个 HandBrake 实例,将视频均分几份后同时导入来加速这个导入的过程。
这里涉及到 “实例” 的概念。可以这么理解:下载的软件包,相当于一个螺丝刀模子,每次启动软件,实际上是利用这个模子做出了一把螺丝刀,然后才可以用螺丝刀干活。多实例运行等于说用同一个模子制作两把一样的螺丝刀同时干活。
注意:根据性能的不同,不是所有电脑都可以玩得转多实例同时跑任务的!
多实例的具体思路是这样的:
- 运行多个 HandBrake 同时导入视频;
- 各自设定好压制参数并加入队列;
- 在 队列 > 选项 > 导出队列 中,导出包含各种参数信息的 json 配置文件;
- 在任意一个 HandBrake 实例里导入其余实例的队列 json 文件,此时全部视频都将出现在该实例的队列里,然后 启动队列 即可开始压制。
- 如果电脑性能强劲,也可以在 2 个甚至 3 个 HandBrake 中同时 启动队列 压制视频。
同时多实例运行压制任务,可能会导致系统崩溃,请各位老师量力而行~
运行多实例的方法:
- Windows
多次双击 HandBrake 应用程序或快捷方式即可。
2. macOS
在终端中每输入一次下列命令,即可启动 1 个实例;通过方向键上可以重复命令:
open -n /path-to-handbrake
搞不明白路径的老师,在 访达 / Finder 里的 应用程序 目录里,将 HandBrake 用鼠标拖入终端里即可。
3. Linux
请自己搞定。