外部受信機器への対応

外部再生の互換モード

AirPlay(Apple TV)や Chromecast で「読み込みエラー」などが発生し、再生できない場合に使用する機能です。外部受信機器側で発生する証明書検証エラーを回避し、メディアを再生できるようにします。

本機能は、外部受信機器の機種・世代・ファームウェア、またはネットワーク環境によって動作は異なり、すべての環境での再生を保証するものではありません。恒久的な解決には「根本対策」をご検討ください。

外部再生の仕組み

Apple TV や Chromecast などの外部受信機器は、アプリから送信された再生指示に従い、メディアの URL に機器自身で接続します。その際、サーバーの TLS 証明書は、外部受信機器に内蔵されたルート証明書ストアを使って検証されます。

本来の仕組み:MumoStream アプリは再生指示を送るだけで、動画データは外部受信機器とサーバーが直接やり取りする

証明書の検証に失敗すると、MumoStream アプリ側ではログインできていても外部受信機器では再生できません。検証に失敗する主な原因は以下のとおりです。

  • 自己署名証明書や社内 CA など、外部受信機器が信頼していない証明書を使用している
  • 機器が古く、新しいルート証明書に対応していない(例:Apple TV 第3世代が新しいルート証明書を信頼できないなど)
  • 証明書のホスト名が一致していない、または有効期限が切れている

互換モードとは

外部再生の互換モードは、MumoStream アプリが外部受信機器向けにメディア取得を中継し、外部受信機器側で発生する証明書の検証エラーによる再生失敗を回避する機能です。このとき、HTTP 通信に切り替わるのは MumoStream アプリと外部受信機器の間のみで、MumoStream サーバーとの通信は HTTPS のまま暗号化されます。

互換モードでの回避:外部受信機器はサーバーではなく MumoStream アプリに接続し、アプリが代理で HTTPS 取得して平文 HTTP で中継する
互換モードでの回避
  • アプリが中継MumoStream アプリが外部受信機器へ平文 HTTP で配信し、サーバーからは暗号化(HTTPS)のまま取得します。外部受信機器側では証明書検証が不要になります。
  • 暗号化は維持平文になるのは同じ Wi-Fi 内の「アプリ ↔ 外部受信機器」の区間だけです。アプリ ↔ サーバーの通信は HTTPS のまま暗号化されます。
  • AirPlay と Chromecast に対応どちらの外部受信機器でも有効です。非対応コーデックはアプリ内で HLS に変換して中継します。

MumoStream アプリでは、ログイン時の証明書検証エラー画面で「接続する」を選択すると、自己署名証明書などをアプリ内で信頼できます。ただし、この信頼設定は外部受信機器には引き継がれません。互換モードでは、MumoStream アプリがサーバーから HTTPS でメディアを取得し、外部受信機器へ HTTP で中継します。これにより、外部受信機器側の証明書検証エラーによる再生失敗を回避できます。

設定方法

互換モードは、アプリが MumoStreamサーバーへ HTTPS で接続している場合のみ有効です。HTTP 接続では証明書検証が不要なため、この設定は自動的に無効になります。

  1. アプリの「設定」を開きます。
  2. 「外部再生の互換モード」をオンにします。
  3. AirPlay または Chromecast で再生します。

通常はオフのままで問題ありません。外部受信機器で再生できない場合のみオンにしてください。

検証情報

互換モードをオンにすると、外部受信機器側の証明書検証エラーによる再生失敗を回避できます。

プロトコル 互換モード AirPlay Chromecast
HTTP オフ
HTTPS
(未信頼証明書)
オフ
オン
HTTPS
(公的認証局証明書)
オフ
オン

再生可 再生不可

「未信頼証明書」は、自己署名証明書など、外部受信機器が信頼できない証明書を使用している状態です。
「公的認証局証明書」は、Let's Encrypt など公的認証局から発行された証明書を使用している状態です。

検証に使用した外部受信機器は以下です。

  • Chromecast with Google TV HD(GA03131-JP)
  • Apple TV 第3世代 Rev A(A1469)

根本対策

互換モードは、恒久的な対策ではなく、一時的な回避策としてご利用いただく機能です。安定して利用するには、外部受信機器が証明書を信頼できる状態にすることが確実です。

  • 信頼できる証明書を用意する
    Let's Encrypt など、公的認証局から発行された証明書を使用すると、多くの外部受信機器で証明書エラーを避けやすくなります。MumoStream サーバーは、UPnP+ACME による証明書の自動取得に対応しています。設定方法についてはUPnP で SSL 化をご確認ください。
  • 証明書のアルゴリズムを ECDSA から RSA に変更する
    古い機器では、より広く普及している RSA 証明書(Let's Encrypt の場合は ISRG Root X1 チェーン)の方が信頼されることがあります。サーバーの ACME 設定で鍵種別を RSA に切り替えて試してください。
  • 機器を入れ替える
    外部受信機器(Apple TV / Chromecast)が古く、ルート証明書が更新されない場合は、新しい世代の機器に替えることで解消する場合があります。

古い外部受信機器では、公的認証局から発行された証明書であっても再生できない場合があります。
一例として、検証に使用した Apple TV 第3世代では、新しいルート証明書を信頼できなかったため公的認証局の証明書でも再生できませんでした。

注意点

  • 動作は保証されません
    外部受信機器の機種・世代・ファームウェア・ネットワーク環境により、結果は異なります。すべての環境での再生を保証するものではありません。
  • 平文区間は LAN 内のみ
    平文になるのは、同一 LAN 内の「アプリ ↔ 外部受信機器」の区間だけです。「アプリ ↔ サーバー」の通信は HTTPS のままです。
  • HTTP 接続では無効
    サーバーへ HTTP で接続している場合は証明書検証が不要なため、この設定は無効になります。
  • 必要なときだけオンにしてください
    外部受信機器が証明書を信頼できる環境ではオフのままで再生できます。通常はオンにする必要はありません。