【NVENC/VCE】ハードウェアエンコーダーを語るスレ4【QSV】
■ このスレッドは過去ログ倉庫に格納されています
流行るかねぇ
ま、外付けGPUからの出力に非対応だった時点でUHD-BDは終わっていた気もするのだが >>425
メディアのところのE2Eって何かと思ってググッたらロスレスなのね
ロスレスのエンコーダー、デコーダーが載るんかな VCEとQSVで画質保ったまま高速エンコしたいとアレコレやってみたけど
結局Ryzenでx264/x265ぶん回した方がラクってなってきた
NVenc使えたら世界が変わるんかな・・・ もう少し技術が進めば
CPUエンコするとき一部分だけを
GPUの回路借りたりもできるんだろうけど
まだそこまで行ってない
最終的にはMMXのチェックボックス選択するみたいに
NVCも気軽に選べればいいんだけどね >>433
それCUDAエンコでしょ
十年くらい前からあるよ
画質が酷すぎてインタレ解除くらいにしか使われなくなったけど >>433
それを突き進めたのがIceLakeのiGPU >>432
漠然と早くしたいだけなら。。。爆速なのは保障するw
ただねぇ、実際RTXを使ってるけどNVENCの出番は限定的だよ。キャプチャとかedcbの録画後実行batに仕込むくらいか
圧縮効率もTuringのHEVC+Bフレ≒x264で悪くないが、x265が頭1つ抜けてるから結局保存用には使わない
まぁでも文面から察するにゲフォ自体使ってなさそうだが、エンコするならCUDAあると捗るよ?
個人的にはNVENCよりQTGMC+αをKFMに置き換えてマジ感動した。無駄にゃならんと思う そのうちマザーボードも差別化が難しくなってハードウェアエンコードのチップ乗せてきたりして 趣旨ははずれるがShadowPlay優秀だからゲフォいいと思う >>436
turingでやってるけどts→h.265を1500kbpsでssim0.995までいけるよ
設定かエンコソフトが悪いんじゃない?
ソフトによってbフレーム設定してても使ってない事があるからbフレあるか確認した方がいいよ
例えばA'sとかハンドブレイクはnvencの265でbフレを使わない
Xmediaはbフレ数を設定するOptionがあるのに使わなかったりする 俺がやってるのは実写映画だな
ドキュメンタリーだと実写でもssimが0.98くらいまで下がることもある
映画とドキュメンタリーは実写でも映し方が違うのかもな 実写の中でもドキュメンタリー系は縮まないね
一般的な欧米の映画ゆあドラマだと縮む(でも劣化が分かりやすい) >>432
スマホ視聴用にNVENCで爆速エンコして見て捨てるってのが結構いい使い方だと気づいた >>444
それが本来の用途だな
初代のQSVも最初は保存用には画質悪くてイラネって感じだったが、
変換用途で使えるって広まったし もうNVENCの専用拡張ボードだしてくれよアイドル0ワットの 1枚5万の業務用になってしまう
尚、ampere登場後は化石になる まーそんなマザー買うくらいなら3900Xでも用意するほうが得だわな NVencでバッチ出力したいけどうまくいかない
どっかのブログにあった
NVEncC64.exe -c hevc –cqp 28:30:32 –gop-len auto –sar 4:3 –bref-mode each –audio-copy -i %1 -o %1.mp4
でファイル作ってもエンコード始まらないし何がおかしいんだろ >>450
そのバッチファイルにエンコードしたいファイルをドロップしてもだめ? >>451
ダメですね…
Aviutl拡張用のNVencファイル内にBatファイル作って作動してもうまくいかず、Aviutlの方もエンコがうまくいかなくなったので
別のストレージにBatでエンコするためのファイルを作ってそこでエンコ使用としています
グラボはRTX2070なのでBフレームやらは対応してるはずです >>450
「NVEncC64.exe」が置いてあるフォルダを指定してない
使いたいNVEncCのバージョンがおいてあるとこで「アドレスのコピー」
cd /d "コピーしたアドレス"
でディレクトリ移動しとけばそのコマンドプロンプトを開いてる間は省略できる
バッチなら移動ではなく指定するだけでいい
コマンドプロンプト調べようね
https://www.pg-fl.jp/ >>453
ありがとうございます
勉強してきます
>>454
mp4です %1はドラッグしたファイル名に置き換えられるんだから、入力と出力が同じになってまうやないかw aaa.mp4をいれたら
aaa.mp4.mp4になってしまうけど
一応通りそうだしねえ… フルパスでNVEncCをフルパスで指定すれば行けそうだが…
エラー内容は書いてないからこれだっていえんけど、あとはログ取ってエラー確認するとかだな。
%1は使いにくかろう。d:\は適当に修正して。
-i "%~1" -o "d:\%~n1.mp4" 2>"d:\%~n1.log" Aviutlでもエンコに失敗してるんだ、バッチ以前の問題では・・・ いろいろありがとうございます。
.batにドラッグしたら一瞬でプロセッサ?が消えてしまう感じですね
素でダブルクリックしたら.exeのアドレスから最後の文字まで写って一瞬で消えるって感じです
便利だと聞いて素人知識で飛びついてしまった結果手間取らせてしまい申し訳ないです
次回からはもうちょい勉強してから手を出してみます >>461
.batの最後の行にpauseて書けば自動で閉じないようになったと思う
それでどこでコケてるかわかるんじゃないか NVEnc.exeがwindowsにロックされてるとか 俺はバッチ考えるの面倒だからEXCEL使ってVBAで制御してるわ
バッチって機能少なすぎて面倒なんよね batもやろうと思えば結構頑張れるけど謎の小技っぽいの駆使しないといけないし
エンコ系は.pyか.shでかいてるかなぁ。 PowerShellでやれや
どうしてもVBでやるならVBSだろうし VBSよりVBAの方が変数や結果をセルに出力出来るんでチェックがやりやすい bat意外に機能豊富なんだよな
困るのは日付計算くらいかな PowerShellはパイプ出力が使えないから不適と
mukenかchikuzen氏が呟いてたぞ >>450をコピペすると、OPTIONのハイフンが全角と半角混在してるんだけど、
10歳のbatもそうならダメじゃない?大丈夫? どれどれとコピペしてみたら文字化けした
全角・半角以前の問題っぽい? >>450
NVEncC64.exe -c hevc --cqp 28:30:32 --gop-len auto --sar 4:3 --bref-mode each --audio-copy -i %1 -o %1.mp4
一応動いた webページのをコピペしたら全角だったことはあるぞ amatsukazeをつかって溜まったtsをまとめてエンコしようと思い1650super導入
D3DVPを使うと1280x720へのリサイズ ファルサイズ 1/5 - 1/12くらいになる設定でCPUにもよるが400fps前後
インタレ解除をKFMにすると140fpsで
ふと x265 veryfastではどうかなと手持ちのPC群で試すと(kfm)
Ryzen5 2600で62fps
i5 9600k 5GHzで100fps
Ryzen9 3900Xで170fpsとなりNVEncが微妙に、、w 当然画質もx265のが良いわけで、、
tsは2600のマシンに溜めているので3700xにでも取り替えようかと思案中
CUDAだけならTuringでなくてもよいしねぇ、、
ハードエンコと関係なくってスマン ssim比較した上で言ってるか?
x265でも1passでveryfastはかなり酷いぞ? 本人は「当然画質もx265のが良い」と言ってるぞ
画質は品質基準の数値次第やね お尋ねします。下記のコマンドでエンコしてみましたが、エンコードエンジンが負荷が
50%程度で推移しています。SWデコードにすると98%程度まで行きます。
これはHWデコードが追い付いていないということでしょうか?
GeForce GTX 1660 SUPER
Ryzen7 3800X
Win10Pro
ffmpeg.exe -hwaccel nvdec -c:v mpeg2_cuvid -i %1 -vcodec hevc_nvenc -preset fast -acodec aac -ab 128k -ac 2 -ar 48000 "%~dpn1.mp4" >>482
タスクマネージャのパフォーマンスタブで、
VideoEncodeエンジンとDecodeエンジンの使用率が個別に表示出来る
確認してみるとよか >>483
VideoEncode 58%
Decodeエンジン 68%
こんな感じです
>>484
はい、両方使用しています。
NvencC64は98%位に張り付いてくれます。 俺環かどうか確かめたかったんです。
皆さんの環境でもこうなんですね? >>487
ん〜、多分-hwaccel_output_format cuda が抜けてるからだと思うべ >>488
ありがとうございます。
VideoDecodeが98%まで行きました。処理スピードも向上しました。 >>482
ちょっと気になることがあるので聞いておきたいのだけど、ffmpegはどこのどのバージョンを使いました?
(配布元と ffmpeg.exe -versionの情報が知りたい) >>492
ffmpeg version git-2020-03-30-8d019db
https://ffmpeg.zeranoe.com/builds/
これでいいのかな? >>493
ありがとう。
以前は -hwaccel_output_format cuda なんて明示指定する必要なかったはずだよな〜と思って
調べてるところなんだけど、どうやら3月の頭にnvdec絡みで揉めてたみたいだ。
以下のページも3/4に変更されてる。
HWAccelIntro ? FFmpeg
https://trac.ffmpeg.org/wiki/HWAccelIntro
このページでの以前のフルHWトランスコードの説明は
ffmpeg -hwaccel cuvid -c:v h264_cuvid -i input -c:v h264_nvenc -preset slow output
になってて、NVIDIAのSDK9.1のドキュメント等でもそう書かれてる。
でも3月頭の変更後は
ffmpeg -hwaccel cuda -hwaccel_output_format cuda -i input -c:v h264_nvenc -preset slow output
を使えと書かれてる。 >>493-494
どうも今のソースだと、
・ 以前の -hwaccel cuvid のコードが消された。
・ -hwaccel の指定で用いるべきなのはcuda。一応nvdecとcuvidも指定できるが、ただのエイリアスで、内部でcudaに変更される。
(nvdecについては実装直後からずっとエイリアス。cuvidがエイリアスになったのは3月頭。)
・ -hwaccel cuvid を指定すれば、-hwaccel_output_format cuda も内部で自動指定されるけど、
「一応昔のコマンドとの互換性のために自動指定してやってっけど、いずれ廃止されっから
-hwaccel_output_format cuda は明示指定しとけよ!」って警告が出る。(これも3月頭の実装)
・-hwaccel cuvid や -hwaccel nvdec を指定した場合は、-hwaccel_output_format cuda の自動指定はされないので、
-hwaccel_output_format cuda を明示指定する必要がある。
という感じになってるっぽい。
・・・なんか揉めたままスレッドがロックされたっぽいんだけど、大丈夫なんかな、これ。 まだちゃんと読めてないんだけど、参考リンク
●3月頭の変更
ffmpeg: remove superfluous custom cuvid hwaccel ・ FFmpeg/FFmpeg@60b1f85 (コメント欄で何か揉めてる)
https://github.com/FFmpeg/FFmpeg/commit/60b1f85b67ccb907e4eba3e2c98839769690ed24
ffmpeg: default hwaccel_output_format to cuda when hwaccel is cuvid ・ FFmpeg/FFmpeg@cb3c77c
https://github.com/FFmpeg/FFmpeg/commit/cb3c77cfeed3d9b995fc8b387a1ef14561a4b6ea#commitcomment-37719468
●関連チケット
#6989 (Hwaccel cuvid fails with “Error creating a NVDEC decoder: 1”) ? FFmpeg
https://trac.ffmpeg.org/ticket/6989
なんかよくわからなくなってきたんで寝る・・・ >>495訂正
誤(×cuvid)
・-hwaccel cuvid や -hwaccel nvdec を指定した場合は、-hwaccel_output_format cuda の自動指定はされないので、
-hwaccel_output_format cuda を明示指定する必要がある。
正(○cuda)
・-hwaccel cuda や -hwaccel nvdec を指定した場合は、-hwaccel_output_format cuda の自動指定はされないので、
-hwaccel_output_format cuda を明示指定する必要がある。 >>479
見比べてみたけどブロックノイズが目立ちにくいかなぁ、、って程度
激しい動きのとこでもやや有利?
でも長い時間をかけるほどの差はないかなぁ、、というw
やっぱTuringえらいわww
どっちにするかはまだ思案中だけど、、
x265ならよりビットレートを下げてもいけそうではある
NVENCでやるにしてもRyzen2600じゃちょっと遅い感じだから
3800xにかえてみようかなと思ったり 動画のエンコード品質を静止画で検証する人ってなんなんだろうね >>500
検証というより比較する時に使う感じじゃない?
ソースに対してビットレート割り当てが極端に低くてブロックノイズ、オプションの違いによる擬色やバンディングとか発生しないと動画じゃ比較しにくいだろうし >>498
このスレの話じゃないけど、Ryzen2600はAVX2が使えないかわいそうな子だからx265もやるなら卒業してもいいと思うぞ
NVIDIAの次のGPUもIntelのICELakeエンコーダー搭載デスクトップ版もコロナのせいで秋から冬にずれ込んでるし
第3世代Ryzen使う人に発熱や消費電力を気にする人は少ないだろうし、無難な選択だと思う
半年後には早くも「第四世代Ryzenは最大32コア128スレッド!かもしれない」という噂もあるけどな 古い記憶だった。Zen3ではSMT4は見送りで使われないってことになってるみたいね…
1コア4スレッドもうちょっと先だねm(__)m むしろ36コア18スレッドみたいに2コアで1スレッドを動かす方が効率良くなったりして それがSMTともいえる(シングルではコア資源を使いきれないから別スレッドをねじ込める) アホは圧縮アルゴリズムを少し勉強しようね
今の動画はGOP単位の圧縮だから静止画の連続なんて言える状態じゃないよ どういう器官で映像見てるんだろ。
自分は目という器官で見てるんだけど。 時間軸方向に圧縮かかってないのって…MotionJPGくらいなのでは? GOP単位とか時間軸方向だとか関係なく、デコードしたら静止画の連続だろとマジレスした方がいいのだろうか・・・ ほいでエンコの出来栄えを静止画で検証は意味あるんですかいの あるに決まってるじゃん
蛇足気味に書くと静止画・動画の両方大事で
一番アテにならないのはSIMMなどの数値 その静止画(動画)をハードかソフトのどちらでデコードするか、普段はどちらでデコードするかでも地味に変わるよね
気にする人は全部ソフトか圧縮無しなんだろうけど スレチだけど日付がゾロ目の日はIDに日付入るのかな?
3/3は書き込みなかったけど、2/2以来そんな風に見える NVENCでエンコードした動画って、デコーダは何を使えばいいの? エンコードに使ったコーデックをデコードできるコーデックとでも言えばいいのか >>519
そもそもエンコードとデコードを理解できてなさそう
エンコードは動画を圧縮するもの、デコードは圧縮された動画を再生するもの
規格に沿っていればどのエンコーダーとデコーダーの組み合わせでも問題ない >>524
amatsukazeのx264でエンコードしたのは再生できるんだけど、
amatsukazeのNVENCでエンコードしたのは音は出るけど絵が出ない。
GT710なのでH.264のはず。
エンコーダとデコーダの相性とかあるのかなぁと。 media infoあたりでコーデック確認して、それに対応してるデコーダー使えばいいんじゃないか >>525
うpっても問題ないサンプルは出せない? >>525
そんな怪しいソフト使わないでTMPGEのソフトを使ったら良いと思う ■ このスレッドは過去ログ倉庫に格納されています