Thanks for your answer.
As you told "H.264 doesn't benefit all applications-- mainly it will only
improve the situation for games and other very video-like workloads". And
this is my purpose! I need a reliable, high latency network compatible
"transport". I'm interested in gaming, and video reproduction but i want
(!)  to use linux, and i thought that VirtualGL could be an option.
Use a low JPEG quality is not a solution for me, I need good image quality.
Write a transport plugin could be a solution? What i have to study before I
can write a transport plugin? Have you some example (yes, i know
testplugin.cpp) ?
Thank you,
MM


2015-05-27 9:42 GMT+02:00 DRC <dcomman...@users.sourceforge.net>:

> Depending on what you really need to do, it may not be necessary to get
> that fancy.  Most users of VirtualGL use it with an X11 proxy.  TurboVNC
> is the X proxy that our project provides and which has features and
> performance specifically targeted at 3D applications, but there are
> other X proxies that work with VGL as well (although usually not as fast
> as TurboVNC.)  The X proxy, when combined with VirtualGL, will cause all
> of the 2D (X11) as well as 3D (OpenGL) rendering commands from the
> application to be rendered on the server and sent to the client as image
> updates.  TurboVNC specifically has a feature called "automatic lossless
> refresh", which allows you to use a very low JPEG quality for most
> updates, but when the server senses that you have stopped moving things
> around (such as when you stop rotating a 3D scene, etc.), it will send a
> lossless update of the screen.  X proxies also do a much better job of
> handling high-latency networks, since they are sending more
> coarse-grained image updates instead of very fine-grained and chatty X11
> updates over the network.
>
> VirtualGL can also operate without an X proxy, but this is less useful
> on high-latency networks, because it requires that the non-3D-related
> X11 commands be sent over the network to the client machine.  Even
> though the 3D-related X11 commands are being redirected by VirtualGL and
> are being rendered on the server, the 2D-related X11 commands used to
> draw the application GUI, etc. are still sent over the network, and that
> can create performance problems on wide-area networks.
>
> Now, to more specifically answer your question-- you can reduce the JPEG
> quality in VirtualGL, which will significantly reduce the bandwidth.
> Using TurboVNC will likely reduce the bandwidth as well, not only
> because the X11 stuff is being rendered on the server but because
> TurboVNC has a more adaptive compression scheme, whereas VirtualGL uses
> plain motion-JPEG.  I'm currently working with nVidia to research
> possible ways of leveraging their NVENC library to do H.264 compression
> in VirtualGL, but there are a lot of technical hurdles we haven't
> figured out yet vis-a-vis how that would interact with X proxies such as
> TurboVNC.  Also, H.264 doesn't benefit all applications-- mainly it will
> only improve the situation for games and other very video-like
> workloads.  More tradition 3D applications (CAD, visualization, etc.)
> are already quite optimal with TurboVNC's existing compression scheme.
>
> VirtualGL does have a transport plugin API, so you could conceivably use
> that to write your own transport plugin based on the existing VGL
> Transport code (see server/testplugin.cpp for an example) but which uses
> ffmpeg instead of libjpeg-turbo to do the 3D image compression.  Whether
> or not that would really improve bandwidth usage would depend a lot on
> your specific workload.
>
>
> On 5/27/15 1:31 AM, Marco Marino wrote:
> > Hi,
> > i'm a student and i'm trying virtualgl for education purposes. From my
> > tests with vglrun I saw that huge amount of bandwidth is required for
> > acceptable image quality (eg: -c jpeg with quality 90 requires peaks of
> > 50/60 Mbits). Is there a way to compress the video flow? Can i do
> > something like: "VGLSOCKET" -> My compression library (like ffmpeg or
> > similar) -> TCP/UDP socket ? In practice i want try to compress with my
> > own code the output of VGL. Is this possible? I'm sorry if this is a
> > stupid question, but I don't have knowledge about virtualgl.
> > Thanks
>
>
> ------------------------------------------------------------------------------
> _______________________________________________
> VirtualGL-Users mailing list
> VirtualGL-Users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/virtualgl-users
>
------------------------------------------------------------------------------
_______________________________________________
VirtualGL-Users mailing list
VirtualGL-Users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/virtualgl-users

Reply via email to