Contact emails [email protected]<mailto:[email protected]>, [email protected]
Specification https://www.w3.org/TR/webcodecs-video-frame-metadata-registry/#dom-videoframemetadata Summary Adds a VideoFrame.metadata() method that returns a dictionary containing the rtpTimestamp field, if the underlying VideoFrame has this field in its native metadata. An empty dictionary is returned otherwise. Only video frames originating from WebRTC sources will have the rtpTimestamp metadata attached. Additional metadata fields are already present in the native implementation and may be exposed to JavaScript over time, as outlined in the proposed spec: https://www.w3.org/TR/webcodecs-video-frame-metadata-registry/#dom-videoframemetadata Blink component Blink>Media>WebCodecs<https://issues.chromium.org/issues?q=customfield1222907:%22Blink%3EMedia%3EWebCodecs%22> Web Feature ID webcodecs<https://webstatus.dev/features/webcodecs> Motivation This feature exposes the rtpTimestamp field on the JavaScript facing VideoFrame.metadata dictionary when it is present in the underlying native media::VideoFrameMetadata. It allows applications using MediaStreamTrackProcessor (e.g., to render decoded WebRTC frames to a canvas) or WebCodecs (e.g., for custom decoding pipelines) to correlate each exposed frame with its original RTP transport timestamp. This is useful for: Media synchronization across tracks Jitter or latency diagnostics Aligning decoded video with captured or received audio Spec link: https://www.w3.org/TR/webcodecs-video-frame-metadata-registry/#dom-videoframemetadata-rtptimestamp Chromium implementation CL: https://chromium-review.googlesource.com/c/chromium/src/+/6499588 Chromium bug: https://crbug.com/414545889 Initial public proposal No information provided TAG review No information provided TAG review status Not applicable Risks Interoperability and Compatibility The feature is additive and backward compatible. Existing WebCodecs and WebRTC APIs remain unchanged. No known interop issues. WPT coverage validates expected behavior. Firefox and WebKit positions are pending. Gecko: No signal (https://github.com/mozilla/standards-positions/issues/1233) Position request filed on May 19, 2025. Awaiting response. WebKit: No signal (https://github.com/WebKit/standards-positions/issues/497) Position request filed on May 19, 2025. Awaiting a response from WebKit. Web developers: No signals Other signals: WebView application risks Does this intent deprecate or change behavior of existing APIs, such that it has potentially high risk for Android WebView-based applications? None. This feature only exposes additional read only metadata (rtpTimestamp) on VideoFrame objects that are already surfaced through WebCodecs and WebRTC pipelines. No changes to existing Android WebView behavior or APIs. Safe for WebView. Debuggability No impact to DevTools workflows. Feature testing is via JS API inspection and WPT automation. VideoFrame metadata inspection (including rtpTimestamp) can be done via Javascript using MediaStreamTrackProcessor and WebCodecs/WebRTC or automated via WebDriver BiDi tests. Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, ChromeOS, Android, and Android WebView)? Yes Is this feature fully tested by web-platform-tests<https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>? Yes https://wpt.fyi/results/webcodecs/videoFrame-metadata-rtpTimestamp.https.html?label=experimental&label=master&aligned Flag name on about://flags --enable-blink-features=VideoFrameMetadataRtpTimestamp Finch feature name None. Rollout is via milestone 146 stable. No finch experiment planned. Non-finch justification The feature is additive and backward compatible. Existing WebCodecs and WebRTC APIs remain unchanged. Rollout plan Will ship enabled for all users Requires code in //chrome? False Availability expectation Available by default in Chrome 146 for all desktop platforms. Mobile availability (Android) expected to follow in the same milestone. Adoption expectation Expected to be adopted by WebRTC and streaming applications that correlate decoded VideoFrame metadata with RTP timestamps for synchronization and telemetry. This includes browser based streaming clients that use MediaStreamTrackProcessor. Adoption plan Ship enabled by default for all users in Chrome 146. Coordinate with developers via WPT test results and the published ChromeStatus entry. No developer facing migration required. Non-OSS dependencies Does the feature depend on any code or APIs outside the Chromium open source repository and its open-source dependencies to function? None. The feature is implemented entirely within Chromium’s open source stack (WebRTC, Blink, and WebCodecs) Estimated milestones Shipping on desktop 146 Shipping on Android 146 Shipping on WebView 146 Anticipated spec changes Open questions about a feature may be a source of future web compat or interop issues. Please list open issues (e.g. links to known github issues in the project for the feature specification) whose resolution may introduce web compat/interop risk (e.g., changing to naming or structure of the API in a non-backward-compatible way). None expected. This feature implements the rtpTimestamp entry in the WebCodecs VideoFrame Metadata Registry and matches the current registry text (name, type, and semantics). The registry status is “W3C Draft Registry,” but any further edits we expect to be editorial or additive. If a normative change were proposed (e.g., semantics/units' clarification or constraints), we would align Chromium accordingly and update tests. Link to entry on the Chrome Platform Status https://chromestatus.com/feature/5186046555586560?gate=5179324311011328 This intent message was generated by Chrome Platform Status<https://chromestatus.com/>. -- You received this message because you are subscribed to the Google Groups "blink-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/PH7PR12MB87961707EEA95FF947A2DBC9A6F3A%40PH7PR12MB8796.namprd12.prod.outlook.com.
