Bagikan melalui


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 = 1
  • dataPointsPerAggregation = 60

Acara summaryReported ini dinaikkan setiap 60 detik dan berisi 60 unit unik untuk setiap statistik yang dicatat.

Jika Anda mengatur nilai berikut:

  • aggregatinInterval = 60
  • dataPointsPerAggregation = 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 detik 10 sebagai default.
  • updateReportIntervalInSeconds() memperbarui interval, dalam hitungan detik, dari pembuatan laporan statistik media. SDK menggunakan detik 10 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 detik 10 sebagai default.
  • updateReportInterval(inSeconds) memperbarui interval, dalam hitungan detik, dari pembuatan laporan statistik media. SDK menggunakan detik 10 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 detik 10 sebagai default.
  • UpdateReportIntervalInSeconds() memperbarui interval, dalam hitungan detik, dari pembuatan laporan statistik media. SDK menggunakan detik 10 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.