lwinput.auiでQSV deocdeを実装してくださっているので、試してみた。
時間ないのでメモ書き程度。
ビルド方法
mingwで
1.
mfx_dispatchをインストール
2. ffmpegのconfigureオプションに--enable-libmfx --extra-libs="-lsupc++ -lstdc++"をつけてインストール
3. ビルドしたffmpegで "ffmpeg -decoders | grep qsv"としてqsv系のデコーダが有効になっているかを確認
4. この状態でlwinput.auiをビルド
5.Avisynth/VapourSynthはとりあえず放置
6. できたlwinput.auiをAviutlのプラグインフォルダに放り込む。
7. Aviutlフォルダにlibmfxsw32.dllがあったら消す! (重要) どういうことなのかわからんが、これがあるとこちらが使われてしまう!
8. lwinput.auiの設定画面で"prefered decoder"のところに、"h264_qsv""mpeg2_qsv""hevc_qsv"のいずれかを使用したいものを記述する。
動作確認
環境1
OS : Windows 8.1 (x64)
CPU: Intel Core i7-6700K @ 4.00GHz [TB: 4.29GHz] (4C/8T)
GPU: Intel HD Graphics 530 (24EU) 350-1150MHz [95W] (20.19.15.4312)
環境2
OS : Windows 8.1 (x64)
CPU: Intel Core i7-4770K @ 3.50GHz [TB: 4.00GHz] (4C/8T)
GPU: Intel HD Graphics 4600 (20EU) 200-1250MHz [84W] (10.18.14.4170)
環境3
OS : Windows 10 (x64)
CPU: Intel Core i7-4610Y @ 1.70GHz [TB: 2.90GHz] (2C/4T)
GPU: Intel HD Graphics 4200 (20EU) 200-850MHz [11W] (20.19.15.4326)
環境4
OS: Windows 10 (x64)
CPU: Intel Celeron(R) N3150 @ 1.60GHz [TB: 2.06GHz] (4C/4T)
GPU: Intel HD Graphics (12EU) 200-640MHz (10.18.15.4256)
共通
lwinput r820
Aviutl 1.00
確認結果 & 気づいた点
下記結果は、上記4環境いずれでも同じだった。
コーデック | コンテナ | 動作 |
---|
H.264 | mp4 | 正常動作 |
HEVC | mp4 | libmfxhw32.dllは使用されているが、正常にデコードされない (画面が黒いまま) |
MPEG2 | ts | 正常動作するが、無理なシークをするとフリーズ |
・特にH.264はシークも含めて正常に動作していて、素晴らしいと思う。
・基本的にCPUよりシークが遅いが、Media SDKの初期化コスト(ResetPipeline)が高いためと考えられる。(パイプライン破棄→スレッド破棄→スレッド生成→パイプライン構築…)
・preferred decoderがひとつしか書けないのは仕様?
スポンサーサイト