Statistika kvality médií
Abychom vám pomohli lépe 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 statistik médií, můžete se přihlásit k odběru sampleReported
summaryReported
události nebo události.
Událost sampleReported
se aktivuje každou sekundu. Je vhodný jako zdroj dat pro zobrazení uživatelského rozhraní nebo váš vlastní datový kanál.
Událost summaryReported
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);
});
Pokud 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ě, když volání skončí.
MediaStatsCollectorOptions
Jedná se MediaStatsCollectorOptions
o volitelná pole a v MediaStatsCollectorOptions
poli 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
= 1dataPointsPerAggregation
= 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
= 60dataPointsPerAggregation
= 1
Událost summaryReported
se vyvolá každých 60 sekund a obsahuje jednu (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 případě nebo summaryReported
události 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čujeme, abyste událost vytiskli 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 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 | 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žňují 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 pairRttInMs
availableBitrate
byly zahrnuty do statistik zvuku, videa a sdílení obrazovky. Tyto metriky jsou teď rozdělené na přenosové metriky.
V audio, videu, statistikách sdílení obrazovky jsme zavedli packets
a packetsLost
metrická pole. 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 se přejmenuje tak, aby jitterBufferDelayInMs
poskytovalo jasnější popis, protože tato metrika označuje dobu trvání zadržování paketů ve 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(MediaStatisticsReportEvent 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ů. |