다음을 통해 공유


빠른 시작: 통화 앱에서 비디오 제약 조건 설정

Important

이 문서에 설명된 기능은 현재 공개 미리 보기로 제공됩니다. 이 미리 보기 버전은 서비스 수준 계약 없이 제공되며, 프로덕션 워크로드에는 권장되지 않습니다. 특정 기능이 지원되지 않거나 기능이 제한될 수 있습니다. 자세한 내용은 Microsoft Azure Preview에 대한 추가 사용 약관을 참조하세요.

개요

비디오 제약 조건 API를 사용하면 개발자가 비디오 통화 내에서 비디오 품질을 제어할 수 있습니다. 이 빠른 시작 가이드에서는 API를 사용하여 제약 조건을 설정하는 방법을 보여줍니다.

필수 조건

음성 통화 빠른 시작을 참조하여 음성 통화가 포함된 샘플 앱을 설정합니다.

클래스

이름 설명
VideoConstraints 들어오는 비디오 제약 조건과 나가는 비디오 제약 조건을 모두 유지하는 데 사용됩니다.
OutgoingVideoConstraints 나가는 비디오 스트림에 대한 제약 조건(MaxWidth | MaxHeight | MaxFrameRate)을 지정하는 데 사용됩니다.
IncomingVideoConstraints 들어오는 비디오 스트림에 대한 제약 조건(MaxWidth | MaxHeight)을 지정하는 데 사용됩니다.

비디오 제약 조건 사용

다음 섹션에서는 통화 시 다른 시간에 들어오거나 나가는 비디오 스트림에 대해 비디오 제약 조건을 설정하는 방법을 설명합니다.

통화를 시작하기 전에 비디오 제약 조건 설정

들어오는 비디오 스트림의 경우 IncomingVideoOptionsIncomingVideoConstraints를 추가해야 합니다.

    var IncomingVideoOptions = new IncomingVideoOptions()
    {
        Constraints = new IncomingVideoConstraints() 
        { 
            MaxWidth = /*value*/, 
            MaxHeight = /*value*/ 
        },
        // other options
        // ...
    }

나가는 비디오 스트림의 경우 OutgoingVideoOptionsOutgoingVideoConstraints를 추가해야 합니다.

    var OutgoingVideoOptions = new OutgoingVideoOptions()
    {
        Constraints = new OutgoingVideoConstraints() 
        { 
            MaxWidth = /*value*/, 
            MaxHeight = /*value*/, 
            MaxFrameRate = /*value*/ 
        },
        // other options
        // ...
    }

이 옵션은 통화를 시작/조인하는 데 사용되므로 제약 조건을 스트림에 자동으로 적용할 수 있습니다. 예시:

    var joinCallOptions = new JoinCallOptions()
    {
        IncomingVideoOptions = new IncomingVideoOptions()
        {
            Constraints = new IncomingVideoConstraints() 
            { 
                MaxWidth = /*value*/, 
                MaxHeight = /*value*/ 
            },
            // other options
            // ...
        },

        OutgoingVideoOptions = new OutgoingVideoOptions()
        {
            Constraints = new OutgoingVideoConstraints() 
            { 
                MaxWidth = /*value*/, 
                MaxHeight = /*value*/, 
                MaxFrameRate = /*value*/ 
            },
            // other options
            // ...
        }
    };
    await callAgent.JoinAsync(locator, joinCallOptions);

통화 중 비디오 제약 조건 설정

통화를 시작하기 전에 비디오 제약 조건을 설정하는 대신 통화 중에 비디오 제약 조건을 동적으로 조정할 수도 있습니다. Call 형식 클래스에서 SetVideoConstraints를 호출하고 제약 조건을 제공해야 합니다.


    OutgoingVideoConstraints outgoingVideoConstraints = new OutgoingVideoConstraints()
    {
        outgoingVideoConstraints.MaxWidth = /*value*/ ;
        outgoingVideoConstraints.MaxHeight = /*value*/ ;
        outgoingVideoConstraints.MaxFrameRate = /*value*/ ;
    };
    
    IncomingVideoConstraints incomingVideoConstraints = new IncomingVideoConstraints()
    {
        incomingVideoConstraints.MaxWidth = /*value*/ ;
        incomingVideoConstraints.MaxHeight = /*value*/ ;
    };
  
    VideoConstraints constraints = new VideoConstraints();
    constraints.OutgoingVideoConstraints = outgoingVideoConstraints;
    constraints.IncomingVideoConstraints = incomingVideoConstraints;
    
    call.SetVideoConstraints(constraints);

이전에 설정한 비디오 제약 조건을 다시 설정/제거하려면 위의 패턴을 따르고 제약 조건 값으로 0를 제공해야 합니다. IncomingVideoConstraints 또는 OutgoingVideoConstraintsnull 값을 제공해도 제약 조건이 다시 설정/제거되지 않으며 null 값이 있는 제약 조건은 무시됩니다.

제한 사항

참고 항목

Video Constraints API를 사용할 때 이러한 제한 사항을 알고 있는지 확인하세요. 일부 제한 사항은 향후 릴리스에서 제거될 예정입니다.

현재 Video Constraints API에는 몇 가지 알려진 제한 사항이 있습니다.

  • 제약 조건은 최대 제약 조건입니다. 즉, 가능한 제약 조건 값이 지정된 값 이하일 수 있습니다. 실제 값이 사용자가 지정한 값과 동일하게 유지된다는 보장은 없습니다.

  • 사용자가 너무 작은 제약 조건 값을 설정하면 SDK는 지원되는 사용 가능한 가장 작은 값을 사용합니다.

  • 통화 중에 OutgoingVideoConstraints를 설정하는 경우 현재 진행 중인 비디오 스트림은 지정된 제약 조건을 자동으로 선택하지 않습니다. 제약 조건을 적용하려면 나가는 비디오를 중지했다가 다시 시작해야 합니다.

  • 현재 IncomingVideoConstraints는 하드 제약 조건 대신 사용자가 선호하는 제약 조건입니다. 즉, 네트워크 및 하드웨어에 따라 수신된 실제 값이 여전히 제약 조건 집합을 초과할 수 있습니다.

미디어 통계

비디오 제약 조건을 적용한 후 비디오 품질을 평가하고 비교하기 위해 MediaStats API에 액세스하여 스트림의 비디오 해상도 및 비트 전송률 정보를 가져올 수 있습니다. 미디어 통계에는 지터, 패킷 손실, 왕복 시간 등 스트림과 관련된 다른 세분화된 통계도 포함됩니다.

Important

이 문서에 설명된 기능은 현재 공개 미리 보기로 제공됩니다. 이 미리 보기 버전은 서비스 수준 계약 없이 제공되며, 프로덕션 워크로드에는 권장되지 않습니다. 특정 기능이 지원되지 않거나 기능이 제한될 수 있습니다. 자세한 내용은 Microsoft Azure Preview에 대한 추가 사용 약관을 참조하세요.

개요

비디오 제약 조건 API를 사용하면 개발자가 비디오 통화 내에서 비디오 품질을 제어할 수 있습니다. 이 빠른 시작 가이드에서는 API를 사용하여 제약 조건을 설정하는 방법을 보여줍니다.

필수 조건

음성 통화 빠른 시작을 참조하여 음성 통화가 포함된 샘플 앱을 설정합니다.

클래스

이름 설명
VideoConstraints 들어오는 비디오 제약 조건과 나가는 비디오 제약 조건을 모두 유지하는 데 사용됩니다.
OutgoingVideoConstraints 나가는 비디오 스트림에 대한 제약 조건(maxWidth | maxHeight | maxFrameRate)을 지정하는 데 사용됩니다.
IncomingVideoConstraints 들어오는 비디오 스트림에 대한 제약 조건(maxWidth | maxHeight)을 지정하는 데 사용됩니다.

비디오 제약 조건 사용

다음 섹션에서는 통화 시 다른 시간에 들어오거나 나가는 비디오 스트림에 대해 비디오 제약 조건을 설정하는 방법을 설명합니다.

통화를 시작하기 전에 비디오 제약 조건 설정

들어오는 비디오 스트림의 경우 IncomingVideoOptionsIncomingVideoConstraints를 추가해야 합니다.

    IncomingVideoConstraints incomingVideoConstraints = new IncomingVideoConstraints();
    incomingVideoConstraints.setMaxWidth(/*value*/);
    incomingVideoConstraints.setMaxHeight(/*value*/);

    // ...

    IncomingVideoOptions incomingVideoOptions = new IncomingVideoOptions();
    incomingVideoOptions.setConstraints(incomingVideoConstraints);

나가는 비디오 스트림의 경우 OutgoingVideoOptionsOutgoingVideoConstraints를 추가해야 합니다.

    OutgoingVideoConstraints outgoingVideoConstraints = new OutgoingVideoConstraints() 
    outgoingVideoConstraints.setMaxWidth(/*value*/); 
    outgoingVideoConstraints.setMaxHeight(/*value*/); 
    outgoingVideoConstraints.setMaxFrameRate(/*value*/); 
   
    // ...
    
    OutgoingVideoOptions outgoingVideoOptions = new OutgoingVideoOptions();
    outgoingVideoOptions.setConstraints(outgoingVideoConstraints);

이 옵션은 통화를 시작/조인하는 데 사용되므로 제약 조건을 스트림에 자동으로 적용할 수 있습니다. 예시:

    JoinCallOptions joinCallOptions = new JoinCallOptions();
    joinCallOptions.setIncomingVideoOptions(incomingVideoOptions);
    joinCallOptions.setOutgoingVideoOptions(outgoingVideoOptions);
    callAgent.Join(context, locator, joinCallOptions);

통화 중 비디오 제약 조건 설정

통화를 시작하기 전에 비디오 제약 조건을 설정하는 대신 통화 중에 비디오 제약 조건을 동적으로 조정할 수도 있습니다. Call 형식 클래스에서 setVideoConstraints를 호출하고 제약 조건을 제공해야 합니다.


    OutgoingVideoConstraints outgoingVideoConstraints = new OutgoingVideoConstraints();
    outgoingVideoConstraints.setMaxWidth(/*value*/); 
    outgoingVideoConstraints.setMaxHeight(/*value*/); 
    outgoingVideoConstraints.setMaxFrameRate(/*value*/); 
    
    IncomingVideoConstraints incomingVideoConstraints = new IncomingVideoConstraints();
    incomingVideoConstraints.setMaxWidth(/*value*/);
    incomingVideoConstraints.setMaxHeight(/*value*/);
  
    VideoConstraints constraints = new VideoConstraints();
    constraints.setOutgoingVideoConstraints(outgoingVideoConstraints);
    constraints.setIncomingVideoConstraints(incomingVideoConstraints);
    
    call.setVideoConstraints(constraints);

이전에 설정한 비디오 제약 조건을 다시 설정/제거하려면 위의 패턴을 따르고 제약 조건 값으로 0를 제공해야 합니다. IncomingVideoConstraints 또는 OutgoingVideoConstraintsnull 값을 제공해도 제약 조건이 다시 설정/제거되지 않으며 null 값이 있는 제약 조건은 무시됩니다.

제한 사항

참고 항목

Video Constraints API를 사용할 때 이러한 제한 사항을 알고 있는지 확인하세요. 일부 제한 사항은 향후 릴리스에서 제거될 예정입니다.

현재 Video Constraints API에는 몇 가지 알려진 제한 사항이 있습니다.

  • 제약 조건은 최대 제약 조건입니다. 즉, 가능한 제약 조건 값이 지정된 값 이하일 수 있습니다. 실제 값이 사용자가 지정한 값과 동일하게 유지된다는 보장은 없습니다.

  • 사용자가 너무 작은 제약 조건 값을 설정하면 SDK는 지원되는 사용 가능한 가장 작은 값을 사용합니다.

  • 통화 중에 OutgoingVideoConstraints를 설정하는 경우 현재 진행 중인 비디오 스트림은 지정된 제약 조건을 자동으로 선택하지 않습니다. 제약 조건을 적용하려면 나가는 비디오를 중지했다가 다시 시작해야 합니다.

  • 현재 IncomingVideoConstraints는 하드 제약 조건 대신 사용자가 선호하는 제약 조건입니다. 즉, 네트워크 및 하드웨어에 따라 수신된 실제 값이 여전히 제약 조건 집합을 초과할 수 있습니다.

미디어 통계

비디오 제약 조건을 적용한 후 비디오 품질을 평가하고 비교하기 위해 MediaStats API에 액세스하여 스트림의 비디오 해상도 및 비트 전송률 정보를 가져올 수 있습니다. 미디어 통계에는 지터, 패킷 손실, 왕복 시간 등 스트림과 관련된 다른 세분화된 통계도 포함됩니다.

Important

이 문서에 설명된 기능은 현재 공개 미리 보기로 제공됩니다. 이 미리 보기 버전은 서비스 수준 계약 없이 제공되며, 프로덕션 워크로드에는 권장되지 않습니다. 특정 기능이 지원되지 않거나 기능이 제한될 수 있습니다. 자세한 내용은 Microsoft Azure Preview에 대한 추가 사용 약관을 참조하세요.

개요

비디오 제약 조건 API를 사용하면 개발자가 비디오 통화 내에서 비디오 품질을 제어할 수 있습니다. 이 빠른 시작 가이드에서는 API를 사용하여 제약 조건을 설정하는 방법을 보여줍니다.

필수 조건

음성 통화 빠른 시작을 참조하여 음성 통화가 포함된 샘플 앱을 설정합니다.

클래스

이름 설명
VideoConstraints 들어오는 비디오 제약 조건과 나가는 비디오 제약 조건을 모두 유지하는 데 사용됩니다.
OutgoingVideoConstraints 나가는 비디오 스트림에 대한 제약 조건(maxWidth | maxHeight | maxFrameRate)을 지정하는 데 사용됩니다.
IncomingVideoConstraints 들어오는 비디오 스트림에 대한 제약 조건(maxWidth | maxHeight)을 지정하는 데 사용됩니다.

비디오 제약 조건 사용

다음 섹션에서는 통화 시 다른 시간에 들어오거나 나가는 비디오 스트림에 대해 비디오 제약 조건을 설정하는 방법을 설명합니다.

통화를 시작하기 전에 비디오 제약 조건 설정

들어오는 비디오 스트림의 경우 IncomingVideoOptionsIncomingVideoConstraints를 추가해야 합니다.

    let incomingVideoConstraints = IncomingVideoConstraints()
    incomingVideoConstraints.maxWidth = /*value*/ 
    incomingVideoConstraints.maxHeight = /*value*/ 
    
    // ...
    
    let incomingVideoOptions = IncomingVideoOptions()
    incomingVideoOptions.constraints = incomingVideoConstraints

나가는 비디오 스트림의 경우 OutgoingVideoOptionsOutgoingVideoConstraints를 추가해야 합니다.

    let outgoingVideoConstraints = OutgoingVideoConstraints()
    outgoingVideoConstraints.maxWidth = /*value*/ 
    outgoingVideoConstraints.maxHeight = /*value*/
    outgoingVideoConstraint.maxFrameRate = /*value*/ 
    
    // ...

    let outgoingVideoOptions = OutgoingVideoOptions()
    outgoingVideoOptions.constraints = outgoingVideoConstraints

이 옵션은 통화를 시작/조인하는 데 사용되므로 제약 조건을 스트림에 자동으로 적용할 수 있습니다. 예시:

    let incomingVideoConstraints = IncomingVideoConstraints()
    incomingVideoConstraints.maxWidth = /*value*/ 
    incomingVideoConstraints.maxHeight = /*value*/ 
    let incomingVideoOptions = IncomingVideoOptions()
    incomingVideoOptions.constraints = incomingVideoConstraints
    
    let outgoingVideoConstraints = OutgoingVideoConstraints()
    outgoingVideoConstraints.maxWidth = /*value*/ 
    outgoingVideoConstraints.maxHeight = /*value*/
    outgoingVideoConstraint.maxFrameRate = /*value*/ 
    let outgoingVideoOptions = OutgoingVideoOptions()
    outgoingVideoOptions.constraints = outgoingVideoConstraints
    
    let joinCallOptions = new JoinCallOptions()
    joinCallOptions.incomingVideoOptions = incomingVideoOptions
    joinCallOptions.outgoingVideoOptions = outgoingVideoOptions

    callAgent.join(with: locator, joinCallOptions: joinCallOptions);

통화 중 비디오 제약 조건 설정

통화를 시작하기 전에 비디오 제약 조건을 설정하는 대신 통화 중에 비디오 제약 조건을 동적으로 조정할 수도 있습니다. Call 형식 클래스에서 set(videoConstraints)를 호출하고 제약 조건을 제공해야 합니다.


    let outgoingVideoConstraints = OutgoingVideoConstraints()
    outgoingVideoConstraints.maxWidth = /*value*/ 
    outgoingVideoConstraints.maxHeight = /*value*/
    outgoingVideoConstraint.maxFrameRate = /*value*/ 
    
    let incomingVideoConstraints = IncomingVideoConstraints()
    incomingVideoConstraints.maxWidth = /*value*/ 
    incomingVideoConstraints.maxHeight = /*value*/ 
  
    let videoConstraints = VideoConstraints()
    videoConstraints.outgoingVideoConstraints = outgoingVideoConstraints
    videoConstraints.incomingVideoConstraints = incomingVideoConstraints
    
    call?.set(videoConstraints: videoConstraints)

이전에 설정한 비디오 제약 조건을 다시 설정/제거하려면 위의 패턴을 따르고 제약 조건 값으로 0를 제공해야 합니다. IncomingVideoConstraints 또는 OutgoingVideoConstraintsnull 값을 제공해도 제약 조건이 다시 설정/제거되지 않으며 null 값이 있는 제약 조건은 무시됩니다.

제한 사항

참고 항목

Video Constraints API를 사용할 때 이러한 제한 사항을 알고 있는지 확인하세요. 일부 제한 사항은 향후 릴리스에서 제거될 예정입니다.

현재 Video Constraints API에는 몇 가지 알려진 제한 사항이 있습니다.

  • 제약 조건은 최대 제약 조건입니다. 즉, 가능한 제약 조건 값이 지정된 값 이하일 수 있습니다. 실제 값이 사용자가 지정한 값과 동일하게 유지된다는 보장은 없습니다.

  • 사용자가 너무 작은 제약 조건 값을 설정하면 SDK는 지원되는 사용 가능한 가장 작은 값을 사용합니다.

  • 통화 중에 OutgoingVideoConstraints를 설정하는 경우 현재 진행 중인 비디오 스트림은 지정된 제약 조건을 자동으로 선택하지 않습니다. 제약 조건을 적용하려면 나가는 비디오를 중지했다가 다시 시작해야 합니다.

  • 현재 IncomingVideoConstraints는 하드 제약 조건 대신 사용자가 선호하는 제약 조건입니다. 즉, 네트워크 및 하드웨어에 따라 수신된 실제 값이 여전히 제약 조건 집합을 초과할 수 있습니다.

미디어 통계

비디오 제약 조건을 적용한 후 비디오 품질을 평가하고 비교하기 위해 MediaStats API에 액세스하여 스트림의 비디오 해상도 및 비트 전송률 정보를 가져올 수 있습니다. 미디어 통계에는 지터, 패킷 손실, 왕복 시간 등 스트림과 관련된 다른 세분화된 통계도 포함됩니다.

통화에서 비디오 제약 조건을 설정하여 영상 통화의 해상도, 프레임 전송률 또는 비트 전송률에 따라 비디오 품질을 제어할 수 있습니다. 이 빠른 시작 가이드에서는 통화 시작 시 비디오 제약 조건을 설정하는 방법과 호출 개체에서 메서드를 사용하여 setConstraints 통화 중에 비디오 제약 조건을 동적으로 설정하는 방법을 보여 줍니다.

비디오 제약 조건 보내기

Azure Communication Services 웹 통화 SDK는 클라이언트가 보내는 최대 비디오 해상도, 프레임 속도, 비트 전송률 설정을 지원합니다. 보낸 사람 비디오 제약 조건은 데스크톱 브라우저(Chrome, Edge, Firefox)에서 지원되며 iOS Safari 모바일 브라우저 또는 Android Chrome 모바일 브라우저를 사용할 때도 지원됩니다.

지원되는 제약 조건
들어오는 비디오: 해상도
나가는 비디오: 해상도, 프레임 전송률, 비트 전송률

통화 시작 시 비디오 제약 조건 설정 - 발신(보내기) 비디오

비디오 제약 조건 설정은 Call 인터페이스에서 구현됩니다. Video Constraints를 사용하려면 전화를 걸거나, 전화를 받거나, 통화에 참가할 때 CallOptions 내에서 제약 조건을 지정하면 됩니다. videoOptions에서 localVideoStreams을(를) 지정해야 합니다.
오디오 전용 옵션으로 통화에 참가하고 나중에 카메라를 켜면 제약 조건이 작동하지 않습니다. 이 경우 Call 인터페이스의 setConstraints 메서드를 사용하여 비디오 제약 조건을 동적으로 설정할 수 있습니다.

const callOptions = {
    videoOptions: {
        localVideoStreams: [...],
        constraints: {
            send: {
                bitrate: {
                    max: 575000
                },
                frameHeight: {
                    max: 240
                },
                frameRate: {
                    max: 20
                }
            }
        }
    },
    audioOptions: {
        muted: false
    }
};
// make a call
this.callAgent.startCall(identitiesToCall, callOptions);
// join a group call
this.callAgent.join({ groupId }, callOptions);
// accept an incoming call
this.incomingCall.accept(callOptions)

비디오 제약 조건 유형은 다음과 같이 설명됩니다.

export declare interface VideoOptions {
    localVideoStreams?: LocalVideoStream[];
    //video constraint when call starts
    constraints?: VideoConstraints;
};

export declare type VideoConstraints = {
    send?: VideoSendConstraints;
};

export type VideoSendConstraints = {
    /**
     * Resolution constraint
     */
    frameHeight?: MediaConstraintRange;

    /**
     * FrameRate constraint
     */
    frameRate?: MediaConstraintRange;

    /**
     * Bitrate constriant
     */
    bitrate?: MediaConstraintRange;
};

export declare type MediaConstraintRange = {
    max?: number;
};

비디오 제약 조건을 설정할 때 SDK는 제약 조건 집합에 속하는 가장 가까운 값을 선택합니다(해상도, frameRate 및 비트 전송률 값이 설정된 최대 제약 조건 값을 초과하지 않도록 방지). 또한 해상도 제약 조건 값이 너무 작으면 SDK에서 사용 가능한 가장 작은 해상도를 선택합니다. 이 경우 선택한 해상도의 높이가 제약 조건 값보다 클 수 있습니다.

참고 항목

모든 bitrate, frameHeightframeRate에 대해 제약 조건 값은 max 제약 조건입니다. 즉, 호출의 실제 값은 지정된 값 이하일 수 있습니다. 전송된 비디오 해상도가 지정된 해상도로 유지된다는 보장은 없습니다.

모바일 디바이스가 세로 모드에 있을 때 VideoSendConstraintsframeHeight는 의미가 다릅니다. 세로 모드에서 이 값은 디바이스의 짧은 면을 나타냅니다. 예를 들어 세로 모드에서 1080(W) x 1920(H) 디바이스에 240으로 frameHeight.max 값을 지정하면 제약 조건 높이가 1080(W) 쪽에 있습니다. 동일한 디바이스가 가로 모드(1920(W) x 1080(H))인 경우 제약 조건은 1080(H) 쪽에 있습니다.

MediaStats API를 사용하여 전송된 비디오 해상도를 추적하는 경우 통화 중에 전송된 해상도가 변경 될 수 있음을 알 수 있습니다. 이 값은 위아래로 진행될 수 있지만 제공하는 제약 조건 값보다 같거나 작아야 합니다. 이 해상도 변경은 예상되는 동작입니다. 브라우저에는 CPU 또는 네트워크 조건에 따라 전송된 해상도를 조정하는 몇 가지 성능 저하 규칙도 있습니다.

통화 중 비디오 제약 조건 설정 - 송출 중인(보내기) 비디오

Call 개체의 setConstraints 메서드를 사용하여 호출 중에 비디오 제약 조건을 설정할 수 있습니다.

// For eg, when you've started a call,
const currentCall = this.callAgent.startCall(identitiesToCall, callOptions);

// To set constraints during the call,
await currentCall.setConstraints({
    video: {
        send: {
            frameHeight: {
                max: 360
            },
            frameRate: {
                max: 15
            }
        }
    }
});

// To set only a particular constraint (the others will stay as what they were set before, if they were set)
await currentCall.setConstraints({
    video: {
        send: {
            bitrate: {
                max: 400000
            }
        }
    }
});

// To unset any constraint,
await currentCall.setConstraints({
    video: {
        send: {
            frameHeight: {
                max: 0
            }
        }
    }
});

참고 항목

제약 조건 값을 0로 설정하면 이전에 설정한 제약 조건이 모두 해제됩니다. 이 방법을 사용하여 제약 조건을 초기화하거나 제거할 수 있습니다.


비디오 제약 조건 받기

Azure Communication Services 웹 통화 SDK를 사용하여 수신자 쪽에서 해상도를 제어하려면 해당 비디오의 렌더러 크기를 조정할 수 있습니다. 호출 SDK는 렌더러의 크기에 따라 수신된 해상도를 자동으로 조정합니다. SDK는 렌더러 비디오 창에 들어갈 수 있는 수신 중인 비디오 스트림(너비 및 높이)을 요청하지 않습니다.

미디어 통계를 사용하여 비디오 제약 조건의 영향 파악하기

비디오 제약 조건을 적용한 후 비디오 품질을 평가하고 비교하려면 MediaStats API에 액세스하여 전송 스트림의 비디오 해상도 및 비트 전송률 정보를 가져올 수 있습니다. 미디어 통계에는 지터, 패킷 손실, 왕복 시간 등 스트림과 관련된 다른 세분화된 통계도 포함됩니다.

const mediaStatsFeature = call.feature(Features.MediaStats);
const mediaStatsCollector = mediaStatsFeature.createCollector();

mediaStatsCollector.on('sampleReported', (sample: SDK.MediaStatsReportSample) => {
    // process the stats for the call.
    console.log(sample);
});

다음 단계

자세한 내용은 다음 문서를 참조하세요.