こんにちは
maybe one day have vp9 encode?
いつもお世話になっております。
NVEncC 5.11 を使用していて気になった挙動がありますので報告いたします。
- 内部 muxer で出力した mp4 のタイムベース(tbn)が正しく設定されていない(FPS にかかわらず 15360 となる)。
- タイトルバーで remain h:mm:ss の ss 部が稀に 60 と表示される。
- 出力プラグインから渡されるオプションに含まれる --no-mp4opt --sm のヘルプが表示できない。
また、qp・ssim・psnr にそれぞれ最大値と最小値の情報を追加していただくことはできないでしょうか。
以上ご確認のほどよろしくお願いいたします。
> 翡璃月 様
Unfortunately, NVENC does not support VP9 HW encode. Please check for the list on the link.
https://developer.nvidia.com/video-encode-decode-gpu-support-matrixIf NVENC supports VP9, I might add it in NVEncC.
> 2020-08-09(00:58)
- mp4のタイムベースについて
確認したところ、fps=30000/1001ではtimebase=120000(=30000*4)、fps=30/1ではtimebase=15360(=30*512)となります。いずれも約分済みfpsの分子の倍数のため、フレームの時刻を正確に表現可能な値であり、問題ではありません。
- 出力プラグインから渡されるオプション
これらはAviutl出力プラグインとNVEncC連携時の専用オプションとなっております。出力プラグインのみが使用すべきオプションとなっており、ヘルプには意図的に記載しておりません。また、今後も記載する予定はありません。
- qp・ssim・psnrの最大・最小等の集計予定はございません。
こんにちは。
--trimのオプションでエンコードするフレームを指定した際なのですが、他は同じ条件で--trimを指定してない場合に比べて進捗状況のfps表記のみが遅くなります。(120fpsが20~40fps)
エンコード済みフレーム数の増え方を目視で確認するとだいたい100fpsぐらい出てるように見えるのですが
これはデコーダ?がtrimで指定したフレームまで読み込む時間も含めるとこれぐらいのfps、という意味で合ってますでしょうか?
> これはデコーダ?がtrimで指定したフレームまで読み込む時間も含めるとこれぐらいのfps
おっしゃる通りです。
基本的に表示しているfpsは「処理を開始してからの平均のエンコードfps」となっています。
trimでエンコードせず、デコーダだけを回している間は、エンコードfpsはそのときだけは実質的に"0fps"となってしまうので、平均エンコードfpsは低下します。
trimを使用するとfpsが事実上あまり意味のない値になってしまうのですが、「処理を開始してからの平均のエンコードfps」という原則と整合するほかのいい方法も思いつかなかったので、このような表示としています。
NvEncC64.exeが画面に表示するmpeg2videoやaacのログを消す方法はありますか?
logオプションでファイルを指定するとそこに書かれますが画面からは消したいです。
試しに--log-level noneを指定してみたらダメでした。
ご返答ありがとうございます。スッキリしたので助かります。
ログを表示したくない場合は、--log-level errorを使用するか、標準エラー出力をファイルやNULに流してしまってください。
cmd.exeでは
2> NUL
という使い方ができるんですね…
うまくいきました。
ありがとうございます。
ずっとcommand.comの知識のままでした。
ちなみに--log-level errorを指定しても
Invalid dimensions 0x0
などの出力は抑制されないようです。
ハードの問題かアプリの問題かよくわからないのだがエンコード自体が終了してMP4ファイルが作成されているが
NVNC64.exeが音声エンコード終了を待ちでデッドロックしてしまうことがあり複数のファイルを連続処理するときに困ってします。
AVIUTLのタイトルバーや入出力ファイルのアクセス権をチェックしてプロセスキルを行って対処しています。
こんにちは。
バグ?に遭遇したので報告します。
8K解像度の動画をNVencCのHEVC 10bitでエンコードする際、--ssimを付けると
cuvid: Failed cuvidCreateDecoder 2 (CUDA_ERROR_OUT_OF_MEMORY)
ssim/psnr: Error in decoder!
とエラーが表示されエンコードできませんでした。
4K以下の解像度の動画をソースにした場合は特に問題ありませんでした。
使用したコマンド:
NVEncC64.exe -c hevc --output-depth 10 -u P4 --vbr 50000 --ssim --audio-copy -i <hoge.mp4> -o <hogehoge.mp4>
使った動画:
http://footage3.openspc2.org/HDTV/footage/8K/24f/このサイトの「鉄道/列車/電車(Train)」にあるBlue Thunderの動画(テキトーに選んだだけです)
> NVENCデッドロック?
フリーズする現象は確認できておらず、申し訳ないですがよくわからないです。
> RXFさま
バグではなく、単純にGPUメモリ不足だと思います。8K 10bitはエンコードだけでかなりメモリを使うのでバッファを削減するなどしてもぎりぎりなのですが、--ssimはエンコード結果をオリジナルの画像と比較を行うため、下手するとエンコード以上にメモリを使ってしまうぐらい、もりもりメモリを使います。
そのため、残念ながら8K 10bitでは--ssim/--psnrは現状難しいかと思います。
ありがとうございます。
確かに、手元で調べてみたところFHD・WQHD・4Kのいずれも8bit+SSIM無しに対して10bit+SSIM有りはVRAMを3倍(!)消費しているので、8bit+SSIM無しの時点で2.4GB消費する8Kは10bit+SSIM有りにすると単純計算で7.2GB、デスクトップの約1GB分を合わせるとRTX 2060 Superの8GBでは足りませんでした…
理由が分かってスッキリしました。ありがとうございます。
いつも楽しく使わせていただいています。同じ症状が何度かあったので、報告いたします。
NVEnc5.14、GeForce452.06、Win10、64ビットです。
通常GPU 80~160%くらいで推移してました(100%超えでもOK?かはわかりません)。バッチファイルで30~40本をNVEncCで処理させていると、どれくらいの本数を処理したごろかわかりませんが、GPU 3~10%となり、さらにエンコード最中・終了後にMPC-BE1.5.5(build5432)64ビットで動画を再生するととぎれとぎれの再生になります。
勝手にGPUメモリやリソースがうまく開放されてないのかなぁ、などと思っていますが、なにか心当たりがあれば教えていただけたらと思います。
よろしくおねがいします。
症状としてはGPUがなんらかの原因で重くなっているような感じですね。タスクマネージャのGPUメモリ等も増えてしまっている感じでしょうか。
GPUのメモリ等のリソースについては、1本のエンコードが終わってNVEncCのプロセスを落とす際に、プロセスの使ったリソースは解放されているはずです。そのため、連続でエンコードしてもあまり影響はなさそうに思います。
手元ではプログラムのテストをする際に、1本1本は短いものの800本近くバッチでテストエンコードをしますが、そういった事象は起きていないです。長い動画でないと発生しない、とかかもしれませんが…。
>タスクマネージャのGPUメモリ等も増えてしまっている感じでしょうか。
増えています。
テストもされているので、おそらく自分の環境依存なのかも、
と思います。ひどいときにはリブートすればもとに戻るので。