핵심 요약
- PS5에서 지원하지 않는 디스코드 화면 공유를 위해 100달러가 넘는 캡처 카드를 사는 대신 네트워크 트릭으로 우회한 개발자의 사례가 공개되었습니다.
- PS5가 트위치로 방송을 보낼 때 DNS를 조회한다는 점을 이용해, 로컬 맥북을 트위치 서버로 위장시켜 RTMP 스트림을 가로챘습니다.
- 공유기 DHCP 설정과 dnsmasq, nginx-rtmp를 조합하여 추가 하드웨어 구매 없이 깔끔하게 로컬 PC로 화면을 전송받는 데 성공했습니다.
요약 플레이스테이션 5(PS5)는 콘솔 자체의 편리한 '방송' 기능을 갖추고 있지만, 소니가 공식 지원하는 일부 플랫폼(트위치, 유튜브 등)을 제외하면 외부 기기나 서비스로의 화면 공유가 대단히 폐쇄적입니다. 블루투스 기기 연결마저 자사 전용 액세서리로 제한하듯, 디스코드 같은 플랫폼으로 직접 화면을 띄워 친구들에게 보여주는 기능 역시 지원하지 않습니다.
보통 이러한 한계를 우회하려면 10만 원이 넘는 고가의 캡처 카드를 구입해 HDMI 출력을 PC로 넘기거나 '리모트 플레이'를 사용해야 합니다. 하지만 리모트 플레이는 컨트롤러와 헤드폰을 전부 PC에 다시 연결해야 하고 입력 지연(인풋랙)이 발생하며, 화질도 콘솔 마음대로 결정되어 번거로움이 컸습니다. 이에 한 해외 개발자가 하드웨어 추가 지출 없이 콘솔 내부의 스트리밍 패킷 경로를 가로채는 기발한 네트워크 트릭을 구현해 화제가 되었습니다.
원리는 PS5가 트위치나 유튜브로 방송할 때 사용하는 RTMP(Real-Time Messaging Protocol) 프로토콜을 공략하는 것입니다. PS5는 트위치의 IP 주소를 고정해두지 않고 방송을 시작할 때마다 DNS 조회를 거치는데, 개발자는 자신의 맥북(Mac)이 트위치 서버인 것처럼 속여 RTMP 스트림을 가로챘습니다.
초기 시도에는 시행착오가 있었습니다. 단순히 트위치 접속 주소인 ingest.twitch.tv를 속이자, 해당 주소는 실제 방송 서버가 아니라 리전 탐색용 엔드포인트였고, 실제 전달되는 RTMPS는 TLS 인증서를 요구해 PS5에서 인증서 에러가 났습니다. 유튜브의 경우 포트 1935의 일반 RTMP를 써서 가로채는 데는 성공했지만, PS5가 주기적으로 유튜브 API를 확인해 실제 라이브 상태가 아니면 60초 뒤에 방송을 강제 종료하는 문제가 있었습니다.
해결책은 DNS 로그 분석을 통해 실제 스트림이 전송되는 도메인(contribute.live-video.net 하위 도메인들)을 찾아내는 것이었습니다. 개발자는 로컬 맥북에서 dnsmasq를 구동해 해당 도메인들이 맥북의 로컬 IP를 가리키도록 설정하고, OpenWRT 공유기 설정을 통해 PS5의 DHCP 옵션으로 해당 DNS를 자동 할당받게 만들었습니다. 그리고 맥북에 nginx-rtmp 서버를 띄워 PS5가 전송하는 비디오 스트림을 고스란히 받아냄으로써, 캡처 카드 없이도 로컬 PC에서 자유롭게 화면을 받아 디스코드 등에 공유할 수 있는 시스템을 완성했습니다.
Sponsored · 광고