NVEnc 4.68

English version of changelog>>

[NVEncC]
・avsw/avhw読み込み時の入力オプションを指定するオプションを追加。( --input-option )

・trueHDなどの一部音声がうまくmuxできないのを改善。

・4.66から、vpp-yadifの出力が異常となってしまう問題への対策。
yadifを変更した記憶はなく、なにが原因かさっぱりわからなかったので、とりあえず処理を追いかけてみると、vpp-yadifのソースコードから呼び出している関数が、vpp-yadifのソースコードにあるほうの関数でなく、vpp-smoothの同名関数をなぜか呼びに行くという、わけのわからないことが起こっていた。よくわからん…。

とりあえず、関数名をそれぞれ変えることにして回避。

[NVEnc.auo]
・4.67での変更が不十分だったので修正。
特にAviutlで自動フィールドシフトを使用した場合に正常に動作しなかったのを修正。そのほかmuxerを読んだときに死んでしまうエラーの場合には、改善されると思う。



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

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

ソースはこちら>>


スポンサーサイト



コメントの投稿

非公開コメント

動作確認しました

自動フィールドシフト有効時、remuxer.exeのエラーが発生しないことを確認しました。
実は今までエンコード中にaviutlを最小化する、というのを結構やっていて、ひょっとするとフレームが化けていたのに気づいていなかった?…と今更ながらに冷や汗かいていたのですが、これで安心して最新版を使えます。
ありがとうございました。

vpp-yadif の問題は解決

rigaya さん、vpp-yadif の問題が修正されていることを確認しました。いつもテストに使っているファイルでも、画は正常ですし出力サイズも v4.65 と同一でした。迅速なご対処に感謝いたします。

最初、緑な画面を見たときは心底驚きましたが。消してしまった 10 あまりほどの TS ファイルも1 つを除いて取り戻せましたし、その 1 つも 9 割が無事な上に再放送をよくやっている番組なので事実上問題ありません。ちょっと変わった経験をしたぐらいに済んで本当に良かったです(笑)

原因が不審ということでコンパイラのバグなんでしょうかね。最適化周りで突飛な動きになることがあると聞きますが…。

Re: vpp-yadif の問題は解決

ご心配をおかけしすみません。1 つを除いて取り戻せましたとのことで、大きな被害がなく安心いたしました。

わたしもちょっと予想外の原因で驚いています…。

そういえば、

NVEncは、マルチスレッドの動作をするのでしょうか?14C28TのCPUとQuadro_RTX_4000のNVEncを使用していますが、1スレッドだけ100%になっていたので気になった所存です

Re: そういえば、

一応、こんな感じでデフォルトで複数のスレッドが動作します。

1. デコード
2. 映像フィルタ・エンコード (メインスレッド)
3. 出力 + 音声フィルタ・エンコード
4. パフォーマンス測定

SWデコードの場合、対応していれば1の中でさらにマルチスレッドします。

HWデコード+HWエンコードの場合、正直 2. のメインスレッド以外は負荷が少なすぎてあまり見えません。2.のスレッドのCPU使用率が100%に貼り付くことが多いですが、これは速度を最大化するため、GPU処理の終了をずっとチェックしているからです。

"--cuda-schedule sync"を指定すると、GPUタスクの終了までスレッドをスリープさせるようになるので、メインスレッドのCPU使用率も下がります(そのかわり速度が落ちてしまうことが多いです)。
https://github.com/rigaya/NVEnc/blob/master/NVEncC_Options.ja.md#--cuda-schedule-string

HWデコード+HWエンコードの場合、CPUの演算量自体はさほど多くないので、読み込み(入力・デコード)を待っていたり、GPUの処理を待っていたりすることが多いです。

main444を指定しても、ログにmain still pictureと出力されるのは何故なのか教えて下さい。

はじめまして

HDDにあるh.264のデータ量を減らすためにh.265に再変換しようと考えており、NVEncCで再変換を行っています。
最初はmain10プロファイルでエンコードをしていたのですが、
main444にすると少しだけSSIMが向上したのでmain444で再変換を行うようにしました。
しかし、ログをよく見ると"Stream #0:0: Video: hevc (Main Still Picture)"と出力されていました。

main444は "https://www.jstage.jst.go.jp/article/itej/69/3/69_218/_pdf" の220ページに書かれているようなRExtのMain 444であって、Main Still pictureとは別のプロファイルだと考えていたのですが、GeForceはMain Still pictureとして扱うのでしょうか。

以下がログなのですが、指定はmain444なのにStreamにはMain Still Pictureと表示されています。

NVEncC (x64) 4.68 (r1402) by rigaya, Mar 7 2020 21:57:25 (VC 1924/Win/avx2)
OS Version Windows 10 x64 (18363)
CPU AMD Ryzen 9 3900X 12-Core Processor (12C/24T)
GPU #0: GeForce RTX 2060 SUPER (2176 cores, 1650 MHz)[PCIe3x16][442.59]
NVENC / CUDA NVENC API 9.1, CUDA 10.2, schedule mode: spin
Input Buffers CUDA, 46 frames
Input Info avcuvid: H.264/AVC, 1440x1080, 30000/1001 fps
Vpp Filters cspconv(nv12 -> yuv444(16bit))
ssim psnr (yuv444(10bit))
Output Info H.265/HEVC main444 10bit @ Level auto
1440x1080p 4:3 29.970fps (30000/1001fps)
avwriter: hevc, aac => matroska
Encoder Preset quality
Rate Control VBRHQ
Bitrate 1500 kbps (Max: 25000 kbps)
Target Quality auto
Initial QP I:20 P:23 B:25
VBV buf size auto
Lookahead on, 32 frames, Adaptive I, B Insert
GOP length 360 frames
B frames 5 frames [ref mode: each]
Ref frames 16 frames, MultiRef L0:6 L1:2
AQ on
CU max / min auto / 8
VUI range:full
Others mv:Q-pel nonrefp aud pic-struct
Output #0, matroska, to 'Q:\video_tempQ\conv2\_265068.mkv':
Metadata:
encoding_tool : NVEncC (x64) 4.68
encoder : Lavf58.35.101
Stream #0:0: Video: hevc (Main Still Picture), yuv444p10le(progressive), 1440x1080 [SAR 4:3 DAR 16:9], q=2-31, 1k tbn (default)
Stream #0:1: Audio: aac (LC) ([255][0][0][0] / 0x00FF), 48000 Hz, stereo, fltp (default)
Metadata:
BPS-eng : 181249
DURATION-eng : 02:09:53.600000000
NUMBER_OF_FRAMES-eng: 365325
NUMBER_OF_BYTES-eng: 176573627
_STATISTICS_WRITING_APP-eng: mkvmerge v31.0.0 ('Dolores In A Shoestand') 64-bit
_STATISTICS_WRITING_DATE_UTC-eng: 2019-09-05 07:01:19
_STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES


Re: main444を指定しても、ログにmain still pictureと出力されるのは何故なのか教えて下さい。

main444時のそのあたりの挙動はチェックしてませんでした。次回修正してみたいと思います。

エラー表示があります

現在、GeForce 445.75、Win10、64bitを使っています。
いつの間にか、以下のようなエラー表示が出ているのに気づきました。

nvenc : Error on nvEncGetEncodePresetConfig: 4 (NVENC this indicates that device passed to the API call is invalid)

表示は出るのですが、エンコードは進みます。問題なく動画が
できていると思います。

どのような状況が考えられるか、お教えいただけると助かります。

No title

----------------------------------------------------
auo [info]: NVEncC options...
-c h264 --cqp 20:23:25 --qp-init 20:23:25 --gop-len auto --bref-mode each --no-mp4opt -o "E:\TFC+録画用\てすと.mp4" --sm -i
-
nvenc : Error on nvEncGetEncodePresetConfig: 4 (NVENC this indicates that device passed to the API call is invalid)
sm: could not open parent process handle.
failed to initialize file reader(s).
Failed to open input file.
auo [error]: NVEncCが予期せず途中終了しました。NVEncCに不正なパラメータ(オプション)が渡された可能性があります。
auo [error]: NVEncCが予期せず途中終了しました。NVEncCに不正なパラメータ(オプション)が渡された可能性があります。
auo [info]: CPU使用率: Aviutl: 0.18% / NVEnc: 7.23%
auo [info]: Aviutl 平均フレーム取得時間: inf ms
auo [info]: NVEncエンコード時間 : 0時間 0分 0.7秒
auo [info]: 総エンコード時間 : 0時間 0分 0.9秒

2020年3月25日 5時35分 エンコード終了
--------------------------------------------------------------------------
このようなエラーで止まってしまいます。対策がわかればぜひ教えて頂きたいです。

No title

元々入っていたNVEnc関係のファイルをすべて削除した後に再インストールしたら止まること無く動くようになりました。ただ上の方が言っているようにエラーが出ます。
nvenc : Error on nvEncGetEncodePresetConfig: 4 (NVENC this indicates that device passed to the API call is invalid)
曖昧な書き方で申し訳ないのですが何かわかることがあればよろしくお願いします。

No title

いつも更新おつかれさまです

自分も同じく445.75にアップデートしてから
nvenc : Error on nvEncGetEncodePresetConfig: 4 (NVENC this indicates that device passed to the API call is invalid)
のエラーが出るようになりました
NVEncCx64 4.65を使っていて出たのですが、4.68 4.52 4.42 4.38で試しても同様でした
win10 64bit GTX1050+mp.4でh.264、HEVCのデフォルトオプションで共に発生しています
作業は最後まで普通にできて動画も普通に見られます

そういえば今回のドライバアップデートではGeforce Experienceに再起動を促されました(再起動するまで該当GPUは使用できない状態、タスクマネージャーにも表示されず)
いつもはそのまま使えるのですが大きな変更があったのでしょうかね

これとは関係ないのですがQSVEncオプション一覧で
「--i-adapt」が「--i-apapt」となってます(--bも同様)
以前気がついたのですが報告するのを忘れてました

No title

役に立つか分かりませんがGTX1050のNVEncC_future_testで4.65と4.68を比較したところ以下のような違いがありました

Codec: H.264/AVC
Max Level
(4.65) 51
(4.68) 62
Min Level
(4.65) 1
(4.68) 10

Codec: H.265/HEVC
Max Level
(4.65) 62
(4.68) 186
Min Level
(4.65) 1
(4.68) 30
Constrained Encoding
(4.65) no
(4.68) yes

No title

すみません4.65の方はドライバアップデート前のものでした
nvenc_futuresにドライバのバージョンが出力されてないので分かりませんが、2/25に実行してるので2つくらい前のものかと思われます
そもそもNVEncC_future_testの仕様が変わってるのでなければNVEncのバージョンで差はでませんね、お騒がせしました

なので上記のものは
4.65→(バージョンが定かではない)以前のドライバ
4.68→445.75
に変換して見てください

ドライバ445.75のエラーメッセージ

ドライバを445.75に更新したらあっさり再現しました。

このメッセージはエンコードには一切関係ないですが、気になるのでNVEnc 4.69でこのメッセージが出ないよう、回避するようにしました。
https://rigaya34589.blog.fc2.com/blog-entry-1234.html
プロフィール

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対応版

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