DevTools: add a protocol method to generate a video stream of the page |
||
Issue descriptionThere's a demand for a video of headless browser operating: - https://github.com/GoogleChrome/puppeteer/pull/881 - https://github.com/GoogleChrome/puppeteer/issues/478 The current solution for this - Page.screencastFrame - doesn't scale well and yields a poor-quality video. Instead, we should produce a video stream on our end. This will allow us to control quality and framerate. It also will be much more efficient.
,
Nov 5 2017
Adding esseckler@ since I think he already had some thoughts about this.
,
Nov 13 2017
I think the tricky thing will be controlling the frame rate. Some thoughts: (1) Page.screencastFrame currently doesn't influence the frame rate. It's relying on the CompositorFrame production rate of the compositor. (2) Controlling the compositor's frame rate could be done using BeginFrameControl (bug 646774). Right now, that's only possible in headless (but there are plans to port it to desktop in the future). (3) New CompositorFrames are only produced if there were updates for a BeginFrame (vsync interval). So if we wanted a fixed-frame-rate video, we'll need to fill gaps between frames.
,
Nov 14 2017
If i may add, this would open up the possibility of doing headless WebGL video rendering, both useful for Q&A automation and even use Chromium as 2D/3D video rendering engine.
,
Dec 29 2017
Is the plan still to do this in chromium or should we attempt to use the screencastFrame API to stitch a video together ourselves.
,
Feb 7 2018
Would it be realistic to expect 60fps for such a video stream? For our use case we are using greensock to control smooth animations that we want to record without loosing frames. We would actually be able to stitch the frames together ourselves (piping them into ffmpeg).
,
Today
(7 hours ago)
Hello! eseckler@chromium.org Is there any news about this task? Do you have plans to implement it? |
||
►
Sign in to add a comment |
||
Comment 1 by ericbidelman@chromium.org
, Nov 3 2017