Resource icon

Free Send raw video over the network

Tudi

New Member
- removed the verbose spamming debug file

Tested 35 fps with 1080p input and 640x480 stream( 1 Mbyte/s data and 11% CPU ). Worked for me. The FPS limitation should come from the amount of data processed. Check if bottleneck is CPU or Network.
 
Thanks.

It shouldn't be a bottle neck. CPU was at 7% and I'm running across a gigabit switch which wasn't being overloaded. Guess I'll have to try some more configs and see how I get on.
 
It doesn't seem to matter what I do but the FPS maxes out at 20. There are no bottle necks as whatever I push from one PC gets through to the other (uncompressed with no resize is about 700mbps) and CPU usage is 5% at most.
 

Tudi

New Member
Are you sure you are using latest build for both capture / render ?
Can you describe all the setting you use ? Worst case just screenshot it and i will try to reproduce your situation. Maybe there is something i'm missing in this report
 
VEONSettings_zpsp4kfqaky.png


Latest build in both cases. I'm going to delete everything and start over fresh in a little bit, just to be sure. If you want me to test anything then just let me know.
 

Tudi

New Member
It's strange that you are stuck exactly at 20 fps. To do the math, you need 1280 * 720 * 3 * 30 bytes / second = 82944000 bytes / sec = 79.1 MByte / sec network speed to be able to push that. I only have one PC and a crappy 100mbit switch ( yeah i know.. ) so i can't even test your setup. BUT it would be normal behavior that my router gets saturated and would limit transfer speed to something lower than 30 FPS.
Can you test some smaller resolution that only requires like 3Mbyte / sec transfer and see if you are still stuck at exactly 20 fps ?
upload_2015-4-8_9-44-2.png

Maybe the issue is not even at the side of the capture PC but the one that renders it ? Maybe there is some limitation there that is blocking to receive more than 20 fps ?
You can try to use console mode capture PC with debug logging and check each step how much time it takes and how much you could stream with in theory.
upload_2015-4-8_10-2-51.png
 
This was on the GamerPC, viewing the stream locally so no network involved:
Encode_zpsx3b7aqud.png


Time Required for Capture seems a lot higher than your results.

EDIT: I'm on Windows 8.1. by the way.
 

Tudi

New Member
I tested on win 7.
I read somewhere that disabling hardware acceleration might give it a boost. Can you test that ?
Back in the old days disabling "aero" or other window arts also boosted render speed ( i can not test this as i do not have win 8 ! ) : http://www.thewindowsclub.com/disable-visual-effects-windows
I tried to search for faster capture methods, but could not find a "good for all" method yet. Will try more...
 
You can't disable Aero in Window 8. Tried disabling all visual effects and I lost a few frames. I haven't got a Windows 7 PC here at the moment but I might be able to spin up a couple of Virtual Machines over the weekend, If I get a chance I'll let you know how it goes. Failing that, I can try it at work next week.
 

Tudi

New Member
Just out of curiosity, is it an option for you to have a smaller input ? If it is desktop input, than set desktop resolution smaller. If it is a window input, than resize to 640x320 ? I'm sure the quality will not be as good as using native resolution, but on renderer side you could apply some smart upscale filters that could remove some of the added artifacts.

Also as info, most humans can hardly distinguish more than 24 fps. Some movies do not even have effective 19 fps ( frameskips, truncated data compression...). Unless you are using an uncompressed video as output, the struggle for very high fps in most cases simply does not worth it.
 
Just out of curiosity, is it an option for you to have a smaller input ? If it is desktop input, than set desktop resolution smaller. If it is a window input, than resize to 640x320 ? I'm sure the quality will not be as good as using native resolution, but on renderer side you could apply some smart upscale filters that could remove some of the added artifacts.
I'll give it a go and see if it makes any difference.

Also as info, most humans can hardly distinguish more than 24 fps. Some movies do not even have effective 19 fps ( frameskips, truncated data compression...). Unless you are using an uncompressed video as output, the struggle for very high fps in most cases simply does not worth it.
I'm one of those people that can but that's more relevant to gameplay and that kind of thing. A mimimum of 24fps would be fine for this but 20 is just a little to low to use. That said, I'm experimenting with what you've made. I have no specific application for it right now so please don't feel under any pressure to make it work any better.
 

Tudi

New Member
got recruited for 2 other projects = sadly i'm putting this one on hold = no plans for porting it to other OS :(
In theory you need to swap out windows socket + image acquire + img render. If you are a decent coder, it could be done within a day or so ( i don't even have OS X or nix installed atm... )

Regarding network speed improvement. An idea would be to add a source filter to check if anything changed since previous capture. Maybe send data as diff...I'm mostly talking to myself to add it some day :D
 
Last edited:

StashCat

New Member
For some reason, when my resolution & FPS are too high, the program crashes. I've tried 10fps 500x250, yet after a few seconds the encoder crashed. 800x600 60fps crashes instantly.
Running Windows 10. Network is not a problem.

I'd love for this to be updated.
 

Tudi

New Member
i don't have windows 10 atm, but i heard that even win 8 has some issues regarding rendering ( even capturing is a lot slower ). Will need to read about it to see how direct memory access issue can be solved.
 

StashCat

New Member
Hey, has there been any progress? I'm thinking of writing something like this myself soon if it's not going to be updated, because my single desktop can't handle streaming CPU-intensive games.
 
Top