INDE
在 Windows 下通常使用 INDE
中的 Intel Media SDK
而不是 MMS
,因為后者只在 Linux
下和 Windows Server
下可用。
INDE 可以免費下載,建議下載它的離線安裝包,因為很多功能你並不需要,使用離線安裝包,你可以指下載你想要的功能。
安裝 Media SDK
在 Windows 上安裝 Media SDK
比較簡單,請參考這個鏈接中的安裝方法。我們只使用它做視頻編碼,所以只需要選擇build
下的
- Media SDK for Windows
- Media Raw Acclecerator for Windows
這兩項就可以了。
Windows 下編譯支持 qsv 的 FFMPEG 庫
編譯 mfx_dispatcher
windows 編譯 qsv 之前需要安裝 mfx_dispatcher
,它相當於是應用程序和具體的硬件加速庫之間的一個中間層,它負責幫助應用庫定位底層代碼,這樣應用庫就可以不用直接鏈接到硬件加速的具體實現。
[mfx_dispatcher
][] 代碼可以在 github
上下載到,在 github 的 README 中也提供了編譯方法。需要注意的是,它使用的編譯工具是 mingw64
的x86_64
工具鏈,如果你使用的是 mingw64
的 i686
工具庫,記得把教程中的 x86_64
替換成 i686
。
mfx_dispatcher
安裝完成之后會在 /usr/i686-w64-mingw32/usr/local/
下生成相應的庫文件和頭文件。
鏈接到 FFMPEG
FFMPEG 需要使用 pkg-config
定位 libmfx
庫,這個庫的 libmfx.pc
文件在安裝完 mfx_dispatcher
之后會安裝在/usr/i686-w64-mingw32/usr/local/lib/pkgconfig
目錄下。為了讓 FFMPEG
的configure
腳本能夠找到它你需要把這個地址加入到 PKG_CONFIG_PATH
中。
export PKG_CONFIG_PATH=/usr/i686-w64-mingw32/usr/local/lib/pkgconfig
為了讓 FFMPEG
支持 qsv
你需要加入下面三個配置選項:
./configure --enable-libmfx \
--enable-encoder=h264_qsv \
--enable-decoder=h264_qsv \
...
使用中可能會出現的問題
在使用 h264_qsv
編碼器的時候,可能會出現 Error initializing an internal MFX session
錯誤,目前沒有找到具體原因。在把 Media SDK 下的libmfxhw32.dll
文件拷貝到執行目錄下之后這個問題就消失看