João,

Thanks for the tip. Will search about it.

Best,

Nuno

> On 14 Jul 2021, at 20:22, joao morgado via Interest <interest@qt-project.org> 
> wrote:
> 
> 
> Hello Nuno
> 
> Not sure if it helps, but the book Anton's OpenGL 4 Tutorials has a chapter 
> about recording a video from OpenGL. It's the same approach you are doing, 
> saving images from a frame buffer at certain fixed rate. I just dont know 
> what kinf of optimisations are done, I didnt read it with much attention.
> 
> Cheers
> João
> 
> 
> Em terça-feira, 13 de julho de 2021 14:33:42 GMT+1, Nuno Santos 
> <nuno.san...@imaginando.pt> escreveu:
> 
> 
> Elvis,
> 
> Thanks for sharing your thoughts. It makes sense.
> 
> I need to dive into the toImage function, try to read directly the bytes from 
> the FBO and see if that has any performance impact.
> 
> Best regards,
> 
> Nuno
> 
> > On 13 Jul 2021, at 14:10, Elvis Stansvik <elvst...@gmail.com 
> > <mailto:elvst...@gmail.com>> wrote:
> > 
> > Hi Nuno,
> > 
> > I'm really out of my waters here, but, provided you don't need to hold
> > on to each AVFrame after you are "done with it", you could perhaps
> > avoid having to allocate a QImage for each frame (which toImage forces
> > you to do) by just allocating a a single AVFrame and a single memory
> > buffer for it, and then do what toImage does, which is make sure the
> > FBO is bound and read the pixels off of it with glReadPixels. Then you
> > could read the pixels straight into the memory buffer used by your
> > AVFrame.
> > 
> > That way you would save the overhead of a new QImage being allocated
> > each time, which might speed things up..?
> > 
> > Just ideas here. Have not worked with GL or ffmpeg before.
> > 
> > Elvis
> > 
> > Den tis 13 juli 2021 kl 11:22 skrev Nuno Santos <nuno.san...@imaginando.pt 
> > <mailto:nuno.san...@imaginando.pt>>:
> >> 
> >> Hi,
> >> 
> >> I’m trying to capture the content of an FBO to a video file. This video 
> >> file should contain the animations generated by a qml scene.
> >> 
> >> To do this, I’m recurring to QOpenGLFramebufferObject class toImage() 
> >> method.
> >> 
> >> My scene is being drawn at 1920x1080. Each call to toImage takes 30 ms! :(
> >> 
> >> If I want to render to file at 60 fps, ideally, this call would need to 
> >> take less than 16 ms to give me room to do other operations, such as video 
> >> encoding and the actual render.
> >> 
> >> As anyone been here before? What other strategies are available to copy 
> >> the FBO data to an image?
> >> 
> >> I’m using libav to encode the video file, therefor I need to fill an 
> >> AVFrame. Right now I’m filling the AVFrame from the QImage generated by 
> >> the FBO toImage method.
> >> 
> >> Does any one knows a method of filling an AVFrame directly from texture 
> >> data?
> >> 
> >> Thanks
> >> 
> >> Best regards,
> >> 
> >> Nuno
> >> _______________________________________________
> >> Interest mailing list
> >> Interest@qt-project.org <mailto:Interest@qt-project.org>
> >> https://lists.qt-project.org/listinfo/interest 
> >> <https://lists.qt-project.org/listinfo/interest>
> 
> _______________________________________________
> Interest mailing list
> Interest@qt-project.org <mailto:Interest@qt-project.org>
> https://lists.qt-project.org/listinfo/interest 
> <https://lists.qt-project.org/listinfo/interest>
> _______________________________________________
> Interest mailing list
> Interest@qt-project.org
> https://lists.qt-project.org/listinfo/interest

_______________________________________________
Interest mailing list
Interest@qt-project.org
https://lists.qt-project.org/listinfo/interest

Reply via email to