さて、久々の技術ブログです
今日のネタはGNU/LinuxでShadowPlay風な環境構築です
ShadowPlayとは
ShadowPlayとはNvidia謹製のゲーム録画/配信ソフトウェアです
キャプチャ時の処理をグラボ側で行っているため、低負荷高画質が実現できるという非常にありがたいソフトウェアです
私もWindowsでゲーム録画する際には非常にお世話になっています
GNU/LinuxでのShaowPlay風環境構築
今回はキャプチャ時の処理をグラボ側で処理といったところを実現するための方法をGNU/Linux環境で構築します
具体的に用意するものとしては
- NVencを有効にしたFFmpeg
- OBS Stadio
以上二点です
今回はOSをUbuntu16.04を使用しています
スポンサーリンク
NVencを有効にしたFFmpegのビルド
まずはNVencを有効にしたFFmpegを用意します
FFmpegビルドの前にまず下準備を行います
FFmpegビルドの準備
# apt-get -y install ffmpeg libfdk-aac-dev checkinstall unzip wget sysstat nvidia-cuda-dev
# apt-get -y install libgtk2.0-0:i386 libpangox-1.0-0:i386 git yasm autoconf libtool
# apt-get -y install libpangoxft-1.0-0:i386 libidn11:i386 libglu1-mesa:i386
# apt-get -y install build-essential libspeexdsp-dev pkg-config cmake git-core
# apt-get -y build-dep ffmpeg
$ apt-get source ffmpeg
NVIDIA VIDEO CODEC SDKの取得
Nvidia Developerからnvenc用のsdkをダウンロードしてきます
$ wget -c https://developer.nvidia.com/video-sdk-601 -O nvidia_video_sdk_6.0.1.zip
$ unzip nvidia_video_sdk_6.0.1.zip
# cp nvidia_video_sdk_6.0.1/Samples/common/inc/*.h /usr/local/include/
ffmpegのビルド
ビルド準備の項で取得してきたffmpegのソースのディレクトリに移動します
$ ./configure --prefix=/usr --extra-version=1ubuntu2 --build-suffix=-ffmpeg --toolchain=hardened \
--libdir=/usr/lib/x86_64-linux-gnu-c --incdir=/usr/include/x86_64-linux-gnu-c --cc=cc --cxx=g++ --enable-gpl \
--enable-shared --disable-stripping --disable-decoder=libopenjpeg --disable-decoder=libschroedinger \
--enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray \
--enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype \
--enable-libfribidi --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopenjpeg \
--enable-libopus --enable-libpulse --enable-librtmp --enable-libschroedinger --enable-libshine --enable-libsnappy \
--enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis \
--enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzvbi \
--enable-openal --enable-opengl --enable-x11grab --enable-libdc1394 --enable-libiec61883 --enable-libzmq \
--enable-frei0r --enable-libx264 --enable-libopencv --enable-nonfree --enable-nvenc \
--enable-libfdk-aac --enable-pic
$ make -j4
ここまでで、ビルドの準備が整いました
ここから実際にビルドしていきます
# checkinstall --pkgname=FFmpeg --deldoc=yes --nodoc --fstrans=no --backup=no --install=no
これでnvencが有効になったffmpegがdebパッケージとして作成されました
dpkgコマンドでさくっとインストールできます
OBS Studioのインストール
ここからはOBS Studioのインストールを行います
こっちはffmpegと違って公式にしたがって黙ってインストールすればいいので簡単です
# add-apt-repository ppa:obsproject/obs-studio
# apt-get update && sudo apt-get install obs-studio
これだけで入ります
これであとはOBS Studioの設定だけでShadowPlay風な環境構築ができあがります
OBS Studioの設定
OBS Studioの設定です
とはいえ、設定するところ自体は非常に簡単でファイル -> 設定 -> 出力タブのところを設定するだけです
エンコーダーのところで“ハードウェア(NVENC)”を選択してやるだけです
あとは録画品質を設定してやればお好きな画質になります
以上でOBS StudioでNVENCを利用した録画環境の完成です
実際に録画するにはシーンやソースの選択といった一般的なOBS Studioの設定の範疇ですので、詳しいサイトにお任せします
スポンサーリンク
コメント