视频编解码分为硬件加速以及非硬件加速。硬件加速是指通过显卡,FPGA等硬件进行视频编解码,由于硬件有专门优化,所以性能高,能耗低,非硬件加速编解码是指通过CPU进行视频编解码,性能就没那么高(虽然有相关CPU指令优化),由于视频编解码计算量很大,所以能耗也很高。在PC平台上主流的硬件加速编解码有Intel集成显卡,Nvidia显卡。
Quick Sync Video Intel Quick Sync Video(QSV)是Intel GPU上跟视频处理有关的一系列硬件特性的称呼。
英特尔® Quick Sync Video 技术可以快速转换便携式多媒体播放器的视频,还能提供在线共享、视频编辑及视频制作功能。
看到CPU带的集成显卡支持Quick Sync Video就表示支持硬件加速的视频编解码。
比如查看Intel J1900是否支持QSV.如下 https://ark.intel.com/content/www/cn/zh/ark/products/78867/intel-celeron-processor-j1900-2m-cache-up-to-2-42-ghz.html
在不同平台上可通过不同API使用Intel GPU的硬件加速能力。目前主要由两套API:VAAPI以及libmfx。
VAAPI (视频加速API,Video Acceleration API)包含一套开源的库(LibVA) 以及API规范, 用于硬件加速下的视频编解码以及处理,只有Linux上的驱动提供支持。 libmfx。Intel Media SDK中的API规范,支持视频编解码以及媒体处理。支持Windows以及Linux。
所以,回到标题所在的问题,就知道了vaapi应该只是qsv的一种包含关系。
VAAPI驱动 VAAPI驱动属于用户态驱动,用于支持LibVA,底层是i965/1915驱动。Intel提供了两种开源的VAAPI驱动:intel-vaapi-driver以及intel-media-driver,intel-media-driver较intel-vaapi-driver新,维护更积极,所以目前更推荐使用intel-media-driver。
FFmpeg VAAPI/QSV开发环境搭建 对于VAAPI以及Intel Media SDK,如果使用原生API开发的话比较麻烦,好在FFmpeg提供了对应的插件。我们可以通过FFmpeg间接使用这两套API。在FFmpeg中VAAPI还是叫做VAAPI,但是Intel Media SDK却叫做QSV(一脸懵逼)。
FFmpeg-vaapi插件:基于VAAPI接口 FFmpeg-qsv插件:基于Intel Media SDK
FFmpeg VAAPI/QSV开发环境搭建我就不做搬运工了,大家可参考官网教程。
Linux FFmpeg VAAPI/QSV Installation Environment: https://01.org/linuxmedia/quickstart/ffmpeg-vaapi-qsv-installation-environment
查看支持的编解码功能 apt install vainfo
vainfo libva info: VA-API version 1.7.0 libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so libva info: Found init function __vaDriverInit_1_7 libva info: va_openDriver() returns 0 vainfo: VA-API version: 1.7 (libva 2.6.0) vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 20.1.1 () vainfo: Supported profile and entrypoints
VAProfileMPEG2Simple : VAEntrypointVLD VAProfileMPEG2Main : VAEntrypointVLD VAProfileH264Main : VAEntrypointVLD VAProfileH264Main : VAEntrypointEncSliceLP VAProfileH264High : VAEntrypointVLD VAProfileH264High : VAEntrypointEncSliceLP VAProfileJPEGBaseline : VAEntrypointVLD VAProfileJPEGBaseline : VAEntrypointEncPicture VAProfileH264ConstrainedBaseline: VAEntrypointVLD VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP VAProfileVP8Version0_3 : VAEntrypointVLD VAProfileHEVCMain : VAEntrypointVLD VAProfileHEVCMain10 : VAEntrypointVLD VAProfileVP9Profile0 : VAEntrypointVLD VAProfileVP9Profile2 : VAEntrypointVLD
VAEntrypointVLD 指的是显卡能够解码这个格式,VAEntrypointEncSlice 指的是显卡可以编码这个格式。
form: https://blog.jianchihu.net/intel-gpu-hw-video-codec-develop.html
本文链接地址:https://const.net.cn/440.html
标签: none FFmpeg在windows下的静态编译 【书单推荐】18本经典人物传记推荐 ubuntu 20.04 编译 opencv4.9.0 websocket send canvas to server youtube playlist download online 编译opencv4.9.0 CUDA记录 棋灵王 全集 magnet Electron整理 linux Docker 容器里运行 Windows 系统 修改docker 镜像存储位置 ubuntu 声音控制命令 yolov8 环境安装 go 与 gtk 的示例 websocket 动态修改网页内容 arm64安装golang开发环境 linux 命令以十六进制格式查看二进制文件 hexdump xxd golang url解析 Go url parse url.ParseQuery OpenSSL 命令行 SM2 SM3操作 《基于LTE的车联网无线通信技术 安全证书管理系统技术要求》 SM2 验证过程 2021年动作《速度与激情9》BD中英双字迅雷下载_电影天堂 解决办法 No rule to make target 'arch/x86/tools/relocs_32.c SSL_CTX_use_certificate:ca md too weak错误解决方案 vaapi qsv 区别 V2X OpenSSL cURL Ubuntu Go Demo web OpenCV 云笔记 MQTT 零和博弈 房住不炒 鼓励生育 新三座大山 文章 RSS Const Biglee的博客 阮一峰的网络日志 samirchen SM2在线密钥生成工具 SM2 在线工具 v2x 在线工具 aes-ccm 在线加解密工具 aes-gcm 在线加解密工具 Hash 在线计算工具 RSA在线工具 sitemap.xml
标签: none