本文へ
ハクソク

世界を動かす技術を、日本語で。

PS5のRTMPストリームをハイジャックする

元記事: 原文(yashgarg.dev)

概要

  • PS5の画面共有 をDiscordで行うための非公式な方法の紹介
  • 公式サービス外での配信 は制限が多く、工夫が必要
  • DNSとnginx-rtmpを使ったストリーム受信方法 の詳細解説
  • 物理キャプチャカード不要 でPCへ映像を転送する手法
  • 実際に 安定して運用できた経験 をもとにしたノウハウ共有

PS5の画面共有制限と課題

  • SonyはPS5の機能制限 を徐々に強化
    • 公式サポート外の配信サービス利用不可
    • サードパーティBluetooth機器のペアリング不可
  • Discordへの画面共有非対応
    • 友人とプレイ画面を共有できず不便
  • キャプチャカードのコスト問題
    • 高品質なカードは1万円以上必要

Remote Playの限界

  • Remote Play経由の配信
    • MacBookでPS5画面を受信し、Discordへ画面共有
  • 課題点
    • コントローラーやイヤホンもMac側に接続が必要
    • 入力遅延や画質制御の自由度が低い
    • 毎回物理的な接続構成変更が面倒

PS5のストリーミング仕組み

  • PS5は標準でYouTube/TwitchへRTMP配信対応
    • RTMP(Real-Time Messaging Protocol)利用
  • 配信開始時の流れ
    • PS5がTwitchのDNSを参照し、配信先サーバーを決定
    • 独自のRTMPサーバーに配信できる可能性

適切なホスト名の特定

  • 最初の試行:ingest.twitch.tvの偽装
    • 実際はRTMPサーバーではなく、地域サーバー選択用エンドポイント
  • 証明書検証問題
    • TwitchはRTMPS(TLS付きRTMP)を利用し、自己署名証明書は不可
    • PS5に独自CAをインストールできない
  • YouTube経由の試行
    • 通常のRTMP利用で一時的に成功するも、APIチェックで強制終了
  • 最終的な解決策
    • DNSログからcontribute.live-video.net系列のサーバーを特定
    • サブドメイン全体を偽装し、証明書問題を回避

DNSトリックによる配信先の書き換え

  • dnsmasqとnginx-rtmpの導入
    • Macでdnsmasqを起動し、Twitch関連ドメインをMacのIPへ解決
    • PS5はMacをTwitchサーバーと誤認し配信
  • DHCP設定の工夫
    • OpenWRTルーターでPS5のDHCPリースに特定DNSを自動割当
    • PS5側でDNS設定不要、ネットワーク経由で自動適用

ストリームの受信・取扱い

  • nginx-rtmpの設定
    • 1935ポートでRTMP受信
    • on_publishフックで配信開始を検知し、RTMP URLをアプリに通知
  • ストリーム仕様
    • 映像:1080p60、H.264
    • 音声:AACステレオ
  • 用途に応じた利用
    • OBSで再配信・録画
    • mpvで直接再生しDiscordへウィンドウ共有

実際の視聴・配信方法

  • mpvでの低遅延再生
    • mpv --profile=low-latency --audio-buffer=0.3 rtmp://127.0.0.1/ps5/stream-key
  • Discordへのウィンドウ共有
    • 1秒未満の低遅延で安定運用

まとめ

  • キャプチャカード不要 でPS5の画面をPCへ配信可能
  • DNSとnginx-rtmpを活用 した柔軟な配信先制御
  • 安定した運用実績 と、公式サービス外での自由な配信環境構築ノウハウ
  • 全ソースコードは著者GitHub等で公開

提供: ハクソク · 要約更新:

AIによる日本語要約です。内容は原文とあわせてご確認ください。

Hacker Newsの議論を読む

Hackerたちの意見

なんか見落としてるかもしれないけど、「本当のホスト名を特定する」ってのと「YouTubeにストリームが表示されなくなる心配がなくなる」ってのの間にギャップがある気がする。

└

同じく。YouTubeは諦めたみたいで、OPがやったのはTwitchでストリーミングして、それをTLS認証されたサーバーにリダイレクトする方法だね。>「実際のストリームをMacにリダイレクトして、証明書の問題はなし。」

└

live-video.netのドメインはTwitchのものだよね。だから、どうやらOPはTwitchストリーミングに戻って、最後のRTMPサーバーは証明書を使ってないみたい。

気にしないで、ただここでrk3588のHDMI-RXポートを使って、ちゃんと動いてるのが嬉しいってだけ。ubootのアップデートでボードを壊さずに済んだし。

└

ルーシー、説明してくれない?

nginxとmpvの最後の2ステップをobsやgstreamerと組み合わせることもできるし、実際にはgstreamerだけでもいいよ。

Bluetooth周辺機器の回避策があったら最高だな。PS5で使えるClicks Power Keyboardがあるんだけど、めっちゃ使いたい。

自分のRTMPの宛先を指定できるようにしてくれたらいいのに。クレイジーな考えだけど、わかるよね。

└

ソニーは自社の顧客に嫌われる技術を完全にマスターしちゃったみたいだね。

2026年なのに、まだこのデータが暗号化されずにインターネットを流れてるのはちょっと悲しいな…。RTMPやその背後にある動画・音声プロトコルも簡単じゃないし、インターネットにいるどの三文字の機関でも、PS5を乗っ取って保存されている資格情報を手に入れるための脆弱性が何百も待ってるんじゃないかな…。

└

サーバーは認証情報を返すだけで、クライアントがほとんどの作業をしてるんだよね。RTMPの複雑な部分は、クライアントとサーバーの両方が手を抜いて偽装してるから、Flashがどう動いてたかなんて誰も気にしてないし。だから、悪用するのはあまり可能性がないと思うけど、やってみたらいいんじゃない?実際、サーバー側を攻撃する方が簡単かもしれないね。

└

PS5が特定のサーバー(記事のYouTubeやTwitch)にデータを送信してるから、これって中間者攻撃が必要じゃない?RTMPには暗号化を使ったり、TLSを使ったりする拡張があるけど、音声や動画のビットストリームの断片が保護されずに出てしまうリスクがリモートコード実行のリスクになるってこと?それは脆弱性の問題というより、プライバシーの問題に思えるけど。

Hacker Newsで議論の続きを見る