Closed Astrallys closed 7 years ago
FPS can be due to a variety of factors, I have not added a counter although it should be pretty straightforward to do so. I would be happy to accept a PR here.
The releases (both UWP and WPF edition) are both latest. They are two separate releases.
Thank you for using the software! I hope it is useful to you =)
well, the low fps are only with UWPStreamer.. Watever the settings i used. ( compared to kit-kat ) the fps are always bad here :/
Curious, what are the settings that you are using with UWPStreamer?
all of those settings ( there is the settings is use with kit kat and try with UWPStreamer ) but with UWPStreamer i can't get 30fps :/ Image quality / Priority Factor // QoS Value 90 - 5 - 45 = 33-26 90 - 5 - 101 - 1 = 30-37 90 - 0 - 100 - 1 = 30-37 80 - 2 - 100 - 1 = 38-43 Bottom Screen Scale 0 // 95 - 2 - 100 - 1 = 30-35 50 - 1 - 101 - 0 = 40-45 fps Bottom Screen Scale 0 70 - 1 - 101 - 0 = 40-45 fps Bottom Screen Scale 0 80 - 1 - 101 - 0 = 38-40 fps Bottom Screen Scale 0 80 - 1 - 20 - 0 = 30-35 fps Bottom Screen Scale 0
the fps are the fps lsited are from kit-kat
I will do my best to try to explain, although this may not directly answer your question. Let's begin with a little background on NTR Streaming ;)
Apparently, NTR's internal handling of certain parameters goes against intuition.
The following is taken from the comments RattletraPM's NitroStreamer source code comments:
//If this (QoS) value is higher than 100 then NTR simpli disables the QoS feature, so we just set it to an arbitrary value higher than 100
This is interesting because your results seem to show highest performance when QoS is disabled due to being set above 100 (though this may be more due to reduction of image quality).
Finally, byte 0x1A contains the QoS value. I have no idea why, but NTR expects it to be double its intended value.
For whatever reason, any client that sends over the QoS parameter to NTR needs to be aware of this. UWPStreamer and WPFStreamer take this behavior into account.
During development I recall coming to a conclusion that Priority Factory is wholly dependent on it's implementation in the client. I did my best to employ priority scheduling within UWPStreamer and WPFStreamer. I recall that NitroStreamer handled this completely differently and may have made certain assumptions that may or may not be optimal (same goes for my implementation).
Okay, so with some of the background out of the way, let's look at what should be assumed in UWPStreamer / WPFStreamer given the implementation used there:
Image Quality can drastically improve performance by tuning down. Less data = less time for transmission and faster ability to produce frames
Priority Factor is directly related to the screen that is selected for the screen priority option (Top / Bottom). Easiest way to explain is that if Top is selected as screen priority and Priority factor of X is chosen, NTR will send X frames of the priority screen before sending a packet containing frame data for the Bottom screen. Be aware that this needs to be implemented appropriately in the client to drop bad frames and assemble good frames (frames are sent in multiple packets). UWPStreamer handles this in the NTRRemoteplayReadJPEG
method of Services/NTR.cs
QoS, to my understanding, requires a router capable of enforcing QoS and again requires the client to send double the intended value as mentioned above (due to internal handling by NTR itself).
Lastly, I have also seen reports on Reddit that users sometimes get different performance between UWPStreamer and WPFStreamer. Oddly enough, the code is nearly identical in both releases with subtle differences in the way bytes are assembled to create image data from packets.
I provided a possible explanation for this in an /r/3dshacks thread but still find it puzzling:
The Windows Store (UWPStreamer) version uses DatagramSocket whereas the WPF edition uses UDPClient for receiving frames.
In testing, I noticed that frames dropped if the battery was low on the 3DS or if someone was watching Netflix or battering the network in some way. Barring either of these scenarios it would be expected that the performance should be similar, however, there may be a delay incurred due to differences in the underlying APIs used for each platform.
_FWIW, you could rule out external influence further by directly connecting to the pc using Windows 10's built-in Wifi sharing mentioned here. Wouldn't be surprised if you got the same result though._
Here are the settings I typically use with UWPStreamer: Screen Priority = Top Screen Priority Factor = 1 (sometimes 2) Image Quality = 75 (sometimes 80) QoS Value = 15
While this does not directly answer your question, it may help zone in on a root cause. Does any of this raise a flag to you?
that's a huge text but i have read it. I already know all of this ( read everything i have found before testing ) But the low framerates is weird right ? Of course less Image Quality = better fps but as the name say : Lower quality. ( 75 is correct but i would be surprise to see how many fps you get with that ? ) Maybe it's just a problem with me. But with all the settings i have used that's weird to never get a 30fps :/
@Astrallys , it is possible that this may be an isolated issue.
Here are a few YouTube vids showing various users getting good FPS with UWPStreamer: Play 3DS On Xbox One! | UWPStreamer showcase Poochy & Yoshi's Woolly World | No More Beta Reviews Paper Mario: Sticker Star New Nintendo 3DS Stream Pt 8
Another thing to consider is the game(s) that you may be trying to play. I know some games (Smash Bros., Monster Hunter) tax the CPU a bit harder and can reduce NTR's ability to generate and send frames.
We could also try to ask https://www.reddit.com/user/_pixelheart what settings are being used in his recordings. This might assist in getting to the bottom of better overall settings.
i already saw all of those videos. That's why i don't know but after a little test when we upload the video to YouTube, if the record is with 25 fps after uploading it. We see a smoother video ( i don't know how to explain, French so i do my best )
Know for monster hunter etc.. i 'm waiting for an answer from pixelheart. but i think he have used a quality of 100 because no blurry thing around the letter ( i have paused the video when the text in game is shown )
i will try to found something who can fps overlay the app
@Astrallys ,
FPS could be counted by initiating a 1 second timer in the TryDisplayImage
method of NTR.cs then counting frames for each screen and clearing that value on each timer tick. You would of course have a different FPS value for each screen.
To visualize, you could bind those FPS values to a textblock in MainPage.xaml and finally would be a good idea to implement logic to enable/disable in the MainPage.xaml.cs.
I found something, i monitoring the fps with Action Mirillis ( that show the fps ) i'm at 30 with your settings but it's like a suttering. i have tested all my internet connexion and no problem from that. Do you know if it is possible to lock the fps at 30 ? that can maybe help to get a constant framerate/
@Astrallys , locking the framerate is a great idea! I believe this could be done in theTryDisplayImage
method of NTR.cs as described above, the basic idea being to stop drawing frames once a certain threshold is reached. I wonder if this would actually cause more stuttering though. For example, imagine 30 frames come in, then a halt, then 30 more etc. This could be reduced with a smoothing function but may become complicated in practice due to inconsistencies in network / send rate.
Are you able to pull down the code and build on a local machine? This would be an interesting experiment to explore.
I know nothing about coding. But i give a try this week-end if i can help :) i can try to add interpolation ( i know it's something different )whithout interacting with the frames
I would be happy to help in getting a dev environment setup. If you have a desire to learn, we can make something happen =)
Hello,
Sorry for late respond. I have tried to install the WPF Performance Suite but after installing : Microsoft Windows SDK for Windows 10 and .NET Framework 4 ( with WPF Performance Suite ) selected he's not found on my pc.
2017-06-02 17:17 GMT+02:00 Paul DeCarlo notifications@github.com:
I would be happy to help in getting a dev environment setup. If you have a desire to learn, we can make something happen =)
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/toolboc/UWPStreamer/issues/1#issuecomment-305818167, or mute the thread https://github.com/notifications/unsubscribe-auth/AbaZJGQUPFqXhrAat3-SPUsQLQtOiE4Uks5sACeMgaJpZM4NdO3- .
The WPF Performance Suite will report back the application's overall framerate, not the frames being received from NTR. In order to do that, you will need to watch the critical code areas mentioned in previous reply.
To analyze at the code level, you will need to install Visual Studio 2015 or higher, Community edition is fine => http://visualstudio.com . This will allow you to build and modify the source code for UWP/WPFStreamer which is where the issue would be both measured and remedied.
If you have issues setting up VS and building source please reply back with a screenshot and I would be happy to help.
It's ok, i have needed to use a patch since there is not really incorporate on Windows 10 version.
2017-06-08 18:28 GMT+02:00 Paul DeCarlo notifications@github.com:
Have you installed Visual Studio 2015 or higher? Community edition is fine => http://visualstudio.com
If you have issues after that please replay back with a screenshot.
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/toolboc/UWPStreamer/issues/1#issuecomment-307156488, or mute the thread https://github.com/notifications/unsubscribe-auth/AbaZJNCDMF5p_vXj9PPi-P0LbjBhrBTkks5sCCE8gaJpZM4NdO3- .
I check With Performance Suite the framerat in idle and when a game is running ( and compare with the Action Mirillis fps overlay to see if there is the same framerate or no ), after that, i try to see if i can made a constant 30fps.
2017-06-08 18:34 GMT+02:00 Eric Delattre nocommentary62@gmail.com:
It's ok, i have needed to use a patch since there is not really incorporate on Windows 10 version.
2017-06-08 18:28 GMT+02:00 Paul DeCarlo notifications@github.com:
Have you installed Visual Studio 2015 or higher? Community edition is fine => http://visualstudio.com
If you have issues after that please replay back with a screenshot.
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/toolboc/UWPStreamer/issues/1#issuecomment-307156488, or mute the thread https://github.com/notifications/unsubscribe-auth/AbaZJNCDMF5p_vXj9PPi-P0LbjBhrBTkks5sCCE8gaJpZM4NdO3- .
So, the WPF version as like 1fps drops every 10seconds (i don't know why )but the UWP version run smooth at 30fps constant on Monster Hunter( without any changes )
2017-06-08 18:45 GMT+02:00 Eric Delattre nocommentary62@gmail.com:
I check With Performance Suite the framerat in idle and when a game is running ( and compare with the Action Mirillis fps overlay to see if there is the same framerate or no ), after that, i try to see if i can made a constant 30fps.
2017-06-08 18:34 GMT+02:00 Eric Delattre nocommentary62@gmail.com:
It's ok, i have needed to use a patch since there is not really incorporate on Windows 10 version.
2017-06-08 18:28 GMT+02:00 Paul DeCarlo notifications@github.com:
Have you installed Visual Studio 2015 or higher? Community edition is fine => http://visualstudio.com
If you have issues after that please replay back with a screenshot.
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/toolboc/UWPStreamer/issues/1#issuecomment-307156488, or mute the thread https://github.com/notifications/unsubscribe-auth/AbaZJNCDMF5p_vXj9PPi-P0LbjBhrBTkks5sCCE8gaJpZM4NdO3- .
Interesting, wasn't the original issue with UWPStreamer only?
well, the low fps are only with UWPStreamer.. Watever the settings i used. ( compared to kit-kat ) the fps are always bad here :/
I was thinking but no that' just with the WPF version. Also i have tried to add the constant 30fps but that not work properly. The fps still variable, that only lock the screen view at 30fps.
2017-06-09 3:42 GMT+02:00 Paul DeCarlo notifications@github.com:
Interesting, wasn't the original issue with UWPStreamer only? well, the low fps are only with UWPStreamer.. Watever the settings i used. ( compared to kit-kat ) the fps are always bad here :/
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/toolboc/UWPStreamer/issues/1#issuecomment-307272216, or mute the thread https://github.com/notifications/unsubscribe-auth/AbaZJGZj4WvNDXKP8cSXuhRoQHlJEFk6ks5sCKMRgaJpZM4NdO3- .
Have you notice, UWPstreamer and WPFStreamer are blurry compared to kit-kat ? but les pixels
Technically, kit-kat is a wrapper over NTRViewer which assembles frames sent by NTR in the same way as UWPStreamer. Given that the image data sent from NTR is the same in both applications, this should not be an issue. There may be blurriness experienced when images are resized larger due to stretching of pixels. Can you provide a screenshot of a side by side comparison?
Hi, I cannot open the master build on Visual Studio, too many error on the master build.
2017-06-09 16:01 GMT+02:00 Eric Delattre nocommentary62@gmail.com:
Have you notice, UWPstreamer and WPFStreamer are blurry compared to kit-kat ? but les pixels
2017-06-09 3:43 GMT+02:00 Paul DeCarlo notifications@github.com:
Interesting, wasn't the original issue with UWPStreamer only?
well, the low fps are only with UWPStreamer.. Watever the settings i used. ( compared to kit-kat ) the fps are always bad here :/
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/toolboc/UWPStreamer/issues/1#issuecomment-307272272, or mute the thread https://github.com/notifications/unsubscribe-auth/AbaZJJz2RYlB4zeDASshYMyQHmI7GNsUks5sCKMrgaJpZM4NdO3- .
There is missing files on the master folder. Can you update it ? Thanks,
2017-06-09 18:30 GMT+02:00 Eric Delattre nocommentary62@gmail.com:
Hi, I cannot open the master build on Visual Studio, too many error on the master build.
2017-06-09 16:01 GMT+02:00 Eric Delattre nocommentary62@gmail.com:
Have you notice, UWPstreamer and WPFStreamer are blurry compared to kit-kat ? but les pixels
2017-06-09 3:43 GMT+02:00 Paul DeCarlo notifications@github.com:
Interesting, wasn't the original issue with UWPStreamer only?
well, the low fps are only with UWPStreamer.. Watever the settings i used. ( compared to kit-kat ) the fps are always bad here :/
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/toolboc/UWPStreamer/issues/1#issuecomment-307272272, or mute the thread https://github.com/notifications/unsubscribe-auth/AbaZJJz2RYlB4zeDASshYMyQHmI7GNsUks5sCKMrgaJpZM4NdO3- .
I cannot open the master build on Visual Studio, too many error on the master build
There is missing files on the master folder. Can you update it ?
I just pulled down a fresh copy of the repo from GitHub and the project built successfully on my end.
Have you installed VS 2015 or greater and installed the tools for Win 10 development?
Can you provide a screenshot of the issues you are encountering?
Both are installed but those errors
2017-06-15 16:47 GMT+02:00 Paul DeCarlo notifications@github.com:
I cannot open the master build on Visual Studio, too many error on the master build
There is missing files on the master folder. Can you update it ?
I just pulled down a fresh copy of the repo from GitHub and the project build successfully on my end.
[image: image] https://user-images.githubusercontent.com/2018336/27186981-99c1a5f6-51af-11e7-96a0-bc76b36b8c10.png
Have you installed VS 2015 or greater and installed the tools for Win 10 development https://developer.microsoft.com/en-US/windows/downloads/windows-10-sdk?
Can you provide a screenshot of the issues you are encountering?
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/toolboc/UWPStreamer/issues/1#issuecomment-308756070, or mute the thread https://github.com/notifications/unsubscribe-auth/AbaZJLJY1mrLKZbUNOrfKFTMxrq955Giks5sEUPzgaJpZM4NdO3- .
Both are installed but those errors
Screenshot?
Hello,
First thanks for the good work ( i used both version ) But UWPStream as only low fps. And ( i think you have stopped working on it ) but can you add an fps counter ?
Also which version is up to date ? The precompiled exe or the one from the windows store ? ( because there is not the same )