ED: This analysis was somewhat off, but, please see my latest findings here:
Long story short, as of PMS 1.22.2.4276, Plex finally appears to be trying to get MPEG2 Live TV to work. Thanks! But there are some pitfalls right now to the point where it’s not really usable (details in the thread). That said, I have written a wrapper for PMS for Windows that tells the Plex Transcoder to deinterlace at full rather than half-rate, and this actually works well! I’m not sure if I’ll release the code anywhere as it’s kind of janky, but that’s not set in stone/if there’s interest I could. (On other platforms, such a wrapper is much easier to implement.)
My original post follows below.
Original title: Bug: deinterlace live TV to 60fps on Roku, not 30fps (already done for DVR)
Server Version#: 1.21.1.3830
Player Version#: 6.7.4.6764-abf6bf3df-Plex
A while ago I noticed that whenever I try to watch live 1080i content (so mainly stuff I’ve got from live TV), the material is force-deinterlaced before viewing. This would be fine except that whatever deinterlacing setting Plex uses throws out half the frames, thus turning e.g. a 1080i60 feed into 1080p30. While this is passably OK for a lot of 1080i content out there, particularly stuff that’s just been telecined from a progressive source, it makes sports look choppy and terrible–which makes sense, because you’re throwing out half of the temporal resolution…
My ‘solution’ to this was to enable ‘Force’ under Direct Play, thus getting the original 1080i MPEG2 stream untouched. Unfortunately, this absolutely breaks seeking, at least on Rokus.
I have not used ffmpeg to deinterlace but it beggars belief that it forces you to throw out half the frames like this. 1080p60 is not a huge ask performance-wise for today’s modern media players, even ones that aren’t TOTL. Keeping all the frames should not result in a significantly larger file size and nor would it result in a performance hit on the server side, not on modern machines. And even if these are still concerns, you could allow users to enable or disable this under advanced settings.
Please take this under consideration. Otherwise Plex users who want to watch live sports from an interlaced source are left having to sacrifice seeking ability, or else are left having to replace their client devices entirely. It is best practice and should not require much effort given it’s just an encoding parameter.
There is a readily available alternative: if you absolutely insist on deinterlacing to half-temporal rates when transcoding like this, then at minimum can you guys just tweak whatever Direct Stream so that it actually works on Live TV? Because right now the calculus appears to be: Live TV —> force h264, regardless of client support for mpeg2 → force deinterlace to 30, not 60. But for DVR, or anything else, the MPEG2 enabling flag is respected, and the material appears to be remuxed unmolested (listed as ‘copy’). This would not solve problems for people who are bandwidth-limited, since any transcode appears to force a deinterlace that throws out half the frames. At minimum though, it would allow those of us fortunate enough to have it and local wired users to watch MPEG2 interlaced Live TV without compromises. In truth, there’s no reason not to do both: deinterlace without compromise, and respect MPEG2 playback capabilities for Live TV when clients advertise it.