Sdílet prostřednictvím


Statistika kvality médií

Abychom vám pomohli porozumět kvalitě médií ve VoIP a videohovorech, které používají službu Azure Communication Services, existuje funkce označovaná jako statistika kvality médií. Slouží k prozkoumání metrik kvality zvuku, videa a sdílení obrazovky na nízké úrovni pro metriky příchozích a odchozích hovorů.

Statistika kvality médií pro probíhající hovor

Důležité

V sadě SDK je k dispozici aktualizace rozhraní pro statistiku kvality médií počínaje sadou SDK verze 1.20.1.

Statistika kvality médií je rozšířená funkce základního Call rozhraní API. Nejprve potřebujete získat mediaStatsFeature objekt rozhraní API:

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

Pokud chcete dostávat data statistiky médií, můžete se přihlásit k odběru sampleReported události nebo summaryReported události.

sampleReported Událost se aktivuje každou sekundu. Je vhodný jako zdroj dat pro zobrazení uživatelského rozhraní nebo váš vlastní datový kanál.

summaryReported událost obsahuje agregované hodnoty dat v intervalech, což je užitečné, když potřebujete jenom souhrn.

Pokud chcete mít kontrolu nad intervalem summaryReported události, musíte definovat mediaStatsCollectorOptions typ MediaStatsCollectorOptions. V opačném případě sada SDK používá výchozí hodnoty.

const mediaStatsCollectorOptions: SDK.MediaStatsCollectorOptions = {
    aggregationInterval: 10,
    dataPointsPerAggregation: 6
};

const mediaStatsCollector = mediaStatsFeature.createCollector(mediaStatsSubscriptionOptions);

mediaStatsCollector.on('sampleReported', (sample) => {
    console.log('media stats sample', sample);
});

mediaStatsCollector.on('summaryReported', (summary) => {
    console.log('media stats summary', summary);
});

V případě, že nepotřebujete používat kolektor statistik médií, můžete volat dispose metodu mediaStatsCollector.

mediaStatsCollector.dispose();

Není nutné volat dispose metodu mediaStatsCollector pokaždé, když volání skončí, protože kolektory jsou uvolněny interně při ukončení volání.

MediaStatsCollectorOptions

Jedná se MediaStatsCollectorOptions o volitelná pole a v MediaStatsCollectorOptionspoli jsou dvě volitelná pole .

  • aggregationInterval je interval v sekundách, ve které jsou statistiky agregované. Výchozí hodnota je 10.
  • dataPointsPerAggregation definuje, kolik datových bodů má každá agregační událost. Výchozí hodnota je 6.

Tyto dvě hodnoty určují frekvenci, s jakou sada SDK generuje summaryReported událost, a počet agregovaných datových bodů zahrnutých v sestavě.

Událost se vyvolala summaryReported každých aggregationInterval * dataPointsPerAggregation sekund.

Pokud například nastavíte následující hodnoty:

  • aggregationInterval = 1
  • dataPointsPerAggregation = 60

Událost summaryReported se vyvolá každých 60 sekund a obsahuje 60 jedinečných jednotek pro každou zaznamenanou statistiku.

Pokud nastavíte následující hodnoty:

  • aggregatinInterval = 60
  • dataPointsPerAggregation = 1

Událost summaryReported se vyvolá každých 60 sekund a obsahuje 1 jedinečnou jednotku pro každou zaznamenanou statistiku.

Osvědčené postupy

Pokud chcete shromažďovat data pro offline kontrolu, doporučujeme shromažďovat data a odesílat je do příjmu kanálu po ukončení hovoru. Pokud data přenášíte během volání, mohlo by se použít internetová šířka pásma potřebná k pokračování volání služby Azure Communication Services (zejména pokud je dostupná šířka pásma nízká).

sampleReported V obou událostech nebo summaryReported událostech nejsou data statistik médií pouze jednoduchým mapováním klíč-hodnota.

Tady je deklarace typu dat události hlášených událostí sampleReported .

export interface MediaStatsReportSample {
    audio: {
        send: OutgoingAudioMediaStats<number, string>[];
        receive: IncomingAudioMediaStats<number, string>[];
    };
    video: {
        send: OutgoingVideoMediaStats<number, string>[];
        receive: IncomingVideoMediaStats<number, string>[];
    };
    screenShare: {
        send: OutgoingScreenShareMediaStats<number, string>[];
        receive: IncomingScreenShareMediaStats<number, string>[];
    };
    transports: TransportMediaStats<number>[];
}

Data události poskytují statistické údaje pro každý datový proud médií ve volání, včetně pokynů pro odesílání a přijímání.

Doporučuje se vytisknout událost pomocí console.log funkce sledování změn rozložení a hodnoty, abyste mohli najít správný způsob zobrazení nebo zpracování dat podle scénáře použití.

Metriky odesílání zvuku

Název metriky Popis Komentáře
id ID statistiky Používá se k identifikaci statistik napříč událostmi, zejména pokud existuje více statistik se stejným typem média a směrem v události.
codecName Název kodeku OPUS, G722.
bitrate Přenosová rychlost odesílání zvuku (bity za sekundu) Obecné hodnoty jsou v rozsahu 24 kB/s (typická je 36 až 128 kB/s).
jitterInMs Zadržování paketů (milisekundy) Nižší je lepší.
packets Celkový počet odeslaných paketů.
packetsPerSecond Rychlost paketů (pakety za sekundu)
packetsLost Celkový počet ztracených paketů ze vzdáleného konce.
packetsLostPerSecond Rychlost ztráty paketů (pakety za sekundu) Nižší je lepší.
rttInMs Doba odezvy (milisekundy) Nižší je lepší. Vypočítá se ze sestavy přijímače RTCP. Doporučujeme dobu odezvy 200 ms nebo méně.
audioInputLevel Úroveň hlasitosti zvuku z mikrofonu Hodnota se pohybuje od 0 do 65536. Hodnota 0 představuje ticho.
transportId ID přenosu Slouží k přidružení statistik v přenosech.

Metriky příjmu zvuku

Ve verzích sady SDK ealier než 1.20.1 jitterBufferDelayInMs existoval jako jitterBufferInMs.

Název metriky Popis Komentáře
id ID statistiky Používá se k identifikaci statistik napříč událostmi, zejména pokud existuje více statistik se stejným typem média a směrem v události.
codecName Název kodeku OPUS, G722.
bitrate Přenosová rychlost příjmu zvuku (bity za sekundu) Obecné hodnoty jsou v rozsahu 24 kB/s (typická je 36 až 128 kB/s).
jitterInMs Zadržování paketů (milisekundy) Nižší je lepší.
packets Celkový počet přijatých paketů.
packetsPerSecond Rychlost paketů (pakety za sekundu)
packetsLost Celkový počet ztracených paketů
packetsLostPerSecond Rychlost ztráty paketů (pakety za sekundu) Nižší je lepší.
jitterBufferDelayInMs Vyrovnávací paměť jitter (milisekundy) Nižší je lepší. Vyrovnávací paměť jitter se používá k hladkému playoutu. Tato hodnota určuje, jak dlouho pakety vzorků zůstanou ve vyrovnávací paměti pro zadržování.
audioOutputLevel Úroveň hlasitosti zvuku z přijímajícího streamu Hodnota se pohybuje od 0 do 65536. Hodnota 0 představuje ticho.
healedRatio Poměr skrytých vzorků (s výjimkou silentConcealedSamples) k celkovému počtu přijatých vzorků Pouze informace.
transportId ID přenosu Slouží k přidružení statistik v přenosech.

Metriky odesílání videa

Od sady SDK verze 1.20.1 zahrnovala altLayouts metriky odesílání videa pole metriky, které umožňuje lepší znázornění statistik streamu simulcastu.

Název metriky Popis Komentáře
id ID statistiky Používá se k identifikaci statistik napříč událostmi, zejména pokud existuje více statistik se stejným typem média a směrem v události.
codecName Název kodeku H264, VP8, VP9.
bitrate Přenosová rychlost odesílání videa (bity za sekundu)
jitterInMs Zadržování paketů (milisekundy) Nižší je lepší.
packets Celkový počet odeslaných paketů.
packetsPerSecond Rychlost paketů (pakety za sekundu)
packetsLost Celkový počet ztracených paketů ze vzdáleného konce.
packetsLostPerSecond Rychlost ztráty paketů (pakety za sekundu) Nižší je lepší.
rttInMs Doba odezvy (milisekundy) Nižší je lepší. Vypočítá se ze sestavy přijímače RTCP. Doporučujeme dobu odezvy 200 ms nebo méně.
frameRateInput Frekvence snímků, která pochází ze zdroje videa (snímky za sekundu)
frameWidthInput Šířka snímku posledního snímku, který pochází ze zdroje videa (pixely)
frameHeightInput Výška snímku posledního snímku, který pochází ze zdroje videa (pixely)
framesEncoded Počet snímků úspěšně zakódovaný pro datový proud RTP.
frameRateEncoded Frekvence snímků byla úspěšně zakódována pro stream RTP (snímky za sekundu)
framesSent Počet snímků odeslaných ve streamu RTP
frameRateSent Frekvence snímků odeslaná ve streamu RTP (snímky za sekundu)
frameWidthSent Šířka rámce zakódovaného rámce (pixel)
frameHeightSent Výška rámce zakódovaného rámce (pixel)
keyFramesEncoded Klíčové snímky úspěšně zakódované pro stream RTP
transportId ID přenosu Slouží k přidružení statistik v přenosech.
altLayouts Streamy simulcastu altLayouts obsahuje stejné metriky pro odesílání videa.

Metriky příjmu videa

Ve verzích sady SDK starších než 1.20.1 jitterBufferDelayInMs existovalo jako jitterBufferInMs.

Název metriky Popis Komentáře
id ID statistiky Používá se k identifikaci statistik napříč událostmi, zejména pokud existuje více statistik se stejným typem média a směrem v události.
codecName Název kodeku H264, VP8, VP9.
bitrate Přenosová rychlost příjmu videa (bity za sekundu)
jitterInMs Zadržování paketů (milisekundy) Nižší je lepší.
packets Celkový počet přijatých paketů.
packetsPerSecond Rychlost paketů (pakety za sekundu)
packetsLost Celkový počet ztracených paketů
packetsLostPerSecond Rychlost ztráty paketů (pakety za sekundu) Nižší je lepší.
rttInMs Doba odezvy (milisekundy) Nižší je lepší. Vypočítáno ze sestavy odesílatele RTCP. Doporučujeme dobu odezvy 200 ms nebo méně.
streamId ID streamu Hodnota streamId odpovídá id hodnotě v VideoStreamCommon. Dá se použít ke shodě s odesílatelem.
jitterBufferDelayInMs Vyrovnávací paměť jitter (milisekundy) Nižší je lepší. Vyrovnávací paměť jitter se používá k hladkému playoutu. Tato hodnota určuje, jak dlouho pakety snímků zůstanou v vyrovnávací paměti pro zadržování.
frameRateDecoded Frekvence snímků je správně dekódovaná pro stream RTP (snímky za sekundu)
frameRateReceived Frekvence snímků přijatá ve streamu RTP (snímky za sekundu)
frameWidthReceived Šířka rámečku dekódovaného rámce (pixel)
frameHeightReceived Výška rámečku dekódovaného rámce (pixel)
longestFreezeDurationInMs Nejdelší doba ukotvení (milisekundy)
totalFreezeDurationInMs Celková doba trvání ukotvení (milisekundy)
framesReceived Celkový počet snímků přijatých ve streamu RTP
framesDecoded Celkový počet snímků správně dekódovaných pro stream RTP
framesDropped Celkový počet vynechaných snímků
keyFramesDecoded Celkový počet klíčových snímků správně dekódovaný pro stream RTP
transportId ID přenosu Slouží k přidružení statistik v přenosech.

Metriky odesílání sdílení obrazovky

V současné době jsou pole statistiky stejná jako metriky odesílání videa.

Metriky příjmu sdílení obrazovky

V současné době jsou pole statistiky stejná jako metriky příjmu videa.

Metriky přenosu

Metriky související s přenosem byly odděleny po sadě ACS Web SDK 1.20.1.

Ve starších verzích rttInMs existovaly jako pairRttInMs v statistikách pro zvuk, video a sdílení obrazovky.

availableIncomingBitrate byl availableBitrate v příjmových statistikách pro zvuk, video a sdílení obrazovky.

availableOutgoingBitrate byl availableBitrate ve statistikách odesílání zvuku, videa a obrazovkyShare.

Název metriky Popis Komentáře
id ID přenosu Slouží k přidružení k transportId v jiných statistikách.
rttInMs Doba odezvy (milisekundy) Hodnota se vypočítá z kontroly připojení STUN. Doporučujeme dobu odezvy 200 ms nebo méně.
availableIncomingBitrate Odhad šířky pásma (bity za sekundu) Hodnota nemusí být dostupná v závislosti na algoritmu odhadu šířky pásma použitém v relaci WebRTC.
availableOutgoingBitrate Odhad šířky pásma (bity za sekundu) Hodnota nemusí být dostupná v závislosti na algoritmu odhadu šířky pásma použitém v relaci WebRTC.

Co se změnilo v sadě SDK verze 1.20.1 (GA)

Nyní podporujeme rozhraní API funkcí MediaStats ve verzi 1.20.1 (GA). V porovnání s předchozími beta verzemi jsme také provedli některé dílčí změny rozhraní API v této verzi GA.

V předchozích beta verzích pairRttInMsavailableBitrate byly zahrnuty do statistik zvuku, videa a sdílení obrazovky. Tyto metriky jsou teď rozdělené na přenosové metriky.

Zavedli packetspacketsLost jsme pole metrik ve zvuku, videu, statistikách sdílení obrazovky. Tyto metriky jsou užitečné pro výpočet celkového počtu odeslaných nebo přijatých paketů mezi dvěma různými časovými body.

Odebere se statistika ve videu frameRateOutput a sdílení obrazovky. Místo toho můžete použít frameRateDecoded .

Pole jitterBufferInMs metriky bylo přejmenováno tak, aby jitterBufferDelayInMs poskytovalo jasnější popis, protože tato metrika označuje dobu trvání zadržování paketů v vyrovnávací paměti zadržování.

Statistika kvality médií pro probíhající hovor

Statistika kvality médií je rozšířená funkce základního Call rozhraní API. Nejprve potřebujete získat MediaStatisticsCallFeature objekt rozhraní API:

MediaStatisticsCallFeature mediaStatisticsCallFeature = call.feature(Features.MEDIA_STATISTICS);

Objekt MediaStatisticsCallFeature má následující strukturu rozhraní API:

  • Událost OnReportReceivedListener naslouchá pravidelným zprávám o statistikách médií.
  • getReportIntervalInSeconds získá interval generování sestavy mediální statistiky v sekundách. Sada SDK používá 10 jako výchozí sekundu.
  • updateReportIntervalInSeconds() aktualizuje interval generování sestavy statistik médií v sekundách. Sada SDK používá 10 jako výchozí sekundu.
  • A MediaStatisticsReport obsahuje definici statistik odchozích a příchozích médií zařazených do kategorií podle zvuku, videa a sdílení obrazovky.
    • getOutgoingStatistics(): Seznam statistik médií pro odchozí média.
      • getAudioStatistics(): Seznam statistik médií pro odchozí zvuk.
      • getVideoStatistics(): Seznam statistik médií pro odchozí video.
      • getScreenShareStatistics(): Seznam statistik médií pro sdílení odchozí obrazovky.
      • getDataChannelStatistics(): Seznam statistik médií pro datový kanál.
    • getIncomingStatistics(): Seznam statistik médií pro příchozí média.
      • getAudioStatistics(): Seznam statistik médií pro příchozí zvuk.
      • getVideoStatistics(): Seznam statistik médií pro příchozí video.
      • getScreenShareStatistics(): Seznam statistik médií pro příchozí sdílení obrazovky.
      • getDataChannelStatistics(): Seznam statistik médií pro datový kanál.
    • getLastUpdatedAt(): Datum vygenerování sestavy.

Pak se přihlaste k odběru addOnReportReceivedListener události, abyste získali pravidelné aktualizace aktuální statistiky kvality médií:

mediaStatisticsCallFeature.addOnReportReceivedListener(handleReportReceivedListener);
// Optionally, set the interval for media statistics report generation
mediaStatisticsCallFeature.updateReportIntervalInSeconds(15);

private void handleReportReceivedListener(MediaStatisticssReportEvent args) {
    // Obtain the media statistics report instance
    MediaStatisticsReport report = args.getReport();

    // Obtain the outgoing media statistics for audio
    List<OutgoingAudioStatistics> outgoingAudioStatistics = report.getOutgoingStatistics().getAudioStatistics();

    // Obtain the outgoing media statistics for video
    List<OutgoingVideoStatistics> outgoingVideoStatistics = report.getOutgoingStatistics().getVideoStatistics();

    // Obtain the outgoing media statistics for screen share
    List<OutgoingScreenShareStatistics> outgoingScreenShareStatistics = report.getOutgoingStatistics().getScreenShareStatistics();

    // Obtain the outgoing media statistics for data channel
    List<OutgoingDataChannelStatistics> outgoingDataChannelStatistics = report.getOutgoingStatistics().getDataChannelStatistics();

    // Obtain the incoming media statistics for audio
    List<IncomingAudioStatistics> incomingAudioStatistics = report.getIncomingStatistics().getAudioStatistics();

    // Obtain the incoming media statistics for video
    List<IncomingVideoStatistics> incomingVideoStatistics = report.getIncomingStatistics().getVideoStatistics();

    // Obtain the incoming media statistics for screen share
    List<IncomingScreenShareStatistics> incomingScreenShareStatistics = report.getIncomingStatistics().getScreenShareStatistics();

    // Obtain the incoming media statistics for data channel
    List<IncomingDataChannelStatistics> incomingDataChannelStatistics = report.getIncomingStatistics().getDataChannelStatistics();
}

Osvědčené postupy

Pokud chcete shromažďovat data pro offline kontrolu, doporučujeme shromažďovat data a odesílat je do příjmu kanálu po ukončení hovoru. Pokud data přenášíte během volání, mohlo by se použít internetová šířka pásma potřebná k pokračování volání služby Azure Communication Services (zejména pokud je dostupná šířka pásma nízká).

Odchozí zvukové metriky

Název metriky Popis Komentáře
CodecName Název kodeku
BitrateInBps Přenosová rychlost odesílání zvuku (bity za sekundu) Obecné hodnoty jsou v rozsahu 24 kB/s (typická je 36 až 128 kB/s).
JitterInMs Zadržování paketů (milisekundy) Nižší je lepší.
PacketCount Celkový počet odeslaných paketů.

Příchozí zvukové metriky

Název metriky Popis Komentáře
CodecName Název kodeku
JitterInMs Zadržování paketů (milisekundy) Nižší je lepší.
PacketCount Celkový počet odeslaných paketů.
PacketsLostPerSecond Rychlost ztráty paketů (pakety za sekundu) Nižší je lepší.

Metriky odchozích videí

Název metriky Popis Komentáře
CodecName Název kodeku
BitrateInBps Přenosová rychlost odesílání videa (bity za sekundu)
PacketCount Celkový počet odeslaných paketů.
FrameRate Frekvence snímků odeslaná ve streamu RTP (snímky za sekundu)
FrameWidth Šířka rámce zakódovaného rámce (pixely)
FrameHeight Výška rámce zakódovaného rámce (pixely)

Metriky příchozího videa

Název metriky Popis Komentáře
CodecName Název kodeku
BitrateInBps Přenosová rychlost příjmu videa (bity za sekundu)
JitterInMs Zadržování paketů (milisekundy) Nižší je lepší.
PacketCount Celkový počet odeslaných paketů.
PacketsLostPerSecond Rychlost ztráty paketů (pakety za sekundu) Nižší je lepší.
StreamId ID streamu Hodnota streamId odpovídá ID videa vzdáleného účastníka. Dá se použít ke shodě s odesílatelem.
FrameRate Frekvence snímků přijatá ve streamu RTP (snímky za sekundu)
FrameWidth Šířka rámečku dekódovaného rámce (pixely)
FrameHeight Výška rámečku dekódovaného rámce (pixely)
TotalFreezeDurationInMs Celková doba trvání ukotvení (milisekundy)

Metriky sdílení odchozí obrazovky

V současné době jsou pole statistiky stejná jako metriky odchozího videa.

Metriky sdílení příchozí obrazovky

V současné době jsou pole statistiky stejná jako metriky příchozího videa.

Metriky odchozích datových kanálů

Název metriky Popis Komentáře
PacketCount Celkový počet odeslaných paketů.

Metriky příchozích datových kanálů

Název metriky Popis Komentáře
JitterInMs Zadržování paketů (milisekundy) Nižší je lepší.
PacketCount Celkový počet odeslaných paketů.

Statistika kvality médií pro probíhající hovor

Statistika kvality médií je rozšířená funkce základního Call rozhraní API. Nejprve potřebujete získat mediaStatisticsCallFeature objekt rozhraní API:

var mediaStatisticsCallFeature = self.call.feature(Features.mediaStatistics)

Objekt mediaStatisticsCallFeature má následující strukturu rozhraní API:

  • Metoda didReceiveReport delegáta naslouchá pravidelným zprávám o statistikách médií.
  • reportIntervalInSeconds získá interval generování sestavy mediální statistiky v sekundách. Sada SDK používá 10 jako výchozí sekundu.
  • updateReportInterval(inSeconds) aktualizuje interval generování sestavy statistik médií v sekundách. Sada SDK používá 10 jako výchozí sekundu.
  • Objekt MediaStatisticsReport obsahuje definici statistik odchozích a příchozích médií zařazených do kategorií podle zvuku, videa a sdílení obrazovky.
    • outgoingMediaStatistics: Seznam statistik médií pro odchozí média.
      • audio: Seznam statistik médií pro odchozí zvuk.
      • video: Seznam statistik médií pro odchozí video.
      • screenShare: Seznam statistik médií pro sdílení odchozí obrazovky.
      • dataChannel: Seznam statistik médií pro odchozí datový kanál.
    • incomingMediaStatistics: Seznam statistik médií pro příchozí média.
      • audio: Seznam statistik médií pro příchozí zvuk.
      • video: Seznam statistik médií pro příchozí video.
      • screenShare: Seznam statistik médií pro příchozí sdílenou obrazovku.
      • dataChannel: Seznam statistik médií pro příchozí datový kanál.
    • lastUpdated: Datum vygenerování sestavy.

Pak implementujte delegáta didReceiveReport , abyste získali pravidelné aktualizace aktuální statistiky kvality médií:

// Optionally, set the interval for media statistics report generation
mediaStatisticsCallFeature.updateReportInterval(inSeconds: 15)
mediaStatisticsCallFeature.delegate = MediaStatisticsDelegate()


public class MediaStatisticsDelegate : MediaStatisticsCallFeatureDelegate
{
    public func mediaStatisticsCallFeature(_ mediaStatisticsCallFeature: MediaStatisticsCallFeature,
                                      didReceiveReport args: MediaStatisticsReportReceivedEventArgs) {
        let report = args.report

        // Obtain the outgoing media statistics for audio
        let outgoingAudioStatistics = report.outgoingStatistics.audio
    
        // Obtain the outgoing media statistics for video
        let outgoingVideoStatistics = report.outgoingStatistics.video
    
        // Obtain the outgoing media statistics for screen share
        let outgoingScreenShareStatistics = report.outgoingStatistics.screenShare

        // Obtain the outgoing media statistics for data channel
        let outgoingDataChannelStatistics = report.outgoingStatistics.dataChannel
    
        // Obtain the incoming media statistics for audio
        let incomingAudioStatistics = report.incomingStatistics.audio
    
        // Obtain the incoming media statistics for video
        let incomingVideoStatistics = report.incomingStatistics.video
    
        // Obtain the incoming media statistics for screen share
        let incomingScreenShareStatistics = report.incomingStatistics.screenShare

        // Obtain the incoming media statistics for data channel
        let incomingDataChannelStatistics = report.incomingStatistics.dataChannel
    }
}

Osvědčené postupy

Pokud chcete shromažďovat data pro offline kontrolu, doporučujeme shromažďovat data a odesílat je do příjmu kanálu po ukončení hovoru. Pokud data přenášíte během volání, mohlo by se použít internetová šířka pásma potřebná k pokračování volání služby Azure Communication Services (zejména pokud je dostupná šířka pásma nízká).

Odchozí zvukové metriky

Název metriky Popis Komentáře
CodecName Název kodeku
BitrateInBps Přenosová rychlost odesílání zvuku (bity za sekundu) Obecné hodnoty jsou v rozsahu 24 kB/s (typická je 36 až 128 kB/s).
JitterInMs Zadržování paketů (milisekundy) Nižší je lepší.
PacketCount Celkový počet odeslaných paketů.

Příchozí zvukové metriky

Název metriky Popis Komentáře
CodecName Název kodeku
JitterInMs Zadržování paketů (milisekundy) Nižší je lepší.
PacketCount Celkový počet odeslaných paketů.
PacketsLostPerSecond Rychlost ztráty paketů (pakety za sekundu) Nižší je lepší.

Metriky odchozích videí

Název metriky Popis Komentáře
CodecName Název kodeku
BitrateInBps Přenosová rychlost odesílání videa (bity za sekundu)
PacketCount Celkový počet odeslaných paketů.
FrameRate Frekvence snímků odeslaná ve streamu RTP (snímky za sekundu)
FrameWidth Šířka rámce zakódovaného rámce (pixely)
FrameHeight Výška rámce zakódovaného rámce (pixely)

Metriky příchozího videa

Název metriky Popis Komentáře
CodecName Název kodeku
BitrateInBps Přenosová rychlost příjmu videa (bity za sekundu)
JitterInMs Zadržování paketů (milisekundy) Nižší je lepší.
PacketCount Celkový počet odeslaných paketů.
PacketsLostPerSecond Rychlost ztráty paketů (pakety za sekundu) Nižší je lepší.
StreamId ID streamu Hodnota streamId odpovídá ID videa vzdáleného účastníka. Dá se použít ke shodě s odesílatelem.
FrameRate Frekvence snímků přijatá ve streamu RTP (snímky za sekundu)
FrameWidth Šířka rámečku dekódovaného rámce (pixely)
FrameHeight Výška rámečku dekódovaného rámce (pixely)
TotalFreezeDurationInMs Celková doba trvání ukotvení (milisekundy)

Metriky sdílení odchozí obrazovky

V současné době jsou pole statistiky stejná jako metriky odchozího videa.

Metriky sdílení příchozí obrazovky

V současné době jsou pole statistiky stejná jako metriky příchozího videa.

Metriky odchozích datových kanálů

Název metriky Popis Komentáře
PacketCount Celkový počet odeslaných paketů.

Metriky příchozích datových kanálů

Název metriky Popis Komentáře
JitterInMs Zadržování paketů (milisekundy) Nižší je lepší.
PacketCount Celkový počet odeslaných paketů.

Statistika kvality médií pro probíhající hovor

Statistika kvality médií je rozšířená funkce základního CommunicationCall rozhraní API. Nejprve potřebujete získat MediaStatisticsCallFeature objekt rozhraní API:

MediaStatisticsCallFeature mediaStatisticsCallFeature = call.Features.MediaStatistics;

Objekt MediaStatisticsCallFeature funkce má následující strukturu rozhraní API:

  • Událost ReportReceived naslouchá pravidelným zprávám o statistikách médií.
  • ReportIntervalInSeconds získá interval generování sestavy mediální statistiky v sekundách. Sada SDK používá 10 jako výchozí sekundu.
  • UpdateReportIntervalInSeconds() aktualizuje interval generování sestavy statistik médií v sekundách. Sada SDK používá 10 jako výchozí sekundu.
  • Objekt MediaStatisticsReport obsahuje definici statistik odchozích a příchozích médií zařazených do kategorií podle zvuku, videa a sdílení obrazovky.
    • OutgoingMediaStatistics: Seznam statistik médií pro odchozí média.
      • Audio: Seznam statistik médií pro odchozí zvuk.
      • Video: Seznam statistik médií pro odchozí video.
      • ScreenShare: Seznam statistik médií pro sdílení odchozí obrazovky.
      • DataChannel: Seznam statistik médií pro odchozí datový kanál.
    • IncomingMediaStatistics: Seznam statistik médií pro příchozí média.
      • Audio: Seznam statistik médií pro příchozí zvuk.
      • Video: Seznam statistik médií pro příchozí video.
      • ScreenShare: Seznam statistik médií pro příchozí sdílenou obrazovku.
      • DataChannel: Seznam statistik médií pro příchozí datový kanál.
    • LastUpdateAt: Datum vygenerování sestavy.

Pak se přihlaste k odběru SampleReported události, abyste získali pravidelné aktualizace aktuální statistiky kvality médií:

mediaStatisticsCallFeature.ReportReceived += MediaStatisticsCallFeature_ReportReceived;
// Optionally, set the interval for media statistics report generation
mediaStatisticsCallFeature.UpdateReportIntervalInSeconds(15);

private void MediaStatisticsCallFeature_ReportReceived(object sender, MediaStatisticsReportReceivedEventArgs args)
    // Obtain the media statistics report instance
    MediaStatisticsReport report = args.Report;

    // Obtain the outgoing media statistics for audio
    IReadOnlyList<OutgoingAudioStatistics> outgoingAudioStatistics = report.OutgoingStatistics.Audio;

    // Obtain the outgoing media statistics for video
    IReadOnlyList<OutgoingVideoStatistics> outgoingVideoStatistics = report.OutgoingStatistics.Video;

    // Obtain the outgoing media statistics for screen share
    IReadOnlyList<OutgoingScreenShareStatistics> outgoingScreenShareStatistics = report.OutgoingStatistics.ScreenShare;

    // Obtain the outgoing media statistics for data channel
    IReadOnlyList<OutgoingDataChannelStatistics> outgoingDataChannelStatistics = report.OutgoingStatistics.DataChannel;

    // Obtain the incoming media statistics for audio
    IReadOnlyList<IncomingAudioStatistics> incomingAudioStatistics = report.IncomingStatistics.Audio;

    // Obtain the incoming media statistics for video
    IReadOnlyList<IncomingVideoStatistics> incomingVideoStatistics = report.IncomingStatistics.Video;

    // Obtain the incoming media statistics for screen share
    IReadOnlyList<IncomingScreenShareStatistics> incomingScreenShareStatistics = report.IncomingStatistics.ScreenShare;

    // Obtain the incoming media statistics for data channel
    IReadOnlyList<IncomingDataChannelStatistics> incomingDataChannelStatistics = report.IncomingStatistics.DataChannel;
}

Osvědčené postupy

Pokud chcete shromažďovat data pro offline kontrolu, doporučujeme shromažďovat data a odesílat je do příjmu kanálu po ukončení hovoru. Pokud data přenášíte během volání, mohlo by se použít internetová šířka pásma potřebná k pokračování volání služby Azure Communication Services (zejména pokud je dostupná šířka pásma nízká).

Odchozí zvukové metriky

Název metriky Popis Komentáře
CodecName Název kodeku
BitrateInBps Přenosová rychlost odesílání zvuku (bity za sekundu) Obecné hodnoty jsou v rozsahu 24 kB/s (typická je 36 až 128 kB/s).
JitterInMs Zadržování paketů (milisekundy) Nižší je lepší.
PacketCount Celkový počet odeslaných paketů.

Příchozí zvukové metriky

Název metriky Popis Komentáře
CodecName Název kodeku
JitterInMs Zadržování paketů (milisekundy) Nižší je lepší.
PacketCount Celkový počet odeslaných paketů.
PacketsLostPerSecond Rychlost ztráty paketů (pakety za sekundu) Nižší je lepší.

Metriky odchozích videí

Název metriky Popis Komentáře
CodecName Název kodeku
BitrateInBps Přenosová rychlost odesílání videa (bity za sekundu)
PacketCount Celkový počet odeslaných paketů.
FrameRate Frekvence snímků odeslaná ve streamu RTP (snímky za sekundu)
FrameWidth Šířka rámce zakódovaného rámce (pixely)
FrameHeight Výška rámce zakódovaného rámce (pixely)

Metriky příchozího videa

Název metriky Popis Komentáře
CodecName Název kodeku
BitrateInBps Přenosová rychlost příjmu videa (bity za sekundu)
JitterInMs Zadržování paketů (milisekundy) Nižší je lepší.
PacketCount Celkový počet odeslaných paketů.
PacketsLostPerSecond Rychlost ztráty paketů (pakety za sekundu) Nižší je lepší.
StreamId ID streamu Hodnota streamId odpovídá ID videa vzdáleného účastníka. Dá se použít ke shodě s odesílatelem.
FrameRate Frekvence snímků přijatá ve streamu RTP (snímky za sekundu)
FrameWidth Šířka rámečku dekódovaného rámce (pixely)
FrameHeight Výška rámečku dekódovaného rámce (pixely)
TotalFreezeDurationInMs Celková doba trvání ukotvení (milisekundy)

Metriky sdílení odchozí obrazovky

V současné době jsou pole statistiky stejná jako metriky odchozího videa.

Metriky sdílení příchozí obrazovky

V současné době jsou pole statistiky stejná jako metriky příchozího videa.

Metriky odchozích datových kanálů

Název metriky Popis Komentáře
PacketCount Celkový počet odeslaných paketů.

Metriky příchozích datových kanálů

Název metriky Popis Komentáře
JitterInMs Zadržování paketů (milisekundy) Nižší je lepší.
PacketCount Celkový počet odeslaných paketů.