Last couple weeks I spent learning Entity Framework 6 and it latest version Core. As I was watching and reading through various materials, I noticed that unlike with OOP and C#, acquiring this knowledge requires different approach. For example as you learn various things in C# and you try to apply concepts in your code, you have much greater freedom in constructing all these elements together. Now, when you work with Entity Framework, you cannot deviate from the required steps or setup. Otherwise, it would simply not work at all. You still need to know components of entire framework and how can you leverage for your own benefit. Consider that setting up EF and migration is not something that you will be repeating over and over. In this case taking good notes is crucial.
Last week my HTPC stopped working. After some extensive test, I came to conclusion that problem lies with motherboard. Simply put, the power does not run through it. The simplest thing would be to replace it. Unfortunately, that model is no longer available for sale. Now, I’m looking at various options. I still consider Windows Media Center to be the best and the most friendly TV Recording software. Not to mention, that is the only program capable of recording copy protected material. I looked at Nvidia Shield TV box and this is probably the best option at this moment. You can run both Plex and Kodi on it. However, watching Live TV through HDHomeRun app is questionable due to lack of traditional Guide and custom Lineups and you cannot record anything on it and watch it at the same time. Nvidia Shield Pro with 500 GB storage costs almost $300. I did some research on Newegg and I was able to close my budget under $220. Replacing power supply in my HTPC would add additional $90. The CPU I picked is Intel Core i-3 with very low TDP of 35W and really decent Passmark score of over 4000 points. The quad-core AMD CPU that I was using had score of close to 2500 points.
On the hardware front, there was another failure. It started with CPU overheating on my server. High pitch alarm woke me up in the middle of the night. This was serious. The system was informing me about throttling of CPU clock, but at some point it was too much and alarm was triggered. This CPU has passive heatsink. I was able to locate replacement part with fan attached to it. That made huge difference in terms of performance. I decided to make some changes to improve Plex Server performance too.
- I isolated Plex Server. That means I installed additional SD drive and put Plex Server on it. To do this you will need to install Unassigned Devices plugin
- I also created transcoding folder on this drive and changed transcoding folder location in Plex settings
- Unraid is very slow when comes to writing and reading data from drives. Cachedirs plugin improves performance and access time
These changes alone have significant impact on Plex Server performance. Previously, I had issues streaming anything outside of my home network. Right now, this low power box with 8 cores Intel Atom CPU is really good Plex Server machine capable of outputting two 720p 3Mpbs streams. This particular CPU has a Passmark score of around 3100 points.
During my streaming test I found out that not all Plex clients are created equal. Every time when I was using Firefox Web client I saw message telling me that my server is too slow to stream content. After making described changes, the message appears but less frequently and streaming starts after some delay. I tested Internet Explorer client, and result was similar. However, playing media would start much faster. Chrome browser is a clear winner. Playback starts almost immediately without any problems. I was curious what actually happens in transcoding folder. When we request some item from our library, Plex creates temporary session folder and then starts encoding small chunks of video. There might be ten files of various sizes in that folder. These chunks are small enough to be send over internet without interruption. I noticed that Firefox has problems creating session folder. It makes multiple attempts and you can have five or more sub folders without actual transcoded files. Hence, you will have an error message in your browser telling you that your computer might be too slow to handle encoding job even though it is not true.
So, if you plan to watch anything form your Plex library on desktop, I strongly recommend using Chrome browser. And that brings me to one more observation that Nvidia Shield that is based on similar technology as Chrome browser is most likely very good Plex client.