2021.07.19 - [remote-craft] - RemoteCraft 03 - 계획 01 + 비디오 파이프라인 이야기... (작성중)
RemoteCraft 03 - 계획 01 + 비디오 파이프라인 이야기... (작성중)
2021.07.13 - [projects.] - RemoteCraft 01 - 계획 00 RemoteCraft 01 - 계획 00 한번도 안해본 기술은 자료를 잘 모아야 계획 및 설계를 하기가 쉽다... 행복회로 돌리는 중.. N유저 N게임 인스턴스 지원 간편..
hellojai.tistory.com
Worker!
비디오 파이프라인에 이어 Worker가 작동하는 전체적인 구조에 대해 좀 더 자세히 그려보고 싶다.
워커는 다음과 같은 구성으로 설계되어 있다:

- Lobby와 Websocket통신을 책임지는 LobbyClient
- Room : 게임 인스턴스 + WebRTC세션을 관리 함
- Video, Audio Relay : 게임에서 출력되는 미디어 데이터(비디오, 오디오)를 인코딩하여 WebRTC세션으로 전달
- WebRTC 세션 : 유저로 부터 입력 데이터를 게임 인스턴스에 전달 + Video, Audio Relay에서 나오는 미디어 데이터를 유저에게 스트리밍
- LibretroCore: cgo바인딩을 통해 띄운 LibretroCore. libretroAPI 를 통해 Go코드와 통신한다.
Video Relay 구조

Audio Relay 구조

참고 및 출처:
Opus 인코더 Go 바인딩 : https://github.com/hraban/opus
H.264 인코더 Go 바인딩 : https://github.com/gen2brain/x264-go
H.264 인코딩 관련 정보 : https://trac.ffmpeg.org/wiki/Encode/H.264
VP8 인코더 Go 바인딩 : https://github.com/poi5305/go-yuv2webRTC
yuv 컬러 인코더 Go 바인딩 : https://github.com/poi5305/go-yuv2webRTC
'remote-craft' 카테고리의 다른 글
RemoteCraft 10 - 호스팅 + 후기 (0) | 2021.07.30 |
---|---|
RemoteCraft 09 - 클라이언트 GUI (feat. Javascript + HTML + CSS) (0) | 2021.07.28 |
RemoteCraft 07 - Websocket (feat. Lobby) (0) | 2021.07.25 |
RemoteCraft 05 - WebRTC Pion! (0) | 2021.07.23 |
RemoteCraft 04 - WebRTC 소개 (0) | 2021.07.23 |