待ちに待ったNVIDIAのGeForceが手に入ったので、いよいよNVENCの検証を進める。録画サーバ用に使っているSH67H3は電源容量とスロットに余裕がないので、省電力かつ1スロットのグラボが望ましい。elsaのGD750-2GERTSPというボードを使ってみる。うちのSH63H3は300W電源なので、それでも電源容量に不安があるため、一時的にSSDやメモリ、DVDドライブを外して最小構成に。NVENCの利用方法はffmpegを使う方法が多そうなので、Windows用のffmpegを用意する。LinuxでWindows用のffmpegをコンパイルできるらしい。ffmpeg-windows-build-helpersを使ってffmpegを準備する。価格:18480円(税込、送料無料)利用するLinuxはいつも通りCentOS7。SDKに含まれるnvEncodeAPI.hを使うらしいので、公式よりダウンロードしておく。nvEncodeAPI.hを準備出来たら、ffmpeg-windows-build-helpersをgitで落として、コンパイルするという流れ。ちなみにコンパイルの処理はえらい長いので覚悟するように。18,177円(税込)自分は何度も失敗して試行錯誤する羽目になったんだけど、その場合はcurrentにできるsandboxディレクトリを削除してから再開。ないと半端に用意されたミドルウェアがうまく動作せずコンパイルに失敗してしまう。他に自分の環境で問題となったのは、libbs2b-3.1.0.tar.lzmaが展開できなかったこと。ロジック見るのも面倒だったので、tar.gzに圧縮し直してローカルのウェブサーバに置き、shell内のURLを書き換えてしまった。}同様にgmp-6.0.0a.tar.xzとbzip2-1.0.6.tar.gzのダウンロードも失敗する事が多かったので、ローカルに配置してURLを書き換えた。これは自分の環境起因かもしれないので、あえて変更する必要はない。PCにコピーしておく。これでWindowsでNVENCを使う事が出来るようになった。いつも通りに、アメトーク60分を録画した6.5GBのTSファイルを使って検証。Linuxで実行したコマンドと同じものを試してみる。ソフトウェア・エンコードの処理時間から。ame_sw.mp41番目の4スレッドでの処理が61分かかって1.94GBに圧縮。2番目の8スレッド処理は49分だった。サイズも処理時間もLinux時とほぼ一緒。handbrakeに比べてソフトウェア・エンコードが遅いのは、OSの問題ではなくffmpegの問題という事。続いて肝心のnvencの処理を試してみる。ame_nvenc.mp4何と18分で処理が終わり、872MBまで圧縮された。画質はお察しなので品質を上げる方法を模索する。NVENCの場合はbitrateを明示指定することで品質を変更出来た。具体的には以下のオプション。ame_nvenc.mp4これも処理時間18分のままで、圧縮後のサイズは1.96GB。ソフトウェア・エンコードと同等の品質になった。現時点ではNVENCによるエンコードは処理時間において非常に優秀という評価。ハードウェア的にもNVIDIAのグラボさえ刺さればいいので環境面のハードルは低い。あとはLinuxでの利用方法や性能が同等であれば言う事なし。次回はいよいよLinuxでの検証を行う。コメントをキャンセルメールアドレスが公開されることはありません。date*日本語が含まれない投稿は無視されますのでご注意ください。