EPGStation v2でハードウェア動画再生支援機能(vaapi)を使ってエンコードする方法②

自宅サーバー

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

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

EPGStation v1の手順は以下で解説しています。

EPGStation(録画環境)の構築

まずは、EPGStation v2とMirakurunで録画環境を構築しておきます。

ここまでで正常に予約録画ができることを確認しておきます。

VAAPIエンコード環境の構築

続いて、VAAPIエンコードができるようMirakurunコンテナ内でffmpegをビルドします。

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

以下のコマンドで適当な動画が正常にエンコードで来ていることを確認します。

上記コマンドの./recorded/hogehoge.m2ts./recorded/hogehoge.mp4は適当な値に修正してください。

圧縮されあ動画ファイルが生成されていればOKです。

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

EPGStation v2の設定

config.ymlの修正

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

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

この修正により、EPGStationのエンコードのメニューにH.264(vaapi)を追加します。

エンコードする際は、%ROOT%/config/enc_vaapi.shmainという引数を添えて実行します。

一応、副音声でのエンコードができるように引数でmainをしていますが、副音声でのエンコードは不要なのでconfigには追記していません。

enc_vaapi.shの作成

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

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

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

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

設定は以上です。

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

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

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

ルール/検索で録画予約する場合

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

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

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

設定からH264(vaapi)を選択して「追加」します。

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

まとめ

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

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

ちなみに、EPGStation v2では録画しながら追っかけ再生もできるようですが、私は使っていません。

追っかけ再生する場合も、vaapiでリアルタイムエンコードすればネットワークに優しい使い方になるかもしれません。

まぁ、見て消えるだけならvaapiでエンコードする必要はありませんが。

参考になれば幸いです。

コメント

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