go로 구현된 ion-sfu 단어부터 정리해 본다.
pion : The Open Source, Cross Platform Stack for Real-time Media and Data Communication. - WebRTC를 위한 오픈소스 플랫폼이라 생각한다.
[https://github.com/pion]
pion/webrtc A pure Go implementation of the WebRTC API - Go로 구현된 WebRTC 라이브러리이다. 기본적으로 이것을 import한다.
[https://github.com/pion/webrtc]:
pion/ion : ION is a distributed real-time communication system, the goal is to chat anydevice, anytime, anywhere! - ion은 분산형 RTC라고 생각하자. sinaling이 핵심인듯.
[https://github.com/pion/ion]
pion/ion-sfu : Go implementation of a WebRTC Selective Forwarding Unit - 다대다 webRTC의 구현 중 SFU를 ion을 이용하여 구현하는 것. 이를 이용하면 50명 이상 구현하는 것이 어렵지 않다고 한다. 미디어처리가 핵심인듯.
-- gRPC or json-rpc interface. - 두 가지 인터페이스가 있다. gRPC / json-rpc
[https://github.com/pion/ion-sfu]
pion/ion-sdk-js : Frontend sdk for the Ion backend. - 클라이언트에서 ion을 사용하기 위해 필요한 라이브러리 -- signaling이 핵심 :: IonSFUJSONRPCSignal
[https://github.com/pion/ion-sdk-js]
save-to-webm : save-to-webm demonstrates how to process media with an avp. in this example, the media is relayed from ion-sfu, buffered and sequenced on the avp, and written to a webm file on disk.
[https://github.com/pion/ion-avp/tree/master/examples/save-to-webm]
구조를 가장 잘 설명한 페이지
Ion-sfu architecture and module
https://programmersought.com/article/97738909355/
예제 [리액트] : pion / ion-app-web / master
https://codesandbox.io/s/w7lky?file=/src/App.jsx
ion-sfu 설명
https://gabrieltanner.org/blog/broadcasting-ion-sfu
document
https://golangrepo.com/repo/pion-ion