てなわけでAmazonセールで間違った時を刻んでいる時計の代わりにEcho Show 5を買ってみました。

こいつに関するレビューはまた別でするとして・・
Echo Showってずっと起動しておいてあるので、好きな動画とかテレビとかをラジオ感覚で垂れ流ししたいなぁって、多分誰でも思うんですよね。

とくに5とかじゃなくてサイズが大きいやつを持ってる人なんかは特にそうだと思います。

色々調べて見たところスキルを自作してネットワークアクセス可能な場所に動画を配置するとかそういうのしか見つからなかったので、違う発想で解決させました。

求めてるもの

  • 音声操作はできなくても良い
  • QNAPや録画鯖のデータにアクセスして再生ができること
  • できればMirakurun経由でテレビが見れるといい

まあここまで来ると、Echo Showはブラウザがあるのでそれを使えばいいやってなりますね。
なので以下条件も追加します。

  • 簡単にセルフホスト可能なストリーミングサービス
  • エンコードしながら再生できるように(MPEG-2とかHEVCの動画がほとんどなので)
  • エンコードはハードウェアエンコ(VAAPI,QSV)を使いたい

てなわけでJellyfinというのを見つけたので、それを試すことに。

前提

  • Mirakurun導入済みの録画サーバ
  • ハードウェアエンコが可能なサーバ

私の環境

  • Mirakurun
  • QNAP TS-251D & ContainerStation

Jellyfin

細かいところは公式サイトを見ていただくとして・・。

IPTV対応でMirakurun経由でテレビ視聴が可能であること、
NAS上においてある動画を指定してブラウザから再生できること、
リアルタイムエンコード対応かつVAAPI,QSV両方とも対応していること。

もう完璧ですね。

Jellyfinの導入

Dockerで導入します。

詳細はドキュメントから。
https://jellyfin.org/docs/general/administration/installing.html

最初はCore i3-6300搭載の自宅サーバに導入する予定だったんですが、
どうもうまくハードウェアエンコードが動かない。

ハードウェアエンコしているのにCPU使用率が100%になるし、どうやら今のバージョンはバグというかパッケージ不足があるみたい?) [1]

あと多分CPU的に対応してないやつを使ってる・・。。。

んで、少し世代の新しいCeleron J4025を搭載した、QNAP TS-251Dで試すことに。
(HDDうるさいからあんまりサービス動かしたくない・・w)

QNAPだと結構楽で(変わらん?)ContainerStationからアプリケーションの作成でDocker Composeファイルを記載するだけ。

renderD128を渡してあげることでハードウェアエンコが利用可能になります。
(必要なパッケージ等はDockerファイルに入ってる)

また、メディアディレクトリを指定してあげることを忘れずに。

これで作成を押してあげれば、起動します。

Jellyfinの設定

設定の細かい話はやってみればわかるのでいいとして、重要なところだけ。

メタデータ

メタデータは基本的に全部はずしたほうがいいです、ネットに情報を取りに行ってしまう上に、間違った情報が来るので大変なことになります。

イメージを取得については、Screen Grabberだけ有効にすることで、サムネイルを生成してくれます。
結構時間かかるので気長に待ちます。

Mirakurun

IPTVに対応しているので、Mirakurun側のドキュメントを参考に設定をするだけです。

ちゃんと番組表もみれます。

一つ気になるところとしては、番組の番号?が表示されてるところですね・・。
タイトル編集から変えられないかなと思ったら、数字の部分入っていなかったのでダメそう・・。

カスタムCSS

日本語のフォントがおかしいので、フォントの読み込み順番を変えてあげます。

ただ、JPを先頭にしただけです。

html {
    font-family: Noto Sans JP,Noto Sans,Noto Sans HK,Noto Sans KR,Noto Sans SC,sans-serif;
}

プレイバック

プレイバック設定でトランスコーディングを変更できます。

QSVは前述の通り動かないので、VAAPIを使いました。

設定周りとか対応コーデックとかはドキュメントに記載されています。

https://jellyfin.org/docs/general/administration/hardware-acceleration.html

また、ここの設定で字幕のフォントも変更が可能です。
変えておかないと日本語がすべて文字化けしてしまうので、フォントを設定してあげてください。

私はConfigの中にfontsフォルダーを作ってそこにぶち込みました。

再生について

Echo Show5のSilkブラウザで動画が再生されるまで、15~20秒ほどかかります。

  1. 「アレクサ、シルクブラウザーを開いて」
  2. ブラウザが開かれる
  3. テレビのチャンネルを選択
  4. 5~10秒ほどで再生開始

CPU使用率はほぼ上がりません、さすがです。

エンコードについては再生画面でYouTubeみたいに選択できるので、私は480p-3Mbpsにしてます。5インチならこれで十分ですね。

ちなみに、テレビはリアルタイムで字幕表示無理です。

EPGStationならできると思うので、その環境があればそれで見るといいかも?
Chinachu γは再生画面が貧弱なのでフルスクリーンにできずかなり見づらいのでちょっとダメ・・・。

ちなみに、ブラウザベースなのでスマホとかで外で見たいなぁとか思ったときにもエンコードして容量削減できるので便利です。
VPN繋いでアクセスすればいいだけですね。


そんなわけで、目標だったテレビ視聴とQNAP上の動画再生が叶いました。

動画についてはQNAPである必要はないので、ローカルだろうとNASだろうとどこのやつでもマウントしてあげればいいだけなので簡単。

構築もDockerでらくらく、
強いて言えばライブラリの取得に時間がかかりすぎてるくらいかな・・・。

再生自体はスムーズで、途中で止まったりもないので必要十分だと思います。

では、また。


  1. https://github.com/jellyfin/jellyfin/issues/5993 ↩︎