技術系備忘録

プログラミング、人工知能、議論などの技術系の設定・使い方などの方法の置き場です.いつも助けてもらっているので誰かの助けになれば

foltia ANIME LOCKER(ffmpeg)でGPUによるサポートを受ける

2016年追記

なんでも,nvencなるものがあるらしい.自力でビルドする必要があるが,早いらしい.

近いうちにやってみる.

dic.nicovideo.jp

 

------------------------------

foltia ANIME LOCKER様にはいつもお世話になっています.

 

foltia中のffmpegによるmp4への変換にGPUによるサポートを受ける方法を残しておきます.

ffmpegには

itpro.nikkeibp.co.jp

といわれる再生支援機能があります.この機能を使うことで動画変換をCPUだけに頼らず,(多分)高速にできます.

 

対象となるGPUNVIDIA Geforce 6シリーズ以降です

(追記)

※この作業はソースコードの一部変更を含みます.機能改変は行いません.変換の高速化のみを行います.実行される際は全て自己責任で,公式様にご迷惑をおかけしないようお願いします.

 

  1. NVIDIAドライバダウンロード

  2. sh NVIDIA-Linux-x86_64-346.72.run

     

  3. 多分失敗するので,

    plaza.rakuten.co.jp

    様を参考に,Nouveauを取り外します.
  4.  sh NVIDIA-Linux-x86_64-346.72.run を再実行

  5. CentOSfoltiaでログインします
  6. vim ~/perl/ipodtranscode.pl

  7. 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を送ります.

--------------------------------