[Interest] [Qt3D] Render to video

Andy asmaloney at gmail.com
Mon Apr 18 05:46:10 CEST 2016

Goal: generate video with a user-specified resolution, frame rate, &
container/codec format from an animation in my Qt3D window

(Disclaimer: I've never worked with video files before!)

As far as I can tell, Qt doesn't provide a way to generate video files
directly, so I think I have to write a series of QImages to disk and use
them to generate a video using ffmpeg.  This seems like it will take a
large amount of disk space, be pretty heavy on the I/O, and generally be
slow.  Are there better solutions?

If I need to do it that way though, I must generate QImages from my
existing Qt3DCore::QAspectEngine in my QWindow-derived class.  I don't see
a clear/elegant way to do this.

I think I need to create an offscreen surface? window? with the correct
resolution and then somehow render & animate my scene to it, saving
snapshots as I move the camera.  (I am already using QAbstractAnimation to
move the camera, so I would use it to grab the snapshots as well.)  Can I
use the same root entity in multiple QAspectEngines? (i.e. setRootEntity()
to my root entity in the new offscreen and tell it to render.)

Has anyone done this before?  Is this even close to the right approach?

(I'm using straight C++ - no QML.)


Andy Maloney  //  https://asmaloney.com
twitter ~ @asmaloney <https://twitter.com/asmaloney>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20160417/c7d51c5e/attachment.html>

More information about the Interest mailing list