・使用可能な環境では、常にd3d11を優先して使用するよう変更。 MediaSDKのサンプルでも
このような変更が行われていたので対応。
・5.02から、Failed to find d3d9 deviceと出てしまうのを修正。・5.01から、avhw以外の読み込みから直接OpenCLフィルタに渡すと、出力がおかしくなっていた問題を修正。・5.01から、OpenCLでcropすると色成分がずれるのを修正。・Broadwell以前の環境でvpp-mpdecimate/decimateがフリーズしてしまう問題を回避。どうもOpenCLのqueueを用いた最適化を行うと、フリーズが発生してしまう模様。Kabylake以降では発生しないし、確認した限りでは問題点を発見できなかった。
ちょっと対策が思いつかないので、Broadwell以前ではqueueを用いた最適化を行わないよう変更した。
QSVEnc ダウンロード>>ダウンロード (ミラー) >>OneDriveの調子がいまいちの時はミラー(GDrive)からどうぞ。同じものです。QSVEncBenchmark.zipはベンチマーク用です。(重いので注意)。run_benchmark.batをダブルクリックで実行です。
QSVEncCのオプションについてはこちら。
QSVEncCオプション一覧>ソースはこちら
スポンサーサイト
古いマシンにも対応していただき、本当にありがとうございます
修正していただいたvpp-decimateですが、
IvyとHaswellで1920x1080の動画を入力した際に変換されずに終了してしまいました
Skylakeで使用した場合や
1280x720以下の動画では問題ありません
Haswellでは以下のメッセージが出ました(Ivyでは出ません)
0x00007FF6B8DAB294 (0x0000000000000000 0x0000019FDDACE9D0 0x00000005B46FE8F9 0x00000005B46FE919), clrngMrg31k3pDeviceRandomU01Array_() + 0xC704 bytes(s)
0x00007FF6B8DAC9FA (0x00000005B46FE9A8 0x0000000000000014 0x00000005B46FEEC0 0x00000005B46FEAD0), clrngMrg31k3pDeviceRandomU01Array_() + 0xDE6A bytes(s)
0x00007FF6B8DAD142 (0x0000000000000000 0x00000005B46FEB60 0x0000019FE0FD5170 0x00007FF6B8E79920), clrngMrg31k3pDeviceRandomU01Array_() + 0xE5B2 bytes(s)
0x00007FF6B8DFBB34 (0x0000000000000000 0x00000005B46FEB60 0x0000000000000007 0x00000005B46FEB60), clrngMrg31k3pDeviceRandomU01Array_() + 0x5CFA4 bytes(s)
0x00007FF6B8D32275 (0x0000019FE219E9B0 0x0000019FE14D64F0 0x0000019FDDC387D8 0x00007FF6B8F97FE8)
0x00007FF6B8D48BE4 (0x0000019FD7748F30 0x0000019FD7748F30 0x0000000000000000 0x000000000000002D)
0x00007FF6B8CCC030 (0x00007FF6B8EC5890 0x0000000000000013 0x0000019FD7724340 0x0000000000000000)
0x00007FF6B8CCC08B (0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000)
0x00007FF6B8E53C8C (0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000), clrngGetLibraryDeviceIncludes() + 0x5AEC bytes(s)
0x00007FFCCE057034 (0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000), BaseThreadInitThunk() + 0x14 bytes(s)
0x00007FFCCF162651 (0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000), RtlUserThreadStart() + 0x21 bytes(s)
> Skylakeで使用した場合や1280x720以下の動画では問題ありません
なかなか難しいエラーですね。Skylake以前のOpenCLはたまによくわからないことが起こるので、またそういった類のことかもしれないですが…。
vpp-decimateのエラーの件ですが、clrngMrg31k3pxxxxというのが乱数生成のルーチンなので、メッセージ的に乱数を生成しているvpp-debandのエラーかもしれません。(vpp-decimateを使うとdebandのほうでエラーが起こってしまう?)
念のため確認ですがvpp-debandも併用されてらっしゃるという認識でよいでしょうか。
いえ、vpp-debandは使用していません
実行コマンドと、Haswellで表示されたメッセージ全文は以下の通りです
QSVEncC64.exe -i in.mp4 --vpp-decimate -o out.mp4
--------------------------------------------------------------------------------
out.mp4
--------------------------------------------------------------------------------
QSVEncC (x64) 5.04 (r2326) by rigaya, May 29 2021 13:53:16 (VC 1928/Win/avx2)
OS Windows 10 x64 (19041) [UTF-8]
CPU Info Intel Core i7-4650U @ 1.70GHz [TB: 3.06GHz] (2C/4T) <Haswell>
GPU Info Intel HD Graphics 5000 (40EU) 200-1100MHz [15W] (20.19.15.5171)
Media SDK QuickSyncVideo (hardware encoder) PG, 1st GPU, API v1.20
Async Depth 3 frames
Buffer Memory d3d11, 28 work buffer
Input Info avqsv: H.264/AVC, 1920x1080, 30000/1001 fps
VPP cspconv(nv12 -> yv12)
decimate: cycle 5, threDup 1.10, threSC 15.00
block 32x32, chroma on, log off, no queue opt
cspconv(yv12 -> nv12)
AVSync cfr
Output H.264/AVC(yuv420) High @ Level 4
1920x1080p 1:1 23.976fps (24000/1001fps)
avwriter: h264 => mp4
Target usage 4 - balanced
Encode Mode Constant QP (CQP)
CQP Value I:24 P:26 B:27
QP Limit min: none, max: none
Trellis Auto
Ref frames 3 frames
Bframes 3 frames, B-pyramid: on
Max GOP Length 240 frames
0x00007FF7B644B294 (0x0000000000000000 0x00000172F3D13840 0x00000042176FE529 0x00000042176FE549), clrngMrg31k3pDeviceRandomU01Array_() + 0xC704 bytes(s)
0x00007FF7B644C9FA (0x00000042176FE5D8 0x0000000000000014 0x00000042176FEAF0 0x00000042176FE700), clrngMrg31k3pDeviceRandomU01Array_() + 0xDE6A bytes(s)
0x00007FF7B644D142 (0x0000000000000000 0x00000042176FE790 0x00000172EE0267A0 0x00007FF7B6519920), clrngMrg31k3pDeviceRandomU01Array_() + 0xE5B2 bytes(s)
0x00007FF7B649BB34 (0x0000000000000000 0x00000042176FE790 0x0000000000000007 0x00000042176FE790), clrngMrg31k3pDeviceRandomU01Array_() + 0x5CFA4 bytes(s)
0x00007FF7B63D2275 (0x00000172F88260A0 0x00000172F8909D40 0x00000172F84D8600 0x00007FF7B6637FE8)
0x00007FF7B63E8BE4 (0x00000172EDFCA3A0 0x00000172EDFCA3A0 0x0000000000000000 0x000000000000002D)
0x00007FF7B636C030 (0x00007FF7B6565890 0x0000000000000013 0x00000172EDFA0900 0x0000000000000000)
0x00007FF7B636C08B (0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000)
0x00007FF7B64F3C8C (0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000), clrngGetLibraryDeviceIncludes() + 0x5AEC bytes(s)
0x00007FFCCE057034 (0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000), BaseThreadInitThunk() + 0x14 bytes(s)
0x00007FFCCF162651 (0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000), RtlUserThreadStart() + 0x21 bytes(s)
いつも便利に使わせていただいてます。
QSVEnc 5.04とドライバ27.20.100.9466、UHD730の環境で試したところ、いくつか意図していないであろう動作がありましたのでお知らせします。
1.vpp-afsでrffオプションが設定できない
2.y4mでパイプ入力したソースに対しフィルタが動作していない?
1は読んで字のごとくであり、2は試した範囲ではafsでインタレが解除されずフレームレートもおかしな感じになっていました。使用したオプションは以下の通りです。(同一ソースをqsvenccで直接読んだ場合は問題は発生しません)
ffmpeg -i 地デジ.ts -f yuv4mpegpipe - | QSVEncC64 --colorprim bt709 --transfer bt709 --colormatrix bt709 --tff -c hevc --icq 22 --output-depth 10 --interlace tff --vpp-afs preset=anime,timecode=true,24fps=true,level=1 --vpp-denoise 5 -o out.mp4 --y4m -i -
多機能なエンコーダーを日々更新してくださり、ありがとうございます
コマンドライン版のQSVEncCについて
verが 5.xx シリーズから
avisynthの avsファイルを読み込めなくなってしまいました
--input "<avsfile>" があると エラーログも何も出ない状態でCLIのウィンドウが閉じて、終了してしまいます
batファイルを開いて、一瞬で閉じる感じではなく、エンコード処理が始まるところで終了するといった挙動です
また、--input <filename>のように 直接動画ファイルを入力指定した場合は上記のような問題はなく正常にエンコードしました
verがQSVEncC_4.13までのものは avsファイルの読み込みに問題はありませんでした
こちらのエンコード環境は以下になります
QSVEncC (x64) 5.04 (r2326) by rigaya, May 29 2021 13:53:16 (VC 1928/Win/avx2)
reader: raw, avi, avs, vpy, avqsv [H.264/AVC, H.265/HEVC, MPEG2, VP8, VP9, AV1]
Environment Info
OS : Windows 10 x64 (19043) [UTF-8]
CPU: 11th Gen Intel Core i5-11500 @ 2.70GHz [TB: 4.60GHz] (6C/12T) <Tigerlake>
RAM: Used 12893 MB, Total 32389 MB
GPU: Intel UHD Graphics 750 (32EU) 350-1300MHz [65W] (30.0.100.9667)
Media SDK Version: Hardware API v1.35
MediaSDKを v1.34のドライバーも試しましたが上記と同様の結果となりました。
ご検証いただきたく思います。
> ToT 様
--vpp-decimateのエラーの件、バグを発見でき、QSVEnc 5.05で修正しました。
ご報告いただきありがとうございました。
> 2021-06-11(13:31) 様
1. vpp-afsではrffに対応していないにもかかわらず誤ってhelpに記載してしまっており申し訳ありません。消去しておきます。
2. y4mでパイプ入力したソースに対しフィルタが動作していない
QSVEnc 5.05で修正を試みました。
> avisynthの avsファイルを読み込めなくなってしまいました
最初再現できず、いろいろ試したところ、インストールするAvisynthのバージョンによって問題が生じるケースがあることがわかりました。
原因はよくわかっていないのですが、QSVEnc 5.05では読み込み部分を4.13相当に戻すことで回避できるようになったと思います。