December 20, 2016
So, I have been using Plex DVR paired with two SiliconDust HDHomeruns. For the most part, the combination has been working great -- especially considering that Plex DVR is still in beta. Here is my earlier write up about the whole setup. There was one thing bugging me and it is more with the SiliconDust Extend units than Plex DVR.
The SiliconDust Extend units differ from the other HDHR models (Connect and Prime) in that it has built-in hardware to transcode MPEG-2 streams to AVC H264. I need this functionality because the passively cooled Plex server I built (Atom-powered) is not powerful enough to transcode videos for viewing on an Apple TV. The functionality works fine, but there are some drawbacks. Before going into the drawbacks, it's good to see what transcode profiles there are on the Extend. (source):
Native (none) 1920x1080 60fps ~16Mb/s
Heavy 1920x1080 60fps ~7Mb/s
Mobile 1280x720 30fps ~3Mb/s
Internet720 1280x720 30fps ~3Mb/s
Internet480 848x480 30fps ~2Mb/s
Internet360 640x360 30fps ~1.5Mb/s
Internet240 432x240 30fps ~1Mb/s
For the "Mobile" transcode profile, the Extend does a few things:
None of the modes are perfect for me. Plex player (at least on Apple TV and in a web browser) does not de-interlace videos, so the Heavy setting does not help when channels are interlaced. But, Heavy setting is great for native progressive streams because it allows for the full stream to come through with no added compression.
The Mobile setting de-interaces everything, so it makes interlaced videos viewable on Plex apps which do not do de-interlacing (like the Apple TV 4 app). The Mobile setting though applies heavy compression to the video stream and this creates compression artifacts -- a good example of this is when Stephen Colbert first steps out onto the stage for The Late Show, compression artifacts are everywhere. The Mobile setting also creates weird motion artifacts when it converts 720p60 video to 720p30 and that sometimes creates stuttering during panning shots.
What would be good is if SiliconDust would implement a transcode profile that sits right between Heavy and Mobile that does only one thing: De-interlaces video. 480i/1080i videos are de-interlaced and no extra compression is applied. 720p video (whether it is 30 or 60fps) is left completely untouched.
For now though, since I have two Extends, I figured out a way to get to somewhere near what I described. I have partitioned the Extends so that one records only interlaced channels and the other records only progressive channels. Interlaced channels are recoded using an Extend with the Mobile profile. Progressive channels are recorded using the other Extend with the Heavy profile.
With this setup, at least the 720p videos are converted to AVC H264 and then left untouched. No frames are stripped out, no extra compression is added. The 480i/1080i videos still suffer from being overly compressed, but at least they will be watchable in Plex because they are de-interlaced.
In the San Jose, CA area about half the channels I have in Plex DVR are interlaced:
This is a good workable solution for the time-being. Maybe one day SiliconDust will add the profile that I described.