Jump to content

Help me test my EMBY server?


pir8radio

Recommended Posts

PenkethBoy

Impressive performance :)

 

One minor glitch the latest Taylor swift video does not play and just get spinning circle

 

tried a movie and an episode or two works fine

  • Like 1
Link to comment
Share on other sites

PrincessClevage

I have to report similar good experience, very fast and seek times are great. Testing from Australia.

You should be some what careful as you are potentially giving hackers your server host name (nam\username)

Thanks for the test tho, I'm stuck with 900Kb upload speed until September:-(

Edited by PrincessClevage
  • Like 1
Link to comment
Share on other sites

pir8radio

I have to report similar good experience, very fast and seek times are great. Testing from Australia.

You should be some what careful as you are potentially giving hackers your server host name (nam\username)

Thanks for the test tho, I'm stuck with 900Kb upload speed until September:-(

 

What do you mean?  what is (nam\username)?  

 

Honor amongst like minded peers.  :-)

Link to comment
Share on other sites

legallink

Just a quick update, rather than testing load times and related, I tried to test the play of an entire movie, and that did not go well.  I'm not sure of the issue, I tried it in both edge and chrome.  @ 60 mbps, I didn't get past the 12 second mark.  @30mbps, play would freeze every 20 minutes or so (I did not do a root cause analysis).  The freeze at both transmission rates would require me to back out of the OSD completely and then press play again.  I'm not sure what the cause was, as it would resume from when the playback froze.

 

I don't have either of these issues on local lan playback.

 

The above was done on a Lenovo laptop T440, over wifi, Windows 10, Edge and Chrome browswers (latest stable builds).

Edited by legallink
Link to comment
Share on other sites

PhyberApex

Tried some things pretty much nothing works (only get Artwork no streaming) at the moment. Maybe the load is too big I dunno :)

 

~Cheers

Link to comment
Share on other sites

pir8radio

Tried some things pretty much nothing works (only get Artwork no streaming) at the moment. Maybe the load is too big I dunno :)

 

~Cheers

No load... weird.. What country?

Link to comment
Share on other sites

Never_More

Very nice .. very kind of you to let us all test your server.. strange at first I thought it was mine lol. You have ALOT of the same media as I do

 

Had no problem streaming .. sorry but I did try more than one at a time total of 3..I had to see if I could cause a lag or skipping.. not one. Even tried three access of the same movie. Playing Moana 3 computers with no problem. Not sure were you are but I'm on the west coast.. if that helps

  • Like 1
Link to comment
Share on other sites

shorty1483

Germany. Did try some more after posting. Got 1-2 movies to load but most of em did not load.

 

~Cheers

 

No load... weird.. What country?

Germany too. Every movie I tried in Browsers and Android worked yesterday. In Chrome I always set max bitrate @15Mbit.

  • Like 1
Link to comment
Share on other sites

pir8radio

Very nice .. very kind of you to let us all test your server.. strange at first I thought it was mine lol. You have ALOT of the same media as I do

 

Had no problem streaming .. sorry but I did try more than one at a time total of 3..I had to see if I could cause a lag or skipping.. not one. Even tried three access of the same movie. Playing Moana 3 computers with no problem. Not sure were you are but I'm on the west coast.. if that helps

 

No problem, That is part of this test, to see what my hardware, emby, and internet can handle!  Thanks for the help.

 

@@shorty1483  I'm also curious of the response times for other countries, was the load fast like your own server or was there decent delays due to the long distance? I'm also using a CDN so most JS, CSS, and images should be cached in your country after 3 requests.

Edited by pir8radio
Link to comment
Share on other sites

PenkethBoy

From the Uk - tried Arrival, The Accountant and the latency is fine

 

On Play the background picture appear almost instantly, and movie plays within 5 seconds - you can jump say 30 minutes ahead and minimal wait time - for 1080p movies very good response

 

Just tried Abyss and the background picture appeared but no movie and the connection appeared to lockup - as interface was unresponsive??

  • Like 1
Link to comment
Share on other sites

shorty1483

No problem, That is part of this test, to see what my hardware, emby, and internet can handle!  Thanks for the help.

 

@@shorty1483  I'm also curious of the response times for other countries, was the load fast like your own server or was there decent delays due to the long distance? I'm also using a CDN so most JS, CSS, and images should be cached in your country after 3 requests.

 

Response times are around 100-300 ms for the static stuff so it seems cloudflare does a good job. For streaming, it's an up and down, but nothing under the line. Smooth like butter, tried a large one an set browser to 50 Mbit, and it still starts after around 3-4 secs without buffering, artifacts or something else.

 

Edit: You need more german Audio :D

Edited by shorty1483
  • Like 1
Link to comment
Share on other sites

shorty1483

Just tested a bit over HTTPS and the results are as good as with plain HTTP.

 

Btw nice one using cloudflare, more state-of-the-art is not possible :D 

58af2e44d5ee7_Unbenannt.jpg

Link to comment
Share on other sites

pir8radio

Just tested a bit over HTTPS and the results are as good as with plain HTTP.

 

Btw nice one using cloudflare, more state-of-the-art is not possible :D

58af2e44d5ee7_Unbenannt.jpg

 

 

You and your encryption lol....    :)   

Edited by pir8radio
  • Like 1
Link to comment
Share on other sites

PhyberApex

Just tested a bit over HTTPS and the results are as good as with plain HTTP.

 

Btw nice one using cloudflare, more state-of-the-art is not possible :D

58af2e44d5ee7_Unbenannt.jpg

Ohhh the irony...

  • Like 1
Link to comment
Share on other sites

Swynol

used the HTTPS connection. loading is fine, playing was fine. all looks good. I like the branding.

 

@@pir8radio what CSS did you use to 

 

1. Change the Tab favicon and title from Home to Emby

2. Change the Home Title on the Webhome page to your logo?

Edited by Swynol
Link to comment
Share on other sites

pir8radio

used the HTTPS connection. loading is fine, playing was fine. all looks good. I like the branding.

 

@@pir8radio what CSS did you use to 

 

1. Change the Tab favicon and title from Home to Emby

2. Change the Home Title on the Webhome page to your logo?

 

I use nginx as a reverse proxy, it allows you to rewrite html, JS, CSS on the fly as its being passed to the client. So I can edit html without having to edit the emby html files over and over again after updates.  

Link to comment
Share on other sites

pir8radio

i'm using nginx, are you able to share the part of the config that changes the html/css

 

Sure, You have to be using a version that includes the sub_filter module.   I created a section below my regular "location" block that only applies these changes to html files.  This is not my whole config so it doesnt show all of my sub filters, but basically you open your emby server and view source, find a string you want to replace then enter the replacement string.  I also have a root website being served from nginx at mydomain.com so you can put your new images in a folder on the root domain mydomain.com/embyImages/xxxx.png or whatever.     In my below example the first sub filter points to the new favicon, the second changes the page title, the third injects my own tracking javascript file that puts additional info into my nginx log file, like client screen width, screen height, color depth, browser language, flash version installed, emby user name, and emby client bitrate setting.  BUT you can inject your own javascript to do whatever. 

	## HTML files only ##
	    location ~* \.(?:html|htm)$ {
	    proxy_pass http://127.0.0.1:8080;
             
            sub_filter '<link rel="shortcut icon" href="css/images/favicon.ico">' '<link rel="shortcut icon" href="https://mydomain.com/favicon.ico">'; 
            sub_filter '<title>Emby</title>'  '<title>New Title</title>';
            sub_filter '</body>'  '<script type="text/javascript" src="https://mydomain.com/scripts/tracker.js" defer></script></body>';
	    sub_filter_last_modified on;

	    proxy_set_header Accept-Encoding "";
	    proxy_hide_header X-Powered-By;
	    proxy_set_header Range $http_range;
	    proxy_set_header If-Range $http_if_range;
	    proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
	    add_header X-Proxy-Cache $upstream_cache_status;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
	}

Below is the tracker script (inside spoiler) if you are interested, you just need to create a tracker gif 1px x 1px and throw it on your webserver too.  Then the includes after the image will contain all of the user info for you to pull from your logs.   Your logs will contain something like this that you can report on:  

https://mydomain.com/web/tracker.gif?screensize=1920x1080&colordepth=24&lang=en-us&fl=24.0.0&vis=1&userId=1de587e5988caadbe5f29s03cabe4s45e0&userBitrate=60000000&r=17247852 

You can then convert the userid hash to user name during the log parse.

 

 

//Tracker Code 2.02 Pir8Radio


function RequestTracker(visible) {
	var imgTracker = new Image(1, 1);
	imgTracker.src = "/web/tracker.gif?screensize=" +
		screen.width + "x" + screen.height + "&colordepth=" + screen.colorDepth +
		"&lang=" + (navigator.language ? navigator.language.toLowerCase() : navigator.browserLanguage.toLowerCase()) +
		"&fl=" + GetFlashVersion() + "&vis=" + (visible ? "1" : "0") + "&userId=" + GetEmbyuserId() + "&userBitrate=" + GetEmbyBitrate() + "&r=" + Math.random().toString().slice(2, 10);
}

function GetEmbyuserId() {
    if (localStorage.getItem("servercredentials3") === null) {
	return "-"
}
	var cred3 = localStorage.getItem("servercredentials3");
	var servers = JSON.parse(cred3);
	var EmbyuserId = servers.Servers[0].UserId;
	return EmbyuserId
}

function GetEmbyBitrate() {
    if (localStorage.getItem("preferredVideoBitrate") === null) {
	return "-"
}
	var embyBitrate = localStorage.getItem("preferredVideoBitrate");
	return embyBitrate
}

function GetFlashVersion() {
	try {
		if (navigator.plugins && navigator.plugins.length) {
			for (var i = 0; i < navigator.plugins.length; i++)
				if (navigator.plugins[i].name.indexOf("Shockwave Flash") != -1) {
					var arr = navigator.plugins[i].description.split("Shockwave Flash ")[1].replace(" r",".").replace(" d",".").replace(/\s/g,"").split(".");
					return arr[0] + "." + arr[1] + "." + arr[2];
				}
		}
		else
			if (window.ActiveXObject) {
				var flashObj = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
				if (flashObj) {
					var arr = flashObj.GetVariable("$version").split(" ")[1].split(",");
					return arr[0] + "." + arr[1] + "." + arr[2];
				}
			}
	}
	catch (e) {}

	return "0";
}

var isPrerendering = false;

function handleVisibilityChange(evt) {
	if (isPrerendering && (document.webkitVisibilityState != "prerender")) {
		RequestTracker(true);
		isPrerendering = false;
	}
}

if (document.webkitVisibilityState != "prerender")
	RequestTracker(true);
else {
	RequestTracker(false);
	isPrerendering = true;
	document.addEventListener("webkitvisibilitychange", handleVisibilityChange, false);
}

 

 

Edited by pir8radio
  • Like 2
Link to comment
Share on other sites

shorty1483

@@Swynol

 

@@pir8radio tracks some diagnostics, if you just want to replace images that will survive updates, you can also just use css. I e.g. uploaded to imgur and set up the external url. Important is that you use a external image provider that has https connection. If not, you get mixed content security message by e.g. Chrome.

/*-------------------------Login Logo------------------------------------------*/
.header {
    text-align: center;
}

.imgLogoIcon {
    height: 100px !important;
    content: url(https://i.imgur.com/od3W1Jp.png) !important;
}

/*-------------------------Home Logo------------------------------------------*/
h3.libraryMenuButtonText.headerButton img {
    content: url(https://i.imgur.com/od3W1Jp.png) !important;
    height: 35px !important;
}
Edited by shorty1483
  • Like 2
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...