qpSum
特性为
RTCOutboundRtpStreamStats
dictionary is a value generated by adding the
Quantization Parameter
(
QP
) values for every frame this sender has produced to date on the video track corresponding to this
RTCOutboundRtpStreamStats
对象。
In general, the higher this number is, the more heavily compressed the video data is.
var qpSum = RTCOutboundRtpStreamStats.qpSum;
An unsigned 64-bit integer value which indicates the sum of the quantization parameter (QP) value for every frame sent so far on the track described by the
RTCOutboundRtpStreamStats
object. Since the value of QP is typically larger to indicate higher compression factors, the larger this sum is, the more heavily compressed the stream generally has been.
注意: This value is only available for video media.
Quantization is the process of applying lossy compression to a range of values, resulting in a single quantum value . This value takes the place of the range of values, thereby reducing the number of different values that appear in the overall data set, making the data more compressible. The quantization process and the amount of compression can be controlled using one or more parameters.
It's important to keep in mind that the value of QP can change periodically—even every frame—so it's difficult to know for certain how substantial the compression is. The best you can do is make an estimate. You can use the value of
RTCSentRtpStreamStats.framesEncoded
to get the number of frames that have been encoded so far, and compute an average from there. See
Calculating average quantization
below for a function that does this.
Also, the exact meaning of the QP value depends on the
codec
being used. For example, for the VP8 codec, the QP value can be anywhere from 1 to 127 and is found in the frame header element
"y_ac_qi"
, whose value is defined in
RFC 6386: 19.2
. H.264 uses a QP which ranges from 0 to 51; in this case, it's an index used to derive a scaling matrix used during the quantization process. Additionally, QP is not likely to be the only parameter the codec uses to adjust the compression. See the individual codec specifications for details.
calculateAverageQP()
function shown below computes the average QP for the given
RTCStats
object that contains RTP stream statistics, returning 0 if the object doesn't describe an RTP stream.
function calculateAverageQP(stats) {
let frameCount = 0;
switch(stats.type) {
case "inbound-rtp":
case "remote-inbound-rtp":
frameCount = stats.framesDecoded;
break;
case "outbound-rtp":
case "remote-outbound-rtp":
frameCount = stats.framesEncoded;
break;
默认:
return 0;
}
return status.qpSum / frameCount;
}
| 规范 | 状态 | 注释 |
|---|---|---|
|
Identifiers for WebRTC's Statistics API
The definition of 'RTCOutboundRtpStreamStats.qpSum' in that specification. |
候选推荐 | 初始定义。 |
No compatibility data found. Please contribute data for "api.RTCOutboundRtpStreamStats.qpSum" (depth: 1) to the MDN 兼容性数据存储库 .
RTCOutboundRtpStreamStats
MediaDevices.getUserMedia()
Navigator.mediaDevices
RTCCertificate
RTCDTMFSender
RTCDTMFToneChangeEvent
RTCDataChannel
RTCDataChannelEvent
RTCDtlsTransport
RTCErrorEvent
RTCIceCandidate
RTCIceTransport
RTCPeerConnection
RTCPeerConnectionIceErrorEvent
RTCPeerConnectionIceEvent
RTCRtpReceiver
RTCRtpSender
RTCRtpTransceiver
RTCSctpTransport
RTCSessionDescription
RTCStatsEvent
RTCStatsReport
RTCTrackEvent