ffmpegのvaapi有効化

 vaapiが正常に動いている環境でffmpegをソースからコンパイルすると自動的に有効化された物が出来上がります。
 ここではffmpegにfdk_aacとlibx264を有効化したffmpegを準備しましょう。
 コンパイルの手順は本家にあります。
https://trac.ffmpeg.org/wiki/CompilationGuide/Centos
 本当はstatic buildしたかったのですがvaapi関連を組み込んだ物を作成するとvaapi関連が動かない事が判明したため上記手順でコンパイルした物を利用します。
 
 まずは1分程度の実写物のtsファイルを用意しましょう。可能であれば動きが激しい物が比較しやすいですね。
 テストしましょう。ユーザーffmpegで作られた方はその中の~/binにffmpegがあるはずです。
 うまく出来上がっているか確認します。

 とvaapiが表示されている事を確認します。
 次にエンコードしてみます。テスト用ファイル名を/home/samba/video/001test.tsとした時/home/samba/video/001test.mp4を作成してみます。

 これでうまく動作すれば/home/samba/video/001test.mp4が作成されているはずです。
 これをWindows機なりなんなりで再生してみてください。
 どうでしょうか。libx264の60pBOBにはかないませんがそれなりにエンコードできたと思います。
 私はこれで満足しました。
 このffmpegをどのユーザーでも使えるように設定します。
 私は/usr/local/binに配置しました。

 次にchinachuで録画が終わった後にエンコードさせるためのスクリプトを変更します。
 私は/home/chinachu/chinachu/usr/bin/encode.shに設定しています。
 その中身を以下のように書き換えます。

 更新内容としては他のffmpegが走っていたらsleepで待つ。次にffmpegをh264_vaapiでエンコードする設定です。
 iGPUで走るので負荷が20%程度で済んでいます。ほかの録画もちゃんとできていますしインタレ解除もできているようです。自己満足。
 これでしばらく走らせてみます。

スポンサーリンク
広告
広告

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
広告