<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
On 4/16/14, 8:19 AM, Tommy Chheng wrote:<br>
<blockquote
cite="mid:CABx50+AuXQaQhiHp1g3_f3PtHojXivNL_U+Nn6zc20yicsYtfg@mail.gmail.com"
type="cite">
<div dir="ltr">I'm working on a system to render an HTML5
animation to a video file. So far, we have been able to use
phantomjs to output image files at time intervals and combine
them together with ffmpeg.
<div><br>
</div>
<div>This solution mostly works but phantomjs doesn't include
features like video tag support or webgl.</div>
<div><br>
</div>
<div>It looks like webkitgtk+ includes a full stack rendering
with video tag(via gstreamer) and webgl support.<br
clear="all">
<div><br>
</div>
<div>Where can i start investigating in the code how to use
webkitgtk+ to snapshot a rendering of a web page at time
intervals?</div>
<div><br>
</div>
<div>
<div>Because we want this to run as an automated process on
a headless linux system, screencasting tools are out of
the question.<br>
</div>
</div>
<div><br>
</div>
<div><span
style="font-size:12.800000190734863px;font-family:arial,sans-serif">Also,
to give an analogy, if we have an animation system written
in OpenGL, we can easily capture image frames to video
using glReadPixels. We want the equivalent "glReadPixels"
for webkitgtk. </span><br>
</div>
<div><span
style="font-size:12.800000190734863px;font-family:arial,sans-serif"><br>
</span></div>
<div>I noticed some mention of a webkitvideosink from <a
moz-do-not-send="true"
href="http://gstreamer.freedesktop.org/conference/slides/webkit.pdf"
target="_blank">http://gstreamer.freedesktop.org/conference/slides/webkit.pdf</a>
but not much details of how it works.<br>
</div>
</div>
</div>
</blockquote>
In theory that is possible, the software could flatten the output
layer tree at each frame and get the pixels back. I don't know what
kind of support exists for GTK+.<br>
<br>
I suggest you to ask this question on the webkit-gtk mailing list.<br>
<br>
Benjamin<br>
</body>
</html>