Dive Board



Re: Durovis Dive Play Computer Games Easy Step Guide

Re: Durovis Dive Play Computer Games Easy Step Guide

by gioy808 on Dec 17th, 2013 13:35 PM

dann probier mal die x / y Werte anzupassen , (1000/ 600 ) ist glaube ich bei dem Script Standard.
probier mal niedrigerer Werte auf der x Achse , einfach bisschen rum testen bis es ingame passt.

btw. um sp hoeher dwr Wert umso mehr Sensivität.

gioy808

Posts: 18

Joined: 08.12.2013

dive-owner


Re: Durovis Dive Play Computer Games Easy Step Guide

by itsrumsey on Dec 30th, 2013 02:14 AM

I've emailed the author of Kainy request support for another viewport option: double + correct aspect ratio.

Ideally we'd be able to play any normal game with correct ratio, albeit with no 3D (which is fine if I can play Skyrim in bed).
Has anyone played around with Vireio Perception at all yet? Success or failure stories?

itsrumsey

Posts: 7

Joined: 30.11.2013


Re: Durovis Dive Play Computer Games Easy Step Guide

by messier on Jan 1st, 2014 09:50 AM

Hi all,

is anyone getting more than 30fps with Splashtop? On my notebook the CPU usage is already very high at 20fps. So at least for me that is not a practical method for gaming.

Thus now I am thinking about writing my own server and client apps for this usecase. During researching I found three major challenges:

[list:33od2mvo]
[*:33od2mvo] Real Time h264 encoding: With post Sandy Bridge CPUs not really an issue. I tried out Intel's Quick Sync libs and I can get over 150fps with an Ivy Bridge CPU (almost independed from the bitrate)[/*:m:33od2mvo]
[*:33od2mvo] Screen Capturing: This was very suprising to me, but it takes a considerable amount of time to copy the frame buffer content to the RAM. Even with DirectX methods it is hard to achieve more than 30fps 1080p. My last hope currently is the Windows Desktop Duplication API. Some people claim the get more than 60fps with that, but since this method only updates dirty and move areas, this will strongly depend on the screen content. Has anybody here some experience with that?[/*:m:33od2mvo]
[*:33od2mvo] h264 decoding on the Android Phone: I haven't looked into that one yet, but since this is quite ordinary, I don't expect show stoppers here[/*:m:33od2mvo][/list:u:33od2mvo]

So in my opinion efficient screen capturing is really the key point here. I will try out the Windows Desktop Duplication API today or tomorrow. If it is possible to get less than 10ms processing time per frame with this, then an overall latency of less than 30ms should be possible even over wifi

Update 03.01: Good news: with the new Desktop Duplication API, the screen is captured directly in a D3D surface. As long as this surface is not copied to System Memory, a screen capture takes less than 1ms! AFAIK Intel Quicksync should be able to work with this surface directly. Therfore I am now trying to implement a simple client server program for the PC that utilizes that feature. Without network overhead even less than 10ms latency should be possible with this approach with minimal CPU usage.
There are three (minor) disadvantages though: The Desktop Duplication API is only available for Win8, you will need an Intel CPU and Games need to run in (borderless) window mode.

messier

Posts: 1

Joined: 01.01.2014


Re: Durovis Dive Play Computer Games Easy Step Guide

by Moerf on Jan 16th, 2014 09:33 AM

@OP: Thanks for this thread and the idea of using freepie!

@all: Also worth mentioning Limelight (the reverse engineered Streaming APK from the Nvidia SHIELD) http://forum.xda-developers.com/showthr ... ?t=2505510 . With an nVidia Card from GTX670 or so up you can stream with Steam to your Android 4.1+ device. The quality is superior to Kainy and maybe even to Splashtop. But since I have my NVidia card only since yesterday I couldn't compare this yet. The setup of limelight is straight forward, but sadly one really needs Steam which makes using TriDef e.g. sometimes unstable.
Also NVidia seems to tune their streaming algorithms a lot so the experience is currently optimum with 720p/30fps because the stream utilizes only 4-8 MBit of bandwidth. Which is far too low for 1080p.

@Messier: How far have your effords taken you? Maybe you could look into limelight and its XDA thread and get something from it? Essentially they do what you propose (as I think Splashtop is doing as well) just with Nvidia's hardware. Although it could be limited by the Nvidia drivers.

@Oliver, regarding the jumping of the mouse when reaching the display's edge:

"Oliver" wrote:

Ich habe aber Probleme das das Bild umspringt, wenn ich ganz weit nach rechts oder links gucke.

Habe bemerkt das es daran liegen könnte, dass wenn das Programm läuft wo das Handy den Mauszeiger steuert, der Mauszeiger wenn er am rechten/linken Bildschirmrand ist auf der entsprechenden anderen Seite wieder auftaucht.

Also ich schaue nach rechts bis der Mauszeiger den rechten Bildrand erreicht, wenn ich dann weiter nach rechts schaue springt er zum linken rand (bzw. kommt dort wieder raus).



I found the solution in this thread on Meant to be seen 3d (an excellent 3d forum by the way, where many Oculus and other devs seem to hang around too): http://www.mtbs3d.com/phpbb/viewtopic.p ... 86#p105729
(German: Ich habe die Lösung in einem MTBS3d Thread gefunden, siehe Link)

Maybe you need this line instead of the old one, but I do not know exactly as of now as I only tried it yesterday evening for like 10 minutes. (German: Evtl. brauchst du 1. diese Zeile Code, an Stelle der alten.)

yaw = -android[0].googleYaw - math.pi


You need to add these lines before sending the delta-values to the mouse on the screen (which is done by this line mouse.deltaX = -deltaYaw*600). (German: Man braucht aber definitiv diese Zeilen, vor dem "mouse.deltaX = -deltaYaw*600" o.ä. Befehl. )
if math&#46;fabs(deltaYaw) &gt;= math&#46;pi&#58;<br />deltaYaw = 0

Moerf

Posts: 21

Joined: 10.12.2013


Re: Durovis Dive Play Computer Games Easy Step Guide

by Hatalmas on Jan 17th, 2014 18:37 PM

Hey there,
would be nice if you could upload the images again.
:)

Hatalmas

Posts: 2

Joined: 17.01.2014

dive-owner


Re: Durovis Dive Play Computer Games Easy Step Guide

by SpicyKiwi on Jan 25th, 2014 00:24 AM

OMG, I am sure there is a way we can stream 720 p at around 60 fps to the phone. If we manage to do so, the OpenDive will really become extraodinary. Unfortunatly, I have not enought free time to try to create the software...


EDIT: I have tried : VLC Streaming -> less than 1 fps, complete failure. Too complicated.
Kainy -> Can't find an APK that works to make sure it is OK. However I have read that it is fine in 480p.
Splashtop THD -> Found an APK : nearly perfect in 720p OMG (using USB tethering). Will try the way to add more fps soon.



EDIT 2: OMFG after working on it for a night, I managed to get this thing to work, and it is extraodinary (close to the OR)! I will make a complete, a very detailed tutorial on how to set up the Open dive (both on hardware and software). It might take a week to write, but I will post it on big websites such as Instructables (which brought me there). The 7€ Oculus Rift is becoming real :D!!!

I plan to create a software in the future to automatically launch games (it take a few minutes right now), and maybe to set up the thing. But My first objective it to let people know that this awesome thing exists, and to make the best tutorial I can do!

SpicyKiwi

Posts: 2

Joined: 25.01.2014


Re: Durovis Dive Play Computer Games Easy Step Guide

by druss on Jan 27th, 2014 00:38 AM

I'm really looking forward to see your tutorial.

:)

druss

Posts: 6

Joined: 05.01.2014


Re: Durovis Dive Play Computer Games Easy Step Guide

by Moerf on Jan 27th, 2014 10:13 AM

@SpicyKiwi
Now I really want to know what you did :) I have also tinkered around with that for about 2 weeks now and I am not really where I want. I can get 720p just fine even with head-tracking by using the method mentioned by the OP or using Limelight with Steam and Nvidia Gamestream but I just cannot get 1080p right.

@all
I did however find out some stuff and I will get back to you with a somewhat detailed post tomorrow so you can also try around some more :)

Moerf

Posts: 21

Joined: 10.12.2013


Re: Durovis Dive Play Computer Games Easy Step Guide

by Moerf on Jan 28th, 2014 19:13 PM

[EDIT says: You can have a look at the SPlog.txt inside the Program Files(x86)/Splashtop Remote/Server/ directory to see some of what the registry values are changing for the stream.]

So I've played around some more. Actually I did not play so much as I did working on it ;) Conclusion for the moment is: 720p is fine, 1080p is not good enough. I will share my experiences with you, so you can try some more.
1. Regarding Limelight with Steam and Nvidia Gamestream (http://forum.xda-developers.com/showthr ... ?t=2505510):
[list:3ac9bk16]
[*:3ac9bk16] Very low lag[/*:m:3ac9bk16]
[*:3ac9bk16] Stable and smooth frame rate[/*:m:3ac9bk16]
[*:3ac9bk16] No additional strain on the CPU[/*:m:3ac9bk16]
[*:3ac9bk16] Nvidia Only[/*:m:3ac9bk16]
[*:3ac9bk16] Fullscreen is no problem[/*:m:3ac9bk16]
[*:3ac9bk16] 720p looks like it should, rest is more or less awful. [/*:m:3ac9bk16]
[*:3ac9bk16] Bandwidth is limited to around 7-8 Megabit/s in real use. Thus the limitation to 720p.[/*:m:3ac9bk16]
[*:3ac9bk16] Even in 720p some minor compression artifacts like color banding on dark surfaces or e.g. the Skyrim night sky.[/*:m:3ac9bk16][/list:u:3ac9bk16]

After that I wanted to get better image quality. I started to investigate how Limelight and Nvidia Gamestream are working by looking at forums, the registry and finally using wireshark and the ProcessMonitor. I strongly suspect that other than using 30/60fps and 720p/1080p no other parameter for the x264-encoder can be altered by the user to enhance bandwidth use and thus image quality. It seems that these settings are hidden and obfuscated by Nvidia somewhere in the Driver itself and/or the configuration files for this Gamestream service.

So I turned back to Splashtop and analyzed it the same way.
2. Splashtop out of the box over USB 2.0 tethering:
[list:3ac9bk16]
[*:3ac9bk16] Low lag[/*:m:3ac9bk16]
[*:3ac9bk16] Stable, less smooth frame rate[/*:m:3ac9bk16]
[*:3ac9bk16] Gigantic strain on the CPU (i have an i5, clocked to 3.8 GHz) even with hardware encoder enabled it shows 100% in nearly every title and some games feel kind of not-smooth once in every 10 seconds[/*:m:3ac9bk16]
[*:3ac9bk16] No fullscreen or fullscreen is hard to achieve[/*:m:3ac9bk16]
[*:3ac9bk16] 1080p looks like 720p or less[/*:m:3ac9bk16]
[*:3ac9bk16] Bandwidth is limited to around 15 Megabit/s in USB 2.0 use. Thus the problems with 1080p.[/*:m:3ac9bk16]
[*:3ac9bk16] Minor color banding, lots of compression artifacts.[/*:m:3ac9bk16][/list:u:3ac9bk16]

OK now to the process explorer. It seems that Splashtop is accessing the registry to get some of its encoding and connection settings. It tries to read some settings and if they cannot be found just uses a default value. This can be used to alter - inside some limits - image quality and bandwidth use. The list of settings can be found at the bottom, as it is quite large.
Important to note, the quality of the stream can be influenced by the user! For me those settings in the registry worked easily:
[list:3ac9bk16]
[*:3ac9bk16] x264UseRegSettings - 1[/*:m:3ac9bk16]
[*:3ac9bk16] x264RFConst - 0 to 40 see here for information on this parameter: http://slhck.info/crf.html , https://trac.handbrake.fr/wiki/ConstantQuality [/*:m:3ac9bk16]
[*:3ac9bk16] ForceFPS - 15 to 30[/*:m:3ac9bk16][/list:u:3ac9bk16]

3. Splashtop with kind of smooth RFConst setting (currently 25-30, have to do further work on it) USB 2.0 tethering:
[list:3ac9bk16]
[*:3ac9bk16] Low lag[/*:m:3ac9bk16]
[*:3ac9bk16] Stable, no smooth frame rate[/*:m:3ac9bk16]
[*:3ac9bk16] Same gigantic strain on the CPU (i have an i5, clocked to 3.8 GHz) even with hardware encoder enabled it shows 100% in nearly every title and some games feel kind of not-smooth once in every 10 seconds[/*:m:3ac9bk16]
[*:3ac9bk16] No fullscreen or fullscreen is hard to achieve[/*:m:3ac9bk16]
[*:3ac9bk16] 1080p looks like 1080p or less[/*:m:3ac9bk16]
[*:3ac9bk16] Bandwidth is limited to around 25 Megabit/s in USB 2.0 use. Nearly enough for 1080p/30fps.[/*:m:3ac9bk16]
[*:3ac9bk16] Minor color banding, nearly no compression artifacts.[/*:m:3ac9bk16][/list:u:3ac9bk16]

Now to test what is possible concerning image quality.
4. Splashtop with min RFConst setting of 0 used other PC to test bandwidth:
[list:3ac9bk16]
[*:3ac9bk16] Low lag[/*:m:3ac9bk16]
[*:3ac9bk16] Stable, smooth frame rate[/*:m:3ac9bk16]
[*:3ac9bk16] Same gigantic strain on the CPU (i have an i5, clocked to 3.8 GHz) even with hardware encoder enabled it shows 100% in nearly every title and some games feel kind of not-smooth once in every 10 seconds[/*:m:3ac9bk16]
[*:3ac9bk16] No fullscreen or fullscreen is hard to achieve[/*:m:3ac9bk16]
[*:3ac9bk16] 1080p looks like 1080p original[/*:m:3ac9bk16]
[*:3ac9bk16] Bandwidth is around 100 Megabit/s in 100MBit LAN. Enough for 1080p/30fps.[/*:m:3ac9bk16]
[*:3ac9bk16] No color banding, no compression artifacts.[/*:m:3ac9bk16][/list:u:3ac9bk16]

After that I wondered why I cannot achieve more than 10-15 Mbit over wireless (G) to my phone and why the connection was sometimes jerky/jacking. Maybe it has to do with TCP over WLAN instead of using UDP as NVidia does. I am not sure about that but I will try to do some tests there as well.

OK, I hope that helps and "inspires" some of you and I will return when I know more! :)
-----------
Compendium of current Splashtop Registry Values:
HKCU\Software\Splashtop Inc.\Splashtop Remote Server\

ReqPassword - Request oder Require Password ?
SharpFPS - Desired Capture FPS in sharp mode
SmoothFPS - Desired Capture FPS in smooth mode
ForceFPS - overwrite both of the above ? - Tested, works
ForceCapBlt - ???
EnableClipboard - Self explanatory
NoAudioToClient - Self explanatory
AutoMute - ???
LockKBMS - Lock Keyboard and Mouse ???
AutoPopKBMode - Auto Open Keyboard Mode ???
AutoFoldKB - Auto Close Keyboard ???
SRServerMode - ???
DisableScreenFixedRation - Self explanatory
AudioResampling - Self explanatory
EnableWindowedMode - Self explanatory
HookAtStart - ???
AeroEnable - Self explanatory
ReqPasswort - Requires Passwort ???
Port - Self explanatory
CloudUserAccount - Self explanatory
CloudUserPWD - Self explanatory
CloudComputerName - Self explanatory
FirstSPLogin - ???
AbwLogLevel - ???
EnableFeedback - Self explanatory
HideBubbleWnd - Hide Bubble Window ???
TouchOffsetX - Self explanatory
TouchOffsetY - Self explanatory
TouchOffsetX_neg - Self explanatory
TouchOffsetY_neg - Self explanatory
AutoStart - Self explanatory
ScreenLock - Self explanatory
EnableOverlappingAcks - ???
EnableVideoPreCompare - ???
EnableGesture - Self explanatory
XDisplayDirection - Self explanatory
ForceUsingVD - ???
BlankScreen - ???



Different Capture Methods (Probably):
EnableIQSV - Enable Intel Quick Sync V… ???
EnableD3D9 - ???
EnableD3D9Ex - ???
EnableNvFBC - Enable Nvidia Front Buffer Copy ??? - Tested, works, heavy CPU load
EnableNvEnc - Enable Nvidia Encoder, NvEnc is the same abbreviation as the new Nvidia hardware x264/opus encoder used in the shield/stem streaming module, would use nearly no CPU - Tested, does not work
EnableCuda - Self explanatory - Tested, does not work
EnableSTVD - ???
EnableDXGI - ???
EnabeDXGIEx - ???
EnableADEM - ???
EnableSCEX - ???
EnableMMReset - ???

NVFbcToSysFlag - ???


Streaming / Codec Settings:

x264UseRegSettings - The most important one to tweak the stream
x264RFConst - Set Constant Picture Quality, 0 - lossless, 22 - BluRay, 20 - DVD http://slhck.info/crf.html , https://trac.handbrake.fr/wiki/ConstantQuality - Tested, works as it should! 1:1 image from pc display achievable with around 100Mbit/s used (tested with other PC as splashtop client)
x264VBVBitrate - Set Variable Bitrate if not RFConst - just from 200?? to 1200 Kbit possible ???, Tested, works within limits
x264VBVBufSize - Set Variable Bitrate Buffer Size if not RFConst - change from 0 to 200 or so ???, Tested, works within limits
x264IntraRefresh - http://x264dev.multimedia.cx/archives/249
x264Deblocking - ???
x264BitrateLow - Streaming bitrate for slow (ping over ping limit) connections ?
x264BitrateHigh - Streaming bitrate for fast (ping under ping limit) connections ?
1stFrameEnable - ???
1stFrameThresholdFPS - ???
1stFrameThresholdInterval ???
SmallPkgPingAvgInterval - If ping higher than this average, small packages are used --> x264BitRateLow is active
SmallPkgPingEnableThreshold - If ping higher than this, small packages are used --> x264BitRateLow is active
SmallPkgPingDisableThreshold If ping lower than this, big packages are used --> x264BitRateHigh is active
DumpBitstream - Starts Video Streaming ???



HKCU\Software\Splashtop Inc.\Splashtop Remote Server\ClientInfo\

DeviceName - Self explanatory
DeviceID - Self explanatory
UDID - ???
Update - ???
BundleID - ???
UserAccount - Self explanatory
OEMID - ???
ExtraID - ???
UpsellInfo - ???
AppVersion - Self explanatory
AbwMode - ???
AbwConnType - ???

AbwProfiles - ???


[EDIT says: You can have a look at the SPlog.txt inside the Program Files(x86)/Splashtop Remote/Server/ directory to see some of what the registry values are changing for the stream.]

Moerf

Posts: 21

Joined: 10.12.2013


Re: Durovis Dive Play Computer Games Easy Step Guide

by Diskun on Jan 31st, 2014 01:53 AM

KAINY for Android is a really good solution. Not free, but good. Specially if your WiFi router is just three feet away so you can set the higher quality settings (no blocking, no dithering, still great framerate).

Diskun

Posts: 5

Joined: 16.01.2014