Closed cyberork closed 10 years ago
hi @cyberork and thanks for your interest in nodeMirror. the x11 console is my pride right now and i am allways open for suggestions/bugreports i recently added firefox support and updated the codec to the newest version.
yeah you are missing something. and i noticed that there should be a wiki page for this.
the build will be created in a directory called release
pls note that i only fix build step errors when i create a build myself so it could be that your build wont work. let me know. (you would not the first who stumbles over this)
try out the new x11 console implementation i commited yesterday. hope it works fine for you i can display my 720p desktop at 25 fps. but only on firefox and i am using a brand new i7
Hey Strahlemann,
Great, thanks for your quick response, I'll give it a try as soon as I have some time.
X11 low latency remoting is a pretty interesting thing in itself, how about just have that as a separate project from nodeMirror? It should be fairly straight forward based on what you have within nodeMirror. I saw that you are using stdout to pipe avconv's stream to broadway,js, wouldn't a rtsp or UDP based protocol be quicker ? I wonder how much latency using Unix pipes add to that ?
Did you look deeper into broadway.js and the h.264 decoder code itself ?
In any case, nice work,
Thomas
On Sun, Feb 23, 2014 at 5:56 PM, soliton4 notifications@github.com wrote:
hi @cyberork https://github.com/cyberork and thanks for your interest in nodeMirror. the x11 console is my pride right now and i am allways open for suggestions/bugreports i recently added firefox support and updated the codec to the newest version.
yeah you are missing something. and i noticed that there should be a wiki page for this.
- git clone ... yada yada
- cd nodeMirror
- git submodule init
- git submodule update
- npm install
- cd build
- ./build.sh
the build will be created in a directory called release
pls note that i only fix build step errors when i create a build myself so it could be that your build wont work. let me know. (you would not the first who stumbles over this)
try out the new x11 console implementation i commited yesterday. hope it works fine for you i can display my 720p desktop at 25 fps. but only on firefox and i am using a brand new i7
Reply to this email directly or view it on GitHubhttps://github.com/soliton4/nodeMirror/issues/15#issuecomment-35850286 .
the pipe and network latency is really not the issue. the main latency comes from the codec itself. h264 has the best latency i know so far but you need to get high framerates. well you have seen the video.
a stand alone x11 terminal - why not. maybe some later time. besides you can just use nodeMirror for stand alone x11 by only using the terminal module.
i created some resources fyi https://github.com/soliton4/nodeMirror/wiki/_pages
did you successfully build?
i just published a new npm version. so firefox x11 should work now out of the box (hopefully...)
Cool, I'll definitely check it out...
I haven 't build yet but I hope I will have the time to do so in the next couple of days, as soon as I have some time.
Did you try to build it on OS X yet?
Sent from my iPhone
On Feb 24, 2014, at 14:49, soliton4 notifications@github.com wrote:
i created some resources fyi https://github.com/soliton4/nodeMirror/wiki/_pages
did you successfully build?
i just published a new npm version. so firefox x11 should work now out of the box (hopefully...)
— Reply to this email directly or view it on GitHub.
i did not try it but in principal it should work. a colleague of mine did a similar build on os x and it worked. let me know if there are any show stoppers
I checked out your latest bits it does work with ogg encoding but takes forever to get an update with h264. I assume this is related to the fact that I use a 2560x1600 display, so I am going to force nodeMirror to just encode a portion of the desktop after I had a chance build it. In your video you are changing the resolution parameters (x,y) in x11Fun, is that where I should change it too?
Thomas
On Tue, Feb 25, 2014 at 11:49 AM, soliton4 notifications@github.com wrote:
i did not try it but in principal it should work. a colleague of mine did a similar build on os x and it worked. let me know if there are any show stoppers
Reply to this email directly or view it on GitHubhttps://github.com/soliton4/nodeMirror/issues/15#issuecomment-36043098 .
yeah line 54 / 55 //def.resolve({ x: 300, y: 150 });
you can also define a offset but for that you need to change the avconv parameter
the h265 process is called in terminal.js the ogg/webm are in server.js
you can add some threads to the ogg/webm then you should have nice fullscreen encoding.
Thanks,
btw I got your latest working now with good performance running on a local browser and remoting from an OSX client, both were working at 20-25fps for a while and then I got really spotty even though I just went through a local wired (not wireless) network. And after a while it stopped working completely. Did you see anything like that or could you run your remoting session over a longer period of time?
How do you start multiple threads for ogg/webm?
Keep you posted.
Best,
Thomas
On Tue, Feb 25, 2014 at 3:32 PM, soliton4 notifications@github.com wrote:
yeah line 54 / 55 //def.resolve({ x: 300, y: 150 });
you can also define a offset but for that you need to change the avconv parameter
the h265 process is called in terminal.js the ogg/webm are in server.js
you can add some threads to the ogg/webm then you should have nice fullscreen encoding.
Reply to this email directly or view it on GitHubhttps://github.com/soliton4/nodeMirror/issues/15#issuecomment-36067111 .
if your client is not able to handle all the rendering the video stream might break up. take in consideration that its not multithreaded right now. the streams are created in parts of 180 seconds. after 175 seconds a 2nd stream will start and as soon as its ready it takes over. so if your stream breaks up it should restart after 1 - 2 min. for the ogg/webm there is also code that restarts if a stream error happens or if nothing is received for a few seconds. maybe we just need more failsafe code.
the best i could do so far was 25fps on 1280x800 on a i7 4770s machine. for h264 the critical part is browser rendering. you get decent latency if you use webm with 45 fps. u just need to get it encoded fast but that should be possible multithreaded.
look for the avconv parameter generation.
there is a -threads parameter -threads 8 should maybe help you out.
i am working on sound right now. unfortunately sound latency is huge
On Wed, Feb 26, 2014 at 7:38 AM, Thomas Ruge notifications@github.comwrote:
Thanks,
btw I got your latest working now with good performance running on a local browser and remoting from an OSX client, both were working at 20-25fps for a while and then I got really spotty even though I just went through a local wired (not wireless) network. And after a while it stopped working completely. Did you see anything like that or could you run your remoting session over a longer period of time?
How do you start multiple threads for ogg/webm?
Keep you posted.
Best,
Thomas
On Tue, Feb 25, 2014 at 3:32 PM, soliton4 notifications@github.com wrote:
yeah line 54 / 55 //def.resolve({ x: 300, y: 150 });
you can also define a offset but for that you need to change the avconv parameter
the h265 process is called in terminal.js the ogg/webm are in server.js
you can add some threads to the ogg/webm then you should have nice fullscreen encoding.
Reply to this email directly or view it on GitHub< https://github.com/soliton4/nodeMirror/issues/15#issuecomment-36067111>
.
— Reply to this email directly or view it on GitHubhttps://github.com/soliton4/nodeMirror/issues/15#issuecomment-36095723 .
i got 500ms latency with webm on 60fps had to increase threads to 8 and it costs half my cpu but its working even with watching full screen movie.
so if you are aiming for huge screens webm is my recommendation for now. if you need low latency on a small screen and want the client to have the cpu cost use h264
Thanks for that info
Btw, would you be interested in a small but paid consulting project ? If yes, let me know and let's get on the phone/skype. Uebrigens ich bin selber Deutsch, d.h. wir koennen am Telefon auf deutsch sprechen.
Viele Gruesse,
Thomas
On Wed, Feb 26, 2014 at 2:51 AM, soliton4 notifications@github.com wrote:
i got 500ms latency with webm on 60fps had to increase threads to 8 and it costs half my cpu but its working even with watching full screen movie.
so if you are aiming for huge screens webm is my recommendation for now. if you need low latency on a small screen and want the client to have the cpu cost use h264
Reply to this email directly or view it on GitHubhttps://github.com/soliton4/nodeMirror/issues/15#issuecomment-36108217 .
Hi Soliton4,
I finally got around trying to build, I followed the instructions you sent but ran into some errors (attached) related to not finding some directories. Is there anything I am missing ?
Thanks,
Thomas
On Sun, Mar 2, 2014 at 6:42 PM, Thomas Ruge cyberork@gmail.com wrote:
Thanks for that info
Btw, would you be interested in a small but paid consulting project ? If yes, let me know and let's get on the phone/skype. Uebrigens ich bin selber Deutsch, d.h. wir koennen am Telefon auf deutsch sprechen.
Viele Gruesse,
Thomas
On Wed, Feb 26, 2014 at 2:51 AM, soliton4 notifications@github.comwrote:
i got 500ms latency with webm on 60fps had to increase threads to 8 and it costs half my cpu but its working even with watching full screen movie.
so if you are aiming for huge screens webm is my recommendation for now. if you need low latency on a small screen and want the client to have the cpu cost use h264
Reply to this email directly or view it on GitHubhttps://github.com/soliton4/nodeMirror/issues/15#issuecomment-36108217 .
mkdir: cannot create directory ‘../release’: File exists
server build
processing profile resource /home/tomr/Projects/RemoteX11Web/nodeMirror/build/server.profile.js info(107) Package Version: package: dojo; version: 1.10.0-pre processing profile resource /home/tomr/Projects/RemoteX11Web/nodeMirror/src/dojo/dojo.profile.js info(107) Package Version: package: dijit; version: 1.10.0-pre processing profile resource /home/tomr/Projects/RemoteX11Web/nodeMirror/src/dijit/dijit.profile.js processing profile resource /home/tomr/Projects/RemoteX11Web/nodeMirror/src/main/package.js processing profile resource /home/tomr/Projects/RemoteX11Web/nodeMirror/src/server/package.js processing profile resource /home/tomr/Projects/RemoteX11Web/nodeMirror/src/modules/package.js processing profile resource /home/tomr/Projects/RemoteX11Web/nodeMirror/src/sol/package.js processing profile resource /home/tomr/Projects/RemoteX11Web/nodeMirror/src/term/package.js processing profile resource /home/tomr/Projects/RemoteX11Web/nodeMirror/src/codemirror/package.js info(107) Package Version: package: dgrid; version: 0.3.7 processing profile resource /home/tomr/Projects/RemoteX11Web/nodeMirror/src/dgrid/package.js info(107) Package Version: package: put-selector; version: 0.3.4 processing profile resource /home/tomr/Projects/RemoteX11Web/nodeMirror/src/put-selector/package.js info(107) Package Version: package: xstyle; version: 0.1.2 processing profile resource /home/tomr/Projects/RemoteX11Web/nodeMirror/src/xstyle/package.js warn(209) Missing or empty package.json. filename: /home/tomr/Projects/RemoteX11Web/nodeMirror/src/audio/package.json warn(209) Missing or empty package.json. filename: /home/tomr/Projects/RemoteX11Web/nodeMirror/src/video/package.json processing profile resource /home/tomr/Projects/RemoteX11Web/nodeMirror/src/promiseland/package.js discovering resources... starting reading resources... starting processing raw resource content... starting tokenizing resource... starting processing resource tokens... starting parsing resource... warn(225) A directory that was scheduled to be read during discovery did not exist. directory: /home/tomr/Projects/RemoteX11Web/nodeMirror/src/audio warn(225) A directory that was scheduled to be read during discovery did not exist. directory: /home/tomr/Projects/RemoteX11Web/nodeMirror/src/audio warn(225) A directory that was scheduled to be read during discovery did not exist. directory: /home/tomr/Projects/RemoteX11Web/nodeMirror/src/video warn(225) A directory that was scheduled to be read during discovery did not exist. directory: /home/tomr/Projects/RemoteX11Web/nodeMirror/src/video { [Error: spawn ENOENT] code: 'ENOENT', errno: 'ENOENT', syscall: 'spawn' } Error: spawn ENOENT at errnoException (child_process.js:980:11)
at Process.ChildProcess._handle.onexit (child_process.js:771:34)
client build
processing profile resource /home/tomr/Projects/RemoteX11Web/nodeMirror/build/client.profile.js info(107) Package Version: package: dojo; version: 1.10.0-pre processing profile resource /home/tomr/Projects/RemoteX11Web/nodeMirror/src/dojo/dojo.profile.js info(107) Package Version: package: dijit; version: 1.10.0-pre processing profile resource /home/tomr/Projects/RemoteX11Web/nodeMirror/src/dijit/dijit.profile.js info(107) Package Version: package: dojox; version: 1.9.0dev processing profile resource /home/tomr/Projects/RemoteX11Web/nodeMirror/src/dojox/dojox.profile.js info(107) Package Version: package: dgrid; version: 0.3.7 processing profile resource /home/tomr/Projects/RemoteX11Web/nodeMirror/src/dgrid/package.js info(107) Package Version: package: put-selector; version: 0.3.4 processing profile resource /home/tomr/Projects/RemoteX11Web/nodeMirror/src/put-selector/package.js info(107) Package Version: package: xstyle; version: 0.1.2 processing profile resource /home/tomr/Projects/RemoteX11Web/nodeMirror/src/xstyle/package.js processing profile resource /home/tomr/Projects/RemoteX11Web/nodeMirror/src/main/package.js processing profile resource /home/tomr/Projects/RemoteX11Web/nodeMirror/src/client/package.js processing profile resource /home/tomr/Projects/RemoteX11Web/nodeMirror/src/sol/package.js processing profile resource /home/tomr/Projects/RemoteX11Web/nodeMirror/src/jshint/package.js processing profile resource /home/tomr/Projects/RemoteX11Web/nodeMirror/src/peg/package.js processing profile resource /home/tomr/Projects/RemoteX11Web/nodeMirror/src/codemirror/package.js processing profile resource /home/tomr/Projects/RemoteX11Web/nodeMirror/src/modules/package.js warn(209) Missing or empty package.json. filename: /home/tomr/Projects/RemoteX11Web/nodeMirror/src/style/package.json processing profile resource /home/tomr/Projects/RemoteX11Web/nodeMirror/src/term/package.js warn(209) Missing or empty package.json. filename: /home/tomr/Projects/RemoteX11Web/nodeMirror/src/debug/package.json warn(209) Missing or empty package.json. filename: /home/tomr/Projects/RemoteX11Web/nodeMirror/src/image/package.json warn(209) Missing or empty package.json. filename: /home/tomr/Projects/RemoteX11Web/nodeMirror/src/audio/package.json warn(209) Missing or empty package.json. filename: /home/tomr/Projects/RemoteX11Web/nodeMirror/src/video/package.json processing profile resource /home/tomr/Projects/RemoteX11Web/nodeMirror/src/promiseland/package.js processing profile resource /home/tomr/Projects/RemoteX11Web/nodeMirror/src/avc/package.js discovering resources... starting reading resources... starting processing raw resource content... starting tokenizing resource... starting processing resource tokens... starting parsing resource... warn(225) A directory that was scheduled to be read during discovery did not exist. directory: /home/tomr/Projects/RemoteX11Web/nodeMirror/src/audio warn(225) A directory that was scheduled to be read during discovery did not exist. directory: /home/tomr/Projects/RemoteX11Web/nodeMirror/src/audio warn(225) A directory that was scheduled to be read during discovery did not exist. directory: /home/tomr/Projects/RemoteX11Web/nodeMirror/src/video warn(225) A directory that was scheduled to be read during discovery did not exist. directory: /home/tomr/Projects/RemoteX11Web/nodeMirror/src/video { [Error: spawn ENOENT] code: 'ENOENT', errno: 'ENOENT', syscall: 'spawn' } Error: spawn ENOENT at errnoException (child_process.js:980:11)
at Process.ChildProcess._handle.onexit (child_process.js:771:34)
copy
cp: cannot stat ‘../release/client/dojo/dojo.js’: No such file or directory cp: cannot stat ‘../release/client/dojo/dojo.js.map’: No such file or directory cp: cannot stat ‘../release/client/dojo/dojo.js.uncompressed.js’: No such file or directory cp: cannot stat ‘../release/client/dojo/nls’: No such file or directory cp: cannot stat ‘../release/client/dojo/resources’: No such file or directory cp: cannot stat ‘../release/client/dojo/selector’: No such file or directory cp: cannot stat ‘../release/client/dgrid/css’: No such file or directory cp: cannot stat ‘../release/client/dijit/nls’: No such file or directory cp: cannot stat ‘../release/client/dijit/icons’: No such file or directory cp: cannot stat ‘../release/client/dijit/themes’: No such file or directory cp: cannot stat ‘../release/client/dojox/editor/plugins/resources’: No such file or directory cp: cannot stat ‘../release/client/jshint/jshint.js’: No such file or directory cp: cannot stat ‘../release/server/server/server.js’: No such file or directory cp: cannot stat ‘../release/client/style/style.css’: No such file or directory cp: omitting directory ‘../src/image/cursor’ cp: omitting directory ‘../src/image/logo’ cp: omitting directory ‘../src/image/screenshots’ cp: cannot stat ‘../release/client/avc/Avc.js’: No such file or directory cp: cannot stat ‘../release/client/avc/avc-codec.js’: No such file or directory cp: cannot stat ‘../release/client/avc/canvas.js’: No such file or directory cp: cannot stat ‘../release/client/avc/glUtils.js’: No such file or directory cp: cannot stat ‘../release/client/avc/util.js’: No such file or directory cp: cannot stat ‘../release/client/avc/sylvester.js’: No such file or directory cp: cannot stat ‘../release/client/avc/Wgt.js’: No such file or directory
that audio and video errors are to be ignored. i screwed up there but that doesnt stop the build. your release directory is being created
the problem seems to be spawing processes are you sure you have java installed?
greetinx from my amsterdam trip. lets talk when i get back next week
You were right, I missed java. I got it build now but can't see the x11-console when using my freshly build nodeMirror. I will dig into it a bit to give you more info soon.
Talk next week sounds great, early next week would work better than later. Let me know what time would work best for you. Have fun in Amsterdam.
Thomas
On Mon, Mar 3, 2014 at 1:21 AM, soliton4 notifications@github.com wrote:
that audio and video errors are to be ignored. i screwed up there but that doesnt stop the build. your release directory is being created
the problem seems to be spawing processes are you sure you have java installed?
greetinx from my amsterdam trip. lets talk when i get back next week
Reply to this email directly or view it on GitHubhttps://github.com/soliton4/nodeMirror/issues/15#issuecomment-36489291 .
man ;p read the docu! or watch the video in both its explained that you have to pass a commandline parameter to use the x11 its no use as default on
i want you actually to read doku/watch video so im not gonna tell you the param ;p
On Wed, Mar 5, 2014 at 3:19 PM, Thomas Ruge notifications@github.comwrote:
You were right, I missed java. I got it build now but can't see the x11-console when using my freshly build nodeMirror. I will dig into it a bit to give you more info soon.
Talk next week sounds great, early next week would work better than later. Let me know what time would work best for you. Have fun in Amsterdam.
Thomas
On Mon, Mar 3, 2014 at 1:21 AM, soliton4 notifications@github.com wrote:
that audio and video errors are to be ignored. i screwed up there but that doesnt stop the build. your release directory is being created
the problem seems to be spawing processes are you sure you have java installed?
greetinx from my amsterdam trip. lets talk when i get back next week
Reply to this email directly or view it on GitHub< https://github.com/soliton4/nodeMirror/issues/15#issuecomment-36489291>
.
— Reply to this email directly or view it on GitHubhttps://github.com/soliton4/nodeMirror/issues/15#issuecomment-36746034 .
haha...
admittedly the missing java was a bad move, but I do use --x11terminal as the command line parameter and I do get the X11 terminal section. Just tried it again and now it worked. I did notice that sometimes I do get a white canvas when clicking 'X11' and I don 't think it's a user error...
... and I watched your youtube movie 2 times already;-)
talk to you next week
Thomas
On Wed, Mar 5, 2014 at 8:01 AM, soliton4 notifications@github.com wrote:
man ;p read the docu! or watch the video in both its explained that you have to pass a commandline parameter to use the x11 its no use as default on
i want you actually to read doku/watch video so im not gonna tell you the param ;p
On Wed, Mar 5, 2014 at 3:19 PM, Thomas Ruge notifications@github.comwrote:
You were right, I missed java. I got it build now but can't see the x11-console when using my freshly build nodeMirror. I will dig into it a bit to give you more info soon.
Talk next week sounds great, early next week would work better than later. Let me know what time would work best for you. Have fun in Amsterdam.
Thomas
On Mon, Mar 3, 2014 at 1:21 AM, soliton4 notifications@github.com wrote:
that audio and video errors are to be ignored. i screwed up there but that doesnt stop the build. your release directory is being created
the problem seems to be spawing processes are you sure you have java installed?
greetinx from my amsterdam trip. lets talk when i get back next week
Reply to this email directly or view it on GitHub< https://github.com/soliton4/nodeMirror/issues/15#issuecomment-36489291>
.
Reply to this email directly or view it on GitHub< https://github.com/soliton4/nodeMirror/issues/15#issuecomment-36746034> .
Reply to this email directly or view it on GitHubhttps://github.com/soliton4/nodeMirror/issues/15#issuecomment-36750388 .
the build version has less error reporting run the git version and check the console. what browser do you use? canvas means you use h264?
On Wed, Mar 5, 2014 at 4:29 PM, Thomas Ruge notifications@github.comwrote:
haha...
admittedly the missing java was a bad move, but I do use --x11terminal as the command line parameter and I do get the X11 terminal section. Just tried it again and now it worked. I did notice that sometimes I do get a white canvas when clicking 'X11' and I don 't think it's a user error...
... and I watched your youtube movie 2 times already;-)
talk to you next week
Thomas
On Wed, Mar 5, 2014 at 8:01 AM, soliton4 notifications@github.com wrote:
man ;p read the docu! or watch the video in both its explained that you have to pass a commandline parameter to use the x11 its no use as default on
i want you actually to read doku/watch video so im not gonna tell you the param ;p
On Wed, Mar 5, 2014 at 3:19 PM, Thomas Ruge <notifications@github.com wrote:
You were right, I missed java. I got it build now but can't see the x11-console when using my freshly build nodeMirror. I will dig into it a bit to give you more info soon.
Talk next week sounds great, early next week would work better than later. Let me know what time would work best for you. Have fun in Amsterdam.
Thomas
On Mon, Mar 3, 2014 at 1:21 AM, soliton4 notifications@github.com wrote:
that audio and video errors are to be ignored. i screwed up there but that doesnt stop the build. your release directory is being created
the problem seems to be spawing processes are you sure you have java installed?
greetinx from my amsterdam trip. lets talk when i get back next week
Reply to this email directly or view it on GitHub< https://github.com/soliton4/nodeMirror/issues/15#issuecomment-36489291
.
Reply to this email directly or view it on GitHub< https://github.com/soliton4/nodeMirror/issues/15#issuecomment-36746034> .
Reply to this email directly or view it on GitHub< https://github.com/soliton4/nodeMirror/issues/15#issuecomment-36750388>
.
— Reply to this email directly or view it on GitHubhttps://github.com/soliton4/nodeMirror/issues/15#issuecomment-36753677 .
Quick update.
I modified x11Fun.js to reduce the resolution (my desk is 2560x1600, a bit too high for avconv) to 1280x720 and it worked pretty well on localhost at 30 fps. Then I logged in from my Macbook Air using firefox over the local network and got good interaction at settings with 12 up to 15 fps on my first test, anything higher and the performance would drop a lot and latency would go up to 30 sec. Unfortunately on subsequent tests I didn't get the same performance anymore, even though nothing changed.
Next step was connecting from my office with my Macbook Air to my linux machine at home over public internet. It did work at 5 fps but latency was up to 1 min.
I notice big variations in performance from test to test with no changes to the set up, any idea what could cause that ?
In summary I think it's a really impressive proof of concept. In order to get it usable over longer network distances, I think the first step is to replace the unix pipes as transportation layer and use a proper network layer with TCP at first and later using UDP with QoS, w hat do you think?
Let's definitely talk next week, would Monday or Tuesday work for you?
Best,
Thomas
On Wed, Mar 5, 2014 at 9:01 AM, soliton4 notifications@github.com wrote:
the build version has less error reporting run the git version and check the console. what browser do you use? canvas means you use h264?
On Wed, Mar 5, 2014 at 4:29 PM, Thomas Ruge notifications@github.comwrote:
haha...
admittedly the missing java was a bad move, but I do use --x11terminal as the command line parameter and I do get the X11 terminal section. Just tried it again and now it worked. I did notice that sometimes I do get a white canvas when clicking 'X11' and I don 't think it's a user error...
... and I watched your youtube movie 2 times already;-)
talk to you next week
Thomas
On Wed, Mar 5, 2014 at 8:01 AM, soliton4 notifications@github.com wrote:
man ;p read the docu! or watch the video in both its explained that you have to pass a commandline parameter to use the x11 its no use as default on
i want you actually to read doku/watch video so im not gonna tell you the param ;p
On Wed, Mar 5, 2014 at 3:19 PM, Thomas Ruge <notifications@github.com wrote:
You were right, I missed java. I got it build now but can't see the x11-console when using my freshly build nodeMirror. I will dig into it a bit to give you more info soon.
Talk next week sounds great, early next week would work better than later. Let me know what time would work best for you. Have fun in Amsterdam.
Thomas
On Mon, Mar 3, 2014 at 1:21 AM, soliton4 notifications@github.com wrote:
that audio and video errors are to be ignored. i screwed up there but that doesnt stop the build. your release directory is being created
the problem seems to be spawing processes are you sure you have java installed?
greetinx from my amsterdam trip. lets talk when i get back next week
Reply to this email directly or view it on GitHub<
https://github.com/soliton4/nodeMirror/issues/15#issuecomment-36489291
.
Reply to this email directly or view it on GitHub< https://github.com/soliton4/nodeMirror/issues/15#issuecomment-36746034>
.
Reply to this email directly or view it on GitHub< https://github.com/soliton4/nodeMirror/issues/15#issuecomment-36750388>
.
Reply to this email directly or view it on GitHub< https://github.com/soliton4/nodeMirror/issues/15#issuecomment-36753677> .
Reply to this email directly or view it on GitHubhttps://github.com/soliton4/nodeMirror/issues/15#issuecomment-36757676 .
the pipes are not the problem. h264 has horrible bandwith use right now. we get at least the amount out of it, that is lost in base64 encoding. so bandwith is a problem for h264 and will result in long latency. for internet use i recommend webm. it takes more encoding power on the server but you can boost up the thread usage. i got 5 sec latency over mobile net accessing my atom 1,8 ghz super slow server so that proves that you can use it over internet. h264 is good for lan only and only if you have >10 mbit connection. its insane usage on bandwith maybe we get some better results with changing the ffmpeg parameters but im a video noob. well not anymore but i was recently ... so if you wanna play with it, play with params. i will try to find a way arround base64. and we may get one frame better latency by getting the frame detection code to the client.
you see there is lots of potential.
there is also a problem with rendering h264 on clients. it uses only one thread and there is no easy way arround that. so even if you have the newest i7 like i do at the mom. you will not get the hole cpu to help decoding it.
these are the limitations at the mom.
read this 3 or 4 times because i am one stoned pony at the mom.
greetinx from amsterdam
Hey Soliton,
glad you're having fun in Amsterdam but you should come over here to Stonerville Denver. Here in CO it is legal too and there are sooo many shops you won't believe!
I looked into the bandwidth consumption and wow! You're right consumption is really high. I measured 30 MBit/s when streaming 1280x720 at 12 fps. My former team at NVIDIA developed a remoting solution using NVIDIA's GRID SDK and we finetuned x264's encode parameter to the point where we could stream 1920x1080@30 fps at as low as 2 Mbit/s, so I was able to actually run a streaming session tethering my iphone 4 (3G) w/o problems.
So, I am going to look into x264s encode parameter to see whether we can bring down the required bandwidth. I know that broadway.js is limited in its h.264 support but I am not sure in what ways it is limited. Do you know how well broadway.js is supporting h264?
Where within nodemirror can I tweak the avconv/x264 parameters ? I changed some in server.js but nodeMirror didn't pick up my changes. Can you point me to the file and line number where I can change the encode parameters (I saw there were multiple avconv parameter setting across the code ...).
Thanks + enjoy your time in Amsterdam's coffee shops ;-),
Thomas
On Thu, Mar 6, 2014 at 4:52 PM, soliton4 notifications@github.com wrote:
the pipes are not the problem. h264 has horrible bandwith use right now. we get at least the amount out of it, that is lost in base64 encoding. so bandwith is a problem for h264 and will result in long latency. for internet use i recommend webm. it takes more encoding power on the server but you can boost up the thread usage. i got 5 sec latency over mobile net accessing my atom 1,8 ghz super slow server so that proves that you can use it over internet. h264 is good for lan only and only if you have >10 mbit connection. its insane usage on bandwith maybe we get some better results with changing the ffmpeg parameters but im a video noob. well not anymore but i was recently ... so if you wanna play with it, play with params. i will try to find a way arround base64. and we may get one frame better latency by getting the frame detection code to the client.
you see there is lots of potential.
there is also a problem with rendering h264 on clients. it uses only one thread and there is no easy way arround that. so even if you have the newest i7 like i do at the mom. you will not get the hole cpu to help decoding it.
these are the limitations at the mom.
read this 3 or 4 times because i am one stoned pony at the mom.
greetinx from amsterdam
Reply to this email directly or view it on GitHubhttps://github.com/soliton4/nodeMirror/issues/15#issuecomment-36952839 .
https://github.com/soliton4/nodeMirror/blob/master/src/server/server.js at line 232 are the params for ogg and webm since they are simple http requests.
https://github.com/soliton4/nodeMirror/blob/master/src/modules/Terminal.js at line 335 are the x264 params you can see i played arround with it a lot
this is where i got the params for h264 http://x264dev.multimedia.cx/archives/249
i am happy for suggestions. i was a total video noob not long ago so dont expect to much knowhow on my part
Hi,
kurzer update, ich habe einigen Fortschritt gemacht was die x264 parameter angeht. Ich habe einiges recherchiert und kann jetzt die x11-console mit 1280x720p mit 30 fps betreiben mit maximal 8 Mbit/s, in der Regel eher um die 2-3 Mbit/s.
Ich hab' inzwischen auch einen Test gemacht und habe nodemirror bei mir zuhase laufen und kann mich von der Arbeit ueber das internet einloggen. Laeuft auch einigermassen mit 30 fps und relativ kurzer Latenzzeit. Allerdings ist das ganze etwas jittery und wenn ich ein movie laufen lasse, kann es auch mal zu sehr langen Latenzeiten fuehren und irgendwann haengt das ganze.
Hast Du mal Zeit fuer ein kurzes Gespraech ueber skype in den naechsten Tagen? Ich haette ein paar Fragen an Dich und wuerde gerne wissen ob Du fuer einen kurzen Auftrag zu haben waerest?
Hoffe der Aufenthalt in Amsterdam war spassig,
Thomas
On Sat, Mar 8, 2014 at 9:20 AM, soliton4 notifications@github.com wrote:
https://github.com/soliton4/nodeMirror/blob/master/src/server/server.js at line 232 are the params for ogg and webm since they are simple http requests.
https://github.com/soliton4/nodeMirror/blob/master/src/modules/Terminal.js at line 335 are the x264 params you can see i played arround with it a lot
this is where i got the params for h264 http://x264dev.multimedia.cx/archives/249
i am happy for suggestions. i was a total video noob not long ago so dont expect to much knowhow on my part
Reply to this email directly or view it on GitHubhttps://github.com/soliton4/nodeMirror/issues/15#issuecomment-37101866 .
hi pls stick to english in git for documentation
we can make a hangout ofc. you need to send me your email address and a prefered time
i tried to get the rendering multithreaded by using iframes to do the work. but the result is rather disappointing. i am at 30fps for 720p in firefox and 20fps in chrome
latency went down another frame because of changes.
check it out.
there is a new object in the terminal folder called avcRunner which does the spawn.
how did you get the bitrate down? changing the parameters? tell me how!
cu
Sorry about the German,
will stick with English going forward.
I got the bitrate down by experimenting with different parameters and by doing more H264 research. I'll send you the parameters I used by EOD. The parameters that are currently in nodeMirror are peaking when nothing changes, didn't look into exactly and just started from a basic parameter set and worked my way up.
Let's sync up over email about our quick chat: cyberork@gmail.com
Thomas
On Tue, Mar 11, 2014 at 12:26 PM, soliton4 notifications@github.com wrote:
hi pls stick to english in git for documentation
we can make a hangout ofc. you need to send me your email address and a prefered time
i tried to get the rendering multithreaded by using iframes to do the work. but the result is rather disappointing. i am at 30fps for 720p in firefox and 20fps in chrome
latency went down another frame because of changes.
check it out.
there is a new object in the terminal folder called avcRunner which does the spawn.
how did you get the bitrate down? changing the parameters? tell me how!
cu
Reply to this email directly or view it on GitHubhttps://github.com/soliton4/nodeMirror/issues/15#issuecomment-37331579 .
have sent you 2 mails. no response so far ...
Sorry 'bout that, I am pretty busy atm. I am going to send out the parameters tonight.
On Wed, Mar 12, 2014 at 12:17 PM, soliton4 notifications@github.com wrote:
have sent you 2 mails. no response so far ...
Reply to this email directly or view it on GitHubhttps://github.com/soliton4/nodeMirror/issues/15#issuecomment-37444144 .
Here it is:
var params = [
"-f", "x11grab",
"-r", "30",
"-s", "1280x720",
"-i", ":0.0+0,0",
"-vcodec", "libx264",
"-pre", "ultrafast",
"-tune", "zerolatency",
"-threads", "4",
"-f", "h264"
];
I have tested about a dozen different variations and this one is so far the best but I am pretty sure I can find even better ones yet.
One issue with the current setup is that when the encoder is producing more data than the network connection can handle , alot of data gets buffered and latency can get pretty long, a feedback mechanism between client and server that would throttle the stream would help but to my knowledge avconv can't change encode rate programmatically, so it would need an alternative to avconv actually...
On Wed, Mar 12, 2014 at 3:58 PM, Thomas Ruge cyberork@gmail.com wrote:
Sorry 'bout that, I am pretty busy atm. I am going to send out the parameters tonight.
On Wed, Mar 12, 2014 at 12:17 PM, soliton4 notifications@github.comwrote:
have sent you 2 mails. no response so far ...
Reply to this email directly or view it on GitHubhttps://github.com/soliton4/nodeMirror/issues/15#issuecomment-37444144 .
should no longer be an issue with configurable bandwidth.
Love your x11terminal forwarding and started playing with it, but I do have problems building it.
Do I miss something ?