Medya kalitesi istatistikleri
VoIP'deki medya kalitesini ve Azure İletişim Hizmetleri kullanan görüntülü aramaları anlamanıza yardımcı olmak için medya kalitesi istatistikleri adlı bir özellik vardır. Gelen ve giden arama ölçümleri için düşük düzey ses, video ve ekran paylaşımı kalitesi ölçümlerini incelemek için bunu kullanın.
Devam eden bir çağrı için medya kalitesi istatistikleri
Önemli
SDK'nın 1.20.1 sürümünden başlayarak SDK'da medya kalitesi istatistikleriyle ilgili bir arabirim güncelleştirmesi vardır
Medya kalitesi istatistikleri, çekirdek Call
API'nin genişletilmiş bir özelliğidir. Öncelikle API nesnesini edinmeniz mediaStatsFeature
gerekir:
const mediaStatsFeature = call.feature(Features.MediaStats);
Medya istatistikleri verilerini almak için olayı veya summaryReported
olayı abone sampleReported
yapabilirsiniz.
sampleReported
olay her saniye tetikler. Kullanıcı arabirimi görüntüleme veya kendi veri işlem hattınız için bir veri kaynağı olarak uygundur.
summaryReported
olay, aralıklar içinde verilerin toplanmış değerlerini içerir; bu, yalnızca bir özete ihtiyacınız olduğunda kullanışlıdır.
Olayın aralığı summaryReported
üzerinde denetim sahibi olmak istiyorsanız, türünde MediaStatsCollectorOptions
tanımlamanız mediaStatsCollectorOptions
gerekir.
Aksi takdirde SDK varsayılan değerleri kullanır.
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);
});
Medya istatistikleri toplayıcısını kullanmanız gerekmiyorsa yöntemini mediaStatsCollector
çağırabilirsinizdispose
.
mediaStatsCollector.dispose();
Toplayıcılar arama dispose
mediaStatsCollector
sona erdiğinde dahili olarak geri kazanıldığından, çağrı sona erdiğinde yönteminin çağrılması gerekmez.
MediaStatsCollectorOptions
MediaStatsCollectorOptions
isteğe bağlıdır ve içinde MediaStatsCollectorOptions
isteğe bağlı iki alan vardır.
aggregationInterval
saniye cinsinden istatistiklerin toplanmış olduğu aralıktır. Varsayılan değer 10'dur.dataPointsPerAggregation
her toplama olayının sahip olduğu veri noktası sayısını tanımlar. Varsayılan değer 6'dır.
Bu iki değer SDK'nın olayı yayma summaryReported
sıklığını ve rapora dahil edilen toplu veri noktalarının sayısını belirler.
Olay summaryReported
her aggregationInterval * dataPointsPerAggregation
saniye tetikler.
Örneğin, aşağıdaki değerleri ayarlarsanız:
aggregationInterval
= 1dataPointsPerAggregation
= 60
Olay summaryReported
her 60 saniyede bir oluşturulur ve kaydedilen her istatistik için 60 benzersiz birim içerir.
Aşağıdaki değerleri ayarlarsanız:
aggregatinInterval
= 60dataPointsPerAggregation
= 1
Olay summaryReported
her 60 saniyede bir oluşturulur ve kaydedilen her istatistik için 1 benzersiz birim içerir.
En iyi yöntemler
Çevrimdışı inceleme için verileri toplamak istiyorsanız, aramanız sona erdikten sonra verileri toplamanızı ve işlem hattı alımınıza göndermenizi öneririz. Bir arama sırasında verileri iletirseniz, Azure İletişim Hizmetleri çağrısına devam etmek için gereken İnternet bant genişliğini kullanabilir (özellikle kullanılabilir bant genişliği düşük olduğunda).
sampleReported
Olay veya summaryReported
olayda, medya istatistikleri verileri yalnızca basit bir anahtar-değer eşlemesi değildir.
Olay tarafından sampleReported
bildirilen olay verilerinin tür bildirimi aşağıdadır.
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>[];
}
Olay verileri, çağrıdaki her medya akışı için hem gönderme hem de alma yönergeleri de dahil olmak üzere istatistik verilerini sağlar.
Düzeni ve değer değişikliklerini gözlemlemek için kullanarak olayı console.log
yazdırmanız önerilir, böylece kullanım senaryonuza göre verileri görüntülemek veya işlemek için uygun bir yol bulabilirsiniz.
Ses gönderme ölçümleri
Ölçüm adı | Açıklama | Açıklamalar |
---|---|---|
id |
İstatistik Kimliği | Özellikle bir olayda aynı medya türüne ve yönüne sahip birden çok istatistik olduğunda olaylar genelinde istatistikleri tanımlamak için kullanılır. |
codecName |
Codec adı | OPUS, G722. |
bitrate |
Ses gönderme bit hızı (saniye başına bit sayısı) | Genel değerler 24 Kb/sn aralığındadır (36-128 Kb/sn tipiktir). |
jitterInMs |
Paket değişimi (milisaniye) | Alt daha iyidir. |
packets |
Gönderilen toplam paket sayısı. | |
packetsPerSecond |
Paket hızı (saniye başına paket sayısı) | |
packetsLost |
Uzak uçtan bildirilen toplam kayıp paket sayısı. | |
packetsLostPerSecond |
Paket kaybı oranı (saniye başına paket sayısı) | Alt daha iyidir. |
rttInMs |
Gidiş dönüş süresi (milisaniye) | Alt daha iyidir. RTCP alıcı raporundan hesaplanır. 200 ms veya daha kısa bir gidiş dönüş süresi öneririz. |
audioInputLevel |
Mikrofondan ses düzeyi | Değer 0 ile 65536 arasında değişir. 0 değeri sessizliği temsil eder. |
transportId |
Aktarım Kimliği | Aktarımlardaki istatistikleri ilişkilendirmek için kullanılır. |
Ses alma ölçümleri
SDK sürümlerinde 1.20.1'den jitterBufferDelayInMs
daha yeni sürümler olarak jitterBufferInMs
mevcutdu.
Ölçüm adı | Açıklama | Açıklamalar |
---|---|---|
id |
İstatistik Kimliği | Özellikle bir olayda aynı medya türüne ve yönüne sahip birden çok istatistik olduğunda olaylar genelinde istatistikleri tanımlamak için kullanılır. |
codecName |
Codec adı | OPUS, G722. |
bitrate |
Ses alma bit hızı (saniye başına bit sayısı) | Genel değerler 24 Kb/sn aralığındadır (36-128 Kb/sn tipiktir). |
jitterInMs |
Paket değişimi (milisaniye) | Alt daha iyidir. |
packets |
Alınan toplam paket sayısı. | |
packetsPerSecond |
Paket hızı (saniye başına paket sayısı) | |
packetsLost |
Kaybedilen toplam paket sayısı. | |
packetsLostPerSecond |
Paket kaybı oranı (saniye başına paket sayısı) | Alt daha iyidir. |
jitterBufferDelayInMs |
Değişim arabelleği (milisaniye) | Alt daha iyidir. Titreşim arabelleği sorunsuz bir şekilde oynanması için kullanılır. Bu değer, örneklerin paketlerinin değişim arabelleğinde ne kadar süre kaldığıdır. |
audioOutputLevel |
Alıcı akıştan ses düzeyi | Değer 0 ile 65536 arasında değişir. 0 değeri sessizliği temsil eder. |
healedRatio |
Gizli örneklerin (hariç silentConcealedSamples ) toplam alınan örneklere oranı |
Yalnızca bilgi. |
transportId |
Aktarım Kimliği | Aktarımlardaki istatistikleri ilişkilendirmek için kullanılır. |
Video gönderme ölçümleri
SDK 1.20.1 sürümünden başlayarak video gönderme ölçümleri, simulcast akış istatistiklerinin daha iyi temsil edilmesini sağlayan ölçüm alanını içerir altLayouts
.
Ölçüm adı | Açıklama | Açıklamalar |
---|---|---|
id |
İstatistik Kimliği | Özellikle bir olayda aynı medya türüne ve yönüne sahip birden çok istatistik olduğunda olaylar genelinde istatistikleri tanımlamak için kullanılır. |
codecName |
Codec adı | H264, VP8, VP9. |
bitrate |
Video gönderme bit hızı (saniye başına bit sayısı) | |
jitterInMs |
Paket değişimi (milisaniye) | Alt daha iyidir. |
packets |
Gönderilen toplam paket sayısı. | |
packetsPerSecond |
Paket hızı (saniye başına paket sayısı) | |
packetsLost |
Uzak uçtan bildirilen toplam kayıp paket sayısı. | |
packetsLostPerSecond |
Paket kaybı oranı (saniye başına paket sayısı) | Alt daha iyidir. |
rttInMs |
Gidiş dönüş süresi (milisaniye) | Alt daha iyidir. RTCP alıcı raporundan hesaplanır. 200 ms veya daha kısa bir gidiş dönüş süresi öneririz. |
frameRateInput |
Video kaynağından kaynaklanan kare hızı (saniyedeki kare sayısı) | |
frameWidthInput |
Video kaynağından (piksel) kaynaklanan son karenin çerçeve genişliği | |
frameHeightInput |
Video kaynağından (piksel) kaynaklanan son karenin kare yüksekliği | |
framesEncoded |
RTP akışı için başarıyla kodlanmış çerçeve sayısı. | |
frameRateEncoded |
RTP akışı için kare hızı başarıyla kodlandı (saniye başına kare sayısı) | |
framesSent |
RTP akışında gönderilen kare sayısı | |
frameRateSent |
RTP akışında gönderilen kare hızı (saniyedeki kare sayısı) | |
frameWidthSent |
Kodlanmış çerçevenin çerçeve genişliği (piksel) | |
frameHeightSent |
Kodlanmış çerçevenin çerçeve yüksekliği (piksel) | |
keyFramesEncoded |
RTP akışı için anahtar çerçeveler başarıyla kodlandı | |
transportId |
Aktarım Kimliği | Aktarımlardaki istatistikleri ilişkilendirmek için kullanılır. |
altLayouts |
Simulcast akışları | altLayouts video gönderiminde aynı ölçümleri içerir |
Video alma ölçümleri
1.20.1'den jitterBufferDelayInMs
önceki SDK sürümlerinde olarak jitterBufferInMs
mevcut.
Ölçüm adı | Açıklama | Açıklamalar |
---|---|---|
id |
İstatistik Kimliği | Özellikle bir olayda aynı medya türüne ve yönüne sahip birden çok istatistik olduğunda olaylar genelinde istatistikleri tanımlamak için kullanılır. |
codecName |
Codec adı | H264, VP8, VP9. |
bitrate |
Video alma bit hızı (saniye başına bit sayısı) | |
jitterInMs |
Paket değişimi (milisaniye) | Alt daha iyidir. |
packets |
Alınan toplam paket sayısı. | |
packetsPerSecond |
Paket hızı (saniye başına paket sayısı) | |
packetsLost |
Kaybedilen toplam paket sayısı. | |
packetsLostPerSecond |
Paket kaybı oranı (saniye başına paket sayısı) | Alt daha iyidir. |
rttInMs |
Gidiş dönüş süresi (milisaniye) | Alt daha iyidir. RTCP gönderen raporundan hesaplanır. 200 ms veya daha kısa bir gidiş dönüş süresi öneririz. |
streamId |
Akış Kimliği | streamId değeri içinde VideoStreamCommon öğesine id karşılık gelir. Gönderenle eşleştirmek için kullanılabilir. |
jitterBufferDelayInMs |
Değişim arabelleği (milisaniye) | Alt daha iyidir. Titreşim arabelleği sorunsuz bir şekilde oynanması için kullanılır. Bu değer, çerçeve paketlerinin değişim arabelleğinde ne kadar süre kaldığıdır. |
frameRateDecoded |
RTP akışı için kare hızı doğru şekilde çözüldü (saniyedeki kare sayısı) | |
frameRateReceived |
RTP akışında alınan kare hızı (saniyedeki kare sayısı) | |
frameWidthReceived |
Çözülen çerçevenin çerçeve genişliği (piksel) | |
frameHeightReceived |
Kodu çözülen çerçevenin çerçeve yüksekliği (piksel) | |
longestFreezeDurationInMs |
En uzun dondurma süresi (milisaniye) | |
totalFreezeDurationInMs |
Toplam dondurma süresi (milisaniye) | |
framesReceived |
RTP akışında alınan toplam kare sayısı | |
framesDecoded |
RTP akışı için doğru şekilde çözülen toplam kare sayısı | |
framesDropped |
Bırakılan toplam kare sayısı | |
keyFramesDecoded |
RTP akışı için doğru şekilde çözülen toplam anahtar kare sayısı | |
transportId |
Aktarım Kimliği | Aktarımlardaki istatistikleri ilişkilendirmek için kullanılır. |
Ekran paylaşımı gönderme ölçümleri
Şu anda istatistik alanları video gönderme ölçümleriyle aynıdır.
Ekran paylaşımı alma ölçümleri
Şu anda istatistik alanları video alma ölçümleriyle aynıdır.
Aktarım ölçümleri
Aktarımla ilgili ölçümler ACS Web SDK 1.20.1'in ardından ayrılmıştır.
Önceki sürümlerde ses, rttInMs
video ve screenShare istatistiklerinde olduğu gibi pairRttInMs
mevcutdu.
availableIncomingBitrate
ses, video ve screenShare için alma istatistiklerinde yer availableBitrate
aldı.
availableOutgoingBitrate
ses, video ve screenShare için gönderme istatistiklerinde yer alır availableBitrate
.
Ölçüm adı | Açıklama | Açıklamalar |
---|---|---|
id |
Aktarım Kimliği | Diğer istatistiklerde transportId ile ilişkilendirmek için kullanılır |
rttInMs |
Gidiş dönüş süresi (milisaniye) | Değer STUN bağlantı denetiminden hesaplanır. 200 ms veya daha kısa bir gidiş dönüş süresi öneririz. |
availableIncomingBitrate |
Bant genişliği tahmini (saniye başına bit sayısı) | Değer, WebRTC oturumunda kullanılan bant genişliği tahmin algoritmasına bağlı olarak kullanılamayabilir |
availableOutgoingBitrate |
Bant genişliği tahmini (saniye başına bit sayısı) | Değer, WebRTC oturumunda kullanılan bant genişliği tahmin algoritmasına bağlı olarak kullanılamayabilir |
SDK sürüm 1.20.1(GA) ile değiştirilenler
Artık 1.20.1 (GA) sürümünde MediaStats özellik API'lerini destekliyoruz. Önceki beta sürümleriyle karşılaştırıldığında, bu GA sürümünde API arabiriminde bazı küçük değişiklikler de yaptık.
Önceki beta sürümlerinde, pairRttInMs
availableBitrate
ses, video ve screenShare istatistiklerine dahil edildi.
Bu ölçümler artık aktarım ölçümlerine ayrılmıştır.
ses, video, screenShare istatistiklerinde , packetsLost
ölçüm alanlarını kullanıma sundukpackets
. Bu ölçümler, iki farklı zaman noktası arasında gönderilen veya alınan toplam paket sayısını hesaplamak için kullanışlıdır.
frameRateOutput
Video ve ekran paylaşım istatistikleri kaldırıldı. Bunun yerine kullanabilirsiniz frameRateDecoded
.
Bu ölçüm, bir paketin değişim arabelleğinde kalma süresini gösterdiğinden ölçüm alanı jitterBufferInMs
daha net bir açıklama sağlayacak şekilde yeniden adlandırıldı jitterBufferDelayInMs
.
Devam eden bir çağrı için medya kalitesi istatistikleri
Medya kalitesi istatistikleri, çekirdek Call
API'nin genişletilmiş bir özelliğidir. Öncelikle API nesnesini edinmeniz MediaStatisticsCallFeature
gerekir:
MediaStatisticsCallFeature mediaStatisticsCallFeature = call.feature(Features.MEDIA_STATISTICS);
MediaStatisticsCallFeature
nesnesi aşağıdaki API yapısına sahiptir:
- Olay,
OnReportReceivedListener
medya istatistiklerinin düzenli aralıklarla raporlarını dinler. getReportIntervalInSeconds
medya istatistikleri raporu oluşturma aralığını saniye cinsinden alır. SDK, varsayılan olarak ikinciyi kullanır10
.updateReportIntervalInSeconds()
medya istatistikleri raporu oluşturma aralığını saniye cinsinden güncelleştirir. SDK, varsayılan olarak ikinciyi kullanır10
.- ,
MediaStatisticsReport
giden ve gelen medya istatistiklerinin ses, video ve ekran paylaşımına göre kategorilere ayrılmış tanımını içerir.getOutgoingStatistics()
: Giden medya için medya istatistiklerinin listesi.getAudioStatistics()
: Giden ses için medya istatistiklerinin listesi.getVideoStatistics()
: Giden video için medya istatistiklerinin listesi.getScreenShareStatistics()
: Giden ekran paylaşımı için medya istatistikleri listesi.getDataChannelStatistics()
: Veri kanalı için medya istatistiklerinin listesi.
getIncomingStatistics()
: Gelen medya için medya istatistiklerinin listesi.getAudioStatistics()
: Gelen ses için medya istatistiklerinin listesi.getVideoStatistics()
: Gelen videonun medya istatistikleri listesi.getScreenShareStatistics()
: Gelen ekran paylaşımı için medya istatistiklerinin listesi.getDataChannelStatistics()
: Veri kanalı için medya istatistiklerinin listesi.
getLastUpdatedAt()
: Raporun oluşturulduğu tarih.
Ardından, geçerli medya kalitesi istatistikleri hakkında düzenli güncelleştirmeler almak için etkinliğe abone olun addOnReportReceivedListener
:
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();
}
En iyi yöntemler
Çevrimdışı inceleme için verileri toplamak istiyorsanız, aramanız sona erdikten sonra verileri toplamanızı ve işlem hattı alımınıza göndermenizi öneririz. Bir arama sırasında verileri iletirseniz, Azure İletişim Hizmetleri çağrısına devam etmek için gereken İnternet bant genişliğini kullanabilir (özellikle kullanılabilir bant genişliği düşük olduğunda).
Giden ses ölçümleri
Ölçüm adı | Açıklama | Açıklamalar |
---|---|---|
CodecName |
Codec adı | |
BitrateInBps |
Ses gönderme bit hızı (saniye başına bit sayısı) | Genel değerler 24 Kb/sn aralığındadır (36-128 Kb/sn tipiktir). |
JitterInMs |
Paket değişimi (milisaniye) | Alt daha iyidir. |
PacketCount |
Gönderilen toplam paket sayısı. |
Gelen ses ölçümleri
Ölçüm adı | Açıklama | Açıklamalar |
---|---|---|
CodecName |
Codec adı | |
JitterInMs |
Paket değişimi (milisaniye) | Alt daha iyidir. |
PacketCount |
Gönderilen toplam paket sayısı. | |
PacketsLostPerSecond |
Paket kaybı oranı (saniye başına paket sayısı) | Alt daha iyidir. |
Giden video ölçümleri
Ölçüm adı | Açıklama | Açıklamalar |
---|---|---|
CodecName |
Codec adı | |
BitrateInBps |
Video gönderme bit hızı (saniye başına bit sayısı) | |
PacketCount |
Gönderilen toplam paket sayısı. | |
FrameRate |
RTP akışında gönderilen kare hızı (saniyedeki kare sayısı) | |
FrameWidth |
Kodlanmış çerçevenin çerçeve genişliği (piksel) | |
FrameHeight |
Kodlanmış çerçevenin çerçeve yüksekliği (piksel) |
Gelen video ölçümleri
Ölçüm adı | Açıklama | Açıklamalar |
---|---|---|
CodecName |
Codec adı | |
BitrateInBps |
Video alma bit hızı (saniye başına bit sayısı) | |
JitterInMs |
Paket değişimi (milisaniye) | Alt daha iyidir. |
PacketCount |
Gönderilen toplam paket sayısı. | |
PacketsLostPerSecond |
Paket kaybı oranı (saniye başına paket sayısı) | Alt daha iyidir. |
StreamId |
Akış Kimliği | Değer, streamId uzak katılımcının videonun kimliğine karşılık gelir. Gönderenle eşleştirmek için kullanılabilir. |
FrameRate |
RTP akışında alınan kare hızı (saniyedeki kare sayısı) | |
FrameWidth |
Kodu çözülen çerçevenin çerçeve genişliği (piksel) | |
FrameHeight |
Çözülen çerçevenin çerçeve yüksekliği (piksel) | |
TotalFreezeDurationInMs |
Toplam dondurma süresi (milisaniye) |
Giden ekran paylaşımı ölçümleri
Şu anda istatistik alanları Giden video ölçümleriyle aynıdır.
Gelen ekran paylaşımı ölçümleri
Şu anda istatistik alanları Gelen video ölçümleriyle aynıdır.
Giden veri kanalı ölçümleri
Ölçüm adı | Açıklama | Açıklamalar |
---|---|---|
PacketCount |
Gönderilen toplam paket sayısı. |
Gelen veri kanalı ölçümleri
Ölçüm adı | Açıklama | Açıklamalar |
---|---|---|
JitterInMs |
Paket değişimi (milisaniye) | Alt daha iyidir. |
PacketCount |
Gönderilen toplam paket sayısı. |
Devam eden bir çağrı için medya kalitesi istatistikleri
Medya kalitesi istatistikleri, çekirdek Call
API'nin genişletilmiş bir özelliğidir. Öncelikle API nesnesini edinmeniz mediaStatisticsCallFeature
gerekir:
var mediaStatisticsCallFeature = self.call.feature(Features.mediaStatistics)
mediaStatisticsCallFeature
nesnesi aşağıdaki API yapısına sahiptir:
- Temsilci yöntemi,
didReceiveReport
medya istatistiklerinin düzenli aralıklarla raporlarını dinler. reportIntervalInSeconds
medya istatistikleri raporu oluşturma aralığını saniye cinsinden alır. SDK, varsayılan olarak ikinciyi kullanır10
.updateReportInterval(inSeconds)
medya istatistikleri raporu oluşturma aralığını saniye cinsinden güncelleştirir. SDK, varsayılan olarak ikinciyi kullanır10
.- Nesne
MediaStatisticsReport
, giden ve gelen medya istatistiklerinin ses, video ve ekran paylaşımına göre kategorilere ayrılmış tanımını içerir.outgoingMediaStatistics
: Giden medya için medya istatistiklerinin listesi.audio
: Giden ses için medya istatistiklerinin listesi.video
: Giden videonun medya istatistikleri listesi.screenShare
: Giden ekran paylaşımı için medya istatistiklerinin listesi.dataChannel
: Giden veri kanalı için medya istatistiklerinin listesi.
incomingMediaStatistics
: Gelen medya için medya istatistiklerinin listesi.audio
: Gelen ses için medya istatistiklerinin listesi.video
: Gelen videonun medya istatistikleri listesi.screenShare
: Gelen ekran paylaşımı için medya istatistiklerinin listesi.dataChannel
: Gelen veri kanalı için medya istatistiklerinin listesi.
lastUpdated
: Raporun oluşturulduğu tarih.
Ardından, geçerli medya kalitesi istatistikleri hakkında düzenli güncelleştirmeler almak için temsilciyi uygulayın didReceiveReport
:
// 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
}
}
En iyi yöntemler
Çevrimdışı inceleme için verileri toplamak istiyorsanız, aramanız sona erdikten sonra verileri toplamanızı ve işlem hattı alımınıza göndermenizi öneririz. Bir arama sırasında verileri iletirseniz, Azure İletişim Hizmetleri çağrısına devam etmek için gereken İnternet bant genişliğini kullanabilir (özellikle kullanılabilir bant genişliği düşük olduğunda).
Giden ses ölçümleri
Ölçüm adı | Açıklama | Açıklamalar |
---|---|---|
CodecName |
Codec adı | |
BitrateInBps |
Ses gönderme bit hızı (saniye başına bit sayısı) | Genel değerler 24 Kb/sn aralığındadır (36-128 Kb/sn tipiktir). |
JitterInMs |
Paket değişimi (milisaniye) | Alt daha iyidir. |
PacketCount |
Gönderilen toplam paket sayısı. |
Gelen ses ölçümleri
Ölçüm adı | Açıklama | Açıklamalar |
---|---|---|
CodecName |
Codec adı | |
JitterInMs |
Paket değişimi (milisaniye) | Alt daha iyidir. |
PacketCount |
Gönderilen toplam paket sayısı. | |
PacketsLostPerSecond |
Paket kaybı oranı (saniye başına paket sayısı) | Alt daha iyidir. |
Giden video ölçümleri
Ölçüm adı | Açıklama | Açıklamalar |
---|---|---|
CodecName |
Codec adı | |
BitrateInBps |
Video gönderme bit hızı (saniye başına bit sayısı) | |
PacketCount |
Gönderilen toplam paket sayısı. | |
FrameRate |
RTP akışında gönderilen kare hızı (saniyedeki kare sayısı) | |
FrameWidth |
Kodlanmış çerçevenin çerçeve genişliği (piksel) | |
FrameHeight |
Kodlanmış çerçevenin çerçeve yüksekliği (piksel) |
Gelen video ölçümleri
Ölçüm adı | Açıklama | Açıklamalar |
---|---|---|
CodecName |
Codec adı | |
BitrateInBps |
Video alma bit hızı (saniye başına bit sayısı) | |
JitterInMs |
Paket değişimi (milisaniye) | Alt daha iyidir. |
PacketCount |
Gönderilen toplam paket sayısı. | |
PacketsLostPerSecond |
Paket kaybı oranı (saniye başına paket sayısı) | Alt daha iyidir. |
StreamId |
Akış Kimliği | Değer, streamId uzak katılımcının videonun kimliğine karşılık gelir. Gönderenle eşleştirmek için kullanılabilir. |
FrameRate |
RTP akışında alınan kare hızı (saniyedeki kare sayısı) | |
FrameWidth |
Kodu çözülen çerçevenin çerçeve genişliği (piksel) | |
FrameHeight |
Çözülen çerçevenin çerçeve yüksekliği (piksel) | |
TotalFreezeDurationInMs |
Toplam dondurma süresi (milisaniye) |
Giden ekran paylaşımı ölçümleri
Şu anda istatistik alanları Giden video ölçümleriyle aynıdır.
Gelen ekran paylaşımı ölçümleri
Şu anda istatistik alanları Gelen video ölçümleriyle aynıdır.
Giden veri kanalı ölçümleri
Ölçüm adı | Açıklama | Açıklamalar |
---|---|---|
PacketCount |
Gönderilen toplam paket sayısı. |
Gelen veri kanalı ölçümleri
Ölçüm adı | Açıklama | Açıklamalar |
---|---|---|
JitterInMs |
Paket değişimi (milisaniye) | Alt daha iyidir. |
PacketCount |
Gönderilen toplam paket sayısı. |
Devam eden bir çağrı için medya kalitesi istatistikleri
Medya kalitesi istatistikleri, çekirdek CommunicationCall
API'nin genişletilmiş bir özelliğidir. Öncelikle API nesnesini edinmeniz MediaStatisticsCallFeature
gerekir:
MediaStatisticsCallFeature mediaStatisticsCallFeature = call.Features.MediaStatistics;
Özellik MediaStatisticsCallFeature
nesnesi aşağıdaki API yapısına sahiptir:
- Olay,
ReportReceived
medya istatistiklerinin düzenli aralıklarla raporlarını dinler. ReportIntervalInSeconds
medya istatistikleri raporu oluşturma aralığını saniye cinsinden alır. SDK, varsayılan olarak ikinciyi kullanır10
.UpdateReportIntervalInSeconds()
medya istatistikleri raporu oluşturma aralığını saniye cinsinden güncelleştirir. SDK, varsayılan olarak ikinciyi kullanır10
.- Nesne
MediaStatisticsReport
, giden ve gelen medya istatistiklerinin ses, video ve ekran paylaşımına göre kategorilere ayrılmış tanımını içerir.OutgoingMediaStatistics
: Giden medya için medya istatistiklerinin listesi.Audio
: Giden ses için medya istatistiklerinin listesi.Video
: Giden videonun medya istatistikleri listesi.ScreenShare
: Giden ekran paylaşımı için medya istatistiklerinin listesi.DataChannel
: Giden veri kanalı için medya istatistiklerinin listesi.
IncomingMediaStatistics
: Gelen medya için medya istatistiklerinin listesi.Audio
: Gelen ses için medya istatistiklerinin listesi.Video
: Gelen videonun medya istatistikleri listesi.ScreenShare
: Gelen ekran paylaşımı için medya istatistiklerinin listesi.DataChannel
: Gelen veri kanalı için medya istatistiklerinin listesi.
LastUpdateAt
: Raporun oluşturulduğu tarih.
Ardından, geçerli medya kalitesi istatistikleri hakkında düzenli güncelleştirmeler almak için etkinliğe abone olun SampleReported
:
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;
}
En iyi yöntemler
Çevrimdışı inceleme için verileri toplamak istiyorsanız, aramanız sona erdikten sonra verileri toplamanızı ve işlem hattı alımınıza göndermenizi öneririz. Bir arama sırasında verileri iletirseniz, Azure İletişim Hizmetleri çağrısına devam etmek için gereken İnternet bant genişliğini kullanabilir (özellikle kullanılabilir bant genişliği düşük olduğunda).
Giden ses ölçümleri
Ölçüm adı | Açıklama | Açıklamalar |
---|---|---|
CodecName |
Codec adı | |
BitrateInBps |
Ses gönderme bit hızı (saniye başına bit sayısı) | Genel değerler 24 Kb/sn aralığındadır (36-128 Kb/sn tipiktir). |
JitterInMs |
Paket değişimi (milisaniye) | Alt daha iyidir. |
PacketCount |
Gönderilen toplam paket sayısı. |
Gelen ses ölçümleri
Ölçüm adı | Açıklama | Açıklamalar |
---|---|---|
CodecName |
Codec adı | |
JitterInMs |
Paket değişimi (milisaniye) | Alt daha iyidir. |
PacketCount |
Gönderilen toplam paket sayısı. | |
PacketsLostPerSecond |
Paket kaybı oranı (saniye başına paket sayısı) | Alt daha iyidir. |
Giden video ölçümleri
Ölçüm adı | Açıklama | Açıklamalar |
---|---|---|
CodecName |
Codec adı | |
BitrateInBps |
Video gönderme bit hızı (saniye başına bit sayısı) | |
PacketCount |
Gönderilen toplam paket sayısı. | |
FrameRate |
RTP akışında gönderilen kare hızı (saniyedeki kare sayısı) | |
FrameWidth |
Kodlanmış çerçevenin çerçeve genişliği (piksel) | |
FrameHeight |
Kodlanmış çerçevenin çerçeve yüksekliği (piksel) |
Gelen video ölçümleri
Ölçüm adı | Açıklama | Açıklamalar |
---|---|---|
CodecName |
Codec adı | |
BitrateInBps |
Video alma bit hızı (saniye başına bit sayısı) | |
JitterInMs |
Paket değişimi (milisaniye) | Alt daha iyidir. |
PacketCount |
Gönderilen toplam paket sayısı. | |
PacketsLostPerSecond |
Paket kaybı oranı (saniye başına paket sayısı) | Alt daha iyidir. |
StreamId |
Akış Kimliği | Değer, streamId uzak katılımcının videonun kimliğine karşılık gelir. Gönderenle eşleştirmek için kullanılabilir. |
FrameRate |
RTP akışında alınan kare hızı (saniyedeki kare sayısı) | |
FrameWidth |
Kodu çözülen çerçevenin çerçeve genişliği (piksel) | |
FrameHeight |
Çözülen çerçevenin çerçeve yüksekliği (piksel) | |
TotalFreezeDurationInMs |
Toplam dondurma süresi (milisaniye) |
Giden ekran paylaşımı ölçümleri
Şu anda istatistik alanları Giden video ölçümleriyle aynıdır.
Gelen ekran paylaşımı ölçümleri
Şu anda istatistik alanları Gelen video ölçümleriyle aynıdır.
Giden veri kanalı ölçümleri
Ölçüm adı | Açıklama | Açıklamalar |
---|---|---|
PacketCount |
Gönderilen toplam paket sayısı. |
Gelen veri kanalı ölçümleri
Ölçüm adı | Açıklama | Açıklamalar |
---|---|---|
JitterInMs |
Paket değişimi (milisaniye) | Alt daha iyidir. |
PacketCount |
Gönderilen toplam paket sayısı. |