ZERODOC INC./AETHERSTREAM/v0.1.0 ALPHA

내 Windows PC 화면을 다른 기기로.

AetherStream은 DXGI Desktop Duplication으로 Windows 화면을 캡처하고, GPU의 Media Foundation 하드웨어 인코더(소프트웨어 폴백 포함)로 H.264 인코딩한 뒤 UDP로 Windows·Android 클라이언트에 전송합니다. 키보드·마우스·컨트롤러 입력은 호스트로 되돌려 보냅니다. 현재는 알파 단계이며, 지금 되는 것과 안 되는 것을 아래에 그대로 공개합니다.

v0.1.0 알파 다운로드

지연시간: 아직 측정하지 않았습니다. 성능 수치는 측정 방법과 원본 데이터를 함께 공개할 때만 게시합니다 (공개 수치 레지스트리).

v0.1.0 설치 전 반드시 확인하세요
  • v0.1.0에는 암호화·인증이 없습니다. 호스트가 실행 중일 때 같은 네트워크의 다른 기기가 화면을 수신하고 호스트 PC에 키보드·마우스 입력을 보낼 수 있습니다. 완전히 신뢰하는 네트워크에서만 사용하고, 스트리밍하지 않을 때는 호스트를 종료하세요. PIN 페어링과 암호화를 적용한 프로토콜 v2를 개발 중입니다.
  • 방화벽 규칙. v0.1.0 인스톨러는 모든 네트워크 프로필에서 UDP 47998–47999 인바운드를 허용하며, 제거 프로그램이 이 규칙을 지우지 않습니다. 관리자 권한 터미널에서 다음 명령으로 제거할 수 있습니다: netsh advfirewall firewall delete rule name="zerodoc AetherStream UDP"
  • 로컬 PIN 노출. v0.1.0 데스크톱 앱이 실행 중일 때 로컬 엔드포인트를 통해 같은 PC에서 연 웹페이지에 호스트 PIN이 노출될 수 있습니다. 수정을 진행 중입니다.
  • 서명되지 않은 빌드. Windows 인스톨러는 코드 서명이 없어 SmartScreen 경고가 표시되며, Android APK는 개발용 키로 서명되어 있습니다. 반드시 이 페이지의 공식 링크로만 받으세요.

지금 되는 것과 안 되는 것

2026-11-03 내부 코드 감사 기준입니다. "진행 중"은 작업이 진행되고 있다는 뜻이며 완료가 아닙니다. 이 표는 실제 실행으로 검증된 변경이 있을 때만 갱신합니다.

영역상태내용
화면 캡처구현됨DXGI Desktop Duplication, 프레임을 GPU 메모리에 유지. 마우스 커서는 아직 스트림에 합성되지 않습니다.
영상 인코딩부분Media Foundation 하드웨어 인코더로 H.264, OpenH264 소프트웨어 폴백. GPU 제조사별 호환성은 아직 검증하지 않았습니다. NVIDIA 인코더 직접 연동은 검토 중입니다.
암호화 전송 (프로토콜 v2)진행 중SPAKE2 기반 PIN 페어링, 모든 패킷 ChaCha20-Poly1305 암호화, 단일 UDP 포트(47998). v0.1.0은 모든 데이터를 평문으로 전송합니다.
Windows 클라이언트부분테스트 하네스에서 1080p H.264 디코딩 확인. 색 변환이 CPU에서 실행되며, 디코딩을 UI 스레드에서 분리하는 작업이 진행 중입니다. 전 구간 스트리밍은 재검증하지 않았습니다.
오디오부분호스트에서 시스템 오디오 캡처(WASAPI 루프백). Windows 클라이언트의 오디오 재생은 미구현입니다.
키보드·마우스진행 중호스트는 Win32 SendInput으로 입력을 주입합니다. 클라이언트 간 입력 포맷 통일 작업 중입니다(v0.1.0은 키 누름/뗌과 마우스 상대 이동 처리에 오류가 있습니다).
게임 컨트롤러부분ViGEmBus 드라이버를 통한 호스트 가상 Xbox 360 컨트롤러. 공용 코어 적용 전까지 클라이언트별 버튼 매핑이 다릅니다.
패킷 손실 복구미구현패리티(FEC) 코드는 있으나 실제 스트림에 쓰이지 않습니다. 로드맵 M5.
인터넷 너머 접속진행 중랑데부 서비스와 STUN을 이용한 8자리 룸코드(XXXX-XXXX). v0.1.0은 같은 로컬 네트워크에서만 동작합니다.
Android 클라이언트부분MediaCodec 하드웨어 디코딩 경로. 감사 시점에 실기기 검증은 하지 않았습니다.
iOS / iPadOS 클라이언트로드맵디코더·렌더러 코드는 있으나 빌드 가능한 앱이 아직 없습니다. 로드맵 M8.
지연시간 측정로드맵종단간 지연을 측정한 적이 없습니다. Glass-to-Glass 측정 하네스는 로드맵 M1입니다.

자세히: 아키텍처 · 공개 수치 레지스트리

동작 방식

단계별 소요 시간은 일부러 표시하지 않습니다. 기준선 측정(로드맵 M1) 후 하드웨어·해상도·프레임레이트 조건과 함께 공개합니다.

  1. 01 호스트캡처DXGI Desktop Duplication
  2. 02 호스트인코딩H.264, Media Foundation 하드웨어 인코더 또는 OpenH264
  3. 03 호스트암호화ChaCha20-Poly1305 (v2, 진행 중)
  4. 04 네트워크전송UDP 단일 포트 47998
  5. 05 클라이언트디코딩Media Foundation(Windows), MediaCodec(Android)
  6. 06 클라이언트표시 + 입력입력은 호스트로 되돌려 전송

보안 설계

원격 입력은 호스트 PC 앞에 앉아 있는 것과 같은 권한이므로, 프로토콜 v2는 모든 통신을 인증하고 암호화합니다. 아래 세 항목은 모두 진행 중이며 v0.1.0에는 적용되어 있지 않습니다.

PAIRING

6자리 PIN, 최초 1회

호스트가 PIN을 표시하고, 클라이언트는 SPAKE2로 PIN을 증명합니다. 도청자가 PIN을 오프라인으로 대입해 볼 수 없으며, 반복 실패 시 해당 송신자를 잠급니다.

TRANSPORT

모든 패킷 암호화

영상·오디오·입력·클립보드 전부 ChaCha20-Poly1305 봉투에 담기며, 방향별 키와 재전송 방지가 적용됩니다. 암호화되지 않은 패킷은 폐기합니다.

NETWORK

단일 포트, 로컬 서브넷

UDP 포트는 47998 하나입니다. 새 인스톨러는 방화벽 규칙을 개인 네트워크·로컬 서브넷으로 제한하고 제거 시 규칙을 삭제합니다.

명세: 프로토콜 v2

다운로드

바이너리는 GitHub Releases에서 배포합니다. 설치 전 이 페이지 상단의 v0.1.0 주의사항을 확인하세요.

WINDOWS 10 / 11 · x64

Windows 데스크톱 앱

  • 이 PC를 호스트로 쓰거나 다른 호스트에 접속
  • 인스톨러 코드 서명 없음
인스톨러 다운로드 (.exe)
ANDROID

Android 클라이언트

  • 직접 설치용 APK, 개발용 키 서명
  • 실기기 검증 전
APK 다운로드
iOS / iPadOS

제공하지 않음

  • 빌드 가능한 앱이 아직 없음 (로드맵 M8)
  • TestFlight 빌드 없음
현재 제공하지 않음

전체 릴리즈와 노트: github.com/pqowp90/AetherStream-Release/releases. GitHub가 v0.1.0 파일에 대해 표시하는 SHA-256 — 인스톨러: 2d028a0fae3c27a97dc9e21d42961d5f9ca967545157f4119d28e3b360d02354, APK: d82ad289c5200f4ac7faf0f4a3f8af9cf413455a829d34f007ffc32d27a95851. 확인 방법: Get-FileHash -Algorithm SHA256 <파일>