QSVEnc 2.27

ログ・エラー情報収集の強化と、機能の追加。

今回、内部的にはかなりの量のコードをいじったり再構成したりした。たぶん…バグってない…。

[QSVEnc / QSVEncC 共通]



・GPUデバイスの取得とGPUメモリ取得のあたりのログ情報・エラー情報を細かく取得できるようにした。
これまで、GPUデバイスやGPUメモリ取得のあたりは、エラー情報の取得が非常に貧弱で、このあたりでエラーが起こった際になにが起こっているのかよくわからない原因になっていた。

コードをごちゃごちゃと書き直して、このあたりのエラー情報をある程度取得することができるようにした。



[QSVEnc]



・AuoLinkが使用不可である場合にも、AuoLink関連のタブが見えていたのを修正。

・簡易インストーラでQuickTimeがダウンロードできなくなっていたのを修正。
x264guiEx 2.35v2とかと同じ更新。



[QSVEncC]



・出力バッファサイズを指定するオプションを追加。(--output-buf)
出力バッファサイズをMB単位で指定する。デフォルトは64、最大値は128。0で使用しない。これまで出力バッファを常に64MB確保していたのを変更できるようにする。

そもそもなんで大容量の出力バッファをデフォルトで設定しているかというと、書き込みをまとめて実行して、ディスクへの読み書きがなるべく混ざらないようにするため。バッファリング自体はOS側でもある程度行ってくれるのだが、アプリケーション側で明示的に出力バッファを設定してあげると、書き込みをその容量分まとめて書き込んでくれる。HDDなどに書き出す場合に断片化抑制ソフトなどが入っていない場合には、断片化の抑制にもつながるので、まあ多少意味はあるはず。

・出力スレッドを使用しないオプションを追加。(--no-output-thread)
出力スレッドはエンコードを高速化するけど、一方でそれなりにメモリを消費する。
そこでメモリ節約のため、出力スレッドを使用しないオプションを追加。まあいまどきメモリ節約の必要があるかというと微妙だが…。

デフォルトでは出力スレッドを使用する。(このオプションはオフ。)

・メモリ使用量を最小化するオプションを追加(--min-memory)。
現時点では、"-a 1 --no-output-thread --output-buf 0 --input-buf 1"と同じ。基本的に遅くなるので、よっぽどメモリが少ない環境以外では特に使う必要はない。



QSVEnc ダウンロード>>
ダウンロード (ミラー) >>
OneDriveの調子がいまいちの時はミラー(dropbox)からどうぞ。同じものです。

QSVEncBenchmark.zipはベンチマーク用です。(約220MBと重いので注意)。run_benchmark.batをダブルクリックで実行です。

QSVEncCのオプションについてはこちら。
QSVEncCオプション一覧>


スポンサーサイト



コメントの投稿

非公開コメント

管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます

Re: タイトルなし

この問題はドライバによる問題であり、4312ドライバまでは発生しません。LA-ICQ利用時は4312以前のドライバをご利用ください。

管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます

エンコードが途中で止まります.…

こんにちは。
いつも大変便利に使わせて頂いております。

2.27以降、エンコードすると
「qsv [error]: error at encode thread.」とログに出てエンコードが止まってしまう事があります。
(エンコード開始30秒~1分。どの動画ファイルもこの時間内に停止)

プログラム等全くの素人ですが、自分なりに再現性を確認したところ、qsv [warn]: Adaptve I-frame insert is not supported on current platform, disabled.」という警告が出た後にエンコードが開始され、のちに停止してしまうことが分かりました。

そもそも適応的Iフレームは私のPCではグレーアウトしてチェックできないので「対応していないのでdisabled」的な警告は謎になります…

あと、2.28→2.26にダウングレードした時、AVIUTLのバッチ処理の中にまだ2.28の時にエンコードオプションを指定したジョブが残っており、これをそのまま2.26にてエンコード開始するとやはり2.26上でも同じwarnが発生してエンコードが止まってしまいました。また、そのときのプロファイルを2.26で読み込むと「破損しているので削除しますか?」というエラーが出ました。


参考になるか分かりませんが、意味ありそうな部分のログを貼っておきます

エンコード失敗の時
qsv [warn]: Adaptve I-frame insert is not supported on current platform, disabled.
qsv [info]: QSVEnc (x86) 2.28 by rigaya, Jan 25 2016 22:18:13 (VC 1900/Win/avx2)
qsv [info]: OS Windows 7 (x64)
qsv [info]: CPU Info Intel Core i5-4460 @ 3.20GHz [TB: 13.20GHz] (4C/4T) <Haswell>
qsv [info]: GPU Info Intel HD Graphics 4600 (20EU) 400MHz (10.18.14.4332)
qsv [info]: Media SDK QuickSyncVideo (hardware encoder) PG, 2nd GPU, API v1.16
qsv [info]: Async Depth 6 frames
qsv [info]: Buffer Memory d3d9, 4 input buffer, 68 work buffer
qsv [info]: Input Info auo: yuy2->nv12p [AVX2], 720x406, 29970/1000 fps
qsv [info]: VPP Enabled Denoise, strength 40
qsv [info]: Resizer, 720x406 -> 720x404
qsv [info]: Output H.264/AVC High @ Level 3
qsv [info]: 720x404p 1:1 29.970fps (2997/100fps)
qsv [info]: Target usage 1 - best
qsv [info]: Encode Mode LA-ICQ (Intelligent Const. Quality with Lookahead)
qsv [info]: Lookahead depth 45 frames, quality medium
qsv [info]: Windowed RC off
qsv [info]: ICQ Quality 30
qsv [info]: QP Limit min: none, max: none
qsv [info]: Trellis Auto
qsv [info]: Ref frames 3 frames
qsv [info]: Bframes 2 frames, B-pyramid: off
qsv [info]: Max GOP Length 300 frames
qsv [info]: Scene Change off
qsv [error]: error at encode thread.

-----------

Re: エンコードが途中で止まります.…

>ぜろす様
報告ありがとうございます。現状現象の原因がまだわかっておりません。

今のところ、報告いただいた内容から、2.26〜2.28の間でプロファイルを壊してしまいそれが原因でおかしなパラメータが円コーダに渡されてしまっているのではないかと考えています。引き続き調べていきたいと思います。

Re: エンコードが途中で止まります.…

>今のところ、報告いただいた内容から、2.26〜2.28の間でプロファイルを壊してしまい(以下略)

お返事遅くなりました。忙しかったもので;

最新の2.36にてプロファイルを作りなおしたところ、全く再発しておりません。

やはりVerアップ後はいろいろ設定項目が増えたり減ったりする影響も考えて、何か問題が出た場合はプロファイルは使う側で作り直してテストする切り分けもやっていこうと思います。…単にバージョンが変わった影響より、私の方でプロファイルが破損しただけという可能性が濃厚かなと思い直しています…

基本的に古いバージョンのプロファイルを使い回すのはユーザー側の責任なので、大変失礼しました。

拡張QSV出力に出会ってから、エンコード時間がおもいっきり短くなって幸せでございます(*´д`*)

Re: エンコードが途中で止まります.…

結局再発しました(TдT)

まっさらなAVIUTLと拡張QSVEnc2.36を用意して、プロファイルも念のためデフォルトボタンを押してから作りエンコードしましたが、やはり「qsv [error]: error at encode thread.」という感じで止まってしまうソースが出ました。

色々バージョンを変えて試したところ
・2.26~2.31ではOK

・2.32ではエンコードスタート時にaviutlの例外エラー(発生モジュール:aviutl.exe オフセットアドレス:0x0004ef04 備考:OUTPUT_PLUGIN_TABLE::func_output()[拡張 QSV 出力])がでて、その後windows7がアプリケーションエラーをだしてaviutl落ち。

・2.33以降ではエンコードは開始されるものの、「qsv [error]: error at encode thread.」で止まる(止まるまでの時間は不定)

という感じになりました。

個人的には旧バージョンを使うことで十分利用できているので(他の方からも報告があるわけでもないので)積極的な対策は特に望んでませんが、一応報告した以上ある程度の結果だけはお伝えしようと思いました(^_^;)

Re: エンコードが途中で止まります.…

度々すいません(汗)

一つはっきりとした変化があったのでまたまたご報告を…

Lookaheadモードだとコケることがわかりました。
2.32以降、エンコードが失敗してしまうソースをVQPでエンコードしたところ問題なく完走しました。

ちなみに自分が失敗してたのはいつも先行探索付き品質固定モードでしたが、その他のLA付きも同様に全部コケました。

何かの参考になればと…。

Re: Re: エンコードが途中で止まります.…

貴重な情報提供をいただき、ありがとうございます。

こちらでもLA-ICQ等のLookaheadモードでいろいろ試しているのですが、再現できないため、原因への手掛かりがない状態です。なるべく似た環境となるよう、i7 4770Kと4332ドライバを使用しているのですが。

違いといえば、こちらのOSがWin 8.1 x64なことでしょうか…。

Re: Re: エンコードが途中で止まります.…

こんにちは。色々試していただきありがとうございます。

新しいバージョン2.38を使用してみたところ、以前問題のあったソースも難なくエンコードできました。

個人的には解決して嬉しいです(^o^;

ハード(種類・信頼性・安定性)、OS、ドライバなど原因の組み合わせは星の数ですよね…ソースの動画とスプリッタ・デコーダーの組み合わせの安定性なども…再現性はないところを見ると、そのような個人的な組み合わせと特定バージョンとの相性が悪かったのかもしれません…。忘れてください!(笑)

P.S.
QSVがAVIUTLで使えるようになってから、録画保存が綺麗に短時間で済むようになって感謝しています(^o^)

Re: Re: Re: エンコードが途中で止まります.…

>ぜろす様
うまく動かないことがあり、お手数おかけしました。2.39は問題ないとのことでよかったです。

本当は、いろいろな組み合わせでも無事動くとよいのですが、なかなか難しいです…。
プロフィール

rigaya

Author:rigaya
アニメとか見たり、エンコードしたり。
連絡先: rigaya34589@live.jp
github twitter

最新記事
最新コメント
カテゴリ
月別アーカイブ
カウンター
検索フォーム
いろいろ
公開中のAviutlプラグインとかのダウンロード

○Aviutl 出力プラグイン
x264guiEx 3.xx
- x264を使用したH264出力
- x264guiExの導入紹介動画>
- x264guiExの導入
- x264guiExのエラーと対処方法>
- x264.exeはこちら>

x265guiEx
- x265を使用したH.265/HEVC出力
- x265guiExの導入>
- x265.exeはこちら>

QSVEnc + QSVEncC
- QuickSyncVideoによるHWエンコード
- QSVEnc 導入/使用方法>
- QSVEncCオプション一覧>

NVEnc + NVEncC
- NVIDIAのNVEncによるHWエンコード
- NVEnc 導入/使用方法>
- NVEncCオプション一覧>

VCEEnc + VCEEncC
- AMDのVCE/VCNによるHWエンコード
- VCEEnc 導入/使用方法>
- VCEEncCオプション一覧>

svtAV1guiEx
- SVT-AV1によるAV1出力
- svtAV1guiExの導入>
- SVT-AV1単体はこちら>

VVenCguiEx
- VVenCによるVVC出力
- VVenCguiExの導入>

ffmpegOut
- ffmpegを使用した出力
- ffmpegOutの導入>


○Aviutl フィルタプラグイン
自動フィールドシフト (ミラー)
- SSE2~AVX512による高速化版
- オリジナル: aji様

clfilters 
- OpenCLベースの複数のGPUフィルタ集
- 対応フィルタの一覧等はこちら

エッジレベル調整MT (ミラー)
- エッジレベル調整の並列化/高速化
- SSE2~AVX512対応
- オリジナル: まじぽか太郎様

バンディング低減MT (ミラー)
- SSE2~AVX512による高速化版
- オリジナル: まじぽか太郎様

PMD_MT
- SSE2~AVX512による高速化版
- オリジナル: スレ48≫989氏

透過性ロゴ (ミラー)
- SSE2~FMA3によるSIMD版
- オリジナル: MakKi氏

AviutlColor (ミラー)
- BT.2020nc向け色変換プラグイン
- BT.709/BT.601向けも同梱

○その他
Amatsukaze改造版
- AmatsukazeのAV1対応版

rkmppenc
- Rockchip系SoCのhwエンコーダ

x264afs (ミラー)
- x264のafs対応版

aui_indexer (ミラー使い方>)
- lsmashinput.aui/m2v.auiの
 インデックス事前・一括生成

auc_export (ミラー使い方>)
- Aviutl Controlの
 エクスポートプラグイン版
 エクスポートをコマンドから

aup_reseter (ミラー)
- aupプロジェクトファイルの
 終了フラグを一括リセット

CheckBitrate (ミラー, 使い方, ソース)
- ビットレート分布の分析(HEVC対応)

チャプター変換 (使い方>)
- nero/appleチャプター形式変換

エッジレベル調整 (avisynth)
- Avisynth用エッジレベル調整

メモリ・キャッシュ速度測定
- スレッド数を変えて測定
- これまでの測定結果はこちら

○ビルドしたものとか
L-SMASH (ミラー)
x264 (ミラー)
x265 (ミラー)
SVT-AV1 (ミラー)

○その他
サンプル動画
その他

○読みもの (ミラー)
Aviutl/x264guiExの色変換
動画関連ダウンロードリンク集
簡易インストーラの概要

○更新停止・公開終了
改造版x264gui
x264guiEx 0.xx
RSSリンクの表示
リンク
QRコード
QR