PS5 の RTMP ストリームの乗っ取り

2026/09/29 0:35

PS5 の RTMP ストリームの乗っ取り

RSS: https://news.ycombinator.com/rss

要約▶

Japanese Translation:

PlayStation 5 ユーザーは、公式の共有機能や HDMI キャプチャーカードを使用するのではなく、DNS リダイレクションを用いてサードパーティ製プラットフォームにゲームプレイをストリーミング配信できます。ソニーは不明なサービスからの直接 RTMP インゲストをブロックし、発見エンドポイントで証明書の検証を実行しています。

ingest.twitch.tv
のスプーフィングは失敗する这是因为、地域別の RTMPS サーバーを返すため、信頼された証明書が要求されます。一方、YouTube は API の活性チェックにより約 60 秒後に配信を停止します。
contribute.live-video.net
のスプーフィングは機能する这是因为、すべてのサブドメインをカバーし、トラフィックを転送する際に証明書問題を引き起こしません。この解決策では、macOS ホスト(IP: 192.168.8.175)上で
dnsmasq
を実行し、Twitch のインゲストドメイン(例:
live.twitch.tv
,
ingest.global-contribute.live-video.net
)を Mac にリダイレクトし、すべてのインタフェースで監聽し、アップストリーム DNS として 1.1.1.1 と 8.8.8.8 を使用します。OpenWRT を実行する GL.iNet ルーターは、DHCP オプション 6 を介して PS5 向けに Mac の IP アドレスを配信します。
nginx-rtmp
サーバーはアプリケーション「ps5」でポート 1935 でストリームを受け付け、その
on_publish
コールバックは localhost:9988 にポストし、メニューバーアプリが開始を検知して RTMP URL を表示できるようにしています。視聴には低レイテンシプロファイルを使用する
mpv
が用いられ、
rtmp://127.0.0.1/ps5/stream-key
で直接再生することで亚秒単位までの遅延を実現します。このアプローチは、PS5 ソフトウェアを変更したり新しいハードウェアを購入したりすることなく、低レイテンシのストリーミングを可能にしつつ、macOS ホストとサーバー設定が稼働している限り有効です。

本文

PS5 を Discord へ画面共有する:DNS 迂回で実現した回り道方法

ソニー製 PS5 は公式に Discord への画面共有をサポートしていませんが、リモートプレイの制限や高価なキャプチャカードを買わずに、DNS のトリックと自己管理サーバー(Mac)を介して実現する方法があります。

この方法は、PS5 が Twitch に対して送るストリームデータを Mac で受け取り、それを Discord に映す仕組みです。


1. 背景と問題点

ソニーの制限

  • PS5 の機能は段階的に制限されており、公式サポートしていないサービス(サードパーティ製 Bluetooth デバイスなど)への対応が悪化しています。
  • Discord への直接画面共有は非対応です。

既存解決策の課題

  • キャプチャカード + HDMI 出力:
    • Mac の OBS を介して配信可能ですが、高品質な機材は**100 ドル以上(約 14,500 円)**必要で高額です。
    • 物理的なセットアップ変更が毎回必要になります。

2. 試行錯誤:リモートプレイの限界

基本的な連携

  • PS5 と Mac を接続し、Mac の画面を Discord に共有することは可能です。
  • ただし、以下の問題が発生しました。

リモートプレイでの不便さ

  • 周辺機器の制約: イヤホンやコントローラーなど、全ての入出力デバイスを MacBook 側に接続する必要があります。
  • 入力遅延: タイミングによって操作への遅れが発生します。
  • 品質制御の欠落: ストリーム品質は PS5 側で管理されており、Mac 側での調整ができません。

結論: 物理的なセットアップ変更を避けたい場合に不向きでした。


3. 核心:PS5 ストリーミングの仕組みを理解する

RTMP プロトコル

  • PS5 は YouTube や Twitch への配信に RTMP (Real-Time Messaging Protocol) を使用します。
  • 通常、ブロードキャスト開始時、PS5 は Twitch のインゲストサーバーへの接続先を取得します。

DNS による制御の鍵

  • PS5 は Twitch の IP アドレスをハードコードしていません。
  • ブロードキャスト時に DNS(ドメイン名解決)を行うことで、接続先に動的に決定しています。
  • 戦略:
    ingest.twitch.tv
    のような初期問い合わせに対して、Mac の IP アドレスを返すように DNS を偽装すれば、PS5 は Mac と見なしてストリームを送信します。

技術的な壁と突破

  1. Twitch (
    ingest.twitch.tv
    ) の失敗
    :
    • RTMPS (TLS 暗号化) が必要なため、自己署名証明書は拒否されました。
  2. YouTube の試行:
    • TLS なし(ポート 1935)の RTMP で接続可能でしたが、「ライブか?」をチェックする API 検証に失敗し、約 60 秒後に配信が止まりました。
  3. 成功のポイント:
    • DNS ログを監視した結果、実際の有効なサーバーは
      ingest.global-contribute.live-video.net
      でした。
    • このドメイン全体に対する DNS レダイレクトが可能であれば、証明書問題も回避できました。

4. 具体的な構成と設定手順

必要な環境

  • Mac (ストリームを受け取るホスト)
  • dnsmasq
    (DNS サーバー)
  • nginx-rtmp
    (ストリーム処理サーバー)
  • ルーター (OpenWRT 等、DHCP 制御可能)

ステップ A: DNS のレダイレクト設定 (Mac 側)

dnsmasq
を Mac で起動し、Twitch 関連のドメインを Mac の LAN IP へリダイレクトします。 ※
192.168.8.175
は Mac の IP アドレスに書き換えてください。

dnsmasq.conf
設定例

server=1.1.1.1
server=8.8.8.8

# Twitch インゲストトラフィックを Mac の IP へリダイレクト
address=/contribute.live-video.net/192.168.8.175
address=/ingest.global-contribute.live-video.net/192.168.8.175
address=/live.twitch.tv/192.168.8.175
address=/live-sin.twitch.tv/192.168.8.175
address=/live-nrt.twitch.tv/192.168.8.175
address=/live-syd.twitch.tv/192.168.8.175
address=/live-fra.twitch.tv/192.168.8.175
address=/live-ams.twitch.tv/192.168.8.175
address=/live-lhr.twitch.tv/192.168.8.175
address=/live-jfk.twitch.tv/192.168.8.175
address=/live-lax.twitch.tv/192.168.8.175
address=/live-sea.twitch.tv/192.168.8.175

log-queries
log-facility=/tmp/dnsmasq.log

no-hosts
listen-address=0.0.0.0

動作原理

  • PS5 が
    ingest.global-contribute.live-video.net
    を検索すると、Mac の IP (
    192.168.8.175
    ) を返されます。
  • PS5 はこれを Twitch サーバーだと思い込み接続を試みます。

ステップ B: ルーターでの DHCP 設定

PS5 が自動的に Mac の DNS サーバーを参照するようにルーター側で設定します(OpenWRT 例)。

SSH コマンド実行

uci add_list dhcp.lan.dhcp_option="tag:PS5,6,192.168.8.175"
uci commit dhcp
/etc/init.d/dnsmasq restart
  • tag:PS5
    : PS5 のリースアドレスに紐付くタグ。
  • オプション 6: DNS サーバーへの指示。

これにより、PS5 は DHCP リニュー時に自動的に Mac の DNS を取得します。


5. ストリームを受け取る (nginx-rtmp)

Mac 側で

nginx-rtmp
を設定し、RTMP ストリームを処理します。

nginx-rtmp.conf 設定例

worker_processes 1;

error_log /tmp/nginx-error.log warn;
pid /tmp/nginx.pid;

events {
    worker_connections 512;
}

rtmp {
    server {
        listen 1935;
        chunk_size 4096;
        application ps5 {
            live on;
            record off;
            sync 10ms;
            
            # ストリーム開始を通知するためのコールバック
            on_publish http://127.0.0.1:9988/on_publish;
        }
    }
}

http {
    server {
        listen 8080;
        location /stat {
            rtmp_stat all;
        }
    }
}

仕組みの要約

  1. PS5 がブロードキャスト開始。
  2. DNS レダイレクトにより Mac に接続。
  3. nginx-rtmp
    がポート 1935 で RTMP ストリーム (
    1080p60
    , H.264, AAC) を受け取る。
  4. on_publish
    コールバックにより、Mac の管理アプリケーションが「配信開始」を検知し、フル URL を取得可能になります。

6. 視聴と共有 (Discord)

OBS を経由せず、軽量なプレイヤーでストリームを再生・共有します。 ローラテンシー(低遅延)プロファイルを使用し、1 秒未満の遅延を実現しています。

mpv による直接再生コマンド

mpv --profile=low-latency --audio-buffer=0.3 rtmp://127.0.0.1/ps5/stream-key
  • rtmp://127.0.0.1/ps5/stream-key
    : Mac 上の nginx-rtmp が管理するストリーム URL。
  • mpv のウィンドウを Discord で共有することで、高品質なゲーム実況を友人と見ることができます。

まとめ

  • 安定性: 数週間利用し、重大な問題は発生していません。
  • コスト: ハードウェア購入費不要。
  • コード: 完全なソースコードは公開されています(※記事元へ参照)。

同じ日のほかのニュース

一覧に戻る →

2026/09/29 5:23

ジェフ - ホームで学習した Jev 互換の 08B 意思決定モデル、約 30ms

## Japanese Translation: 「Jeff」スートは、**Qwen3.5**および**Gemma 4**アーキテクチャに基づく独立したファインチューニング済みモデルの集合であり、テキスト生成や外部パースなしで超高速なゼロショット分類を可能にします。これらの Apache 2.0 ライセンス付きモデル(NVIDIA GPU/PyTorch または Apple silicon MLX 経由の `uv` で入手可能)は、単一のフォワードパスで校正された確率を返し、ハイエンド消費者向けハードウェア上での意思決定時間は約**22–30ms**(より大きな独立したプロジェクトに比べて著しく高速)です。従来の手法とは異なり、TypeSafe Jev エコシステムとは互換性を持つが affiliated ではないリクエストフォーマットを用いて、ローカルコードに直接スロットリングします。ベンチマークでは、Jeff モデルが分類やグラウンディングタスクにおいて未トレーニングのベースモデルと同等かそれ以上に優ることが示されています(例:Jeff-Qwen3.5-2B のスコアは 83.1 で、Jev の 83.0 を上回っています)が、小さいパラメータ数においては推論能力には限界があります。重要な点は、成功は特定のプロンプトフォーマットに依存しており(標準的な Jev プロンプトでは機能せず、結果の文言を明記する必要がある)、選択肢の構造が一貫していることです。このスートは軽量パイプライン向けの展開で独自の利点を提供し、一部のバリエーションはファインチューニングを通じて特定のゲーム様態タスクにおいてより大きなモデルを上回るパフォーマンスを示しますが、開発者は 2B バリエントにおける潜在的なリスク回避傾向や、高いベンチマークスコアが必ずしもプレイアビリティの信頼性を保証するわけではないという注意点に対処する必要があります。

2026/09/26 19:16

12,000年前のゲベクレテペ墓から分骨の謎が解明された

## Japanese Translation: 考古学者は、トルコの Göbeklitepe における埋葬慣行を解明し、先陶器新石器時代 B 期(紀元前 8700–8000 年頃)に属する未発掘の地下 2 つの埋葬を検出しました。Burial 1 は、L09-65 トレンチ内の長方形建物の床下に発見され、少なくとも 3 名の遺骸が含まれていました:女性(35 歳以上)、男性(20–30 歳)、少女(11–14 歳)。Burial 2 は DR1 トレンチに位置し、左側を向いて屈曲した東向きで寝ている 20–30 歳の青年女性でした。どちらの埋葬も切断痕、熱損傷、またはオクロを使用していない点で特徴的であり、骨は齧歯類による咬み跡および圧力あるいは石灰質堆積物による骨折を示していました(これらは Burial 2 の大部分を破片化しました)。これらの通常の床下墓は後に土壌移動や斜面崩壊によって乱され、緩い骨の断片が斜面を下ってモニュメンタルな建物へと運ばれました。このプロセスは、1995 年以来回収された数百個の散在する断片(単独の頭蓋を含む)を説明し、遺骸の混雑が単一の異常な儀式の結果ではなく、主に自然な移動によるものであることを示しています。これにより多くの証拠の説明が可能となりますが、以前の意図的な頭蓋変形や頭蓋骨断片のより高い比率は、一部の個人が依然として特別扱いを受けたことを示しており、複数の慣習が共存していた可能性が高いです。これらの発見は Göbeklitepe の新石器時代埋葬伝統の解釈を再構築させ、研究者が各断片が独特な儀式に属するとは見なすことなく人口動態パターンを再構築することを可能にします。今後の研究では、直接年代測定と詳細な骨分析を通じてこれらの異なる慣行が発生した時期を特定することに焦点を当てます(PloS One, 2026 年発表)。

2026/09/29 3:58

マイクロLLM ラブブラウザで7つの超小型LLMを試せ

## 日本語訳: ## まとめ: 本システムでは、ブラウザセッション内での持続的なデコード速度と精度を測定することで AI モデルのパフォーマンスベンチマークを行い、すべてのデータがプライバシー保護された状態かつローカル環境で留まることを保証します。このアプローチは、外部の歴史的な基準値よりもリアルタイム評価を優先し、ユーザーのマシーン上で直接迅速な反復を可能にします。特に、テストフレームワークは、1.35 億パラメータ版のような小型モデルであっても特定のチェックで失敗するよう許容しており、限界を隠蔽せずに正確な機能報告を保証します。パフォーマンス推定値では、利用可能な場合、ユーザーの最新のトークン/秒(tps)値をデフォルトとして採用し、即時的な文脈を提供します。セキュリティと一貫性を確保するため、JavaScript 評価エンジンではページのカレントオリジン内で厳密に `eval()` を使用し、外部コードの注入を防ぎつつ信頼性を維持します。モデルが評価されるにつれ、最新設定されたスイートに基づいてグラフが自動的に生成され、各ランのデコード済みテキスト出力に対する具体的なパフォーマンスを反映します。このローカリゼーションされた手法により、ベンチマークは直近の環境に厳密に紐づけられ、クラウドストレージやサーバーサイド履歴への依存を排除しつつ、現在の機能を透明視認可能にし、迅速かつプライバシー保護されたモデル比較を促進します。

PS5 の RTMP ストリームの乗っ取り | そっか~ニュース