日に日に高速になっていくエンコード環境を提供してもらい感謝しております。
NVEnc2.00β4を使っています
エンコードが始まらないことがあるのでお聞きしたいと思いました。
avs読み込みでのNVEncC使用時に
avsスクリプトにOpenCLを使うフィルターがあると
エンコードが始まらずエラーも出ず停止してしまいます。
aviutlの拡張NVEnc出力も同様です
avsファイル自体のAvsPmod・aviutlへの読み込み、プレビューは問題なくできます
使用したavisynthフィルター
・svpflow1.dllとsvpflow2.dll
・nnedi3ocl.dll
●使用環境
OS Windows 10 (x64)
CPU Intel Core i7-3770S
GPU Info Intel(R) HD Graphics 4000 (16 EU) @ 1400 MHz (10.18.10.4276)
VGA GTX950 (ドライバ361.91)・(Khronos OpenCL ICD 1.2.11.0)
AviSynth+ 0.1 (r1779, MT, i386)
aviutl(1.00)
(OSは64bitですが、avsからエンコードまでx86の方で行っています)
NVEncCからdebug logで記録できるところまで出しました。
--------------------------------------------------------------------------------
video.264
--------------------------------------------------------------------------------
QSVEnc 2.00β3 (x86)←何故か表記がQSVEncとなりましたがNVEncCでのlogです
OS Windows 10 (x64)
CPU Info Intel Core i7-3770S @ 3.10GHz [TB: 4.00GHz] (4C/8T)
GPU Info Intel(R) HD Graphics 4000 (16 EU) @ 1400 MHz (10.18.10.4276)
Loaded nvEncodeAPI.dll.
nvEncodeAPICreateInstance: Success.
cuInit: Success.
cuDeviceGetCount: Success.
cuDeviceGet: Success.
NVENC capabilities: OK.
cuCtxCreate: Success.
cuCtxPopCurrent: Success.
cuvidCtxLockCreate: Success.
InitCuda: Success.
InitDevice: Success.
NvEncOpenEncodeSessionEx: Success.
avs reader selected.
InitInput: input selected : 4.
avs: Avisynth 2.60(yv12)->nv12 [AVX], 1920x1080, 60000/1001 fps
InitInput: Success.
Open file "video.264": Success.
createDeviceFeatureList: Success.
CreateDecoder: Success.
SetInputParam: Success.←ここで止まってしまいます
ここから進まないので、ctrl+cで終了して出てきたlogになります
また、詳しくないのですが いろいろ試すうちに
エンコードできるケースと、できない(エンコードが上記にように始まらない)ケースが
ありましたのでそちらも一応お知らせします。
SysWOW64フォルダ内のOpenCL関連と思われるファイルについて
①intel内臓GPUの intel_OpenCL_ICD32.dll と intelOpenCL32.dll
②NvidiaのOpenCL.dll の3つがありまして…
avisynthのOpenCLを使うフィルターで 上記の①の方をフィルター処理に使わせると正常にエンコードができますが
同様に、②の方をフィルター処理に使わせつつ、NVEnc.exeにエンコードさせると最初に書いたように停止してしまいます。
今まで試したようなことをQSVEncでやってみると問題なくエンコードできます。
なお、使用しているCPUがskylakeでは無いため、--fixed-func のオプションを付けた場合は試せていません
ダラダラの長文で非常に読み難くなってしまい、大変申し訳ないのですが
現状β版であることを理解したうえで、今後のバージョンアップによって
NvidiaのOpenCL.dllを他と併用しつつ、NVEnc.exeでのエンコードが可能になるのか
という事をお聞きしたかったのです。
詳細なログをいただき、ありがとうございます。
SetInputParam: Success
の次に行うのは、
m_pEncodeAPI->nvEncInitializeEncoder
という、NVENCを初期化する部分で、ここで止まっていることになります。
これは、NVIDIAのドライバと同時にインストールされる"nvEncodeAPI.dll"を呼び出し、NVENCのエンコーダを初期化するものです。ここで止まってしまう原因は、NVEncの呼び出し方が悪いとか、あるいはそもそもOpenCLとCUDAを使用するNVENCは共存できないとかが考えられるのですが、いまのところ不明です。
楽観的に考えると、同一プロセスからNVIDIAのOpenCLとNVENCを呼ばなければ回避できたりするかもしれないと思います。avs読み込みでしたら、一度avs2pipemodでavsを読み込み、パイプ経由でフレームをNVEncCに渡してみていただけないでしょうか? (やはりだめかもしれませんが…)
こちらでも時間があるときに、実際に環境を構築して調査してみたいと思います。
助言された通りにavs2pipemodで処理を分けたところ
止まることなく、NVIDIAのOpenCL.dllを使わせつつ
NVEncCによる正常なエンコードができました。
OpenCLフィルターの処理内容にもよりますが、自分の使用環境では
フィルターをintel内臓GPU側のOpenCL.dllで処理させたときより
NVIDIA GPU側のOpenCL.dllで処理させた方が、
3倍程早いエンコードスピードになりました。
それぞれのエンコード結果のdebugログですが、長いので次のコメントへ送りました。
早々と解決策を教えてくださりありがとうございました。
このコメントは管理人のみ閲覧できます
>pan様
うまくいったようでよかったです。またログを提供いただきありがとうございました。
FrameQueueのSleepをやめてWaitForSingleObjectとSetEventのブロッキング動作に変えるのはいかがでしょう?
キューが空もしくは満杯の状態のCPU効率が上がるかも。
FrameQueueをI/O Completion Portsで同期するように変更して試してみましたが一般的な利用シーンだと効果なかったです・・・
名前付きパイプ\\.\pipe\input.mp4を入力ファイルとし、そこへ故意にゆっくりと書き込んでいく特殊な状況を作ってやっと効果が分かる程度でした。(dequeue空転)
遊んでいるCUDAコアを見ると、回す仕事がやはり欲しくなりますね〜w
入力が遅い場合にCPU使用率が低減できるのでは、というご指摘ありがとうございました。
NVEnc 2.02でおっしゃてくださったようにEventを使用してCPU使用率を削減しました。
改善ありがとうございます。
tvremoteviewerからNVEncC64.exeを起動させる方法がわからなくてハマってましたが、
ファイル名をQSVEncC64.exeに変えたら認識されました。
これが正しい方法なのかは分かりませんが、問題なく動いているようです。
Pentium G6950+GTX 750 Tiのサーバで、
ffmpeg -vcodec nvencより1.3倍速くなりました。
CPUも70%くらいから25%に改善されるので、
NVEncCに切り替えます。
tvremoteviewerは実行ファイルをファイル名で認識しているようだったので、わたしもNVEncCをQSVEncCに書き換えて実行していました。書き忘れてすみません。
あとは"--avqsv"を"--avcuvid"にするぐらいでしょうか。
これでたぶん問題ない気がします。
少し特殊な使い方かもしれませんが、H.264→HEVCのエンコードの際に、インターレースがかかってしまう事態が発生してしまいまして…。
<エンコード元ファイル>
- H.264 High Lv.4
- 29.97fps CFR
- QSVでデインタレ済み(PPF)
<エンコードしたいフォーマット>
- HEVC (プロファイル・レベルは自動)
- ビットレート変更(指定ではvbr2でlookahead30)
<コマンドオプション>
--avcuvid --audio-copy -c hevc --output-depth 10 --vbr2 2250 --maxbitrate 5000 --lookahead 30
つまり単純に圧縮がしたいだけなのですが、この指定でエンコードをかけると、ビットレートなどは反映されているのですが、何故かBFFインターレースになっていました。原因や対処法など、お教えいただけると幸いです。
●エンコード中表示
NVEnc 3.00 (x64), using NVENC API v7.0
OS Version Windows 10 (x64)
CPU Intel Celeron(R) G3920 @ 2.90GHz (2C/2T)
GPU #0: GeForce GTX1060 3GB (9EU) @ 1835MHz (373.06)
Input Buffers CUDA, 32 frames
Input Info avcuvid: H.264/AVC, 1440x1080, 30000/1001 fps
Vpp Filters cspconv(nv12 -> p010)
Output Info H.265/HEVC main10 @ Level auto
1440x1080p 4:3 29.97fps (30000/1001fps)
avwriter: hevc, aac => mp4
Rate Control VBR2
Bitrate 2250 kbps (Max: 5000 kbps)
Initial QP I:20 P:23 B:25
VBV buf size auto
Lookahead on, 30 frames, Adaptive I, B Insert
GOP length 300 frames
B frames 0 frames
Ref frames 3 frames, LTR: off
AQ off
MV Quality Q-pel
CU max / min 32 / 8
GPU Driver(v373.06)が10/6にリリースされたばかりなのは関係あるのかな、ないのかな、どうでしょう
詳細に報告いただきありがとうございました。
mux時にプログレッシブかどうかの判定を誤り、インタレ扱いになってしまっていたようです。NVEnc 3.01で修正しました。
http://rigaya34589.blog135.fc2.com/blog-entry-838.html
Driver 369.09
NVEncC --avcuvid --audio-copy 1 --interlaced tff -i "%~1" -o "output%~n1.mp4"
NVEnc 3.01 (x64), using NVENC API v7.0
OS Version Windows 10 (x64)
CPU Intel Core i7-2700K @ 3.50GHz (4C/8T)
GPU #0: GeForce GTX 760
Input Buffers CUDA, 32 frames
Input Info avcuvid: MPEG2, 1920x1080, 30000/1001 fps
Vpp Filters copyDtoD
Output Info H.264/AVC high @ Level auto
1920x1080i 1:1 29.970fps (30000/1001fps)
avwriter: h264, aac => mp4
Rate Control CQP I:20 P:23 B:25
Lookahead off
GOP length 300 frames
B frames 3 frames
Ref frames 3 frames, LTR: off
AQ off
MV Quality Q-pel
CABAC/deblock cabac / on
エンコードはされますが、縦に2倍に引き伸ばされ、上半分だけの1920x1080動画が出来上がります。
--vpp-deinterlace none や --tff も組み合わせて試しましたが結果は変わりませんでした
エンコードの高速さでNVEncのAviutlプラグイン版を利用させていただいております。
さて、CUI版にある--audio-streamオプションをAviutlプラグイン版に適用することはできませんでしょうか。
LRに振り分けられた、デュアルモノ音声のエンコードにも利用したく。
またその他CUI版にあるオプションをプラグイン版で使うような、オプション入力テキストボックス画面は作れないものでしょうか。
もし既に設定画面があるようでしたら申し訳ございません。
是非ご検討をお願いいたします。
残念ながら、NVEncCの--audio-streamなどの、入力ファイルから直接データを取り出すようなオプション類については、Aviutlプラグインのほうにつけることはできません。
AviutlプラグインのほうはあくまでAviutlでの編集結果を出力するもののため、Aviutlの出力プラグインではその仕組み上、NVEncCのような入力ファイルを直接変換するような動きができないためです。
すみませんが、このあたりは使い分けになってしまうかと思います。
ご返答ありがとうございます。
プラグインの仕組み上無理とのこと、了解しました。
ではですが、aviutlで編集されたデュアルモノ左右音声のうち片chを完全に捨てて、モノラル音声1chとして音声エンコーダに渡すようなことはできませんでしょうか。
もしくは、qaacであればこのようなオプションがあったような気がしますので、qaacのオプションを出力プラグイン設定画面内で指定できれば解決できるかもしれません。
すでに出力プラグインの仕事の範疇ではなくなっているような気もしますが、ご検討いただけると大変有難いです。
入力側でなく、あえて出力側で処理する場合、qaacのchanmapを使うのが良いかもしれません。NVEnc.iniのqaacのコマンド部分にchanmapオプションを使う記述を追記してください。(NVEnc.iniは自由に拡張可能です)
--chanmap 1,1で左だけを複製してステレオに、--chanmap 2,2で右だけを複製してステレオに変換できるはずです。
片方をmonoとして取り出したいとか、両方をmonoとして取り出したいとなると、いろいろ考えたのですが、現状の仕組みではできそうにありません。
すみませんが、ひとまずqaacのchanmapオプションを試してみていただけないでしょうか?
大変丁寧なご返答、大変ありがとうございます。
NVEnc.iniにqaacオプションを指定できるとのことで、是非試してみたいと思います。
これで英語版と日本語版の動画を簡便に作ることができそうです(出力側で行いたかったのは、編集を1回で済ませて、エンコード2回のほうが手数が少なく2種類の動画をつくることができるためでした)。
ご丁寧にありがとうございました。
エラーです…
------------------------------------------------------------------------------------------------------------------------------
nvenc [error]: copyHtoD: failed to allocate memory: cudaErrorUnknown.
auo [info]: 音声処理の終了を待機しています...
auo [info]: qaac (v2.64) で音声エンコードを行います。 ABR (AAC) ビットレート指定, 256kbps
auo [info]: 総エンコード時間 : 0時間 0分 0.2秒
auo [info]: エンコードを中断しました。
スペックです。
MS Windows 10 バージョン1607
Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz 4.00GHz
RAM:16GB
GPU:NVIDIA GeForce GTX 1060 3GB
いろいろ調べてみると「メモリ不足」らしいのですが、
どうなんでしょう・・・。
<追記>
できるだけ初期の設定で出力すると
------------------------------------------------------------------------------------------------------------------------------
nvenc [error]: cuCtxCreate error:0x2 (CUDA_ERROR_OUT_OF_MEMORY)
nvenc [error]: Cudaの初期化に失敗しました。
auo [info]: 総エンコード時間 : 0時間 0分 0.2秒
となりました・・・
こちらでもいろいろ試しましたが、再現せず、よくわからない状況です。
Aviutlは32bitなので、メモリを4GBまでしか使えない一方、結構NVEncでは無駄にメモリを取ってしまっていて、加えてNVEnc 3.14でさらにメモリ使用量を増やしたので本当にメモリ不足かもしれません。
ひとつ前のNVEnc 3.13でも動かないでしょうか?
お手数おかけしてすみませんが、ダウンロード先の[NVEnc_old]フォルダの中にNVEnc_3.13_7zip.7zがありますので、そちらも試してみていただけないでしょうか?
こんな時間にすみません。
返信ありがとうございます!
試してみたものの、別のエラーが出てしまいました。
------------------------------------------------------------------------------------------------------------------------------
nvenc [error]: cuCtxCreate error:0x2 (CUDA_ERROR_OUT_OF_MEMORY)
nvenc [error]: Cudaの初期化に失敗しました。
この出力をする前に一度出力しているのですが、
その時はエンコーダの初期化に失敗してしまったみたいです。
さらに調べましたが、現状こちらでの再現が難しく、なにが起こっているのかわからない状態です。申し訳ありません…。
そこで、NVEnc.auoのテスト版を作成してみました。より細かい情報が出るようになっていますので、一度NVEnc.auoをこちらに差し替えて実行いただき、その際ログウィンドウに表示された内容をそのまますべてコピペしていただけないでしょうか。
お手数おかけしますが、よろしくお願いします。
テスト版 →
https://1drv.ms/u/s!AsYziax1Q91rrjDPnXu6uYd-R56F
以下、出力ログです。
とても丁寧な対応、ありがとうございました!
------------------------------------------------------------------------------------------------------------------------------
nvenc [info]: Loaded nvEncodeAPI.dll.
nvenc [info]: nvEncodeAPICreateInstance: Success.
nvenc [info]: cudaGetLastError: cudaSuccess.
nvenc [info]: NVEnc (x86) 3.14 (r553) by rigaya, Jul 9 2017 21:15:27 (VC 1900/Win/avx2)
nvenc [info]: OS Version Windows 10 x64 (14393)
nvenc [info]: CPU Intel Core i7-6700K @ 4.00GHz (4C/8T)
nvenc [info]: GPU #0: GeForce GTX 1060 3GB (9 EU) @ 1708 MHz (384.76)
nvenc [info]: NVENC / CUDA NVENC API 8.0, CUDA 9.0, schedule mode: unknown
nvenc [info]: PeakPrivatesize: 548.3 MB
nvenc [info]: Privatesize: 357.1 MB
nvenc [info]: PeakVirtualSize: 3561.9 MB
nvenc [info]: VirtualSize: 3349.2 MB
nvenc [info]: cuInit: Success.
nvenc [info]: cuDeviceGetCount: Success.
nvenc [info]: cuDeviceGet: ID:0.
nvenc [info]: cuDeviceGetName: GeForce GTX 1060 3GB.
nvenc [info]: cuDeviceComputeCapability: Success: 6.1.
nvenc [info]: NVENC capabilities: OK.
nvenc [info]: using cuda schdule mode: sync.
nvenc [info]: cuCtxCreate: Success.
nvenc [info]: InitCuda: Success.
nvenc [info]: InitDevice: Success.
nvenc [info]: Performace Monitor: none
nvenc [info]: Performace Plot : none
nvenc [info]: NvEncOpenEncodeSessionEx: Success.
nvenc [info]: unknown: auo(yuy2)->nv12 [AVX2], 1920x1080, 60/1 fps
nvenc [info]: InitInput: Success.
nvenc [info]: createDeviceFeatureList: Success.
nvenc [info]: InitDecoder: Success.
nvenc [info]: InitFilters: Success.
nvenc [info]: SetInputParam: Success.
nvenc [info]: m_pEncodeAPI->nvEncInitializeEncoder: Success.
nvenc [info]: CreateEncoder: Success.
nvenc [info]: AllocateIOBuffers: Success.
nvenc [info]: bitstream: Opened file "D:\Kotori_Aozora_\Videos\YouTube\テスト動画\test.264"
nvenc [info]: bitstream: Added 8 MB output buffer.
nvenc [info]: Output: Initialized bitstream writer.
nvenc [info]: InitOutput: Success.
nvenc [info]: NVEnc (x86) 3.14 (r553) by rigaya, Jul 9 2017 21:15:27 (VC 1900/Win/avx2)
nvenc [info]: OS Version Windows 10 x64 (14393)
nvenc [info]: CPU Intel Core i7-6700K @ 4.00GHz [TB: 4.19GHz] (4C/8T)
nvenc [info]: GPU #0: GeForce GTX 1060 3GB (9 EU) @ 1708 MHz (384.76)
nvenc [info]: NVENC / CUDA NVENC API 8.0, CUDA 9.0, schedule mode: sync
nvenc [info]: Input Buffers CUDA, 36 frames
nvenc [info]: Input Info auo(yuy2)->nv12 [AVX2], 1920x1080, 60/1 fps
nvenc [info]: Vpp Filters copyHtoD
nvenc [info]: Output Info H.264/AVC high @ Level auto
nvenc [info]: 1920x1080p 1:1 60.000fps (60/1fps)
nvenc [info]: Encoder Preset default
nvenc [info]: Rate Control VBRHQ
nvenc [info]: Bitrate 7500 kbps (Max: 17500 kbps)
nvenc [info]: Target Quality auto
nvenc [info]: Initial QP I:20 P:23 B:25
nvenc [info]: VBV buf size auto
nvenc [info]: Lookahead off
nvenc [info]: GOP length 600 frames
nvenc [info]: B frames 3 frames
nvenc [info]: Ref frames 3 frames, LTR: off
nvenc [info]: AQ off
nvenc [info]: Others mv:auto cabac deblock adapt-transform:auto bdirect:auto
nvenc [info]:
nvenc [info]: Flushed Encoder
nvenc [info]: bitstream: Closing...
nvenc [info]: bitstream: Closed file pointer.
nvenc [info]: bitstream: Closed.
nvenc [info]: encoded 420 frames, 11.77 fps, 277.78 kbps, 0.23 MB
nvenc [info]: frame type IDR 1
nvenc [info]: frame type I 1, total size 0.03 MB
nvenc [info]: frame type P 105, total size 0.16 MB
nvenc [info]: frame type B 314, total size 0.04 MB
auo [info]: NVEnc エンコード : 0時間 0分36.4秒
nvenc [info]: unknown: Closing...
nvenc [info]: unknown: Close...
nvenc [info]: Closing perf monitor...
auo [info]: qaac (v2.64) で音声エンコードを行います。 ABR (AAC) ビットレート指定, 320kbps
auo [info]: L-SMASH muxer (r1450)でmuxを行います。映像: on, 音声: on, tc:off, chap:off, 拡張モード:なし
auo [info]: 総エンコード時間 : 0時間 0分37.1秒
いや、実は解決につながる変更はしてないはずなのですが、ひとまず解決して良かったです。
ただ、正直申しあげてログに出力されているメモリの使用状況はギリギリで、いつ再発してもおかしくない状態に思います。
nvenc [info]: PeakVirtualSize: 3561.9 MB
nvenc [info]: VirtualSize: 3349.2 MB
ここは、Aviutlの仮想メモリ空間の使用量を示しており、Aviutlはここが最大でも4096MBまでしか扱えません。もし再発するような場合には、Aviutlの[ファイル] > [環境設定] > [システムの設定]から、最大画像サイズの縮小やキャッシュフレーム数の削減などにより使用メモリ量を減らすことをご検討ください。
了解いたしました!
ご丁寧な対応、本当にありがとうございました!
素晴らしいソフトをありがとうございます。高速エンコードが期待できるのでNVEncCを是非とも利用させていただきたいと思っています。
tsファイルをtrimで必要部分を抽出し、ロゴ除去したものをHEVC 10bitエンコードしたいのですが、ロゴが除去されず(--codec h264では除去できます)、フレームレートも27fpsなど不安定な値のファイルが生成されます。--avsync forcecfrを使えば29.970 fpsに固定できるのですがtrimと両立できません。
そこでavs(L-smash worksでtsファイルを読み込んでロゴ除去とtrim実施)ファイルを--avsで直読みしたり、avs2pipemodからy4mでパイプ渡ししたのですが、エンコードできませんでした。何か打開策はありませんでしょうか?以下にご参考のためログを添付します。よろしくお願いいたします。
--avsで直読みの場合
噎?? 3.14 (x86)
OS Windows 7 x64 (7601)
CPU Info Intel Core i5-3570K @ 3.40GHz [TB: 4.20GHz] (4C/4T)
GPU Info Intel(R) HD Graphics 4000 (16 EU) @ 1400 MHz (10.18.10.4653)
Loaded nvEncodeAPI.dll.
nvEncodeAPICreateInstance: Success.
cuInit: Success.
cuDeviceGetCount: Success.
cuDeviceGet: Success.
NVENC capabilities: OK.
using cuda schdule mode: sync.
cuCtxCreate: Success.
cuCtxPopCurrent: Success.
cuvidInit: Success.
cuvidCtxLockCreate: Success.
InitCuda: Success.
InitDevice: Success.
Performace Monitor: none
Performace Plot : none
NvEncOpenEncodeSessionEx: Success.
avs reader selected.
InitInput: input selected : 4.
avs: opened avs file: "エンコ前.avs"
avs: found video from avs file, pixel type 0xa0000010.
avs: Avisynth 2.60(yv12)->p010 [AVX], 1920x1080, 30000/1001 fps
InitInput: Success.
createDeviceFeatureList: Success.
InitDecoder: Success.
InitFilters: Success.
Max B frames are 0 frames.
SetInputParam: Success.
m_pEncodeAPI->nvEncInitializeEncoder: Success.
CreateEncoder: Success.
AllocateIOBuffers: Success.
Output: Using avformat writer.
Output: Audio/Subtitle muxing enabled.
Output: CopyAll=true
avout: output format specified: mp4
avout: output filename: "R:\エンコ後.mp4"
avout: failed to assume format from output filename.
avout: please set proper extension for output file, or specify format using option --format.
avout: Please use --check-formats to check available formats.
Failed to open output file: "R:\エンコ後.mp4"
avs: Closing...
[AVIOContext @ 0101fc40] Statistics: 5820560 bytes read, 3 seeks
[AVIOContext @ 091d95a0] Statistics: 6639760 bytes read, 3 seeks
avs: Closed.
avs: Closing...
avs: Close...
avout: Closing...
avout: closed queues...
avout: Closed format.
avout: Closed video.
avout: Closed.
Closing perf monitor...
--------------------------------------------------------------------------------
y4mでパイプ渡しの場合
噎?? 3.14 (x64)
OS Windows 7 x64 (7601)
CPU Info Intel Core i5-3570K @ 3.40GHz [TB: 4.20GHz] (4C/4T)
GPU Info Intel(R) HD Graphics 4000 (16 EU) @ 1400 MHz (10.18.10.4653)
Loaded nvEncodeAPI64.dll.
nvEncodeAPICreateInstance: Success.
cuInit: Success.
cuDeviceGetCount: Success.
cuDeviceGet: Success.
NVENC capabilities: OK.
using cuda schdule mode: sync.
cuCtxCreate: Success.
cuCtxPopCurrent: Success.
cuvidInit: Success.
cuvidCtxLockCreate: Success.
InitCuda: Success.
InitDevice: Success.
Eanble NVML Monitoring
Performace Monitor: none
Performace Plot : none
NvEncOpenEncodeSessionEx: Success.
raw/y4m reader selected.
InitInput: input selected : 2.
y4m: output to stdout.
y4m: y4m(yv12)->p010 [AVX], 1920x1080, 30000/1001 fps
InitInput: Success.
createDeviceFeatureList: Success.
InitDecoder: Success.
InitFilters: Success.
Max B frames are 0 frames.
SetInputParam: Success.
m_pEncodeAPI->nvEncInitializeEncoder: Success.
CreateEncoder: Success.
AllocateIOBuffers: Success.
Output: Using avformat writer.
avout: output format specified: mp4
avout: output filename: "R:\エンコ後.mp4"
avout: allocated internal buffer 8 MB.
avout: set external output buffer 8 MB.
avout: output video stream fps: 30000/1001
avout: opened video avcodec
avout: output video stream timebase: 1001/30000
avout: bDtsUnavailable: off
avout: Initialized video output.
avout: avwriter: hevc => mp4
avout: starting output thread...
Output: Initialized avformat writer.
InitOutput: Success.
NVEncC (x64) 3.14 (r553) by rigaya, Jul 5 2017 21:45:40 (VC 1900/Win/avx2)
OS Version Windows 7 x64 (7601)
CPU Intel Core i5-3570K @ 3.40GHz [TB: 4.20GHz] (4C/4T)
GPU #0: GeForce GTX 1050 (5 EU) @ 1518 MHz (384.76)
NVENC / CUDA NVENC API 8.0, CUDA 9.0, schedule mode: sync
Input Buffers CUDA, 36 frames
Input Info y4m(yv12)->p010 [AVX], 1920x1080, 30000/1001 fps
AVSync forcecfr
Vpp Filters copyHtoD
Output Info H.265/HEVC main10 @ Level auto
1920x1080p 1:1 29.970fps (30000/1001fps)
avwriter: hevc => mp4
Encoder Preset quality
Rate Control VBRHQ
Bitrate 3000 kbps (Max: 11520 kbps)
Target Quality auto
Initial QP I:20 P:23 B:25
VBV buf size auto
Lookahead on, 10 frames, Adaptive I, B Insert
GOP length 300 frames
B frames 0 frames
Ref frames 3 frames, LTR: off
AQ off
CU max / min auto / auto
Others mv:auto
Flushed Encoder
avout: Closing...
avout: closed output thread...
avout: closed queues...
avout: Closed avformat context.
avout: Closed File Pointer.
avout: Closed format.
avout: Closed video.
avout: Closed.
y4m: Closing...
y4m: Close...
encoded 0 frames, 0.00 fps, 0.00 kbps, 0.00 MB
encode time 0:00:00, CPULoad: 0.0%
avout: Closing...
avout: closed queues...
avout: Closed format.
avout: Closed video.
avout: Closed.
Closing perf monitor...
すみません、delogoを10bitで使うことを想定していなかったので、正常に動作していないようです…。申し訳ありませんが、いまのところはavs側でdelogo処理するのが回避策になるかと思います。
つい先日より使わせていただいています。
helpなどを確認して試行錯誤しております。
非常に基本的な質問で申し訳ないのですが
avcuvid読み込みのNVEncC --avcuvid について
-help では出てきておらず
このページにも説明はないようなのですが
--avhw cudaと同じと考えてよいのでしょうか?
おっしゃる通り--avhw cudaと同じです。また--avhwのみでもかまいません。
理解できました。
ありがとうございます。
最近、QSVEncCに加えて NVEncCも利用するようになり、便利に使わせてもらっています。
有り難うございます。
ところで、他のエンコーダーを含めた統計処理をしていたときに気付いたのですが、
--vpp-deinterlace bob 使用時、コンソール表示されるビットレートの値が
実際の1/2になっています。外部で60fps化したものを喰わせた場合は問題ありません。
すみません、発生条件が正確でありませんでした。
外部で60fps化したかは無関係で、パイプ入力で--vpp-deinterlace bobしたときにも問題ありません。
単独で扱ったときのみ発生するようです。
3.27でビットレートが正しく表示されていることを確認しました。
どうもありがとうございます。
いつも機能更新いただきありがとうございます。
ロゴパックと--vpp-delogo-selectのオプションを使う際に
自動選択用iniファイルから[LOGO_AUTO_SELECT]で指定できない事象がありましたので報告します。
--vpp-delogo-selectのロゴ名(完全一致!)とインデックスの指定は出来ました。
以下、参考情報です。
ファイル名:"響け!ユーフォニアム #13 「さよならコンクール」 (BS11).ts"
自動選択用iniファイル:
[LOGO_AUTO_SELECT]
logo1= (BS11).,BS11 1920x1080 v3
結果
delogo: Invalid parameter type.
正常に判定されました。
早々に対応いただきありがとうございました!
コピペで使おうとして"unknown"と怒られました^^;
vpp-resizeの表
lanczons → lanczos
修正をお願いします。
ありがとうございます。修正しました。
大変便利に使わせていただいています。ありがとうございます
NVEncC 4.07において
音声ストリームが複数あるTSファイルを処理する際、音声トラック1のみを残したいのですが
--audio-copy 1 としても音声トラック2もコピーされ
--audio-codec 1?aac とすると1がエンコードされ、2はコピーされるような動作になります
指定トラック以外は捨てるようなオプションの書き方はありますでしょうか
よろしくお願いします
第2音声の捨て方についてですが、ビットレート等、音声系コマンドのすべてをトラック指定していただけないでしょうか。
〇: --audio-codec 1?aac --audio-bitrate 1?128
⇒第2音声はコピーされない
avwriter: h264, #1:dca/2ch -> aac/2ch/128kbps => mp4
×: --audio-codec 1?aac --audio-bitrate 128
⇒第2音声がコピーされてしまう
avwriter: h264, #1:dca/2ch -> aac/2ch/128kbps, dts => mp4
ご指摘のように、直感的でないコマンドとなってしまう仕様なのは重々承知しておりますが、まずは上記で回避いただけないでしょうか。よろしくお願いいたします。
教えていただいた方法で希望通りの動作になりました
ありがとうございます
お礼が遅くなり申し訳ありませんでした