Jump to content

Streaming quality


Luke

Recommended Posts

Redshirt

Also according to speedtest.net the global average upload rate is 4.65 Mb/ps, so my internet connection will be a good baseline to build our streaming speeds from.

Link to comment
Share on other sites

I think you will also have to consider limiting resolution. In fact, I think capping that might be better than reducing the framerate.

Link to comment
Share on other sites

Q 1: .15M/ps

Q 2: .25M/ps

Q 3: .35M/ps

Q 4: .45M/ps

Q 5: 1.9M/ps

 

As mark can stream all 1,2,3,4 on the net I think it would be good to have another in between .45 and 1.9 as its a big jump it think perhaps somewhere around 1.1M-1.2M. Limiting res on the lower settings is a good idea. I also think that dropping the fr on the two lowest settings will produce a better visual image 18 fps is the setting that "apparently" still produces smooth movement to the human eye.

Link to comment
Share on other sites

I think the problem lies with not the d/l but the upload from the server. Most isp's have "shaped" upload Marks connection is 5mbps up which maxes out at 625kbp/s even if there is nothing using the net it doesn't leave much to play with. Even 100kbp/s difference translates to a considerable amount of quality loss/gain

Link to comment
Share on other sites

Well it will vary between isp's but no nothing we can do. We need to be able to test what the capabilities of the connection are somehow then despite what is requested serve up what will work (if that is possible) Something like http://www.m0interactive.com/archives/2008/02/06/how_to_calculate_network_bandwidth_speed_in_c_/ That way we can deliver the best working video feed for any connection. We would only do this for profiles aimed at the internet not the top 2 lan/wifi

Link to comment
Share on other sites

If we had the ability to autodetect that, it's possible the quality settings may not be needed at all, except, perhaps, to account for low power servers and/or client devices.

Link to comment
Share on other sites

Tikuf,

 

If we're going to add a sixth level then please supply bitrates for each of the three formats.

 

Also, please review my latest check-in with the video handler. I use the desired quality level to compare it to the video and see if we can just use -codec copy to save some cpu cycles. This is only for h264. I didn't bother with webm and asf because how many people keep those kinds of files.

Link to comment
Share on other sites

I've added the sixth quality level and updated 1-5 based on Mark's suggestions. I took a guess at the new quality level so please let me know if I should revise.

Link to comment
Share on other sites

yup I will get to some testing a bit later tonight. I also want to test on a slow machine (i just have to build up one i have here)

Link to comment
Share on other sites

Scott & Mark,

 

I think you guys should also pursue direct play options for win8 and android. That means if you can detect a their connected to their internal network, then when they play you examine the video properties and see if you can just play the file directly over the lan. So you'd have to look the file extension, resolution, video codec, audio codec, etc. It would be a pain but it would spare the server's cpu big time.

Link to comment
Share on other sites

Redshirt

I'm able to determine whether or not I'm on WiFi or cellular, so direct play has always been on my to-do list. The more we play with these quality settings, the more I think we should just have the client specify the devices screen resolution and have the server send appropriate resolutions based on quality setting. Don't even let the client try to request a higher resolution than is feasibly playable.

Link to comment
Share on other sites

I think there's too many factors to give the server all of that decision making.

 

If anything I lean towards giving the client more control but it just means more work for you guys.

 

So one option is to have you specify the exact output format instead of a list, and then also specify your bit rate. But it will create more work for you to build that decision making. But if the quality setting doesn't work out we may go that route.

Link to comment
Share on other sites

  • 1 month later...
Redshirt

Luke

 

Based on my testing with Flexage and Tikuf as well as my own experiences setting up MB3 on my media server rather than my desktop (more info to follow). It's very apparent that our default settings aren't suitable for everyone. I think it's something we've all known.

 

I've been talking to Tikuf about it and were passing ideas around. While the client does have to accept some responsibility for determining it's best playback rating based on connection type and capabilities, the server shouldn't be trying t overreach itself by default.

 

An idea that Tikuf has suggested a few times is to read the Windows Experience Index to determine the servers horsepower. This stackoverflow article points out that it's actually pretty easy. So based on that, my thinking is that we should have a range of default server values based on the WEI rather than trying to do a one size fits all solution.

 

Scott, Mongoose... What do you guys think?

Link to comment
Share on other sites

Yea, I think we can do this. The client will ask for what it wants.

 

Then the server will say, hey, I've only got a celeron, I can't do 1080p high bitrate, and it will lower some of the output values.

Link to comment
Share on other sites

ScottIsAFool

Would it not be an idea for the ServerConfiguration to include a recommended settings based on the server's WEI. That way, each client already knows what setting it should have based on that server. Will make it much more intuitive for a user if they change it to Highest (for example) and the UI can display a message stating that based on the server, this setting is not recommended.

Link to comment
Share on other sites

Are you guys able to reliably stream anything from your servers? My "server" is my dev box which is an i7 with 16gigs of ram. The WEI on everything except the disk is 7.4. My hard disk takes me down to a 5.9 and I can't get anything to stream. My CPU just goes into a tailspin and everything freezes after 30 seconds to a minute or so.

 

Granted, I haven't tried it in a week or so but I'm just wondering what the current state of this stuff really is.

Link to comment
Share on other sites

Are you guys able to reliably stream anything from your servers? My "server" is my dev box which is an i7 with 16gigs of ram. The WEI on everything except the disk is 7.4. My hard disk takes me down to a 5.9 and I can't get anything to stream. My CPU just goes into a tailspin and everything freezes after 30 seconds to a minute or so.

 

Granted, I haven't tried it in a week or so but I'm just wondering what the current state of this stuff really is.

 

 

+1 here as well.

 

I hope I get my hand on my son note 2 to test Mark latest build tonight.

Link to comment
Share on other sites

ScottIsAFool

I haven't recently, but that's just been fixed I believe, but when it was working, yeah, it worked every time on both Windows Phone and Windows 8.

Link to comment
Share on other sites

Eric are you able to use vlc to pick any stream? There have been some changes to hls this week that should improve things greatly

Link to comment
Share on other sites

Eric are you able to use vlc to pick any stream? There have been some changes to hls this week that should improve things greatly

 

The only thing I had to test with was my iPad.

 

I'll try again sometime this week.

Link to comment
Share on other sites

If you have a copy of vlc installed could you test

 

http://localhost:8096/mediabrowser/api/video.m3u8?id=&audiochannels=2&maxWidth=1280&quality=6

 

using vlc media/open location from clipboard

is the easiest

Link to comment
Share on other sites

Okay, here's what I tried with that url:

 

1) Tried to play a BD rip. Nothing happened for about 30 seconds and then the server threw an error

2) Played a DVD rip. This one played but it was choppy and my CPU was pegged at 100% (all 8 cores).

3) Tried to play an avi file. Server threw an error.

4) Tried to play a .m2ts file. This started after about 15 seconds and was playing okay (CPU only at about 45%) until I tried to seek it and then it stopped abruptly and the server threw an error.

 

Under the two scenarios where it played partially, There was no duration or seek information.

 

I've attached the logs.

logs.zip

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...