On Tue, 2013-06-04 at 11:35 -0700, Jay Sorg wrote:
> Hi Guys, I have some news and ideas.
> 
> >> Some ideas worth evaluating:
> >>
> >> - is the code optimized on the rdp client (rdesktop, xfreerdp) in terms
> >>   of GCC opts and algorithms?
> >> - could the client use hardware acccel to scale video and/or converte
> >>   colorspaces (Xvideo, VAAPI, VDPAU, ...)?
> >> - could the x11rdp server implement a virtual Xorg extension (Xvideo,
> >>   VAAPI, ..) so that the decoding can be partially done on the client by
> >>   hardware (see above); note that this would lower CPU usage on the
> >>   server as well
> >>
> >
> > There are basically two options as I see it, though I am not an expert
> > and my analysis of the situation may be wrong.
> >
> > The first is to use the MS-RPDEV aka Video Redirection Virtual Channel
> > Extension. The rough overview of this extension is if you wish to play
> > back a supported media type the undecoded media stream is passed to the
> > client which decodes the video and displays it. Almost any client will
> > have sufficient power to decode a video stream. Even a Raspberry Pi can
> > manage full HD MPEG-4 video (though you need the codec license so it can
> > be handed over to the hardware).
> 
> LK and I have this technique working in an early form.  Maybe you have
> noticed vrplayer in xrdp git.  This is a special player that opens a
> virtual channel to the client ad redirects the media.  This is much
> like Windows Media Player and MS-RPDEV but we implemented our own
> channel.
> Longer term goal is to change this to use MS-RPDEV(tsmf) and also also
> it change VLC to be 'xrdp aware' and not use vrplayer.

Well that is the other option, but suffers from the same problem you
have under Windows you have to use specially modified versions of the
players for it to work.

That is why I feel trying to do it via VAAPI is the way to go. The
concept is that you register at the highest possible level of hardware
assist aka when the least amount of decoding by the media player has
already been done, then as the frames come in add the whatever is needed
back on to create valid MPEG2/H.264 etc and shovel it down the MS-RPDEV
channel to the player.

Problem is that requires knowledge of both X11rdp and the various video
formats.

> 
> With this technique, we ca run 20 sessions all playing full screen
> video with very low CPU utilization on the server.
> 
> Maybe some some of you can help in this area.
> 
> I'll prepare a video for you tube sometime.
> 
> > The problem with this as I see it is that none of the Linux/Unix video
> > acceleration libraries aka XvMC,VAAPI,VDPAU,XbBA offer the ability to
> > hand an undecoded video stream to the library and have the GPU or other
> > a hardware decode the video and present it to the screen.
> >
> > That said it might be possible to take the video stream at a high level
> > aka when the transport information has been stripped off and add has
> > been sent to one of the video acceleration API's but before it has been
> > decoded, regenerate the transport stream information to make it a full
> > MPEG2/H.264/WMV9 etc. before using MS-RPDEV to send to the client.
> >
> > The second options is to use RemoteFX Codex (MS-RDPRFX) to encode the
> > video stream to be sent to the client, using say Xv extension to
> > determine what is a video to be compressed.
> >
> > The RemoteFX Codex would also work well with borrowing from VirtualGL to
> > enable GPU based hardware acceleration of 3D stuff.
> 
> RemoteFX or the codec surface command technique is a good fallback
> when the above does not work.
> I'll have to implement some design changes to X11rdp to make a good
> RemoteFX server but it can be done.

Has the advantage of working with all video playback whether it is a
YouTube clip in a browser or a DVD etc.

> I like the idea of hooking up VirtualGL to X11rdp too.

Good ideas are easy :-) It would however give decent 3D performance to
xrdp/X11rdp. The problem with VirtualGL is that it uses VNC and that
means unless you have a high bandwidth link it sucks.

JAB.

-- 
Jonathan A. Buzzard                 Email: jonathan (at) buzzard.me.uk
Fife, United Kingdom.


------------------------------------------------------------------------------
How ServiceNow helps IT people transform IT departments:
1. A cloud service to automate IT design, transition and operations
2. Dashboards that offer high-level views of enterprise services
3. A single system of record for all IT processes
http://p.sf.net/sfu/servicenow-d2d-j
_______________________________________________
xrdp-devel mailing list
xrdp-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/xrdp-devel

Reply via email to