Descodificació de maquinari FFmpeg - HWAccelIntro
Ffmpeg Hardware Decoding Hwaccelintro
Original (anglès): https://trac.ffmpeg.org/wiki/Hardware/QuickSync
Advertiment: No instal·leu l'SDK d'Intel Media si no esteu segur, sobretot a Linux. En molts casos, no el necessiteu i provar d’utilitzar-lo pot trencar altres coses.
'Intel Quick Sync Video' és el nom comercial per a un conjunt de funcions de maquinari disponibles a moltes GPU Intel.
1. Suport de maquinari
2. Suport API
Es pot accedir al maquinari mitjançant moltes API diferents:
-
DXVA2 / D3D11VA
Aquestes són les API estàndard de Windows implementades pels controladors gràfics Intel per donar suport a la descodificació de vídeo. -
libmfx a Linux
Es tracta d’una biblioteca d’Intel que es pot instal·lar com a part de l’SDK d’Intel Media i admet un subconjunt de casos de codificació i descodificació. -
libmfx al Windows
Es tracta d’una biblioteca que inclou el controlador de gràfics Intel que admet tots els casos de codificació i descodificació.
-
Media Foundation
Una altra API de Windows que admet alguns casos de codificació i descodificació amb controladors gràfics Intel. Ffmpeg no admet. -
VAAPI amb controlador i965
Aquest és el principal controlador gratuït per a l'estructura libva / VAAPI. La majoria de distribucions de Linux l’envasen. -
VAAPI amb controlador iHD
El backend libmfx de Linux utilitza els controladors VAVA i libva modificats, que també poden utilitzar directament l'usuari.
3. Linux
Podeu instal·lar Media Server Studio des del binari a https://software.intel.com/en-us/intel-media-server-studio/. Tanmateix, Media Server Studio només admet un nombre limitat de plataformes HW i distribucions Linux. Tota la pila de recursos de codi obert proporciona una gamma més àmplia de plataformes de maquinari i distribucions Linux compatibles.
Pila de suports de codi obert Intel
Nom del projecte: gràfics Gen compatibles | Reposició de codi obert |
---|---|
MSDK: gen9 + | https://github.com/Intel-Media-SDK/MediaSDK |
Libva: GEN5 + | https://github.com/intel/libva |
Controlador I965: gen5 ~ gen9.5 | https://github.com/intel/intel-vaapi-driver |
Controlador iHD: gen9 + | https://github.com/intel/media-driver |
VAAPI VS libmfx
Si és possible, es recomana utilitzar VAAPI amb el controlador i965. Si el vostre cas d’ús requereix específicament el seu conjunt de funcions específiques, només s’utilitzarà libmfx.
- VAAPI / i965
està empaquetat estàndard a la majoria de distribucions de Linux.
executa tot el maquinari disponible, inclosos els dispositius antics i més econòmics.
Una gamma més àmplia de suport per a còdecs.
és una API genèrica per a aplicacions que també poden utilitzar maquinari AMD / Nvidia i Mesa.
interopera amb API estàndard (EGL / OpenGL, Op enCL). - libmfx / iHD
pot proporcionar una millor qualitat de codificació (?) en alguns casos.
pot proporcionar un rendiment de codificació superior en alguns casos (especialment en gràfics Iris).
Una API genèrica per a aplicacions que també s’executen a Windows.
és interoperable amb implementacions Intel OpenCL.
4.Windows
Podeu obtenir la versió de Windows MSDK https://software.intel.com/media-sdk
5. Córrer
VAAPI
Vegeu maquinari / VAAPI: https://trac.ffmpeg.org/wiki/Hardware/VAAPI
libmfx
La biblioteca té diverses opcions per triar i els possibles valors vàlids depenen de la versió i el maquinari. Libavcodec intenta assignar les opcions comunes a l'opció libmfx amb prudència, però el mapatge és cru i defectuós, sobretot pel que fa al control de velocitat.
L'ús d'una combinació no vàlida pot provocar el missatge: 'El mode d'execució QSV no admet el mode de control de velocitat seleccionat. Trieu un altre mode. ' Normalment, aquest missatge és precís, però també pot fer referència a altres problemes, com ara la manca de dispositius disponibles.
6. Instal·leu el Media SDK a Linux
Tingueu en compte que són necessaris tant els pegats del nucli com les biblioteques del sistema modificades. No es recomana instal·lar-lo a cap màquina que també s'utilitzi per a altres propòsits, ja que no utilitza el mecanisme de distribució normal i pot ser destruït / destruït per altres paquets de programari.
-
Màquina de construcció:
Creeu i instal·leu una planificació de paquets:< https://github.com/lu-zero/mfx_dispatch >. (També podeu extreure els fitxers necessaris de la instal·lació del Media SDK tal com es descriu al manual d'instal·lació; no es recomana, només cal que utilitzeu el paquet.)
Construeix ffmpeg amb –enable-libmfx. -
Màquina objectiu:
Assegureu-vos que l’ordinador de destinació tingui una CPU compatible. La versió actual només admet gràfics gen8 / gen9 en CPU cares (marca 'Xeon' / 'Core i'). El mateix nucli gràfic de la CPU més barata (marca 'Pentium' / 'Celeron' / 'Atom') està explícitament desactivat, possiblement per motius comercials.
Obteniu una versió del nucli compatible amb una versió neta (actualment 4.4:< https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.4.tar.xz >) i apliqueu els pegats proporcionats. Construir i instal·lar.
Construïu i instal·leu els arbres libva i libdrm proporcionats.
Executeu l'script d'instal·lació del Media SDK per instal·lar els components propietaris.
Reinicia.