Re: [presentation-api] Presentation of objects (#439)

It has been a very long time since I filed this issue, so I don't have any recollection of the original motivation or use cases.  However let's assume that a Web application has access some local media it wants to play on a secondary display, and it's not hosted on a server (so it can't just send a URL or have the receiver page fetch it from elsewhere.)

If it's pre-recorded, encoded media (the MediaSource, Blob, or File cases), there are a few approaches to explore:

1. Via Presentation API: it could be sent in chunks as messages over the PresentationConnection, reassembled on the other side, and played out in an `<audio>`/`<video>` element.
2. Via Remote Playback API: it could be played out in a `<video>` element (possibly hidden) and the Remote Playback API used to play it out on the secondary display using API's "remoting" mode [*].
  
If it's captured media (the MediaStream case), the application could use WebCodecs to transform it into encoded media, then one of the two scenarios above used to take it from there.

It would be useful to prototype these scenarios with the current implementations of the APIs and see if there are any fundamental gaps in the platform, before pursuing any new API features.  This would a good student project, or for anyone wanting to learn more about media processing on the Web platform.

There are also potential ways that WebRTC could be mixed into scenario #1.  The PresentationConnection can serve as a signaling channel to set up the media plane between the controller and receiver.   Then WebRTC becomes available for encoding/transmitting the media, with success depending on the capabilities of the receiver device.

[*] Chrome supports media remoting, but it is somewhat tricky to activate in its current form.  Please reach out to me if you would like to investigate this further.


-- 
GitHub Notification of comment by mfoltzgoogle
Please view or discuss this issue at https://github.com/w3c/presentation-api/issues/439#issuecomment-1149341670 using your GitHub account


-- 
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config

Received on Wednesday, 8 June 2022 01:22:27 UTC