LINUX安装INTEL® MEDIA SERVER STUDIO
最近在折腾Intel QuickSync技术,主要是要打算使用其提供的硬件编解码功能。看看是否能够有效的降低CPU的使用率。本来是以为直接下载ffmpeg的二进制可执行文件即可(在windows上,只要有安装好Intel的驱动以及硬件支持,直接使用ffmpeg的可执行文件,是可以正常运行的),没想到在linux平台下事情并没有想像的那么简单。需要这台的事情还是很多的。Intel官方提供的S
Intel官方提供的SDK说明文档中,推荐的“黄金”操作系统是CentOS 7.1.1503并且使用其自带的内核,这样可以少折腾不少东西。目前使用的是Intel ® Media Server Studio 2016 R1 for Linux版本的,SDK中对于CentOS7.1是可以支持直接安装RPM包的,并且会自动下载其默认的内核,也就是3.10的内核,打上补丁,并且安装到系统中去。经过几天的折腾,分别在CentOS7.1上安装成功后又在Ubuntu14.04.4上也安装成功。由于另一台电脑是i5-3470的CPU,其实并没有在2016的SDK支持列表中,因此装上去了,在运行官网提供的samples代码,是会报错的。所以后来就在自己的本子,也就是MSI的GE60上安装了(I7-4700MQ,HD4600是有在SDK的支持列表中的),而由于目前磁盘资源紧张,没有空间来安装一个CentOS7.1,所以就直接在Ubuntu上编译了。当然,如果可以的话,还是建议直接安装CentOS7.1,因为在后面做的一些测试时,Ubuntu编译的3.14的内核死掉了不少次,也没去跟踪具体是何原因导致(用的KDE的环境,毕竟涉及到图形,而且本来GE60是双显卡的,编译3.14的内核后,显卡灯都是亮黄灯,也就是用独显的模式的 ,而如果是用核显,则是亮蓝灯,不过测试,亮黄灯的话,还是没有什么问题的,可以正常使用)。杰茜莱就简单对如何在CentOS7.1以及Ubuntu14.04上安装Intel media server studio做一下简单的说明吧(其实官网的说明文档已经写得很清晰了,自己权当做一下记录吧)。
准备工作
先从https://software.intel.com/en-us/intel-media-server-studio 下载好studio,可以下载社区版本即可,专业版会多一些编解码的东西(HEVC等),不过提供的SDK是一样的。下载的话,需要类似注册一下,主要是要提供邮箱地址,到时候会发一个下载链接给你,你就直接从链接就可以下载到对应的压缩包。
下载完成后,就将压缩包解压到本地文件夹中即可。
1
2
3
4
5
6
|
$
tar
-
xvzf
MediaServerStudio
*
.tar
.gz
$
cd
MediaServerStudio
*
$
tar
-
xvzf
SDK
*
.tar
.gz
$
cd
SDK
*
$
cd
CentOS
$
tar
-
xvzf
install_scripts
*
.tar
.gz
|
目前2016SDK支持的硬件列表如下,如果想要安装后可用的话,要先选好硬件才行!
Intel® Core™ Processors | Intel® Xeon® Processors |
4 th Generation Intel Core™ Processors with Intel Iris™ Pro Graphics, Intel Iris Graphics or Intel HD Graphics 4200+ Series. 5th Generation Intel Core™ Processors with Intel Iris™ Graphics or Intel HD Graphics (5500, 6000, 6100). | Intel® Xeon® Processor E3 v3 Family with Intel® HD Graphics P4700. Intel® Xeon® Processor E3 v4 Family with Intel® Iris™ Pro Graphics P6300. (C226 chipset is required to use integrated graphics with Xeon processors) |
CentOS7.1.1503
这个是SDK说明文档中推荐的“黄金”系统,也就是首选了。很多软件都会预装以及测试好了,很是容易。具体系统下载的话,官网提供从http://vault.centos.org/7.1.1503/isos/x86_64/ 下载,建议通过种子的方式下载,这样会快不少。下载完成,安装下系统,这些步骤都还是要的,优先选择安装为Development and Creative Workstation。这样主要是省事一些,其实就算是安装最精简的版本,也是可以的,并不会费事多少。
CentOS会比较省事,但是脚本中缺少了对mesa-dri-drivers的依赖处理,所以执行脚本前,还是先安装下mesa-dri-drivers。然后运行install_sdk_UMD_CentOS.sh应该就可以完成对UMD的安装。
1
2
|
sudo
yum
install
mesa
-
dri
-
drivers
-
y
sudo
.
/
install_sdk_UMD_CentOS
.sh
|
安装完成,大致看到的是以下这样的结果,没有报错之类的。
之后,就要开始给内核打补丁,并安装内核。这个步骤需要一个非root用户,所以要事先建立好一个非root用户,脚本会给你对应的提示就是了。执行的脚本是build_kernel_rpm_CentOS.sh,也是很傻瓜化的操作,会自动下载源码的RPM包,并解压,打补丁,编译。如果没出现什么意外,可以看到以下的结果。那么应该是成功了。会烧掉一些时间来做内核的编译,编译成功后,会自动打成RPM包,下次换个设备就不需要再次编译了,RPM包拷过去就可以了。很是方便。
接下来就是把编译好的内核安装包安装一下,重启就可以大功告成了!!
1
2
3
|
cd
rpmbuild
/
RPMS
/
x86_64
/
rpm
-
Uvh
kernel
-
3.10.
*
.rpm
reboot
|
Ubuntu14.04
Ubuntu14.04的安装会相对麻烦。不过现在也提供了脚本,会比较快速的搞定,本身也有做部分的支持包。
执行Generic目录下的install_media.sh或者执行install_ubuntu.sh脚本,需要使用root权限,脚本中,会将原有系统中的libdrm以及libva相关的文件给删除掉。所以记得做好备份(不然到时候图形出不来,还是很麻烦的)!!!这么做,主要是怕加载原有的SO文件了,导致没有正常运行(我并没有这么做,并没有删除这些SO文件,仅仅只是将文件拷贝到对应的目录而已,也正常运行,这个应该是因为后面配置了环境变量的缘故吧)。
install_ubuntu.sh如下(这个是官网提供的,并没有在SDK说明文档中)。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
#!/bin/bash
echo
"remove other libdrm/libva"
find
/
usr
-
name
"libdrm*"
|
xargs
rm
-
rf
find
/
usr
-
name
"libva*"
|
xargs
rm
-
rf
echo
"Remove old MSS install files ..."
rm
-
rf
/
opt
/
intel
/
mediasdk
rm
-
rf
/
opt
/
intel
/
common
rm
-
rf
/
opt
/
intel
/
opencl
echo
"install user mode components"
#unpack the generic package
tar
-
xvzf
intel
-
linux
*
.tar
.gz
#put the generic components in standard locations
/
bin
/
cp
-
r
etc
/
*
/
etc
/
bin
/
cp
-
r
opt
/
*
/
opt
/
bin
/
cp
-
r
usr
/
*
/
usr
#ensure that new libraries can be found
echo
'/usr/lib64'
>
/
etc
/
ld
.so
.conf
.d
/
libdrm_intel
.conf
echo
'/usr/local/lib'
>>
/
etc
/
ld
.so
.conf
.d
/
libdrm_intel
.conf
ldconfig
echo
"install kernel build dependencies"
apt
-
get
-
y
install
git
fakeroot
build
-
essential
ncurses
-
dev
xz
-
utils
libssl
-
dev
bc
g
++
echo
"download 3.14.5 kernel"
if
[
!
-
f
.
/
linux
-
3.14.5.tar.xz
]
;
then
wget
https
:
/
/
www
.kernel
.org
/
pub
/
linux
/
kernel
/
v3
.x
/
linux
-
3.14.5.tar.xz
fi
tar
-
xJf
linux
-
3.14.5.tar.xz
echo
"apply kernel patches"
cp
/
opt
/
intel
/
mediasdk
/
opensource
/
patches
/
kmd
/
3.14.5
/
intel
-
kernel
-
patches
.tar
.bz2
.
tar
-
xvjf
intel
-
kernel
-
patches
.tar
.bz2
cd
linux
-
3.14.5
for
i
in
.
.
/
intel
-
kernel
-
patches
/
*
.patch
;
do
patch
-
p1
<
$i
;
done
echo
"build patched 3.14.5 kernel"
make
olddefconfig
make
-
j
8
make
modules_install
make
install
echo
"Install finished, please "
echo
"1. update LD_LIBRARY_PATH to include /usr/lib64;/usr/local/lib"
echo
"2. add user to video group: usermod -a -G video user"
echo
"3. reboot"
|
执行了install_ubuntu.sh后,内核也就编译并安装了。接下来,还需要编译libdrm以及编译libva。
1
2
3
4
5
6
7
8
9
10
|
sudo
apt
-
get
install
libxcb1
-
dev
libpciaccess
-
dev
# 依赖这2个编译头文件
cd
/
opt
/
intel
/
mediasdk
/
opensource
/
libdrm
/
2.4.54
-
47109
tar
-
xf
libdrm
-
2.4.54.tar.bz2
libdrm
-
2.4.54
/
.
/
configure
&&
make
&&
make
install
cd
/
opt
/
intel
/
mediasdk
/
opensource
/
libva
/
1.67.0.pre1
-
47109
tar
-
xf
libva
-
1.67.0.pre1.tar.bz2
cd
libva
-
1.67.0.pre1
/
.
/
configure
&&
make
&&
make
install
|
都是很简单的操作。编译安装后,再设置下环境变量吧。添加到/etc/environment
1
2
3
|
LD_LIBRARY_PATH
=
"/usr/local/lib;/usr/lib64"
LIBVA_DRIVER_NAME
=
iHD
LIBVA_DRIVERS_PATH
=
/
opt
/
intel
/
mediasdk
/
lib64
|
重启后,应该也就安装成功了!!!
验证是否安装成功
重启后,可以通过查看内核信息。CentOS7.1会看到如下的信息:
1
2
|
uname
-
r
3.10.0
-
229.1.2.47109.MSSr1.el7.centos.x86_64
|
内核会被标记上MSSr1,目前的SDK是2016 R1版本。而Ubuntu14.04(我使用的是3.13的内核)。则是如下:
1
2
|
uname
-
r
3.14.5
|
我并没有像官方那么,还给内核加上自己的标识,反正本身版本就不一致。
可以通过lsmod来查看是否有加载对应正确的内核模块。
1
2
3
4
5
6
7
|
lsmod
|
grep
'i915'
i915
938476
1
video
19263
1
i915
i2c_algo
_bit
13413
1
i915
drm_kms
_helper
98274
1
i915
drm
311336
3
i915
,
drm_kms_helper
i2c
_core
40325
5
drm
,
i915
,
i2c_i801
,
drm_kms_helper
,
i2c_algo_bit
|
当然,使用samples的代码来验证是最佳的,因为内核可以运行成功,但是并不代表可以正常运行SDK提供的代码(硬件限制)。
大致的话,还是比较推荐使用CentOS7.1进行安装的,因为步骤都很简单明了,安装后的SDK文件之类的,在/opt/intel目录下。
samples如果打算编译的话,则需要安装下cmake(可以不编译的,有提供二进制文件)。
1
2
|
sudo
apt
-
get
install
cmake
-
y
# ubuntu
sudo
yum
install
cmake
-
y
# centos
|
执行下sample_multi_transcode
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
.
/
sample_multi_transcode
-
i
::
h264
.
.
/
content
/
test_stream
.
264
-
o
::
h264
/
tmp
/
out
.h264
-
hw
-
la
Multi
Transcoding
Sample
Version
6.0.16043361.361
libva
info
:
VA
-
API
version
0.99.0
libva
info
:
va_getDriverName
(
)
returns
0
libva
info
:
User
requested
driver
'iHD'
libva
info
:
Trying
to
open
/
opt
/
intel
/
mediasdk
/
lib64
/
iHD_drv_video
.so
libva
info
:
Found
init
function
__vaDriverInit_0_32
libva
info
:
va_openDriver
(
)
returns
0
Pipeline
surfaces
number
:
120
MFX
HARDWARE
Session
0
API
ver
1.17
parameters
:
Input
video
:
AVC
Output
video
:
AVC
Session
0
was
NOT
joined
with
other
sessions
Transcoding
started
Transcoding
finished
Common
transcoding
time
is
0.26
sec
MFX
session
0
transcoding
PASSED
:
Processing
time
:
0.26
sec
Number
of
processed
frames
:
101
The
test
PASSED
|
如果显示The test PASSED,那么则显示正常运行了!!!也就是SDK安装完成了!
以上,大致说了下如何在linux上安装Intel® Media Server Studio。
参考资料:
Generic Installation of Intel® Media Server Studio on Linux*
Getting Started Guide – Linux* Installation
转载请注明: 转载自elkPi
更多推荐
- · 网卡速率和双工模式的配置
- · Linux虚拟文件系统之文件系统卸载(sys_umount())
- · Linux系统下超级终端Minicom的使用方法(例如:连接交换机,路由器等)转http://baike.baidu.com/view/2911642.htm?fr=ala0_1
- 3411
- 1
- 0
- 0
扫一扫分享内容
- 分享
顶部
所有评论(0)