- From: <bugzilla@jessica.w3.org>
- Date: Thu, 24 Jan 2013 16:27:44 +0000
- To: public-html-media@w3.org
https://www.w3.org/Bugs/Public/show_bug.cgi?id=20760
Bug ID: 20760
Summary: <video> Expose statistics for tracking playback
quality
Classification: Unclassified
Product: HTML WG
Version: unspecified
Hardware: All
OS: All
Status: NEW
Severity: normal
Priority: P2
Component: Media Source Extensions
Assignee: adrianba@microsoft.com
Reporter: adrianba@microsoft.com
QA Contact: public-html-bugzilla@w3.org
CC: mike@w3.org, public-html-media@w3.org
Problem description: (as mostly described in bug 14970 and the existing
proposal already http://wiki.whatwg.org/wiki/Video_Metrics#Proposal)
For adaptive video streaming using the video element with the Media source
Extensions (MSE) it is important that the User Agent should expose video
quality metrics for the applications to make decisions on media stream quality,
e.g. bitrate and resolution, etc. This allows for the scenario where the
network is capable of transferring higher quality video than the device is
capable of playing and the application needs to step down to a lower quality.
Proposed changes: A subset of the existing proposal
(http://wiki.whatwg.org/wiki/Video_Metrics#Proposal). The attributes
presentedFrames and playbackJitter should be able to cover the typical
scenarios used by the MSE.
Here is the proposed text for the <video> tag. We'd like to have be added to
MSE for now since it’s important for this scenario but in future it might be
part of HTML 5.1.
partial interface HTMLVideoElement : HTMLMediaElement {
// new attribute
MediaPlaybackQuality getPlaybackQuality();
};
interface MediaPlaybackQuality {
readonly attribute double currentvideoframerate;
readonly attribute Date systemTime;
readonly attribute unsigned long presentedFrames;
readonly attribute double playbackJitter;
};
The "currentvideoframerate" attribute represents the current framerate of the
active video track. The UA should provide the frame value based on metadata in
the video stream. The UA can expose the value as NaN when it is not
deterministic. In that case, the app can use the presentedFrames to estimate
the actual video frame rate.
The "systemTime" attribute represents the current system time (in UTC) at the
point when the statistics were acquired. This can be compared between calls to
precisely determine how playback quality is changing over time.
The "presentedFrames" attribute represents the number of frames of video that
have been presented for compositing into the page. The initial value of the
presentedFrames attribute should be 0 for this element. The value of the
presentedFrames attribute should be set to 0 after running each instance of
media element load algorithm for this element.
Note: The presentedFrames could be used to calculate frames per second. The
presentedFrames could also be used to measure the display quality that the user
perceives and can determine the performance of the rendering engine given the
performance of the network and decoding pipeline. If, for example, the system
receives sufficient data from the network, but the rate of presented frames per
second is below 15, we can assume that the user gets a poor presentation
because the rendering engine was too slow, the machine is likely overloaded or
not capable of rendering this video at this quality. In this case, the
application should probably move to a lower bitrate (resolution or frame rate)
resource for the video.
The "playbackJitter" attribute represents the sum of all duration errors for
frames intended to be presented to the user, where:
Ei = Desired duration of frame i spent on the screen (to nearest microsecond)
Ai = Actual duration frame i spent on the screen (if the frame is never
presented to the user, then Ai == 0).
then:
playbackJitter = sum(abs(Ei - Ai))
--
You are receiving this mail because:
You are on the CC list for the bug.
Received on Thursday, 24 January 2013 16:27:50 UTC