foltia ANIME LOCKER(ffmpeg)でGPUによるサポートを受ける
2016年追記
なんでも,nvencなるものがあるらしい.自力でビルドする必要があるが,早いらしい.
近いうちにやってみる.
------------------------------
foltia ANIME LOCKER様にはいつもお世話になっています.
foltia中のffmpegによるmp4への変換にGPUによるサポートを受ける方法を残しておきます.
ffmpegには
といわれる再生支援機能があります.この機能を使うことで動画変換をCPUだけに頼らず,(多分)高速にできます.
対象となるGPUはNVIDIA Geforce 6シリーズ以降です
(追記)
※この作業はソースコードの一部変更を含みます.機能改変は行いません.変換の高速化のみを行います.実行される際は全て自己責任で,公式様にご迷惑をおかけしないようお願いします.
- sh NVIDIA-Linux-x86_64-346.72.run
- 多分失敗するので, 様を参考に,Nouveauを取り外します.
- CentOSにfoltiaでログインします
- system ("nice -n 15 ffmpeg -y -i $trcnmpegfile $ffmpegencopt");
を
system ("nice -n 15 ffmpeg -y -hwaccel auto -hwaccel_device 0:0 -i $trcnmpegfile $ffmpegencopt");
に書き換えます.
有効になっているかはグラフィカルログインをしてNVIDIA X Server Settingsを起動,GPUの項目のVideo Engine Utilizationをみれば分かります.
--------------------------------
2016年追記
hwaccel_deviceに与える引数ですが,X サーバが起動していない(startxしない)とDisplayがopenできないため,変換処理ができないようです.
hwaccel を vdpau ではなく,auto にした場合,自動でCPUのみに切り替わるので気付きませんでした.
したがって,ランレベル3のまま使用する場合には,起動時にXサーバをroot権限で立ち上げるように追記します.
/etc/rc.local の末尾に 「X &」を追記して,保存します.
これで再起動すると,起動時にnvidiaのロゴが一瞬出て暗転し,X サーバが立ち上がります.これでGPUを使った変換が可能です.
X サーバを終了する場合には,sshでログインして,ps ax | grep X からkillを送ります.
--------------------------------