를 사용자 정의하고 확장하려면 Mediasoup-client 다음 단계를 따르십시오.
Transport
구성 사용자 정의
를 만들 때 RTC(실시간 통신) 연결에 사용되는 포트 범위를 정의하는 등 Transport
의 구성을 사용자 정의할 수 있습니다. rtcMinPort
rtcMaxPort
const worker = await mediasoup.createWorker();
const router = await worker.createRouter({ mediaCodecs });
const transport = await router.createWebRtcTransport({
listenIps: [{ ip: '0.0.0.0', announcedIp: YOUR_PUBLIC_IP }],
rtcMinPort: 10000,
rtcMaxPort: 20000
});
맞춤형 생성 Producer
및 Consumer
코덱, 해상도, 비트 전송률 등과 같은 측면을 제어하기 위해 Producer
맞춤형 을 생성할 수 있습니다. Consumer
예를 들어 Producer
VP9 코덱 및 720p 해상도를 사용하여 생성하려면 다음을 사용할 수 있습니다.
const producer = await transport.produce({
kind: 'video',
rtpParameters: {
codecMimeType: 'video/VP9',
encodings: [{ maxBitrate: 500000 }],
// ... other parameters
},
// ... other options
});
플러그인 사용
Mediasoup-client 플러그인을 사용하여 기능을 확장할 수 있습니다.
Producer
예를 들어 또는가 생성 될 때 사용자 지정 논리를 처리하는 플러그인을 생성할 수 있습니다 Consumer
. 다음은 이벤트를 처리하는 플러그인을 만드는 간단한 예입니다 Producer
.
const MyProducerPlugin = {
name: 'myProducerPlugin',
onProducerCreated(producer) {
console.log('A new producer was created:', producer.id);
// Perform custom logic here
},
};
mediasoupClient.use(MyProducerPlugin);
고급 기능 활용
Mediasoup-client Simulcast, SVC(Scalable Video Coding), 오디오 레벨 제어 등과 같은 고급 기능을 제공합니다. 프로젝트 요구 사항에 따라 탐색하고 사용할 수 있습니다.
예를 들어 Simulcast 기능을 사용하려면 Producer
서로 다른 공간 및 시간 레이어를 생성할 수 있습니다.
const producer = await transport.produce({
kind: 'video',
simulcast: [
{ spatialLayer: 0, temporalLayer: 2 },
{ spatialLayer: 1, temporalLayer: 1 },
{ spatialLayer: 2, temporalLayer: 1 },
],
// ... other options
});
사용자 정의 및 확장을 통해 Mediasoup-client 애플리케이션에서 실시간 통신의 다양한 측면을 제어하고 사용자 정의할 수 있습니다. 구성, 플러그인 및 고급 기능을 활용하여 프로젝트의 특정 요구 사항을 충족하는 맞춤형 경험을 만들 수 있습니다.