stupside/castor
Go2 / 0
웹 페이지나 스트림 URL에서 네트워크 요청을 가로채 원본 스트림을 추출해 ffmpeg로 트랜스코딩하거나 stream-copy하여 DLNA/Chromecast로 실시간 캐스팅하는 CLI 애플리케이션이다.
TL;DR
Castor는 헤드리스 Chrome으로 웹 페이지의 네트워크 트래픽을 모니터링해 실제 미디어 스트림을 추출하고 ffprobe/ffmpeg로 포맷을 검사·처리해 DLNA나 실험적 Chromecast로 실시간 전송하는 터미널 기반 도구이다. 가능한 경우 stream-copy로 소스 패킷을 그대로 전달해 CPU 사용을 거의 0으로 낮추고, 필요 시 하드웨어 인코더(VA-API, VideoToolbox)나 libx264로 재인코딩해 TV 호환성을 확보한다. whisper.cpp 바인딩을 통해 로컬에서 자동 자막을 생성할 수 있으며 Docker 이미지를 제공하지만 Docker는 Linux 호스트에서의 네트워크 및 GPU 노출 제약을 명시해 실제 배포 환경에서 주의가 필요하다.
핵심 포인트
- 디바이스 네이티브 스트림을 직접 찾아 캐스팅하므로 화면 미러링 대신 원본 스트림 품질을 유지할 수 있다. Castor는 네트워크 트래픽을 관찰해 실제 미디어 요청을 포착하고 그 스트림을 재사용하기 때문에 대역폭과 해상도 손실을 줄인다. 이 접근은 웹 플레이어를 단순히 캡처하는 방식과 달리 재생 가능한 스트림을 직접 전송한다.
- 로컬 기반 워크플로우를 강조해 ffmpeg와 whisper.cpp 같은 로컬 바이너리로 트랜스코딩과 자막 생성을 수행한다. 네트워크 의존성을 낮추며 프라이버시와 오프라인 사용 가능성을 높인다. 소스 템플릿과 프록시를 사용자가 직접 구성하도록 해 Castor 자체가 소스 카탈로그를 포함하지 않는다.
- Docker 이미지가 Chrome, ffmpeg, ffprobe를 번들로 제공하되 네트워크와 GPU 노출 제약을 명시하여 사용 환경 차이에 따른 실패 모드를 문서화했다. 특히 Docker Desktop(macOS/Windows)에서의 SSDP 멀티캐스트 한계와 Linux의 --network host 필요성을 명확히 제시해 사용자 혼선을 줄인다. 하드웨어 가속 접근을 위해 --device /dev/dri 같은 추가 플래그를 요구하는 점을 문서에 반영했다.
- 웹 페이지에서 비디오 리소스를 자동으로 추출하고 재생을 시뮬레이션해 스트림 URL을 획득한다. 이 과정에서 Castor는 headless Chrome의 DevTools Protocol을 사용해 네트워크 트래픽을 관찰하고 가장 큰 iframe으로 이동해 클릭하는 파이프라인을 실행한다. 추출된 스트림은 즉시 재생 파이프라인으로 전달된다.
이미지 분석


1.6k
STARS
44
FORKS
+209
TRENDING
2
조회수
관련 토론
아직 관련 토론이 없습니다.
댓글
댓글을 작성하려면 로그인이 필요합니다.