Think threshold

中の人のIYHにいたる顛末と購入レビュー。ときどき自宅システム構築備忘録。

宅内ロケフリをもっとスマートに。(konomitv構築メモ)

宅内ロケフリをもっと快適にして、風呂で動画が見たい。

 

ということで風呂場で快適にリアルタイム動画視聴する環境を整えるため、自宅にkonomiTVを導入してみました。

 

●これまではTVRemoteViewer_VBを利用していた

これまではTVRえもてViewer_VBを利用した宅内トランスコード環境を構築していたのですが、手持ちのAndroidの端末更新、OSアップデートに伴い、頻繁に再生が止まるようになってしまう現象が発生。

一度は更新を試みたのですが、うまく症状は改善しませんでした。

今回は知人から教えてもらったKonomiTVがかなり動作がゴキゲンということで導入してみることに。

github.com

 

●導入

基本的にはReadme.mdのとおりに導入を進めます。

KonomiTV今回はトランスコードはQSVの動くNUC(NUC12)にて行います

 

makoro.hatenablog.jp

 

 

・我が家の環境に合わせEDCBを設定

実はNUCは録画鯖にはしておらず、本体にチューナが搭載されていません。

録画鯖はSpinelを利用し宅内NWからリモートでチューナを呼び出せるようになっているため、それを前提としてこんな感じの連携を目指します。

まずはNUC12に対応するEDCBを導入し、Spinel経由で録画鯖のチューナを呼び出せるよう、ドライバ環境を整えます。(Spinelの導入になるので、ここでは割愛します)

その後、EPGTimeSrvで設定をしていくのですが、EPGTimerの設定上から呼び出す方法では設定がうまく保存できず、EPGTimeSrvを直接立ち上げ、その上で設定を直接行うことで解決しました。なぜだかは不明。

 

なおアクセス制御はlocalhostおよび192.168の宅内ネットワークからのアクセスに変更しています。クラスA/Bセグメントは宅内では使っていないので。。。

 

・トランスコードの環境構築(作業無し)

当然ですが、QSV環境を利用します。(NUCなので)

Windows環境なのでドライバのインストールのみ。

既にAmatsukazeでエンコード環境として当然整えているので、追加作業はなし。

github.com

・KonomiTVのインストール

GitHubから取得したKonomiTVをインストールしていきます。

インストールの中で必要なパッケージの取得とインストール、サーバ証明書の生成、Windowsサービスへの登録が行われるようです。

基本的には聞かれたたことに答えていくだけです。

あとは上記のURLにアクセスするだけです。

QSVでトランスコードされた映像がストリームできるか確認してセットアップは完了です。

 

・必要に応じてWindows Firewallの設定変更

うまくアクセスできない場合、自宅のNW環境とインストール時に自動作成されたWindows Firewallルールとがマッチしていない可能性があります。

我が家はADドメインを構成している関係上、自宅ネットワークが「ドメイン」になりますが、デフォルトだとドメインスコープはチェックされていないので手動で追加して対策しました。

 

 

●使用感

スマホ利用を前提に考えられているだけあってレスポンシブデザインとなっており、PC/スマホどちらでも違和感なく利用できます。

また、ニコニコ実況にも対応しているので、風呂入りながら自宅WiFiに繋いだスマホ(inジップロック)で実況見ながら見れるのも意外とニコニコに慣れ親しんで育った民のワタシ的にはよいポイント。

今のところ大きくストリームが途切れることなく使えているのでとても良いですね。。

 

●おまけ:証明書問題

KonomiTV公式にも記載がありますが、インストール時に証明書が自動生成されます。

仕組みとしては下記のAkebiという仕組みを使っているとのこと。

github.com

・仕組み

この証明書は*.local.konomi.tvというワイルドカード証明書になっており、インターネット側にあるKeyless Server経由でプライベートIPをDNS解決するための仕組みになっているようです。

1)クライアントはxxx-xxx-xxx-xxx.local.konomi.tvを名前解決する(xxx-xxx-xxx-xxxはローカルIPアドレスをハイフン化したもの)

2)クライントに設定されているDNSサーバが通常のDNSリクエストフローを用いてkonomi.tv→local.konomi.tvと名前解決し、KeylessなDNSサーバであるakebi.konomi.tvというDNSサーバにたどり着く

3)KeylessサーバがAレコードの応答として「xxx-xxx-xxx-xxx.local.konomi.tv」のIPアドレスを「xxx.xxx.xxx.xxx」というプライベートIPアドレスを返答する

4)クライアントに設定されているDNSサーバを通じて、クライアントがプライベートIPの解決に成功する

5)ブラウザ経由でアクセス、FQDNワイルドカード証明書としてマッチするため、ブラウザから警告が出ずにHTTPSアクセスが可能

 

というような仕組みなのかなと理解しました。

(makoroさんの理解なので間違っている可能性はあります)

 

外部のDNSサーバを利用している関係上、完全プライベートでは使えないのかな?とも思いますが、プライベートに立てたWebサーバに対し、昨今とてもうるさいブラウザのSSL警告なしで接続できるのは素直にすごいですね。。。