KillermanGabe 4 Posted July 8, 2016 Posted July 8, 2016 (edited) Hello everyone,I am currently running Emby on a Google Cloud Computer VM with 4 vCores (2.3GHz Xeons) and 8GB of RAM. The disk is a 1TB SSD. There are a total of 10 users on the server and 4 of them are active regularly. Usually if nobody else is on I can watch 1080p 5Mbps with very little stuttering. However, if somebody else is watching something then it causes playback to stop a lot as the transcode keeps up. Basically what I'm trying to ask is what do I need to be able to have 2-3 users all transcoding 1080p at the same time? I've done some looking around and I've heard ffmpeg is limited to 2 threads? Is this true? And if so is there a way to bypass this?Also, I should note that I run the server thru a reverse proxy using CloudFlare Full SSL as my DNS. Other than this minor nuisance I love Emby!EDIT: Also, the server's CPU usage is always pegged at 100%, sometimes dipping to the lower 90sTranscode log 3 is the best for looking for the stutter.Thanks,Gabe G. emby-server-log.txt emby-transcode-log-1.txt emby-transcode-log-2.txt emby-transcode-log-3.txt Edited July 8, 2016 by KillermanGabe
Luke 42079 Posted July 8, 2016 Posted July 8, 2016 Hi there. No, ffmpeg is not limited to 2 threads. It will use all available resources. You're trying to transcode hevc content on the fly which can be very costly. Given your number of users, I would suggest a few options such as Multiple media versions, to allow more direct play, see multi-resolution naming: https://github.com/MediaBrowser/Wiki/wiki/Movie%20naming Or store content in h264 instead Or check out the folder or cloud sync feature. This will allow you to pre-convert files to streaming friendly formats, which will help reduce transcoding at the time of playback: https://github.com/MediaBrowser/Wiki/wiki/Folder%20Sync 1
KillermanGabe 4 Posted July 9, 2016 Author Posted July 9, 2016 Hi there. No, ffmpeg is not limited to 2 threads. It will use all available resources. You're trying to transcode hevc content on the fly which can be very costly. Given your number of users, I would suggest a few options such as Multiple media versions, to allow more direct play, see multi-resolution naming: https://github.com/MediaBrowser/Wiki/wiki/Movie%20naming Or store content in h264 instead Or check out the folder or cloud sync feature. This will allow you to pre-convert files to streaming friendly formats, which will help reduce transcoding at the time of playback: https://github.com/MediaBrowser/Wiki/wiki/Folder%20Sync Hey Luke, Thanks for your help! I have plenty of space to convert all my media to H264. I will try this and get back to you.
KillermanGabe 4 Posted July 9, 2016 Author Posted July 9, 2016 I've done some further testing and I don't think its my CPU that is the problem. I converted all my media to H264 and for testing I bumped the cores from 4 to 8 to see what effect it would have. I started watching an episode with the server's task manager open in another monitor and it was stable at 13% with spikes every 4-8 seconds. (I'm assuming this is a feature). However, even with the updated core count and my media now being H264 I still get stuttering. In addition to the server's task manager being open I also watched the transcoding progress from within the emby dashboard. It still stuttered even though it had already transcoded way beyond where I was watching. I don't know what else could be the problem. I have attached new logs. Also, I checked to see if the stuttering happened when the CPU spiked and it doesn't. The stuttering doesn't seem to be linked to anything. It just happens randomly. Sometimes if I pause it for a good 10 seconds it fixes it for a couple minutes but will eventually start happening again.Heres complete specs of everything I use: My System (Client): Intel Core i7 4790k16GB RAMGTX 97060Mbps Down - 5Mbps UpServer System: (Google Compute Cloud VM) 8 vCPU's (2.3Ghz Xeon)12GB RAM1TB SSD Storage1000Mbps Down - 1000Mbps Up (<--- This fluctuates sometimes. Sometimes it dips depending on Google's bandwidth. It never dips really low though.) emby-server-log-2.txt emby-transcode-log-4.txt
chef 3810 Posted July 10, 2016 Posted July 10, 2016 That is plenty of horse power. I run an i3 on my server transcoding to Xbox one, without stuttering issues like I use to have with my slow (in comparison) core 2 duo chip. My question would be, what client app in on your client machine? And perhaps I would also wonder about what containers you are transcoding to? Perhaps there is a better way to direct play your media since your client machine is a "console killer". Maybe some kind of codec pack to stop transcoding.
KillermanGabe 4 Posted July 10, 2016 Author Posted July 10, 2016 That is plenty of horse power. I run an i3 on my server transcoding to Xbox one, without stuttering issues like I use to have with my slow (in comparison) core 2 duo chip. My question would be, what client app in on your client machine? And perhaps I would also wonder about what containers you are transcoding to? Perhaps there is a better way to direct play your media since your client machine is a "console killer". Maybe some kind of codec pack to stop transcoding. I am using the web client. I plan on using Emby Theatre for Windows 10 once I purchase a Premiere license. I don't know exactly what you mean by containers but I use 1080p 8Mbps as my quality settings. However, I am not the only one using the server. There are 9 other users and 3 of them actively use it everyday. They have all said they experienced stuttering from time to time but usually it goes away after a minute. Most of the users use an iPhone browser. I will try to install some kind of codec pack, but I would like to know. What does Chrome require to enable direct streaming? Most of my content is 1080p H264 5.1ch AC3.
Happy2Play 9781 Posted July 10, 2016 Posted July 10, 2016 What browser are you currently using? I believe Edge is the only on that won't transcode ac3.
KillermanGabe 4 Posted July 10, 2016 Author Posted July 10, 2016 What browser are you currently using? I believe Edge is the only on that won't transcode ac3. Chrome, I will try edge. I would still like to know why I get stuttering with that much power on the server. If I limit the threads to 4 or 6 for ffmpeg would that help? As then it wouldn't be hitting 100% CPU usage.
Luke 42079 Posted July 10, 2016 Posted July 10, 2016 In this situation it's still transcoding because the Emby app requested a maximum bitrate that is lower than the bitrate of the video. Therefore, in order to satisfy the request, the server had to convert the video. If you want to pre-prepare your media ahead of time to avoid transcoding, you need to pay attention to not only the media format but also the bitrate as well. If the bitrate is too high for the app to handle, this will require transcoding. Every Emby app has an in-app bitrate setting that you can override if you like, so for example you could try setting it to something like 10mbps. But when doing this, you'll have to make sure the device can handle 10mbps and that the network connection can also handle it. Generally speaking, if you truly want to avoid all transcoding, then I would use mp4 fiels with h264 video and aac audio, and try to stay under a bitrate of 3mbps. Those are just my own recommendations, and obviously this will vary for you depending on the devices you want to use, and the network connections they'll be using.
Luke 42079 Posted July 10, 2016 Posted July 10, 2016 Chrome, I will try edge. I would still like to know why I get stuttering with that much power on the server. If I limit the threads to 4 or 6 for ffmpeg would that help? As then it wouldn't be hitting 100% CPU usage. Did you customize the in-app bitrate setting or is it still on Auto? If you customized it, try changing it back to Auto. As far as the threads setting, leaving that on Auto as well is generally recommended.
KillermanGabe 4 Posted July 10, 2016 Author Posted July 10, 2016 Thanks for all your help. I know it is not a transcoding issue anymore because the video will still stop and 'buffer' for a couple seconds even though transcoding is farther ahead and going at a faster framerate. Its doubtful that its my internet and I would find it very surprising if it was the servers internet. RAM is at 2GB used with two people streaming. (One direct playing and the other transcoding 1080p) Something else is causing the video to stutter. I'm happy to do any testing you guys might need to figure out what is the problem.
ebr 16184 Posted July 10, 2016 Posted July 10, 2016 How do you know it isn't your internet connection?
chef 3810 Posted July 10, 2016 Posted July 10, 2016 I'm not sure if I am helping here... Do both streams stutter? Or just the transcoded one? Luke brought up a good point, about your bitrate settings. Try changing them to stop transcoding from happening. Is the client machine a wired connection to the router, or is it wireless connection?
KillermanGabe 4 Posted July 10, 2016 Author Posted July 10, 2016 (edited) How do you know it isn't your internet connection?I'm fairly certain that it isn't my internet because I have 60Mbps down and I'm streaming at 1080p 8Mbps.EDIT: Maybe it's something with my internet throttling the connection. If I play the same content on my iPhone with Safari then I don't get stuttering. (Same quality settings, same router) Edited July 10, 2016 by KillermanGabe
KillermanGabe 4 Posted July 10, 2016 Author Posted July 10, 2016 (edited) I'm not sure if I am helping here... Do both streams stutter? Or just the transcoded one? Luke brought up a good point, about your bitrate settings. Try changing them to stop transcoding from happening. Is the client machine a wired connection to the router, or is it wireless connection? If I can direct play media then no stuttering happens. It is only when it's transcoding. I find it really weird that this happens because the transcoding is going at a much faster rate and is farther ahead then where I'm playing. What do you mean by changing nitrate settings to stop transcoding? Only some of the series I have allow direct playing. The rest don't show Direct in the quality settings.The client I mainly use (My desktop) has a wired connection. Edited July 10, 2016 by KillermanGabe
Puff 4 Posted July 10, 2016 Posted July 10, 2016 I'm going to bet on internet connection as the problem. My previous server setup (upgraded last week) was about the same as yours. My internet connection at the server is 50/15 and clients are all running on 15mbps download or less. No one has any issues.. I have users on Edge, Chrome, Emby Theatre and Apple products. But my settings are pretty much all on auto..
KillermanGabe 4 Posted July 10, 2016 Author Posted July 10, 2016 I'm going to bet on internet connection as the problem. My previous server setup (upgraded last week) was about the same as yours. My internet connection at the server is 50/15 and clients are all running on 15mbps download or less. No one has any issues.. I have users on Edge, Chrome, Emby Theatre and Apple products. But my settings are pretty much all on auto.. Yeah, It's most likely my ISP throttling the connection or something. All my clients have at least 20Mbps down and the server is running on a 1000Mbps/1000Mbps Fiber Connection. I haven't heard any complaints from my clients that its stuttering. Only a few ones but it was because they were streaming on data or in low WiFi range. I'm going to try connecting with a VPN and see if that works.
KillermanGabe 4 Posted July 10, 2016 Author Posted July 10, 2016 I purchased an Emby Premiere subscription so I could test how the apps performed. Direct Streaming from Emby Theatre Windows 10 still had stuttering once another user started direct playing something. It is definitely an internet issue. The question is, is it mine or the servers?
Solution KillermanGabe 4 Posted July 11, 2016 Author Solution Posted July 11, 2016 I figured it out, it is my internet. Cox (My ISP) is probably throttling the connection to my server. I used a VPN and all problems went away. Just for fun I had 2 people transcoding and 2 people (Including me) direct watching media and no one reported stuttering. Thank you for all the help you've provided me. 2
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now