为硬盘减压!在 Mac 上把 H.264 格式的视频转换为 HEVC(H.265)格式


2018 年 11 月 14 日更新

最新版的 ffmpeg 搭配 macOS 10.14 已经可以实现 HEVC 硬编码(猜测 2017 年以及之后出的 Mac 都支持,具体没有测试),但画质有所下降。

只需将下文命令中的 libx265 替换为 hevc_videotoolbox 即可。

一、前言

HEVC 是新一代的视频编码格式。

相比目前常用的 H.264,其最大的优点就是在相同的画质下所需要的存储空间可以大幅缩小,并且还可以支持 8K 超大分辨率以及广色域视频。

一直以来 macOS 以及 iOS 都不支持原生 HEVC 硬解码。我也为此郁闷了好久,感觉 Apple 真心跟不上潮流……

终于,Apple 在 macOS 10.13 以及 iOS 11 中加入了对 HEVC 视频硬解码的原生支持。

macOS 10.13 HEVC 介绍页面

根据 Apple 官网的描述,2015 年末以及之后推出的设备均可完美支持 HEVC 硬解码。

如果使用的是较旧的设备,那么只支持 HEVC 软解码。软解码的话 1080P 一般没什么问题,但是 4K 基本上都要跪了。

如果您是一位喜欢收藏视频的果粉,但是存储空间又有些紧张的话,那么不妨考虑花一些时间,将手头上收藏的 H.264 格式视频转换成 HEVC 格式吧。


二、操作环境

  • 硬件:MacBook Pro 15″ 2017
  • 操作系统:macOS 10.13.2
  • 应用软件:ffmpeg 3.4.1

三、准备工作

3.1 在 macOS 上 Homebrew

Homebrew 是 macOS 上最常用的包管理器,我想大部分朋友都已经安装了,所以下面一笔带过就好。

打开「终端」,执行以下命令:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

然后根据提示操作,即可完成安装。

3.2 使用 Homebrew 安装 ffmpeg

ffmpeg 是一款开源的命令行视频转码工具,很多视频转码工具都是基于 ffmpeg 二次开发的。
由于 Homebrew 自带的 ffmpeg 二进制文件不包含编码 HEVC 所需的 x265 函数库,所以必须重新编译安装。好在整个过程都是可以自动完成的。

打开「终端」,执行以下命令:

brew install ffmpeg --with-x265

如果之前安装过 ffmpeg,请执行 brew reinstall ffmpeg --with-x265

执行完命令之后,Homebrew 会自动下载所需软件包,然后编译安装。


四、转码操作

HEVC 有两种封装格式,一种是 hvc1 格式,另一种是 hev1 格式。macOS 以及 iOS 系统自带的播放器只支持前者,但是 ffmpeg 默认以后者封装,所以下面的命令必须手动指定 hvc1 封装格式。

4.1 单一文件转码

打开「终端」,按实际情况修改以下命令然后执行:

ffmpeg -i <要转换的视频路径> -c:v libx265 -c:a copy -tag:v hvc1 <转换后的视频路径>

操作提示:在输入 ffmpeg -i 空格之后,将要转换的视频文件直接拖入「终端」窗口,即可自动生成完整路径。然后把完整路径中最后的文件名改一下,就可以直接作为转换后的视频路径。

例如

/Volumes/KINGSTON/1.mov 转换为 HEVC 格式,输出文件为 /Volumes/KINGSTON/1_hevc.mov

ffmpeg -i /Volumes/KINGSTON/1.mov -c:v libx265 -c:a copy -tag:v hvc1 /Volumes/KINGSTON/1_hevc.mov

转换过程中,按 Q 可以中断转换,但是不支持断点续转。

4.2 批量转码

建立一个文件夹,把要转换的视频都放进这个文件夹里。

打开「终端」,按实际情况修改以下命令然后执行:

cd <文件夹路径> && command ls -1 | sed -e "s/^/'/" -e "s/$/'/" | grep -v "^hevc_" | xargs -n1 -I {} ffmpeg -i {} -c:v libx265 -c:a copy -tag:v hvc1 hevc_{}

操作提示:在输入 cd 空格之后,可以将文件夹直接拖入「终端」窗口,即可自动生成完整路径。

转码之后的视频都会被加上 hevc_ 前缀。

转换过程中,按 Q 可以中断转换,但是不支持单个文件的断点续转。


五、效果测试

这里拿一个 4K 视频来测试,然后使用 QuickTime Player 的检查器来查看文件信息。

转换前

转换后

可以看得出,将 H.264 格式的视频转换为 HEVC 格式之后,存储空间大幅减小了!然后肉眼也看不出任何的画质衰减。


六、注意事项

  1. 由于目前所有的 Mac 都不支持 HEVC 硬编码,因此在编码过程中 CPU 会满载,风扇也会狂转。不过不影响 Mac 的正常使用。
  2. Mac 的 CPU 性能越高,转码速度越快。不差钱的话,也可买台 iMac Pro 顶配来转码。(买得起 iMac Pro 的朋友还会差这几个硬盘钱?)
  3. 带有内嵌字幕的视频在进行转码之后,内嵌字幕将丢失。
  4. 由于视频的格式很多,转码过程不能保证一定可以成功。本文纯属个人经验分享,仅供参考。

七、参考链接

  1. 在 Apple 设备上使用 HEIF 或 HEVC 媒体 – Apple
  2. macOS High Sierra 概览 – Apple
  3. FFmpeg and H.265 Encoding Guide – ffmpeg.org
  4. 如何将手头的H.264编码的视频文件转化为H.265编码?- 知乎
  5. HEVC output is not playable by QuickTime on macOS 10.13 High Sierra Beta 6 – GitHub
  6. 高效率视频编码 – 维基百科

《为硬盘减压!在 Mac 上把 H.264 格式的视频转换为 HEVC(H.265)格式》上有3条评论

  1. Mojave 现在支持硬编码了,libx265 换成 hevc_videotoolbox,速度是快很多,就是质量没软编的好

发表评论

电子邮件地址不会被公开。