sumisoクラフト

sumisoクラフトはてなブログ拠点

ReplayModの映像をGPUエンコードする【マイクラ】

Minecraftでカッコいい映像の撮影に使われるReplay Mod (リプレイモッド)

 

イクラのプレイ映像を録画しておき

あとからスペクテイターモードの視点で

再生、動画出力が可能だ(なおJava版限定)

 

ReplayModはFFmpegというソフトを使用して

動画を出力する機能がある

 

初期設定ではCPUエンコードになっているが

設定を変更することでGPUエンコードができる

 

 

GPUの種類を確認する方法

前提としてNVIDIAGPU搭載PCでないとできないので注意

GPUの種類はタスクマネージャーのパフォーマンスのタブから確認できる

maclinux は知らないです

 

タスクマネージャーは 

Ctrl + Shift + Esc

の同時押しで開ける

 

GPUのタブにIntel(R)  とある場合は

今回紹介する方法はできないので注意

 

ReplayModの映像をGPUエンコードする方法

動画出力の設定のコマンドライン設定を変更すると

GPUを指定できる

コマンドライン引数

デフォルトでは

-y -f rawvideo -pix_fmt bgra -s %WIDTH%x%HEIGHT% -r %FPS% -i - %FILTERS%-an -c:v libx264 -b:v %BITRATE% -pix_fmt yuv420p "%FILENAME%"

となっている

ここを

-y -f rawvideo -pix_fmt bgra -s %WIDTH%x%HEIGHT% -r %FPS% -i - %FILTERS%-an -c:v h264_nvenc -b:v %BITRATE% -pix_fmt yuv420p "%FILENAME%"

に変更すると

NVIDIAGPUを使用してエンコードできる

 

なお使用しているFFmpegによっては対応してない場合がある

ReplayModのサイトで紹介されているリンクからダウンロードした

FFmpegなら問題ない

https://www.gyan.dev/ffmpeg/builds/ffmpeg-release-essentials.zip

 

CPUエンコードGPUエンコードの比較

検証環境

7dが撮影していた襲撃トラップの録画データを用いて検証した

mod構成、PCスペックは上の画像の通り

 

襲撃の開始から終了まで

5分23秒の映像を出力して比較した

 

CPUエンコード

CPUエンコード所要時間

所要時間 5:10

 

GPUパフォーマンス

Video Encode 6 %

 

GPUエンコード

GPUエンコード

所要時間 5:11

 

GPUパフォーマンス

Video Encode 20%

CPUエンコードの時より使用量が増えている

 

画質の比較

出力映像のスクリーンショット比較

パーティクルの位置が違うだけで

画質は変わらないように見える

 

まとめ

構想時のタイトルは

ReplayModをGPUで爆速エンコードする

だったが、実際に比較してみるとほとんど変わらなかった

 

CPUとGPUの組み合わせや

軽量化modの構成で結果は変わるかもしれない