当前位置: 首页 > news >正文

从 0 到 1 搞定 Intel 核显推流:硬件视频编码环境安装完整学习笔记

1. 确定源码版本

首先,需要通过下方链接确定需要安装代码库的版本号。本教程选择的是Media SDK 20.2.1,里面对应的libva、libva-utils版本为2.8.0,Gmmlib版本为20.2.2,Driver版本为20.2.0。

https://github.com/Intel-Media-SDK/MediaSDK/releases

2. VA-API编译安装

sudo apt-get install -y dh-autoreconf pkg-config
apt-get install -y libncurses5-dev libpthread-stubs0-dev libpciaccess-dev libxvmc-dev xutils-dev libsdl2-dev libxcb-shm0-devgit clone  https://github.com/intel/libva.git
git clone  https://github.com/intel/libva-utils.gitcd $WORKING_DIR/libva
git checkout <libva commit id>./autogen.sh --prefix=/opt/intel/libva --libdir=/opt/intel/libva/lib
make -j4
sudo make install
export PKG_CONFIG_PATH=/opt/intel/libva/lib/pkgconfig  cd $WORKING_DIR/libva-utils
git checkout <libva-utils commit id>
./autogen.sh --prefix=/opt/intel/libva-utils --libdir=/opt/intel/libva-utils/lib
make -j4
sudo make install

3. Media-Driver编译安装

git clone https://github.com/intel/media-driver.git
git clone https://github.com/intel/gmmlib.gitcd $WORKING_DIR/gmmlib
git checkout <gmmlib commit id>cd $WORKING_DIR/media-driver
git checkout <media-driver commit id>cd $WORKING_DIR
mkdir -p build
cd $WORKING_DIR/buildcmake ../media-driver \-DMEDIA_VERSION="2.0.0" \-DBUILD_ALONG_WITH_CMRTLIB=1 \-DBS_DIR_GMMLIB=`pwd`/../gmmlib/Source/GmmLib/ \-DBS_DIR_COMMON=`pwd`/../gmmlib/Source/Common/ \-DBS_DIR_INC=`pwd`/../gmmlib/Source/inc/ \-DBS_DIR_MEDIA=`pwd`/../media-driver \-DCMAKE_INSTALL_PREFIX=/opt/intel/media-driver \-DCMAKE_INSTALL_LIBDIR=/opt/intel/media-driver/lib \-DINSTALL_DRIVERS_SYSCONF=OFF \-DLIBVA_DRIVERS_PATH=/opt/intel/media-driver/lib/drimake -j8
sudo make install

测试media-driver是否成功安装

export LIBVA_DRIVER_NAME=iHD
export LIBVA_DRIVERS_PATH=/opt/intel/media-driver/lib/dri
cd /opt/intel/libva-utils/bin
./vainfo

成功安装后将显示如下内容:

xx:/opt/intel/libva-utils/bin$ ./vainfo
libva info: VA-API version 1.15.0
libva info: User environment variable requested driver 'iHD'
libva info: Trying to open /opt/intel/media-driver/lib/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_15
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.15 (libva 2.15.0)
vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 20.2.0 ()
vainfo: Supported profile and entrypointsVAProfileNone                   :  VAEntrypointVideoProcVAProfileNone                   :  VAEntrypointStatsVAProfileMPEG2Simple            :  VAEntrypointVLDVAProfileMPEG2Simple            :  VAEntrypointEncSliceVAProfileMPEG2Main              :  VAEntrypointVLDVAProfileMPEG2Main              :  VAEntrypointEncSliceVAProfileH264Main               :  VAEntrypointVLDVAProfileH264Main               :  VAEntrypointEncSliceVAProfileH264Main               :  VAEntrypointFEIVAProfileH264Main               :  VAEntrypointEncSliceLPVAProfileH264High               :  VAEntrypointVLDVAProfileH264High               :  VAEntrypointEncSliceVAProfileH264High               :  VAEntrypointFEIVAProfileH264High               :  VAEntrypointEncSliceLPVAProfileVC1Simple              :  VAEntrypointVLDVAProfileVC1Main                :  VAEntrypointVLDVAProfileVC1Advanced            :  VAEntrypointVLDVAProfileJPEGBaseline           :  VAEntrypointVLDVAProfileJPEGBaseline           :  VAEntrypointEncPictureVAProfileH264ConstrainedBaseline:  VAEntrypointVLDVAProfileH264ConstrainedBaseline:  VAEntrypointEncSliceVAProfileH264ConstrainedBaseline:  VAEntrypointFEIVAProfileH264ConstrainedBaseline:  VAEntrypointEncSliceLPVAProfileHEVCMain               :  VAEntrypointVLDVAProfileHEVCMain               :  VAEntrypointEncSliceVAProfileHEVCMain               :  VAEntrypointFEIVAProfileHEVCMain               :  VAEntrypointEncSliceLPVAProfileHEVCMain10             :  VAEntrypointVLDVAProfileHEVCMain10             :  VAEntrypointEncSliceVAProfileHEVCMain10             :  VAEntrypointEncSliceLPVAProfileVP9Profile0            :  VAEntrypointVLDVAProfileVP9Profile1            :  VAEntrypointVLDVAProfileVP9Profile2            :  VAEntrypointVLDVAProfileVP9Profile3            :  VAEntrypointVLDVAProfileHEVCMain12             :  VAEntrypointVLDVAProfileHEVCMain12             :  VAEntrypointEncSliceVAProfileHEVCMain422_10         :  VAEntrypointVLDVAProfileHEVCMain422_10         :  VAEntrypointEncSliceVAProfileHEVCMain422_12         :  VAEntrypointVLDVAProfileHEVCMain422_12         :  VAEntrypointEncSliceVAProfileHEVCMain444            :  VAEntrypointVLDVAProfileHEVCMain444            :  VAEntrypointEncSliceLPVAProfileHEVCMain444_10         :  VAEntrypointVLDVAProfileHEVCMain444_10         :  VAEntrypointEncSliceLPVAProfileHEVCMain444_12         :  VAEntrypointVLDVAProfileHEVCSccMain            :  VAEntrypointVLDVAProfileHEVCSccMain            :  VAEntrypointEncSliceLPVAProfileHEVCSccMain10          :  VAEntrypointVLDVAProfileHEVCSccMain10          :  VAEntrypointEncSliceLPVAProfileHEVCSccMain444         :  VAEntrypointVLDVAProfileHEVCSccMain444         :  VAEntrypointEncSliceLPVAProfileHEVCSccMain444_10      :  VAEntrypointVLDVAProfileHEVCSccMain444_10      :  VAEntrypointEncSliceLP

4. Intel Media SDK源码编译(可选)

cd $WORKING_DIR
git clone https://github.com/Intel-Media-SDK/MediaSDK.gitcd MediaSDK
mkdir build && cd build
cmake ..
make
sudo make installexport LD_LIBRARY_PATH=/opt/intel/mediasdk/lib:$LD_LIBRARY_PATH

测试MSDK是否成功安装(可选操作)

$ cd /opt/intel/mediasdk/share/mfx/samples/
/opt/intel/mediasdk/share/mfx/samples$ ./sample_encode h264 -i /home/amov/output.yuv  -w 1920 -h 1080 -vaapi
File output is disabled as -o option isn't specified
libva info: VA-API version 1.15.0
libva info: User environment variable requested driver 'iHD'
libva info: Trying to open /opt/intel/media-driver/lib/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_15
libva info: va_openDriver() returns 0
Encoding Sample Version 20.2.0Input file format  YUV420
Output video    AVC 
Source picture:Resolution  1920x1088Crop X,Y,W,H  0,0,1920,1080
Destination picture:Resolution  1920x1088Crop X,Y,W,H  0,0,1920,1080
Frame rate  30.00
Bit rate(Kbps)  3757
Gop size  256
Ref dist  4
Ref number  3
Idr Interval  0
Target usage  balanced
Memory type  vaapi
Media SDK impl    hw
Media SDK version  1.35Processing startedProcessing finished

5. 使用ffmpeg测试intel-VAAPI硬件编码情况

运行该步操作需要提前安装带vaapi的ffmpeg。下面是在i7-1165G7测试的情况,系统是ubuntu 20.04,操作同一个视频文件,intel软编码的CPU使用率为479%,硬编码的CPU使用率为34.3%。此外,延时也非常低。

在这里插入图片描述

在这里插入图片描述

http://www.dtcms.com/a/292410.html

相关文章:

  • UE5 UI 水平框
  • GoLand 部署第一个项目
  • 智慧制造合同解决方案
  • 外网访问内部私有局域网方案,解决运营商只分配内网IP不给公网IP问题
  • 【Docker】Docker的初步认识以及Ubuntu下的Docker环境安装、配置
  • iOS加固工具有哪些?从零源码到深度混淆的全景解读
  • 【Spring Boot】Spring Boot循环依赖破解:@Lazy与Setter注入的取舍指南(流程图修复版)
  • p5.js 圆弧的用法
  • 一键生成流程图,省时省力!
  • 网络安全基础作业三
  • ubuntu24.04安装CUDA、VLLM、Pytorch等并部署Qwen3-8B-AWQ【50系显卡通用】
  • pytorch 演示 “变分状态空间模型(Variational State-Space Model, VSSM)“ 基于 MINIST数据集
  • CSS中的transform
  • 算法笔记之堆排序
  • Oracle数据恢复—Oracle数据库所在分区被删除后报错的数据恢复案例
  • Oracle 12c 创建数据库初级教程
  • sqli-labs通关笔记-第14关 POST报错型注入(双引号闭合 手工注入+脚本注入两种方法)
  • mac实现sudo命切换node版本
  • 【C++进阶】揭秘list迭代器:从底层实现到极致优化
  • WIFI路由器长期不重启,手机连接时提示无IP分配
  • 【Linux系统】基础IO
  • Git使用git graph插件回滚版本
  • 【自定义一个简单的CNN模型】——深度学习.卷积神经网络
  • 大气能见度监测仪:洞察大气 “清晰度” 的科技之眼
  • 智慧教室:科技赋能,奏响个性化学习新乐章
  • MyBatis拦截器插件:实现敏感数据字段加解密
  • 中国科技信息杂志中国科技信息杂志社中国科技信息编辑部2025年第14期目录
  • 「芯生态」杰发科技AC7870携手IAR开发工具链,助推汽车电子全栈全域智能化落地
  • Vue中最简单的PDF引入方法及优缺点分析
  • docker build 和compose 学习笔记