Statistik kualitas media
Untuk membantu Anda lebih memahami kualitas media di VoIP dan panggilan video yang menggunakan Azure Communication Services, ada fitur yang disebut statistik kualitas media. Gunakan untuk memeriksa metrik kualitas audio, video, dan berbagi layar tingkat rendah untuk metrik panggilan masuk dan keluar.
Statistik kualitas media untuk panggilan yang sedang berlangsung
Penting
Ada pembaruan antarmuka tentang statistik kualitas media di SDK, dimulai dengan SDK versi 1.20.1
Statistik kualitas media adalah fitur yang diperluas dari API inti Call
. Anda harus terlebih dahulu mediaStatsFeature
mendapatkan objek API:
const mediaStatsFeature = call.feature(Features.MediaStats);
Untuk menerima data statistik media, Anda dapat berlangganan sampleReported
acara atau summaryReported
acara.
Peristiwa ini sampleReported
memicu setiap detik. Ini cocok sebagai sumber data untuk tampilan UI atau alur data Anda sendiri.
Peristiwa berisi summaryReported
nilai agregat data melalui interval, yang berguna ketika Anda hanya memerlukan ringkasan.
Jika Anda ingin mengontrol interval summaryReported
peristiwa, Anda perlu menentukan mediaStatsCollectorOptions
jenis MediaStatsCollectorOptions
. Jika tidak, SDK menggunakan nilai default.
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);
});
Jika Anda tidak perlu menggunakan kolektor statistik media, Anda dapat memanggil dispose
metode mediaStatsCollector
.
mediaStatsCollector.dispose();
Anda tidak perlu memanggil dispose
metode mediaStatsCollector
setiap kali panggilan berakhir, karena kolektor diklaim kembali secara internal ketika panggilan berakhir.
MediaStatsCollectorOptions
MediaStatsCollectorOptions
bersifat opsional, dan ada dua bidang opsional di MediaStatsCollectorOptions
.
aggregationInterval
adalah interval, dalam detik, bahwa statistik dikumpulkan. Nilai defaultnya adalah 10.dataPointsPerAggregation
menentukan berapa banyak titik data yang dimiliki setiap peristiwa agregasi. Nilai defaultnya adalah 6.
Kedua nilai ini menentukan frekuensi di mana SDK memancarkan summaryReported
peristiwa dan jumlah titik data agregat yang disertakan dalam laporan.
Acara ini summaryReported
diangkat setiap aggregationInterval * dataPointsPerAggregation
detik.
Misalnya, jika Anda mengatur nilai berikut:
aggregationInterval
= 1dataPointsPerAggregation
= 60
Acara summaryReported
ini dinaikkan setiap 60 detik dan berisi 60 unit unik untuk setiap statistik yang dicatat.
Jika Anda mengatur nilai berikut:
aggregatinInterval
= 60dataPointsPerAggregation
= 1
Acara summaryReported
ini dinaikkan setiap 60 detik dan berisi satu (1) unit unik untuk setiap statistik yang dicatat.
Praktik terbaik
Jika Anda ingin mengumpulkan data untuk inspeksi offline, kami sarankan Anda mengumpulkan data dan mengirimkannya ke penyerapan alur Anda setelah panggilan Anda berakhir. Jika Anda mengirimkan data selama panggilan, itu dapat menggunakan bandwidth internet yang diperlukan untuk melanjutkan panggilan Azure Communication Services (terutama ketika bandwidth yang tersedia rendah).
Dalam peristiwa sampleReported
atau summaryReported
peristiwa, data statistik media bukan hanya pemetaan nilai kunci sederhana.
Berikut adalah deklarasi jenis data peristiwa yang dilaporkan oleh sampleReported
peristiwa.
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 peristiwa menyediakan data statistik untuk setiap aliran media dalam panggilan, termasuk petunjuk kirim dan terima.
Kami menyarankan agar Anda mencetak peristiwa menggunakan console.log
untuk mengamati perubahan tata letak dan nilainya, sehingga Anda dapat menemukan cara yang tepat untuk menampilkan atau memproses data sesuai dengan skenario penggunaan Anda.
Metrik pengiriman audio
Nama metrik | Deskripsi | Komentar |
---|---|---|
id |
ID Statistik | Digunakan untuk mengidentifikasi statistik di seluruh peristiwa, terutama ketika ada beberapa statistik dengan jenis media dan arah yang sama dalam suatu peristiwa. |
codecName |
Nama codec | OPUS, G722. |
bitrate |
Laju bit kirim audio (bit per detik) | Nilai umum berada dalam rentang 24 Kbps (36-128 Kbps adalah khas). |
jitterInMs |
Jitter paket (milidetik) | Lebih rendah lebih baik. |
packets |
Jumlah total paket yang dikirim. | |
packetsPerSecond |
Tarif paket (paket per detik) | |
packetsLost |
Jumlah total paket yang hilang dilaporkan dari ujung jarak jauh. | |
packetsLostPerSecond |
Tingkat kehilangan paket (paket per detik) | Lebih rendah lebih baik. |
rttInMs |
Waktu pulang-pergi (milidetik) | Lebih rendah lebih baik. Dihitung dari laporan penerima RTCP. Kami merekomendasikan waktu pulang-pergi 200 mdtk atau kurang. |
audioInputLevel |
Tingkat volume audio dari mikrofon | Nilainya berkisar antara 0 hingga 65536. Nilai 0 mewakili keheningan. |
transportId |
ID Transportasi | Digunakan untuk mengaitkan statistik dalam transportasi. |
Metrik penerima audio
Dalam versi SDK yang lebih lama dari 1.20.1, jitterBufferDelayInMs
ada sebagai jitterBufferInMs
.
Nama metrik | Deskripsi | Komentar |
---|---|---|
id |
ID Statistik | Digunakan untuk mengidentifikasi statistik di seluruh peristiwa, terutama ketika ada beberapa statistik dengan jenis media dan arah yang sama dalam suatu peristiwa. |
codecName |
Nama codec | OPUS, G722. |
bitrate |
Laju bit penerima audio (bit per detik) | Nilai umum berada dalam rentang 24 Kbps (36-128 Kbps adalah khas). |
jitterInMs |
Jitter paket (milidetik) | Lebih rendah lebih baik. |
packets |
Jumlah total paket yang diterima. | |
packetsPerSecond |
Tarif paket (paket per detik) | |
packetsLost |
Jumlah total paket yang hilang. | |
packetsLostPerSecond |
Tingkat kehilangan paket (paket per detik) | Lebih rendah lebih baik. |
jitterBufferDelayInMs |
Buffer jitter (milidetik) | Lebih rendah lebih baik. Buffer jitter digunakan untuk pemutaran yang lancar. Nilai ini adalah berapa lama paket sampel tetap berada di buffer jitter. |
audioOutputLevel |
Tingkat volume audio dari aliran penerimaan | Nilainya berkisar antara 0 hingga 65536. Nilai 0 mewakili keheningan. |
healedRatio |
Rasio sampel yang disembuhkan (kecuali silentConcealedSamples ) terhadap total sampel yang diterima |
Informasi saja. |
transportId |
ID Transportasi | Digunakan untuk mengaitkan statistik dalam transportasi. |
Metrik pengiriman video
Mulai dari SDK versi 1.20.1, metrik pengiriman video menyertakan altLayouts
bidang metrik, yang memungkinkan representasi statistik streaming simulasi yang lebih baik.
Nama metrik | Deskripsi | Komentar |
---|---|---|
id |
ID Statistik | Digunakan untuk mengidentifikasi statistik di seluruh peristiwa, terutama ketika ada beberapa statistik dengan jenis media dan arah yang sama dalam suatu peristiwa. |
codecName |
Nama codec | H264, VP8, VP9. |
bitrate |
Laju bit kirim video (bit per detik) | |
jitterInMs |
Jitter paket (milidetik) | Lebih rendah lebih baik. |
packets |
Jumlah total paket yang dikirim. | |
packetsPerSecond |
Tarif paket (paket per detik) | |
packetsLost |
Jumlah total paket yang hilang dilaporkan dari ujung jarak jauh. | |
packetsLostPerSecond |
Tingkat kehilangan paket (paket per detik) | Lebih rendah lebih baik. |
rttInMs |
Waktu pulang-pergi (milidetik) | Lebih rendah lebih baik. Dihitung dari laporan penerima RTCP. Kami merekomendasikan waktu pulang-pergi 200 mdtk atau kurang. |
frameRateInput |
Kecepatan bingkai yang berasal dari sumber video (bingkai per detik) | |
frameWidthInput |
Lebar bingkai bingkai terakhir yang berasal dari sumber video (piksel) | |
frameHeightInput |
Tinggi bingkai bingkai terakhir yang berasal dari sumber video (piksel) | |
framesEncoded |
Jumlah bingkai yang berhasil dikodekan untuk aliran RTP. | |
frameRateEncoded |
Kecepatan bingkai berhasil dikodekan untuk aliran RTP (bingkai per detik) | |
framesSent |
Jumlah bingkai yang dikirim pada aliran RTP | |
frameRateSent |
Kecepatan bingkai dikirim pada aliran RTP (bingkai per detik) | |
frameWidthSent |
Lebar bingkai bingkai yang dikodekan (piksel) | |
frameHeightSent |
Tinggi bingkai bingkai yang dikodekan (piksel) | |
keyFramesEncoded |
Bingkai kunci berhasil dikodekan untuk aliran RTP | |
transportId |
ID Transportasi | Digunakan untuk mengaitkan statistik dalam transportasi. |
altLayouts |
Aliran simulcast | altLayouts berisi metrik yang sama ke pengiriman video |
Metrik penerima video
Dalam versi SDK yang lebih lama dari 1.20.1, jitterBufferDelayInMs
ada sebagai jitterBufferInMs
.
Nama metrik | Deskripsi | Komentar |
---|---|---|
id |
ID Statistik | Digunakan untuk mengidentifikasi statistik di seluruh peristiwa, terutama ketika ada beberapa statistik dengan jenis media dan arah yang sama dalam suatu peristiwa. |
codecName |
Nama codec | H264, VP8, VP9. |
bitrate |
Laju bit penerima video (bit per detik) | |
jitterInMs |
Jitter paket (milidetik) | Lebih rendah lebih baik. |
packets |
Jumlah total paket yang diterima. | |
packetsPerSecond |
Tarif paket (paket per detik) | |
packetsLost |
Jumlah total paket yang hilang. | |
packetsLostPerSecond |
Tingkat kehilangan paket (paket per detik) | Lebih rendah lebih baik. |
rttInMs |
Waktu pulang-pergi (milidetik) | Lebih rendah lebih baik. Dihitung dari laporan pengirim RTCP. Kami merekomendasikan waktu pulang-pergi 200 mdtk atau kurang. |
streamId |
ID Aliran | Nilai streamId sesuai dengan id di VideoStreamCommon . Ini dapat digunakan untuk mencocokkan pengirim. |
jitterBufferDelayInMs |
Buffer jitter (milidetik) | Lebih rendah lebih baik. Buffer jitter digunakan untuk pemutaran yang lancar. Nilai ini adalah berapa lama paket bingkai tetap berada di buffer jitter. |
frameRateDecoded |
Kecepatan bingkai didekode dengan benar untuk aliran RTP (bingkai per detik) | |
frameRateReceived |
Kecepatan bingkai diterima pada aliran RTP (bingkai per detik) | |
frameWidthReceived |
Lebar bingkai bingkai yang didekodekan (piksel) | |
frameHeightReceived |
Tinggi bingkai bingkai yang didekodekan (piksel) | |
longestFreezeDurationInMs |
Durasi pembekuan terpanjang (milidetik) | |
totalFreezeDurationInMs |
Total durasi pembekuan (milidetik) | |
framesReceived |
Jumlah total bingkai yang diterima pada aliran RTP | |
framesDecoded |
Jumlah total bingkai yang didekodekan dengan benar untuk aliran RTP | |
framesDropped |
Jumlah total bingkai yang dihilangkan | |
keyFramesDecoded |
Jumlah total bingkai kunci yang didekodekan dengan benar untuk aliran RTP | |
transportId |
ID Transportasi | Digunakan untuk mengaitkan statistik dalam transportasi. |
Metrik kirim berbagi layar
Saat ini, bidang statistik sama dengan metrik pengiriman video.
Metrik terima berbagi layar
Saat ini, bidang statistik sama dengan metrik penerima video.
Metrik transportasi
Metrik terkait transportasi dipisahkan setelah ACS Web SDK 1.20.1.
Di versi sebelumnya, rttInMs
ada seperti pairRttInMs
dalam statistik untuk audio, video, dan screenShare.
availableIncomingBitrate
berada availableBitrate
dalam statistik penerima untuk audio, video, dan screenShare.
availableOutgoingBitrate
berada availableBitrate
dalam statistik pengiriman untuk audio, video, dan screenShare.
Nama metrik | Deskripsi | Komentar |
---|---|---|
id |
ID Transportasi | Digunakan untuk mengaitkan dengan transportId di statistik lain |
rttInMs |
Waktu pulang-pergi (milidetik) | Nilai dihitung dari pemeriksaan konektivitas STUN. Kami merekomendasikan waktu pulang-pergi 200 mdtk atau kurang. |
availableIncomingBitrate |
Estimasi bandwidth (bit per detik) | Nilai mungkin tidak tersedia tergantung pada algoritma estimasi bandwidth yang digunakan dalam sesi WebRTC |
availableOutgoingBitrate |
Estimasi bandwidth (bit per detik) | Nilai mungkin tidak tersedia tergantung pada algoritma estimasi bandwidth yang digunakan dalam sesi WebRTC |
Apa yang diubah dalam SDK versi 1.20.1 (GA)
Kami sekarang mendukung API fitur MediaStats di 1.20.1 (GA).
Dibandingkan dengan versi beta sebelumnya, kami juga membuat beberapa perubahan kecil pada antarmuka API dalam versi GA ini.
Dalam versi beta sebelumnya, pairRttInMs
, availableBitrate
disertakan dalam statistik audio, video, dan screenShare. Sekarang metrik ini dipisahkan menjadi metrik transportasi.
Kami memperkenalkan packets
bidang packetsLost
metrik dalam statistik audio, video, screenShare. Metrik ini berguna untuk menghitung jumlah total paket yang dikirim atau diterima di antara dua titik waktu yang berbeda.
frameRateOutput
Statistik dalam video dan screenShare dihapus. Anda dapat menggunakan frameRateDecoded
sebagai gantinya.
Bidang jitterBufferInMs
metrik diganti namanya menjadi jitterBufferDelayInMs
untuk memberikan deskripsi yang lebih jelas, karena metrik ini menunjukkan durasi masa tinggal paket di buffer jitter.
Statistik kualitas media untuk panggilan yang sedang berlangsung
Statistik kualitas media adalah fitur yang diperluas dari API inti Call
. Anda harus terlebih dahulu MediaStatisticsCallFeature
mendapatkan objek API:
MediaStatisticsCallFeature mediaStatisticsCallFeature = call.feature(Features.MEDIA_STATISTICS);
Objek MediaStatisticsCallFeature
memiliki struktur API berikut:
- Peristiwa ini
OnReportReceivedListener
mendengarkan laporan berkala statistik media. getReportIntervalInSeconds
mendapatkan interval, dalam hitungan detik, dari pembuatan laporan statistik media. SDK menggunakan detik10
sebagai default.updateReportIntervalInSeconds()
memperbarui interval, dalam hitungan detik, dari pembuatan laporan statistik media. SDK menggunakan detik10
sebagai default.- berisi
MediaStatisticsReport
definisi statistik media keluar dan masuk, dikategorikan berdasarkan audio, video, dan berbagi layar.getOutgoingStatistics()
: Daftar statistik media untuk media keluar.getAudioStatistics()
: Daftar statistik media untuk audio keluar.getVideoStatistics()
: Daftar statistik media untuk video keluar.getScreenShareStatistics()
: Daftar statistik media untuk berbagi layar keluar.getDataChannelStatistics()
: Daftar statistik media untuk saluran data.
getIncomingStatistics()
: Daftar statistik media untuk media masuk.getAudioStatistics()
: Daftar statistik media untuk audio masuk.getVideoStatistics()
: Daftar statistik media untuk video masuk.getScreenShareStatistics()
: Daftar statistik media untuk berbagi layar masuk.getDataChannelStatistics()
: Daftar statistik media untuk saluran data.
getLastUpdatedAt()
: Tanggal ketika laporan dibuat.
Kemudian, berlangganan acara addOnReportReceivedListener
untuk mendapatkan pembaruan rutin tentang statistik kualitas media saat ini:
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();
}
Praktik terbaik
Jika Anda ingin mengumpulkan data untuk inspeksi offline, kami sarankan Anda mengumpulkan data dan mengirimkannya ke penyerapan alur Anda setelah panggilan Anda berakhir. Jika Anda mengirimkan data selama panggilan, itu dapat menggunakan bandwidth internet yang diperlukan untuk melanjutkan panggilan Azure Communication Services (terutama ketika bandwidth yang tersedia rendah).
Metrik audio keluar
Nama metrik | Deskripsi | Komentar |
---|---|---|
CodecName |
Nama codec | |
BitrateInBps |
Laju bit kirim audio (bit per detik) | Nilai umum berada dalam rentang 24 Kbps (36-128 Kbps adalah khas). |
JitterInMs |
Jitter paket (milidetik) | Lebih rendah lebih baik. |
PacketCount |
Jumlah total paket yang dikirim. |
Metrik audio masuk
Nama metrik | Deskripsi | Komentar |
---|---|---|
CodecName |
Nama codec | |
JitterInMs |
Jitter paket (milidetik) | Lebih rendah lebih baik. |
PacketCount |
Jumlah total paket yang dikirim. | |
PacketsLostPerSecond |
Tingkat kehilangan paket (paket per detik) | Lebih rendah lebih baik. |
Metrik video keluar
Nama metrik | Deskripsi | Komentar |
---|---|---|
CodecName |
Nama codec | |
BitrateInBps |
Laju bit kirim video (bit per detik) | |
PacketCount |
Jumlah total paket yang dikirim. | |
FrameRate |
Kecepatan bingkai dikirim pada aliran RTP (bingkai per detik) | |
FrameWidth |
Lebar bingkai bingkai yang dikodekan (piksel) | |
FrameHeight |
Tinggi bingkai bingkai yang dikodekan (piksel) |
Metrik video masuk
Nama metrik | Deskripsi | Komentar |
---|---|---|
CodecName |
Nama codec | |
BitrateInBps |
Laju bit penerima video (bit per detik) | |
JitterInMs |
Jitter paket (milidetik) | Lebih rendah lebih baik. |
PacketCount |
Jumlah total paket yang dikirim. | |
PacketsLostPerSecond |
Tingkat kehilangan paket (paket per detik) | Lebih rendah lebih baik. |
StreamId |
ID Aliran | Nilai streamId sesuai dengan ID video peserta jarak jauh. Ini dapat digunakan untuk mencocokkan pengirim. |
FrameRate |
Kecepatan bingkai diterima pada aliran RTP (bingkai per detik) | |
FrameWidth |
Lebar bingkai bingkai yang didekodekan (piksel) | |
FrameHeight |
Tinggi bingkai bingkai yang didekodekan (piksel) | |
TotalFreezeDurationInMs |
Total durasi pembekuan (milidetik) |
Metrik berbagi layar keluar
Saat ini, bidang statistik sama dengan metrik video Keluar.
Metrik berbagi layar masuk
Saat ini, bidang statistik sama dengan metrik video Masuk.
Metrik saluran data keluar
Nama metrik | Deskripsi | Komentar |
---|---|---|
PacketCount |
Jumlah total paket yang dikirim. |
Metrik saluran data masuk
Nama metrik | Deskripsi | Komentar |
---|---|---|
JitterInMs |
Jitter paket (milidetik) | Lebih rendah lebih baik. |
PacketCount |
Jumlah total paket yang dikirim. |
Statistik kualitas media untuk panggilan yang sedang berlangsung
Statistik kualitas media adalah fitur yang diperluas dari API inti Call
. Anda harus terlebih dahulu mediaStatisticsCallFeature
mendapatkan objek API:
var mediaStatisticsCallFeature = self.call.feature(Features.mediaStatistics)
Objek mediaStatisticsCallFeature
memiliki struktur API berikut:
- Metode
didReceiveReport
delegasi mendengarkan laporan berkala statistik media. reportIntervalInSeconds
mendapatkan interval, dalam hitungan detik, dari pembuatan laporan statistik media. SDK menggunakan detik10
sebagai default.updateReportInterval(inSeconds)
memperbarui interval, dalam hitungan detik, dari pembuatan laporan statistik media. SDK menggunakan detik10
sebagai default.- Objek
MediaStatisticsReport
berisi definisi statistik media keluar dan masuk, dikategorikan berdasarkan audio, video, dan berbagi layar.outgoingMediaStatistics
: Daftar statistik media untuk media keluar.audio
: Daftar statistik media untuk audio keluar.video
: Daftar statistik media untuk video keluar.screenShare
: Daftar statistik media untuk berbagi layar keluar.dataChannel
: Daftar statistik media untuk saluran data keluar.
incomingMediaStatistics
: Daftar statistik media untuk media masuk.audio
: Daftar statistik media untuk audio masuk.video
: Daftar statistik media untuk video masuk.screenShare
: Daftar statistik media untuk berbagi layar masuk.dataChannel
: Daftar statistik media untuk saluran data masuk.
lastUpdated
: Tanggal ketika laporan dibuat.
Kemudian, terapkan didReceiveReport
delegasi untuk mendapatkan pembaruan rutin tentang statistik kualitas media saat ini:
// 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
}
}
Praktik terbaik
Jika Anda ingin mengumpulkan data untuk inspeksi offline, kami sarankan Anda mengumpulkan data dan mengirimkannya ke penyerapan alur Anda setelah panggilan Anda berakhir. Jika Anda mengirimkan data selama panggilan, itu dapat menggunakan bandwidth internet yang diperlukan untuk melanjutkan panggilan Azure Communication Services (terutama ketika bandwidth yang tersedia rendah).
Metrik audio keluar
Nama metrik | Deskripsi | Komentar |
---|---|---|
CodecName |
Nama codec | |
BitrateInBps |
Laju bit kirim audio (bit per detik) | Nilai umum berada dalam rentang 24 Kbps (36-128 Kbps adalah khas). |
JitterInMs |
Jitter paket (milidetik) | Lebih rendah lebih baik. |
PacketCount |
Jumlah total paket yang dikirim. |
Metrik audio masuk
Nama metrik | Deskripsi | Komentar |
---|---|---|
CodecName |
Nama codec | |
JitterInMs |
Jitter paket (milidetik) | Lebih rendah lebih baik. |
PacketCount |
Jumlah total paket yang dikirim. | |
PacketsLostPerSecond |
Tingkat kehilangan paket (paket per detik) | Lebih rendah lebih baik. |
Metrik video keluar
Nama metrik | Deskripsi | Komentar |
---|---|---|
CodecName |
Nama codec | |
BitrateInBps |
Laju bit kirim video (bit per detik) | |
PacketCount |
Jumlah total paket yang dikirim. | |
FrameRate |
Kecepatan bingkai dikirim pada aliran RTP (bingkai per detik) | |
FrameWidth |
Lebar bingkai bingkai yang dikodekan (piksel) | |
FrameHeight |
Tinggi bingkai bingkai yang dikodekan (piksel) |
Metrik video masuk
Nama metrik | Deskripsi | Komentar |
---|---|---|
CodecName |
Nama codec | |
BitrateInBps |
Laju bit penerima video (bit per detik) | |
JitterInMs |
Jitter paket (milidetik) | Lebih rendah lebih baik. |
PacketCount |
Jumlah total paket yang dikirim. | |
PacketsLostPerSecond |
Tingkat kehilangan paket (paket per detik) | Lebih rendah lebih baik. |
StreamId |
ID Aliran | Nilai streamId sesuai dengan ID video peserta jarak jauh. Ini dapat digunakan untuk mencocokkan pengirim. |
FrameRate |
Kecepatan bingkai diterima pada aliran RTP (bingkai per detik) | |
FrameWidth |
Lebar bingkai bingkai yang didekodekan (piksel) | |
FrameHeight |
Tinggi bingkai bingkai yang didekodekan (piksel) | |
TotalFreezeDurationInMs |
Total durasi pembekuan (milidetik) |
Metrik berbagi layar keluar
Saat ini, bidang statistik sama dengan metrik video Keluar.
Metrik berbagi layar masuk
Saat ini, bidang statistik sama dengan metrik video Masuk.
Metrik saluran data keluar
Nama metrik | Deskripsi | Komentar |
---|---|---|
PacketCount |
Jumlah total paket yang dikirim. |
Metrik saluran data masuk
Nama metrik | Deskripsi | Komentar |
---|---|---|
JitterInMs |
Jitter paket (milidetik) | Lebih rendah lebih baik. |
PacketCount |
Jumlah total paket yang dikirim. |
Statistik kualitas media untuk panggilan yang sedang berlangsung
Statistik kualitas media adalah fitur yang diperluas dari API inti CommunicationCall
. Anda harus terlebih dahulu MediaStatisticsCallFeature
mendapatkan objek API:
MediaStatisticsCallFeature mediaStatisticsCallFeature = call.Features.MediaStatistics;
Objek MediaStatisticsCallFeature
fitur memiliki struktur API berikut:
- Peristiwa ini
ReportReceived
mendengarkan laporan berkala statistik media. ReportIntervalInSeconds
mendapatkan interval, dalam hitungan detik, dari pembuatan laporan statistik media. SDK menggunakan detik10
sebagai default.UpdateReportIntervalInSeconds()
memperbarui interval, dalam hitungan detik, dari pembuatan laporan statistik media. SDK menggunakan detik10
sebagai default.- Objek
MediaStatisticsReport
berisi definisi statistik media keluar dan masuk, dikategorikan berdasarkan audio, video, dan berbagi layar.OutgoingMediaStatistics
: Daftar statistik media untuk media keluar.Audio
: Daftar statistik media untuk audio keluar.Video
: Daftar statistik media untuk video keluar.ScreenShare
: Daftar statistik media untuk berbagi layar keluar.DataChannel
: Daftar statistik media untuk saluran data keluar.
IncomingMediaStatistics
: Daftar statistik media untuk media masuk.Audio
: Daftar statistik media untuk audio masuk.Video
: Daftar statistik media untuk video masuk.ScreenShare
: Daftar statistik media untuk berbagi layar masuk.DataChannel
: Daftar statistik media untuk saluran data masuk.
LastUpdateAt
: Tanggal ketika laporan dibuat.
Kemudian, berlangganan acara SampleReported
untuk mendapatkan pembaruan rutin tentang statistik kualitas media saat ini:
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;
}
Praktik terbaik
Jika Anda ingin mengumpulkan data untuk inspeksi offline, kami sarankan Anda mengumpulkan data dan mengirimkannya ke penyerapan alur Anda setelah panggilan Anda berakhir. Jika Anda mengirimkan data selama panggilan, itu dapat menggunakan bandwidth internet yang diperlukan untuk melanjutkan panggilan Azure Communication Services (terutama ketika bandwidth yang tersedia rendah).
Metrik audio keluar
Nama metrik | Deskripsi | Komentar |
---|---|---|
CodecName |
Nama codec | |
BitrateInBps |
Laju bit kirim audio (bit per detik) | Nilai umum berada dalam rentang 24 Kbps (36-128 Kbps adalah khas). |
JitterInMs |
Jitter paket (milidetik) | Lebih rendah lebih baik. |
PacketCount |
Jumlah total paket yang dikirim. |
Metrik audio masuk
Nama metrik | Deskripsi | Komentar |
---|---|---|
CodecName |
Nama codec | |
JitterInMs |
Jitter paket (milidetik) | Lebih rendah lebih baik. |
PacketCount |
Jumlah total paket yang dikirim. | |
PacketsLostPerSecond |
Tingkat kehilangan paket (paket per detik) | Lebih rendah lebih baik. |
Metrik video keluar
Nama metrik | Deskripsi | Komentar |
---|---|---|
CodecName |
Nama codec | |
BitrateInBps |
Laju bit kirim video (bit per detik) | |
PacketCount |
Jumlah total paket yang dikirim. | |
FrameRate |
Kecepatan bingkai dikirim pada aliran RTP (bingkai per detik) | |
FrameWidth |
Lebar bingkai bingkai yang dikodekan (piksel) | |
FrameHeight |
Tinggi bingkai bingkai yang dikodekan (piksel) |
Metrik video masuk
Nama metrik | Deskripsi | Komentar |
---|---|---|
CodecName |
Nama codec | |
BitrateInBps |
Laju bit penerima video (bit per detik) | |
JitterInMs |
Jitter paket (milidetik) | Lebih rendah lebih baik. |
PacketCount |
Jumlah total paket yang dikirim. | |
PacketsLostPerSecond |
Tingkat kehilangan paket (paket per detik) | Lebih rendah lebih baik. |
StreamId |
ID Aliran | Nilai streamId sesuai dengan ID video peserta jarak jauh. Ini dapat digunakan untuk mencocokkan pengirim. |
FrameRate |
Kecepatan bingkai diterima pada aliran RTP (bingkai per detik) | |
FrameWidth |
Lebar bingkai bingkai yang didekodekan (piksel) | |
FrameHeight |
Tinggi bingkai bingkai yang didekodekan (piksel) | |
TotalFreezeDurationInMs |
Total durasi pembekuan (milidetik) |
Metrik berbagi layar keluar
Saat ini, bidang statistik sama dengan metrik video Keluar.
Metrik berbagi layar masuk
Saat ini, bidang statistik sama dengan metrik video Masuk.
Metrik saluran data keluar
Nama metrik | Deskripsi | Komentar |
---|---|---|
PacketCount |
Jumlah total paket yang dikirim. |
Metrik saluran data masuk
Nama metrik | Deskripsi | Komentar |
---|---|---|
JitterInMs |
Jitter paket (milidetik) | Lebih rendah lebih baik. |
PacketCount |
Jumlah total paket yang dikirim. |