Megosztás a következőn keresztül:


Videokorlátok beállítása egy hívó alkalmazásban

Fontos

Az Azure Communication Services ezen funkciója jelenleg előzetes verzióban van. Az előzetes verziójú funkciók nyilvánosan elérhetők, és minden új és meglévő Microsoft-ügyfél használhatja.

Ez az előzetes verzió szolgáltatásszintű szerződés nélkül érhető el, és éles számítási feladatokhoz nem javasoljuk. Előfordulhat, hogy bizonyos funkciók nem támogatottak, vagy a képességek korlátozottak lehetnek.

További információ: Kiegészítő használati feltételek a Microsoft Azure előzetes verziójú termékeihez.

Áttekintés

A Video Constraints API lehetővé teszi a fejlesztők számára, hogy a videóminőséget a videohívásaikon belül szabályozhassák. Ebben a rövid útmutatóban bemutatjuk, hogyan állíthatja be az API-t a korlátozások beállításához.

Előfeltételek

A hanghívást tartalmazó mintaalkalmazás beállításához tekintse meg a Hanghívás rövid útmutatóját .

Osztályok

Név Leírás
Videókorlátozások A bejövő és a kimenő videokorlátok tárolására szolgál.
Kimenő videókorlátozások A kimenő videostreamek korlátozásainak (MaxWidth \| MaxHeight \| MaxFrameRate) megadására szolgál.
Bejövő videókorlátozások A bejövő videostreamekre vonatkozó korlátozások (MaxWidth \| MaxHeight) megadására szolgál.

Videókorlátozások használata

Az alábbi szakaszok bemutatják, hogyan állíthatók be a videokényszerítések a bejövő és/vagy kimenő videostreamekhez a hívás különböző időpontaiban.

Videokorlátok beállítása hívás indítása előtt

A bejövő videostreamekhez a IncomingVideoConstraints eleméhez hozzá kell adni egy IncomingVideoOptions-et.

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

Kimenő videostreamekhez be kell illeszteni egy OutgoingVideoConstraints a OutgoingVideoOptions.

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

Mivel a beállítások a hívások indítására/csatlakoztatására szolgálnak, a korlátozások automatikusan alkalmazhatók a streamekre. Példa:

    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);

Videokorlátok beállítása hívás közben

Ahelyett, hogy a hívás indítása előtt beállítaná a videokényszereket, dinamikusan módosíthatja a videokényszereket a hívás során. Be kell hívnia SetVideoConstraints a típusosztályt Call , és meg kell adnia a korlátozásokat.


    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);

A korábban beállított videókorlátok alaphelyzetbe állításához/eltávolításához kövesse az előző mintát, és adjon meg 0 kényszerértéket. Az null , IncomingVideoConstraints vagy OutgoingVideoConstraints értékek megadása nem állítja vissza, illetve nem távolítja el a kényszereket, és az null értékhez kapcsolódó korlátozások figyelmen kívül maradnak.

Korlátozások

Feljegyzés

Vegye figyelembe ezeket a korlátozásokat a Video Constraints API használatakor. Néhány korlátozást meg kell oldani a jövőbeli kiadásokban.

Az aktuális Video Constraints API néhány ismert korlátozást is ismert.

  • A kényszer egy maximális kényszer, ami azt jelenti, hogy a lehetséges kényszerérték lehet a megadott érték vagy kisebb. Nincs garancia arra, hogy a tényleges érték megegyezik a felhasználó által megadott értékkel.

  • Ha a felhasználó túl kicsi kényszerértéket állít be, az SDK a támogatott legkisebb elérhető értéket használja.

  • A OutgoingVideoConstraints beállítása hívás közben azzal jár, hogy az aktuális videostream nem veszi automatikusan figyelembe a megadott korlátozásokat. A korlátozások érvénybe lépéséhez le kell állítania és újra kell indítania a kimenő videót.

  • IncomingVideoConstraints jelenleg egy felhasználói preferenciáknak megfelelő kényszer van érvényben a szigorú kényszer helyett, ami azt jelenti, hogy a hálózattól és a hardvertől függően az elért tényleges érték még így is meghaladhatja a beállított kényszert.

Médiastatisztikák

A videóminőség kiértékeléséhez és összehasonlításához a videómegkötések alkalmazása után hozzáférhet a MediaStats API-hoz a stream videófelbontási és bitrátaadatainak lekéréséhez. A médiastatisztikák a streamekhez kapcsolódó egyéb részletes statisztikákat is tartalmaznak, például a jittert, a csomagvesztést, a menetidőt stb.

Fontos

Az Azure Communication Services ezen funkciója jelenleg előzetes verzióban van. Az előzetes verziójú funkciók nyilvánosan elérhetők, és minden új és meglévő Microsoft-ügyfél használhatja.

Ez az előzetes verzió szolgáltatásszintű szerződés nélkül érhető el, és éles számítási feladatokhoz nem javasoljuk. Előfordulhat, hogy bizonyos funkciók nem támogatottak, vagy a képességek korlátozottak lehetnek.

További információ: Kiegészítő használati feltételek a Microsoft Azure előzetes verziójú termékeihez.

Áttekintés

A Video Constraints API lehetővé teszi a fejlesztők számára, hogy a videóminőséget a videohívásaikon belül szabályozhassák. Ebben a cikkben bemutatjuk, hogyan állíthatja be a korlátozásokat az API használatával.

Előfeltételek

A hanghívást tartalmazó mintaalkalmazás beállításához tekintse meg a Hanghívás rövid útmutatóját .

Osztályok

Név Leírás
Videókorlátozások A bejövő és a kimenő videokorlátok tárolására szolgál.
Kimenő videókorlátozások A kimenő videostreamek korlátozásainak (maxWidth \| maxHeight \| maxFrameRate) megadására szolgál.
Bejövő videókorlátozások A bejövő videostreamekre vonatkozó korlátozások (maxWidth \| maxHeight) megadására szolgál.

Videókorlátozások használata

Az alábbi szakaszok bemutatják, hogyan állíthatók be a videokényszerítések a bejövő és/vagy kimenő videostreamekhez a hívás különböző időpontaiban.

Videokorlátok beállítása hívás indítása előtt

A bejövő videófolyamok esetén hozzá kell adni egy IncomingVideoConstraints elemet a IncomingVideoOptions.

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

    // ...

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

A kimenő videófolyamokhoz adjon hozzá egy OutgoingVideoConstraints elemet a OutgoingVideoOptions.

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

Mivel a beállítások a hívások indítására/csatlakoztatására szolgálnak, a korlátozásokat automatikusan alkalmazhatja a streamekre. Példa:

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

Videokorlátok beállítása hívás közben

Ahelyett, hogy a hívás indítása előtt beállítaná a videokényszereket, dinamikusan módosíthatja a videokényszereket a hívás során. Be kell hívnia setVideoConstraints a típusosztályt Call , és meg kell adnia a korlátozásokat.


    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);

A korábban beállított videókorlátok alaphelyzetbe állításához/eltávolításához kövesse az előző mintát, és adjon meg 0 kényszerértéket. Ha null értékeket ad meg, akárcsak IncomingVideoConstraints vagy OutgoingVideoConstraints, az nem állítja vissza vagy távolítja el a kényszereket, és a null értékű kényszerek figyelmen kívül maradnak.

Korlátozások

Feljegyzés

Vegye figyelembe ezeket a korlátozásokat a Video Constraints API használatakor. Néhány korlátozást meg kell oldani a jövőbeli kiadásokban.

Az aktuális Video Constraints API néhány ismert korlátozást is ismert.

  • A kényszer egy maximális kényszer, ami azt jelenti, hogy a lehetséges kényszerérték lehet a megadott érték vagy kisebb. Nincs garancia arra, hogy a tényleges érték megegyezik a felhasználó által megadott értékkel.

  • Ha a felhasználó túl kicsi kényszerértéket állít be, az SDK a támogatott legkisebb elérhető értéket használja.

  • A OutgoingVideoConstraints beállítása hívás közben azzal jár, hogy az aktuális videostream nem veszi automatikusan figyelembe a megadott korlátozásokat. A korlátozások érvénybe lépéséhez le kell állítania és újra kell indítania a kimenő videót.

  • IncomingVideoConstraints jelenleg inkább egy rugalmas, felhasználó által előnyben részesített korlát, a kemény határ helyett. Ez azt jelenti, hogy a hálózattól és a hardvertől függően a ténylegesen kapott érték még mindig meghaladhatja a beállított korlátot.

Médiastatisztikák

A videóminőség kiértékeléséhez és összehasonlításához a videómegkötések alkalmazása után hozzáférhet a MediaStats API-hoz a stream videófelbontási és bitrátaadatainak lekéréséhez. A médiastatisztikák a streamekhez kapcsolódó egyéb részletes statisztikákat is tartalmaznak, például a jittert, a csomagvesztést, a menetidőt stb.

Fontos

Az Azure Communication Services ezen funkciója jelenleg előzetes verzióban van. Az előzetes verziójú funkciók nyilvánosan elérhetők, és minden új és meglévő Microsoft-ügyfél használhatja.

Ez az előzetes verzió szolgáltatásszintű szerződés nélkül érhető el, és éles számítási feladatokhoz nem javasoljuk. Előfordulhat, hogy bizonyos funkciók nem támogatottak, vagy a képességek korlátozottak lehetnek.

További információ: Kiegészítő használati feltételek a Microsoft Azure előzetes verziójú termékeihez.

Áttekintés

A Video Constraints API lehetővé teszi a fejlesztők számára, hogy a videóminőséget a videohívásaikon belül szabályozhassák. Ebben a rövid útmutatóban bemutatjuk, hogyan állíthatja be az API-t a korlátozások beállításához.

Előfeltételek

A hanghívást tartalmazó mintaalkalmazás beállításához tekintse meg a Hanghívás rövid útmutatóját .

Osztályok

Név Leírás
Videókorlátozások A bejövő és a kimenő videokorlátok tárolására szolgál.
Kimenő videókorlátozások A kimenő videostreamek korlátozásainak (maxWidth \| maxHeight \| maxFrameRate) megadására szolgál.
Bejövő videókorlátozások A bejövő videostreamekre vonatkozó korlátozások (maxWidth \| maxHeight) megadására szolgál.

Videókorlátozások használata

Az alábbi szakaszok bemutatják, hogyan állíthatók be a videokényszerítések a bejövő és/vagy kimenő videostreamekhez a hívás különböző időpontaiban.

Videokorlátok beállítása hívás indítása előtt

A bejövő videostreamekhez hozzá kell adni a IncomingVideoConstraints a IncomingVideoOptions.

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

Kimenő videostreamekhez be kell illeszteni egy OutgoingVideoConstraints a OutgoingVideoOptions.

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

    let outgoingVideoOptions = OutgoingVideoOptions()
    outgoingVideoOptions.constraints = outgoingVideoConstraints

Mivel a beállítások a hívások indítására/csatlakoztatására szolgálnak, a korlátozások automatikusan alkalmazhatók a streamekre. Példa:

    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);

Videokorlátok beállítása hívás közben

Ahelyett, hogy beállítaná a videokorlátokat a hívás indítása előtt, dinamikusan módosíthatja a videokényszereket a hívás során. Be kell hívnia set(videoConstraints) a típusosztályt Call , és meg kell adnia a korlátozásokat.


    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)

A korábban beállított videókorlátok alaphelyzetbe állításához/eltávolításához kövesse az előző mintát, és adjon meg 0 kényszerértéket. Ha null, IncomingVideoConstraints vagy OutgoingVideoConstraints számára ad meg értékeket, az nem állítja vissza/távolítja el a kényszereket, és a null értékkel rendelkező kényszerek figyelmen kívül maradnak.

Korlátozások

Feljegyzés

Vegye figyelembe ezeket a korlátozásokat a Video Constraints API használatakor. Néhány korlátozást meg kell oldani a jövőbeli kiadásokban.

Az aktuális Video Constraints API néhány ismert korlátozást is ismert.

  • A kényszer egy maximális kényszer, ami azt jelenti, hogy a lehetséges kényszerérték lehet a megadott érték vagy kisebb. Nincs garancia arra, hogy a tényleges érték megegyezik a felhasználó által megadott értékkel.

  • Ha a felhasználó túl kicsi kényszerértéket állít be, az SDK a támogatott legkisebb elérhető értéket használja.

  • A OutgoingVideoConstraints beállítása hívás közben azzal jár, hogy az aktuális videostream nem veszi automatikusan figyelembe a megadott korlátozásokat. A korlátozások érvénybe lépéséhez le kell állítania és újra kell indítania a kimenő videót.

  • IncomingVideoConstraints jelenleg a felhasználói preferenciák szerinti korlátozásként működik a kemény korlát helyett, ami azt jelenti, hogy a hálózati és hardveres körülményektől függően a ténylegesen kapott érték túllépheti a beállított korlátozást.

Médiastatisztikák

A videóminőség kiértékeléséhez és összehasonlításához a videómegkötések alkalmazása után hozzáférhet a MediaStats API-hoz a stream videófelbontási és bitrátaadatainak lekéréséhez. A médiastatisztikák a streamekhez kapcsolódó egyéb részletes statisztikákat is tartalmaznak, például a jittert, a csomagvesztést, a menetidőt stb.

A hívásokban beállíthatja a videokonfigurációkra vonatkozó korlátozásokat, hogy a videóminőséget a felbontás, a frameRate vagy a bitráta alapján szabályozhassa a videohívásokban. Ebben a rövid útmutatóban bemutatjuk, hogyan állíthat be videokényszereket a hívás elején, és hogyan használhatja a metódust setConstraints a hívásobjektumon a videokorlátok dinamikus beállításához a hívás során.

Videókra vonatkozó korlátozások küldése

Az Azure Communication Services Web Calling SDK támogatja az ügyfél által küldött maximális videofelbontás, képkockasebesség vagy bitráta beállítását. A küldő videóra vonatkozó korlátozások asztali böngészőkben (Chrome, Microsoft Edge, Firefox) és iOS Safari mobilböngésző vagy Android Chrome mobilböngésző használata esetén támogatottak.

Támogatott korlátozások
Bejövő videó: felbontás
Kimenő videó: felbontás, képkockasebesség, bitráta

Videokorlátok beállítása a hívás elején – kimenő (küldési) videó

A videokényszer-beállítás implementálva van a Call felületen. A videókorlátok használatához megadhatja a korlátozásokat belülről CallOptions , amikor hívást kezdeményez, fogad egy hívást, vagy csatlakozik egy híváshoz. Meg kell adnia localVideoStreams a következőt: videoOptions.

A korlátozások nem működnek, ha csak hangbeállítással csatlakozik egy híváshoz, és később bekapcsolja a kamerát. Ebben az esetben a videokényszereket dinamikusan állíthatja be a setConstraints felület Call metódusával.

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)

A videokényszer-típusok leírása a következő:

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 constraint
     */
    bitrate?: MediaConstraintRange;
};

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

Videokényszer beállításakor az SDK a kényszerkészletbe tartozó legközelebbi értéket választja ki, így megakadályozza, hogy a felbontás, a frameRate és a bitráta értékei ne lépik túl a beállított maximális korlátértékeket. Ha a feloldási kényszer értéke túl kicsi, az SDK a legkisebb elérhető felbontást választja ki. Ebben az esetben a választott felbontás magassága nagyobb lehet, mint a kényszerérték.

Feljegyzés

A kényszerérték minden bitrate, frameHeight és frameRate esetében egy max kényszer, ami azt jelenti, hogy a hívás tényleges értéke lehet a megadott érték vagy kisebb. Nincs garancia arra, hogy az elküldött videofelbontás a megadott felbontáson marad.

A frameHeight a VideoSendConstraints-ben más jelentéssel bír, ha egy mobileszköz álló módban van. Álló módban ez az érték az eszköz rövidebb oldalát jelzi. Például egy 1080(W) x 1920(H) eszközön álló módban, ha megadja a frameHeight.max értéket 240-re, a kényszer magassága a 1080(W) oldalon van. Ha ugyanaz az eszköz fekvő módban van (1920(W) x 1080(H)), a korlátozás az 1080(H) oldalon van.

Ha a MediaStats API-val követi nyomon az elküldött videofelbontást, előfordulhat, hogy az elküldött felbontás változhat a hívás során. Felfelé és lefelé is mehet, de egyenlőnek vagy kisebbnek kell lennie, mint a megadott kényszerérték. Ez a megoldásváltozás egy várt viselkedés. A böngésző is rendelkezik néhány degradációs szabálysal, amely az elküldött felbontást a processzor vagy a hálózati feltételek alapján módosítja.

Videokorlátok beállítása a hívás során – kimenő (küldési) videó

A hívás során a videókorlátokat a setConstraints objektum Call metódusával állíthatja be.

// 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
            }
        }
    }
});

Feljegyzés

A 0 érték beállítása minden korábban beállított kényszert visszavon. Ezzel a módszerrel alaphelyzetbe állíthatja vagy eltávolíthatja a korlátozásokat.

Videóbeli korlátok fogadása

A bejövő streamek videominőségének kezelése magában foglalja az Azure Communication Services felbontási létrájának megértését, amely a videófeloldások előre definiált listája a becsült felső és alsó bitrátahatárokkal. Amikor egy ügyfél konkrét megoldást kér, a WebJS és a háttérkiszolgáló a felbontási létrával egyeztetve lefoglalja a megfelelő videobitrátát, figyelembe véve a hálózati feltételeket és az eszköz képességeit is.

A videómegjelenítés méretének meghatározása kulcsfontosságú lépés a fejlesztők számára, amelyek célja a bejövő videostreamek bitráta- és képkockasebességének szabályozása. A videóstreamek kezdeti minőségét és felbontását a weblapon létrehozott és elhelyezett renderelő mérete határozza meg. Ha például a renderelő kicsi, a WebJS SDK kisebb felbontást kér. Ha a renderelő nagy, az ACS SDK a lehető legjobb felbontásra törekszik a kiszolgálóról. Ez a folyamat biztosítja, hogy a videó minősége az ügyfél igényeinek és képességeinek megfelelően legyen optimalizálva. Amikor egy ügyfél egy adott felbontást kér, a kiszolgáló konzultál a felbontási létrával a megfelelő videobitráta lefoglalásához, figyelembe véve a hálózati feltételeket és az eszköz képességeit is.

A felbontási létratábla megadja, miből áll a WebJS hívó SDK felbontási létrája a különböző felbontásokhoz tartozó becsült bejövő videobitrátákkal. Ezek a részletek segítenek a fejlesztőknek megérteni a felbontás, a bitsebesség és a képkockasebesség, valamint az adott bejövő videostream által használt sávszélesség hozzávetőleges mennyiségét. Például egy 1280x720-as felbontású stream 30 FPS sebességgel, ahol az ügyfél hozzávetőlegesen egy (1) MBPS minimális és két és fél (2,5) MBPS maximális bitsebességet használ.

Az Azure Communication Services WebJS Calling SDK a rendelkezésre álló sávszélesség alapján módosítja a videó méretét, hogy egységes kommunikációs élményt biztosítson. A WebJS Calling SDK a hálózati feltételeket figyelő algoritmusok alapján módosítja a videó méretét. Ha a hálózati sávszélesség elegendő, az SDK a weblapon meghatározott renderelési méret alapján a videófelbontást a maximális szintre növeli. Ezzel szemben, ha a sávszélesség korlátozott, csökkenti a videofelbontást a pufferelés megakadályozása és a stabil kapcsolat fenntartása érdekében.

Az alábbi táblázat a felbontáslétrátát és a becsült bitrátát tartalmazza az egyes felbontásokhoz és az adott felbontáshoz kapcsolódó FPS-hez.

Magasság Szélesség FPS Minimális bitráta (MBps) Maximális bitráta (MBps)
1080 1920 30 1,75 10
720 1280 30 1 2,5
540 960 30 0,5 1,125
360 640 30 0,4 0.57
240 426 15 0,125 0,5
240 320 15 0,2 0.175

Médiastatikák használata a videókorlátok hatásának megértéséhez

A videóminőség kiértékeléséhez és összehasonlításához a videómegkötések alkalmazása után hozzáférhet a MediaStats API-hoz a küldő stream videofelbontási és bitrátaadatainak lekéréséhez. A médiastatisztikák a streamekhez kapcsolódó egyéb részletes statisztikákat is tartalmaznak, például a jittert, a csomagvesztést, a menetidőt stb.

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);
});

Következő lépések

  • Tudnivalók a videokényszerekkel kapcsolatos koncepciódokumentumról
  • További információ az SDK-képességek hívásáról