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.

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.

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

Jay

------------------------------------------------------------------------------
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