まあ、昨日と同じで、
簡易インストーラの更新。 本体の更新はなし。
- L-SMASHがダウンロードできなくなっていたのを修正。
- インストール先が管理者権限を必要とする際は、これを取得するダイアログを表示するようにした。(ユーザーアカウント制御対策)
QSVEnc ダウンロード>> Intel Media SDKのソフトウェア用dllはfull版にのみ含めるようにしました。
スポンサーサイト
このコメントは管理人のみ閲覧できます
毎回rigayaさんの「x264guiEx」と「QSVEnc」にお世話になっておりますm(__)m
rigayaさんのおかげで、Intel QSV・AMD VCEによるハードウェアエンコが出来るようになりましたが、それならばと、CUDAエンコは出来ないものかと思って、色々調べてみました。
市販ソフトはおろか、フリーソフトでも滅多に対応しているソフトを見掛けませんし、更にCQP対応ともなると極端に限られるのですが、今回、「MediaCoder」の64bit版に内包されている「cudaEncode.exe」か「cudaH264Enc.exe」をコマンド実行すると、CQPのCUDAエンコードが出来るとの情報を見つけましたので、お知らせ致します。
※なお、「cudaEncode.exe」は不安定なようです。リファレンスのはずなのに…
http://rndomhack.com/2013/06/18/mediacoder%E3%81%AEcuda%E3%82%A8%E3%83%B3%E3%82%B3%E3%83%BC%E3%83%80%E3%82%92%E8%A9%A6%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B/
http://forum.mediacoderhq.com/viewtopic.php?f=2&t=6896
これらを読まれた上で、AviUtlのプラグインとしての実装が可能かどうか判断して可能であり、尚且つもし時間が取れるようでしたら、気が向いたらで構いませんので、AviUtlでCUDA出力出来るプラグインを作って頂けると幸いですm(__)m
LGA2011ソケットや、AMD FXなどにGeForceを挿して使っている人には割と需要あるんじゃないかと思ってます。
>afsについて
こちらでも試してみましたが、発生せず、原因がよくわかりません。
そこで質問なのですが、Aviutlの[ファイル]>[環境設定]>[システムの設定]で、「LargeAddressAwareを有効にする」にチェックが入っていますでしょうか。
これにチェックが入っていない状態ですと、そのエラーが発生しやすかった記憶があります。
よろしくお願いします。
>CUDAエンコ
たしかに、Intel/AMD/NViDIAの3つでできるといいですよね。まだ試してないのですが、実はあまりCUDAにいい印象がないのです。昔、TMPEGEncでCUDAエンコを試した時はそれはそれは悲惨な画質だったのですが…(
http://rigaya34589.blog135.fc2.com/blog-entry-65.html )。
紹介していただいたリンクの動画は見れなかったのですが…最近はよくなってるのでしょうか。
NViDIAのGPUには最近NVEnc(ハードウェアエンコ)なる機能もあるそうなので、それも面白そうです。
作ってはみたいのですが、まとまった暇な時間がないという…。
リンク間違えてました…申し訳ありませんm(__)m
http://rndomhack.com/2013/06/19/%E3%82%A8%E3%83%B3%E3%82%B3%E3%83%BC%E3%83%89%E3%83%86%E3%82%B9%E3%83%88-x264-qsv-cuda/
http://www.nicovideo.jp/mylist/37512992
これを見る限り、以前よりはマシですが、QSVにさえ若干敵わない感じがしますね…
まぁ、ハードウェアエンコで特に画質落ちる要因になりやすい1passVBRでなく、1passCQPが使えるようになったから良くなった感じですね…てか、大抵のソフトはなんでCQP使えないんでしょうか…
…それでもとりあえずは、QSVもVCEも使えない環境では高速化が期待出来そうですね。
とりあえず、ハードウェアエンコは1passVBRと1passCQPさえあればそれ以外は要らないような気もします…速度が唯一の存在意義な訳ですし、2passの意味があるのかと…(・・;
NVEnc…現状では使えるGPUがあまりにも限られすぎている(GTX650以上及びGTX760以上限定、ノート向け不可)上に、最低設定でさえYoutubeにうpするのすら厳しい気がするレベルのビットレートになってしまうような気がしてるので…暫く待ったほうが良さそうですね。
当方の環境が、
Core i7-3610QM
Intel HD4000/GeForce GTX660M(NVIDIA Optimus)
…であり、残念ながらNVEncの恩恵は受けられないという…
ただ、x264・QSV・CUDAが、ノートにも関わらず全て設定変更なしで使えるので、その点は良かったかなぁ…と思ってますが。
時間がない中、申し訳ありませんでしたm(__)m
CQPが多くの製品(商品)で使えないのは、ビットレートが制御できず、暴れるため(特に最大ビットレート、x264ならvbv-maxrateとかで上限決めるあれです)、H.264のLevelに照らし合わせて違反となる動画になりやすためだと思います。
PCでの再生ならたいてい問題ないのですが、携帯端末等で動画再生支援を期待する場合に再生がおかしくなる可能性があるので、商品にして売るときには搭載しにくいのかな、と思います。有料だと確実に再生できることが特に期待されると思うので…。
ただ仰るとおり、ハードウェアエンコの1pass VBRがなかなか残念なのは間違いないです。crfみたいな、品質指定系の1passでMax Bitrate指定あり、みたいなのが欲しいですね…。
CUDAの結果見ました。シーンチェンジとかフェードイン・フェードアウト、また輪郭とか、苦しい感じですね。
まあ設定次第かもしれないので、遊んでみるためにも作りたい気もしますが・・・時間が、そしてやりたいことも多いという…。
流石に申し訳ない気がしたので、名前を名乗ります。
なるほど…CQPが採用されない背景にはそんなことがあったのですね…確かに、せっかくエンコしたのに再生出来なかったら…(・・;
ただ、やはり1passVBRの画質は非常に残念なので、どうにかして欲しいですね…まぁ、結局これも、x264と同じ傾向にあると言えますが。
かと言って、2passVBRにしたら、何のためのハードエンコなのか分かりませんからねwww
CUDAエンコは、もうNVIDIA自体が開発やめちゃったに等しく、進展が無いですし、最新のGPUでは速度が頭打ちになることもしばしばあるとか^^;
色んな面で残念な結果に終わりそう(ぁ
そういえば、前に話題が出ていたNVEncについてちょっと調べてみました。
ただ、結果的に私の環境は条件を満たしていることがわかったものの、結局CUIエンコードすら出来ていない状況にありますorz
現在、Adobe Premiere Pro CS6/Media Encoder CS6/Premiere Elements11向けに、サードパーティ製(というか個人製)のテスト用プラグインが出ていました。但し勿論、AdobeもNVIDIAも非公認のプラグインなので、何が起きても保証は出来ないとのことでした。
http://forums.adobe.com/message/5478209
こちらのコミュに色々書いてあります。
実際に最新版をDLして、解説を読んだ(Premiere持ってないので試してはいません)限りでは…
デスク→GTX650以上のKeplerコアGPU
ノート→GT640M以上のKeplerコアGPU
VRAM→1GB以上必須、2GB以上推奨
を搭載していれば使えるとのことでした。
なお、搭載されているハードエンコ回路が同じ上に、CUDAを殆ど使わずにエンコするためなのか、GTX650でもGTX780でもエンコ速度は殆ど変わらないそうです。
また、速度はVRAM量にも左右されないそうで、足りない場合は単純にエンコが失敗するようです。
…で、その前に、自力で何とかしてみようと、こちらからNVEnc SDKを、
https://developer.nvidia.com/nvidia-video-codec-sdk
更に別の場所からCUDA 5.5をインストールしてみて、実際にやってみたのですが、残念ながら同梱されている1080pの3秒の無圧縮YUV動画を実際に圧縮出来るには至らず、0バイトのh.264ファイルが出来て終わりでした…
NVEnc SDKのサイトを見た限りでは、
Quadro k4000以上
Quadro k2000M以上
Tesla k10以上
GRID K340/K520
のみが対象となっていましたが、前述の通り、GeForceでも使えているようなので、何かの障害を取り除けば恐らく大丈夫だとは思いますが、実際にエンコ出来なかったのはちょっとがっかりです。
Optimusだと、GeForceがプライマリでは無いので、それでエンコ失敗したんじゃないかと思うことにしました。
…と、とりあえず、私が調べられる範囲で調べてみましたが、結局良く分かりませんでした。
長文失礼しました。
NVEnc、一応Kepler世代コアならできると聞いていたのですが、そう簡単でもないのでしょうか…。まあ同じGTX6xxでも、GTX640とかのFermi流用はだめというもそれはそれでまた面倒なのですが。
正直あまりCUDAのほうは期待できないと思うのです…。CUDA/openclをはじめとするGPGPUは、GPUの特性のためか、特に複雑な分岐や同期を伴う計算が苦手なため、エンコードではあまり期待できないように思います。
というわけでハードウェアエンコらしいNVEncのほうに期待したいのですが…。うーん。
このコメントは管理人のみ閲覧できます
サンプル見ました、ありがとうございます。
かなりよさそうですね。
やはりCUDAより期待できそうなので、NVEncのほうを試してみたいと思います!
まぁ、このサンプルは、解像度に対してビットレート高すぎな気もしなくもないですけどね…^^;
次に、I:23・P:25・B:27のサンプルも頂きましたが、平均5Mbps強になってました。
こちらも顕著な崩壊は特に無く(まぁ、切り替えがちょっと雑かなと思ったりはしましたが)、それなりにマトモな画質でした。
しかし、このまま行くと、CUDAエンコは、「中途半端に速度が早くて、画質はあまり良くない…というか悪いに近い」…という、使えない子になって行きそうですね…
今回サンプルを提供して頂いた方は、X79かつNVIDIA環境ということで、尽くrigayaさんのAviUtlハードエンコプラグインが使えず、NVIDIA GPUでのハードエンコプラグインが欲しかったそうです。
私も、NVEncのハードエンコ回路が一律で、エンコ速度にあまり差が出ないというなら、導入してみたい気もしてますし…
>belkyros様
NVEncに挑戦、と行きたかったのですが、Geforce GTX660を取り付けて、環境を整え、いろいろ試して調べた結果、ちょっと現状では無理そう、ということがわかりました。申し訳ありません。
端的にいうと、NVEncの使用に制限がかかっている可能性が高いことが原因です。
v3.0 SDKにある以下の文言が重要です。
The application no longer requires a GUID to initialize the NVENC encoder, the driver performs the validation. NVENC is officially supported on GPU hardware based on Quadro, Tesla, GeForce GRID, or VGX. NVENC on GeForce is not officially supported.
belkyros様がおっしゃられていたように、SDKのサンプルはこちらでも動きませんでした。ソースコードを多少いじって見ましたが、結局動きません。
(belkyros様も"GUID key may be invalid or incorrect."というメッセージを受け取られたかと思います。)
SDK v2.0で以前(今年の4月頃?)試した時も同様のメッセージではねられたのですが、SDK v3.0で
"The application no longer requires a GUID to initialize the NVENC encoder" とあるので勝手に大丈夫になったと思っていましたが、文章の後半のほうが重要で、実情は
・Quadro, Tesla, GeForce GRID, or VGXではGUIDキーなしで自由に使えるようになった。
・Geforceは"not officially supported"なので、Geforceで動くプログラムを作るには相変わらずキーが必要である。
ということのようです。
どうやらソフト制作者がキーをNVIDIAから何らかの形で入手する必要があるようです(買うらしいです)。AMEのNVEncプラグインにも同様のことが書いてありますし、そういうことなのだろうと思います。
http://forums.adobe.com/message/5912769
License-key can only be purchased from NVidia, it is not included in the above link. (You can re-compile nvenc_export without the client-key, but the plugin won't encode any video because NVidia requires the client-key to unlock the driver's nvenc API.)
これは NVENC_export Version v1.05 (API v3.0対応版)でも述べられているので、v3.0でも変わらないのだと思います。
で、どこで買えるのか、おいくらなのか、それが問題なのですが…。ともかく現状ではAviutlプラグイン化は難しそうです。もし期待されていたら、すみませんでした。
追記です。
こういうのの相場が全くわからないのであれですが、GPU1枚ぐらいのお値段なら買ってしまいたいところです。が、そもそもどこで売ってるのかがわからない、という…。
う~ん、という状況です。
3ヶ月も返信せずに申し訳ありませんでしたm(__)m
NVEncに関連した進展がなかったので、コメントを控えていました…
話のつながりを考え、敢えてこちらに返信させて頂きましたm(__)m
今日確認したところ…
http://forums.adobe.com/message/5478209
Adobeのコミュが更新されており、以下のコメントが書かれていました。
NVENC client license key [optional, only needed for Geforce drivers older than WHQL 334.89]
As of the Geforce WHQL 334.89 driver releae (Feb 2014), NVENC API is now open for all.
The client-key is only necessary if you want to access NVENC hardware on older Geforce drivers (which still check for the key.)
…これは…もしかすると、NVEncがGeForceでもクライアントキー無しで使えるようになったってことなんでしょうかね?
私は既に「Open Broadcast Software」において、ShadowPlay未対応のGTX660MでもNVEncでのキャプチャが出来ていましたが、334.89以前は別サイトから専用のdllをDLして入れ替えないとNVEncが使えませんでした。
しかし、334.89を入れた後、専用のdll無しでもNVEncが正常稼働するようになりましたので、もしかしたらこのドライバによって、ライセンスの緩和が行われたのかもしれません。
今更で申し訳ないですが…もしもお時間あるようでしたら…(オイ
おお…教えていただき感謝です、時間あるときに試してみたいと思います!