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. CheersJoã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> 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>: >> >> 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 >> 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