Html5? Remote Desktop? Playable?


Blue Ion said:
What was happening in may computer and the reason why it lagged so much was that the game was capped at 25 fps, so now it is 40ms, vlc was actually taking more than 40 ms to encode each frame, plus some artificial lag to encode present frames using future frames which adds 160 ms on top of that, plus a cache or buffer vlc had that I forgot to disable adding 100 ms.
If you sum everything now, the lag goes to 355ms, still bearable, but now noticeable. In my case the weak link was the encoder.

So the weak link is the encoder (this breaks up each frame into packet sized pieces?) which sounds like a math/optimization problem. Is it that hard to make it faster? I feel like a total noob saying, "can't you just make it go?" I know it is more complex I have just been trying to figure out if this is project that will be solved soon, or they just need more help. I want to help, but I have a lot to learn and I would be very frustrated to arrive and find out that it is A: already solved who wants to re-invent the wheel (unless it needed re-inventing) or B: so close to done that no one needs my help. I don't mind contributing in little ways, I just want to get experience while doing something fun and making friends.
 
Last edited by a moderator:
XxionxX said:
Blue Ion said:
What was happening in may computer and the reason why it lagged so much was that the game was capped at 25 fps, so now it is 40ms, vlc was actually taking more than 40 ms to encode each frame, plus some artificial lag to encode present frames using future frames which adds 160 ms on top of that, plus a cache or buffer vlc had that I forgot to disable adding 100 ms.
If you sum everything now, the lag goes to 355ms, still bearable, but now noticeable. In my case the weak link was the encoder.

So the weak link is the encoder (this breaks up each frame into packet sized pieces?) which sounds like a math/optimization problem. Is it that hard to make it faster? I feel like a total noob saying, "can't you just make it go?" I know it is more complex I have just been trying to figure out if this is project that will be solved soon, or they just need more help. I want to help, but I have a lot to learn and I would be very frustrated to arrive and find out that it is A: already solved who wants to re-invent the wheel (unless it needed re-inventing) or B: so close to done that no one needs my help. I don't mind contributing in little ways, I just want to get experience while doing something fun and making friends.

That is how is set up, if you want high compression you are going to need a beffy computer or else you are going to get lag or worse, dropped frames. On the other hand you can sacrifice quality or compression on lower end computers to get less encoder lag, but if you exceed your upstream bandwidth, then you are going to be on the same trouble as before.

As I said, I've read x264 seems perfectly capable of doing realtime encodes, you won't have to do an other encoder or optimize this one (something quite hard considering the years and years of work it already has). Creating codecs is not walk in the park, specially if you want it efficient in some way, like in this case, reach the minimum bandwidth and minimum lag as those two are going to be the biggest bottlenecks, so if you want to start on something, just start on a client programa that sends input and receives a video stream and server that captures and sends video and receives input, using a library like libx264 to do the encoding (with proper tuning).

That'll get you started on something and later down the road you should be able to switch codecs (should you want to do one after all),
 
Last edited by a moderator:
EvilDragon said:
It's so slow because VNC transfers too much data.
NX would suite better - but AFAIK it's not open :(
In theory, a developer with the time and motive could port OpenNX Client to ARM.
 
Last edited by a moderator:
Soo any hope that I can play EverQuest 2 over the web on my Pandora in the future?
 
What exactly is the main problem, is it the frames that have to be sent over?
 
Why has nobody mentioned (again) StreamMyGame? There's been quite a few threads over the years on this topic, and Stream My Game always looked to be the most promising solution, and last I heard (half a year ago) they intended to add ARM support to it.

Err if you want more info on Streammygame google or wikipedia is the answer, I don't have links handy.
 
trix said:
Why has nobody mentioned (again) StreamMyGame? There's been quite a few threads over the years on this topic, and Stream My Game always looked to be the most promising solution, and last I heard (half a year ago) they intended to add ARM support to it.

Err if you want more info on Streammygame google or wikipedia is the answer, I don't have links handy.
So can you use this to stream games installed from you're PC to the Pandora?
 
Last edited by a moderator:
Let's keep these ideas going. I think there are a few ways to speed this up, but some of it is going to take work by people who know what they're doing.

Frame component selectivity. From frame 1 to frame 2, usually not everything changes. Sometimes it does, but usually many if not the majority of the pixels don't change. This varies on application. Static desktops or a mouse moving is little to no change frame to frame. A side-scroll game is a lot of change frame to frame. Anyway, the protocols are smart enough to only send complete frames when necessary and otherwise only send updates based on what has changed (the delta) from frame 1 to frame 2. Or at least I hope they are.

Host frame pre-scaling for remote Client device. If a specific (Linux) Host can be told - your clients will be a Pandora device with 800x480 display. Pre-scale the image prior to compression - both for pixel count AND colors. There is no point in compressing and transmitting a 1920x1200 32bit 120fps Host result if the remote device is going to have to do a pile of work to make it fit in it's environment. The idea is to push as much of the processing load as possible onto the Host to decrease data needed for transmission and to decrease the amount of remote processing needed.

Host frame compression seems to be an issue. What happens if the compression engine gets multi-threaded and splits the frame into as many sections as the host box has CPU cores? I know this isn't a linear process - but by the time you get out to 4+ cores wouldn't the compression time be cut to about 1/3? So far the engines I've seen for VNC host side seem to have been written in the age of single core CPUs.

Data transfer. Bandwidth and latency - both highly important and nearly impossible to control for.

Client frame decompression. CPU and/or GPU intense. Are there any hidden video decompression protocols in our GPU that might help out here? I.e. can some of this work be off-loaded to the GPU in a Pandora optimized client?

Client frame rendering. If the host has pre-shrunk the output to the display size and color depth and only sent updated pixels and the GPU is leveraged for decompression - isn't that going to be about as smooth as it can get for the device?

Sound streaming. I have no idea how to optimize this. There is a big trade off between sound quality and compression. Audio sync so that it lines up with the video has to be contended with. Setting the host so that it -doesn't- make noise locally while transmitting audio to the remote client is important too.

Controls transmission. Sending the controller information from the Pandora Client back to the Host could be optimized some if the host knows it's talking to a Pandora. I.e. a device with two analog sticks, etc...

Taking it 6 steps farther. Now, optimize a host box so that it can serve 5, 10, dozens of Pandora clients - each with it's own log in, desktop, video, sound. Distribute the host boxes around the world so that latency and networking lag is minimized. Pandora Cloud. How cool would that be?
 
TylerAW said:
trix said:
Why has nobody mentioned (again) StreamMyGame? There's been quite a few threads over the years on this topic, and Stream My Game always looked to be the most promising solution, and last I heard (half a year ago) they intended to add ARM support to it.

Err if you want more info on Streammygame google or wikipedia is the answer, I don't have links handy.
So can you use this to stream games installed from you're PC to the Pandora?

That's the idea. They have expressed interest in porting to ARM and Pandora, but that was 2 years ago. Maybe some more posts in this thread at StreamMyGame.com would help sway them.
 
Last edited by a moderator:
lol just tried http://sourceforge.n...ojects/thinvnc/ with the same server and host...
5256.png
 
Back
Top