背景介绍
ffmpeg 是一款非常常用的视频编码解码工具,而且 ffmpeg是支持 NV 显卡硬件加速以及 Intel 核显的 QSV 加速。在 Window 下,使用 ffmpeg 的 qsv 加速还算不太复杂,但在 Ubuntu 下,需要安装一大串工具,而且还需要自己编译 ffmpeg。之前尝试过失败后, 就放弃了。
过去一直使用二手服务器来进行视频转码压缩,服务器 CPU 一般核心多,而且 SAS 硬盘便宜,一台几十核的服务器装好虚拟机,一起运行解码,就算没有硬件加速,速度也是勉强过得去。
然而,最近由于各种电脑硬件价格飞涨,过去一千几百的二手服务器都已经涨到天价,更不要提硬盘了。而旧的服务器性能越来越落后,耗电和噪声都非常烦人,所以又萌生出拿旧的电脑装上 linux 服务器系统,配合核显 qsv 加速来替代服务器进行编码转码工作。
撸起袖子前的心理准备
在开始干之前,需要做好心理准备。因为我为了实现这个,已经重装多次系统了。
首先,关于如何在 Ubuntu 配置 Intel核显QSV 的中文资料,实在是少。知乎上有一个关于这个话题的文章写的非常详细,但是非常不幸的是我按照那篇文章的步骤,第一步编译 libva
就失败了。
而至于英文资料,大多都是复制或者引用 Intel 官方的 MediaSDK 的 Wiki 资料。最坑的是,官方的资料有很多地方没有讲清楚和不同介绍之间有矛盾。比较有用的一篇官方资料是《Build FFmpeg QSV》。安装配置的大致思路可以从这里找到。
硬件环境
我尝试了3个测试硬件环境,分别是一台 WIndow 的主机,以及两台 Ubuntu 的服务器。
Windows主机:
i5 4570+ z87 平台 (Window10)
Ubuntu服务器:
G4400 + h110 平台
J1900 准系统平台
以上服务器系统均为 Ubuntu 20.04
整体思路
关于配置这个硬件加速环境,其实难的不是具体的安装过程,而是没有一个全局的安装配置思路介绍,所以结合我的踩坑经验,介绍一下整体的思路,可能未必理解正确,供参考。
首先,我们要使用 ffmpeg 的 qsv 硬件加速,主要有两大步骤:
-
安装好 Intel Media SDK
-
编译 ffmpeg
其中,安装 Intel Media SDK 又可以分为两步:
-
Intel Media Driver for VAAPI (也就是 LibVA 和 Media-Driver 的安装)
-
Intel Media SDK 的编译安装
比较幸运的是,在 Ubuntu 19.04 之后,Intel Media Driver for VAAPI 已经可以使用 apt 安装,这个解决了很多奇怪的问题。我们剩下的难点就只有 编译 Intel Media SDK 和 ffmpeg 了。
Intel Media Driver for VAAPI 安装
因为我的系统是 Ubuntu 20.04 ,所以可以直接使用 apt 安装,如果是 Ubuntu 19 之前的系统,估计要走编译的方法。
执行以下命令,即可完成安装:
sudo apt-get install libmfx1 libmfx-tools
sudo apt-get