録画した番組をEPGStationからハードウェアエンコードする方法~VAAPIで高速エンコード~

自宅サーバー

先日、vaapiでハードウェアエンコードする環境を構築する手順を紹介しました。

vaapiでハードウェアエンコードすることによって、録画番組は1/3程度に圧縮することができます。

エンコード環境を整えたので、EPGStationと連携してエンコードができるようにしてみたいと思います。

私のサーバ

私のサーバは、LIVA Z n4200です。

スペックは一部拡張していて、以下となっています。

  • ECS LIVA Z(n4200)CPU n4200 (QSV/vaapiに対応)
    • eMMC 64GB(Windows領域のため使用していない)
    • 拡張ストレージ SSD 120GB(加えて、外付けHDD 16TBあります)
    • メモリ 16GB

ECS 小型デスクトップパソコン LIVAZ-8/240-W10Pro(N4200)TS

EPGStation(録画環境)の構築

以下の記事を参考にして、EPGStationを使った録画環境を構築しておきます。

VAAPIエンコード環境の構築

ハードウェアエンコードをするためのffmpegをビルドします。

DockerでEPGStationを構築した方は、以下の記事を参考にして下さい。

オンプレで構築した場合も、参考にできると思います。

念のため、録画ファイルがvaapiでエンコードできるか、確認しておきます。

上記のコマンドで動画ファイルが圧縮されていればOKです。

エンコード時に使うデバイス(-vaapi_device)は環境に合わせて調整してください。

EPGStationから使えるようにする

毎回手でコマンドを打って録画ファイルをエンコードするのも面倒なので、録画後に自動でエンコードされるようEPGStationのconifg.jsonファイルを修正してみます。

config.jsonの修正

DockerでEPGStationを構築している場合は、プロジェクトディレクトリ配下のepgstation/config/config.jsonを修正します。

修正するのはencodeの部分です。

この修正により、EPGStationのエンコードのメニューにH264/vaapiとH264-sub/vaapiを追加します。

mainとsubは副音声番組の対応です。

例えば、CS番組(カートゥーン ネットワーク)の「きかんしゃトーマス」は二か国語放送なので、エンコード時に音声チャネルを選択しいないと訳が分からなくなります。

enc_vaapi.shの作成

vaapiエンコード時のコマンドを記述しておきます。

私の環境では、こんな感じです。

そのままコピーしてください。

エラーが出るようなら、-vaapi_deviceを環境に合わせて修正してください。

私

設定は以上です。

EPGStationで録画&エンコードしてみる

番組表から録画予約する場合

番組表から録画予約するときに、下のようにエンコードメニューが追加されるのでH264/Vaapiを選択して予約すると、録画後に自動エンコードされます。

ルールで録画予約する場合

ルールで録画予約する場合は、ルール設定画面でエンコード方法を指定します。

録画した番組を後からエンコードする場合

録画した番組をエンコードする場合は、ホーム画面の録画一覧メニューから⊕encodeを選択します。

設定からH264/Vaapiを選択して「追加」します。

エンコードリストに追加されて、順次エンコードが始まります。

まとめ

EPGStationからvaapiエンコードする方法について記事にしてみました。

これで録画番組が貯まっても、ストレージに優しくなりますね。

ECS 小型デスクトップパソコン LIVAZ-8/240-W10Pro(N4200)TS

私

録画とエンコードは目的じゃなく手段

参考になれば幸いです。

コメント

タイトルとURLをコピーしました