先日、録画サーバーの引越しを行いました。
過去の録画サーバー構築編はこちら。
このPCは、拡張スロットが4つあります。
2.5GbE対応対応LANは先日追加しました。
GeForce GTX 1050 Ti GDDR5 4GBへの交換
今回は、エンコードの高速化目的で、MSI GeForce GT710 GDDR3 2GBから、2スロット、補助電源不要、ロープロファイル対応のGIGABYTE GeForce GTX 1050 Ti GDDR5 4GBをヤフオクで購入し交換することにしました。
グラフィックボードが大きいので、架を開けて挿入しました。
GeForce GTX 1050 Ti GDDR5 4GBでのffmpegでの動画エンコード
GTX 1050 Tiをffmpegで.ts(mpeg2)ファイルをh264_nvencでエンコードしましたがffmpegのバージョンで処理速度が異なりました。
ffmpg ver. | CPU使用率 | GPU使用率 | 処理速度 |
4.1.2(GT710) | 低 | 高 | 5x〜6x程度 |
4.1.2(GTX1050Ti) | 中 | 中 | 8x〜9x程度 |
7.0.0(GTX1050Ti) | 100% | 中 | 10x〜14程度 |
GTX1050Tiですがffmpegを7.0.0にバージョンアップしたところ、処理速度は14x程度で爆速でしたが、CPU使用率が常に100%状態でした。
ffmpegエンコードでCPU使用率を制限する
そこでググったところ、ffmpegのコマンドオプションでCPU使用率を制限することができることがわかりました。下記のブログを参考にさせていただきました。
「-threads スレッド数」スレッド数を増やしていくと制限が緩くなってきます。取り敢えず、自分の場合はスレッド数を「3」に指定して95%程度に抑えることが出来ました。オプションの指定は出力ファイル名の直前にしないと有効にならないみたいです。
FFmpeg_encode.batの変更。
C:\Tools\EDCB\ffmpeg.exe -i “$FilePath$” -vf bwdif=0 -c:v h264_nvenc -preset medium -crf 23 -ac 2 -bsf:a aac_adtstoasc -s 1280×720 -threads 3 “$FolderPath$\$FileName$.mp4”
move /Y “$FolderPath$\$FileName$.ts” “$FolderPath$\succeeded\.”
Amazonでもありました。
コメント