How does OTA DVR work?

Windows 10 Laptop #1 - Plex Media Server
Server Version#: Version 1.32.7.7621
Player Version#: Version 4.119.2
Tuner Make/Model: HDHomeRun FLEX DUO
Plex Pass Active: Yes

Windows 10 Laptop #2 - Plex for Windows
Version#: 1.82.2.4024-64f483f6

I am totally new to Plex. It looks great - but it is clear to me I don’t understand the function of each component. Before I commit to buying a high power Windows 11 mini-PC for my Plex Media Server, I wanted to test it with standard Windows 10 laptops to ensure I understood how it works. I am using Laptop #1 as my Plex Media Server and Laptop #2 as my “client” running Plex for Windows - at least that is what I think I am doing.

If Laptop #2 (client) has Plex for Windows running, the CPU/GPU/fan is running very high while my OTA show is recording. It doesn’t matter if I used Laptop #1 or #2 to set the recording - Laptop #2 is providing the computing power to record the show. After the recorded show ends, the resulting .TS file is then moved to Laptop #1 where it can be streamed. While the show is recording, a partial .TS file is not generated on Laptop #1.

If Laptop #2 (client) does not have Plex for Windows running, the only other machine available is Laptop #1 (Plex Media Server). While the show is recording, there is no stress on Laptop #1 at all. I assumed the work that was previously done on Laptop #2 would be transferred to Laptop #1 - but that did not happen. However, after the recording was complete, a .TS file was available on Laptop #1 for streaming. It appears that neither of my laptops had their resources stressed for this recording - but I still ended up with a recording.

Based on what I have seen so far, it looks like I need to purchase a beefed-up replacement for Laptop #2 (client), not Laptop #1 (Plex Media Server). But that can’t be right. I must have a basic mis-understanding of the functionality of the “Plex for Windows” app (Laptop #2) and the Plex Media Server / Plex Web (Laptop #1).

There must be a pinned post somewhere discussing these concepts for newbies, but I couldn’t find it. I’m sure Plex will work great for me after I understand the functionality of the various components. My main use of Plex will be to stream OTA TV shows (live and recorded) from my home to my cottage where no OTA signals are available. If anyone can help me out, it would be greatly appreciated.

Regards,
Kevin

Your observations don’t really make sense for the configuration you’ve described. Let’s take the simple case: A single system with only Plex Media Server installed, with some client, likely either the web client or Plex for Windows.

In this environment, any recordings will be stored locally, from the server’s perspective (though it could be storing to a network drive, but PMS doesn’t care about that distinction). PMS has very little actual work to do to perform the recording as, generally, recordings are just raw transport streams from the tuner (HDHomeRun) stored to a .ts file. There is no processor or memory-intensive activity in this (though there is a steady amount of memory I/O). (Note: there is an permanent experimental feature to transcode to H.264 in real-time, but you wouldn’t have turned that on, right?)

If you add a second system, running just a client, it does not participate in the recording process at all (other than the ability to schedule/manage recordings). It provides no resources to the server.

What you describe sounds like you may be watching the show while recording? That’s where the resource utilization would come in.

It seems like there may be some missing information here. It may be necessary for you to provide your server logs (click the link to see how to gather them) so that we can see what’s happening.

PMS does the recording of the OTA show, directly from your HDHomeRun - no client is involved in the recording process; to potentially schedule a recording yes, but not for the actual recording process.

Thank you both for your feedback. I am starting to understand.

It sounds like my basic understanding is correct - Plex Media Server is a “server” and Plex for Windows is a “client”. It also seems that my PMS isn’t doing much during the recording - as expected.

All I was testing was a simple case. My thought is my PMS stays at home and I can watch live and recorded shows at the cottage using my Plex for Windows laptop. For my test, my recorded shows are being stored locally on my PMS laptop in the “Movies” directory. I am running with most of the default PMS settings. I may have changed 1 or 2 things somewhere based on a Youtube video I watched - but I didn’t change much.

I don’t know where to find the experimental feature to transcode to H.264 in real-time. Under the “transcode” menu item, the only reference to H.264 I see is “Background transcoding x264 preset” which is set to “Very fast”.

I wasn’t watching the show while recording it. In fact, after the recording was complete, I opened the .ts file in VLC Media Player just to see if the recording was good. It started to play in VLC with no problems.

I enclosed my log files. I took at quick look at them. There are a lot of log files!! Around 4:25pm on Nov 22, I selected “Judge Judy” to record. That show started at 4:30pm. During the next 30 minutes, the resources on my Plex for Windows laptop were highly used. There was no additional resource usage on my PMS laptop. After the show ended at 5:00pm, the resource usage on my Plex for Windows laptop returned to normal.

I guess the question becomes “What is my Plex for Windows (client) laptop doing during the recording?”

Plex Media Server Logs_2023-11-22_20-07-48.zip (2.8 MB)

I wasn’t suggesting that you enable this. In fact, I’ll go as far as to suggest you don’t. My experience is that it doesn’t work well and can cause some issues (tuners not being freed in a timely manner). However, it is located in your DVR settings (Settings → [Server Name] → Live TV & DVR, gear icon → Convert Video While Recording).

As for your logs, everything looks fairly straight-forward there. Plex Media Server.log shows the recording you mentioned above. It runs through the transcoder, but it is only copying the codecs unmodified, so there’s not much processing overhead there (as I’d expect).

Nov 22, 2023 16:30:00.698 [9176] DEBUG - [Req#24c24/Grabber/b117a4d4bcf5cd6721366d0039c96fe46e8c65e4] Grabber: Going to record for 1800 seconds, final URL is http://192.168.50.23:5004/auto/v2.1
Nov 22, 2023 16:30:00.698 [9176] DEBUG - [Req#24c24/Grabber/b117a4d4bcf5cd6721366d0039c96fe46e8c65e4] MediaRecorderVirtual: setting stop time to 2023-11-22 17:00:00
Nov 22, 2023 16:30:00.698 [9176] DEBUG - [Req#24c24/Grabber/b117a4d4bcf5cd6721366d0039c96fe46e8c65e4] DVR:Segmenter: Creating a new recorder for http://192.168.50.23:5004/auto/v2.1.
Nov 22, 2023 16:30:00.701 [9176] DEBUG - [Req#24c24/Grabber/b117a4d4bcf5cd6721366d0039c96fe46e8c65e4] Grabber: Waiting for a tuner on device://tv.plex.grabbers.hdhomerun/1094E911 (2 available) for at most 1800 seconds.
Nov 22, 2023 16:30:00.701 [9176] DEBUG - [Req#24c24/Grabber/b117a4d4bcf5cd6721366d0039c96fe46e8c65e4] Grabber: Allocated a tuner on device://tv.plex.grabbers.hdhomerun/1094E911 (1 left)
Nov 22, 2023 16:30:00.703 [9176] DEBUG - [Req#24c24/Grabber/b117a4d4bcf5cd6721366d0039c96fe46e8c65e4] We're going to try to auto-select an audio stream for account 1.
Nov 22, 2023 16:30:00.703 [9176] DEBUG - [Req#24c24/Grabber/b117a4d4bcf5cd6721366d0039c96fe46e8c65e4] Selecting best audio stream for part ID -1 (language: )
Nov 22, 2023 16:30:00.703 [9176] DEBUG - [Req#24c24/Grabber/b117a4d4bcf5cd6721366d0039c96fe46e8c65e4] Audio Stream: -1, Subtitle Stream: -1
Nov 22, 2023 16:30:00.704 [9176] DEBUG - [Req#24c24/Grabber/b117a4d4bcf5cd6721366d0039c96fe46e8c65e4] MDE: Selected protocol hls; container: mpegts
Nov 22, 2023 16:30:00.704 [9176] ERROR - [Req#24c24/Grabber/b117a4d4bcf5cd6721366d0039c96fe46e8c65e4] Unable to find title for item of type 5
Nov 22, 2023 16:30:00.704 [9176] DEBUG - [Req#24c24/Grabber/b117a4d4bcf5cd6721366d0039c96fe46e8c65e4] MDE: analyzing media item -1
Nov 22, 2023 16:30:00.704 [9176] DEBUG - [Req#24c24/Grabber/b117a4d4bcf5cd6721366d0039c96fe46e8c65e4] MDE: : no direct play video profile exists for http/mpegts/
Nov 22, 2023 16:30:00.704 [9176] DEBUG - [Req#24c24/Grabber/b117a4d4bcf5cd6721366d0039c96fe46e8c65e4] MDE: : no direct play video profile exists for http/mpegts//
Nov 22, 2023 16:30:00.704 [9176] DEBUG - [Req#24c24/Grabber/b117a4d4bcf5cd6721366d0039c96fe46e8c65e4] MDE: : codec is unavailable for analysis
Nov 22, 2023 16:30:00.704 [9176] DEBUG - [Req#24c24/Grabber/b117a4d4bcf5cd6721366d0039c96fe46e8c65e4] MDE: : codec is unavailable for analysis
Nov 22, 2023 16:30:00.704 [9176] ERROR - [Req#24c24/Grabber/b117a4d4bcf5cd6721366d0039c96fe46e8c65e4] Unable to find title for item of type 5
Nov 22, 2023 16:30:00.704 [9176] DEBUG - [Req#24c24/Grabber/b117a4d4bcf5cd6721366d0039c96fe46e8c65e4] MDE: : selected media 0 / -1
Nov 22, 2023 16:30:00.704 [9176] DEBUG - [Req#24c24/Grabber/b117a4d4bcf5cd6721366d0039c96fe46e8c65e4] Cleaning directory for session 116d201a-94b0-4512-a7a4-03544fd49bdf ()
Nov 22, 2023 16:30:00.705 [9176] DEBUG - [Req#24c24/Grabber/b117a4d4bcf5cd6721366d0039c96fe46e8c65e4] Starting a transcode session 116d201a-94b0-4512-a7a4-03544fd49bdf at offset -1.0 (state=3)
Nov 22, 2023 16:30:00.705 [9176] DEBUG - [Req#24c24/Grabber/b117a4d4bcf5cd6721366d0039c96fe46e8c65e4] Streaming Resource: Added session 0000027E5BF064F0:116d201a-94b0-4512-a7a4-03544fd49bdf
Nov 22, 2023 16:30:00.705 [9176] DEBUG - [Req#24c24/Grabber/b117a4d4bcf5cd6721366d0039c96fe46e8c65e4] TPU: hardware transcoding: enabled, but no hardware decode accelerator found
Nov 22, 2023 16:30:00.705 [9176] DEBUG - [Req#24c24/Grabber/b117a4d4bcf5cd6721366d0039c96fe46e8c65e4] TPU: hardware transcoding: final decoder: , final encoder: 
Nov 22, 2023 16:30:00.708 [9176] DEBUG - [Req#24c24/Grabber/b117a4d4bcf5cd6721366d0039c96fe46e8c65e4/JobRunner] Job running: set "FFMPEG_EXTERNAL_LIBS=\\\\?\\C\:\\Users\\kevin\\AppData\\Local\\Plex\ Media\ Server\\Codecs\\a31c019-4614-windows-x86_64\\" & set "X_PLEX_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" & "C:\Program Files\Plex\Plex Media Server\Plex Transcoder.exe" -noaccurate_seek -ignore_unknown -scan_all_pmts -1 -rw_timeout 30000000 -reconnect 1 -reconnect_streamed 1 -reconnect_delay_max 30 -fflags +discardcorruptts+fillwallclockdts -probesize 20000000 -i http://192.168.50.23:5004/auto/v2.1 -map 0:V? -codec:V copy -map 0:a? -codec:a copy -map 0:s? -codec:s copy -break_non_keyframes 1 -segment_format mpegts -f ssegment -individual_header_trailer 0 -segment_time 1 -segment_start_number 0 -segment_time_delta 0.25 -segment_list http://127.0.0.1:32400/video/:/transcode/session/116d201a-94b0-4512-a7a4-03544fd49bdf/155920a5-feb5-4983-81eb-bbd71df2e533/manifest?X-Plex-Http-Pipeline=infinite -segment_list_type csv -segment_list_size 5 -segment_list_separate_stream_times 1 -segment_list_unfinished 1 -max_delay 5000000 -map_metadata -1 -map_chapters -1 media-%05d.ts -y -nostats -loglevel quiet -loglevel_plex error -xioerror -progressurl http://127.0.0.1:32400/video/:/transcode/session/116d201a-94b0-4512-a7a4-03544fd49bdf/155920a5-feb5-4983-81eb-bbd71df2e533/progress

I’m not really sure what was going on on the client system at that time, but it likely didn’t have anything to do with the in-progress recording.

There is a certain amount of overhead involved in just running the client and monitoring what’s going on on the server, but nothing I’d consider intensive.

Perhaps it’d be worth testing shutting down laptop 2 and just scheduling a recording on laptop 1 to make sure everything is working as intended.

Yep, yep, and yep. All spot-on.

With your help, I found the “Convert Video While Recording” setting. It was set to “Off” as expected.

Before I opened this discussion, I had already tried your suggestion. I scheduled a recording and then shut down Laptop #2. It worked perfectly. The recording was captured on Laptop #1 (PMS) - and I couldn’t detect any significant increased resource usage on Laptop #1 while the recording was in progress.

I just performed another test with both Laptop #1 and #2 running. Once again, the resource usage on Laptop #2 increased significantly during the recording. After the show ended, the resource usage went back to normal. I then streamed the recorded show to Laptop #2 using Plex for Windows. The resource usage on Laptop #2 went up somewhat while I was streaming the show - but not as much as when the show was being recorded.

And, while I was streaming the show, there was no noticeable increase in resource usage on my PMS (laptop #1). This seems very strange to me. I assumed the resource usage on Laptop #1 (PMS) would go up during streaming to a client. But it seems like my old laptop can handle the required workload with no issues - which doesn’t feel right to me.

I will perform some more tests - both with recording shows and watching live. Since I am an IT guy - although not a Plex guy - I find it annoying not fully understanding what is happening on my 2 laptops while shows are being recorded, when those recordings are being streamed and when live TV is being streamed. But I haven’t been able to find anything with a Google search that explains those items.

Thank you for your input.

Regards,
Kevin

Sometimes I find Plex goes into hyperdrive when it is doing all the library scans to update your media. Could this be affecting your laptop #2 and the settings might be different for it verses laptop #1? Mine seems to make more of a fuss over managing the library and metadata than the actual data quite often.

Try this: use Plex HTPC on the “player” laptop, instead of Plex for Desktop.

Another test: minimize the Plex app during the recording. Does the CPU load change then?
I have a hunch that the little spinner that is indicating activity is responsible.

As strange as it sounds, minimizing the “Plex for Windows” app on Laptop #2 worked. After I did that, the resource usage on Laptop #2 dropped to almost nothing. Plex must use the most resource-intensive spinner ever created or minimizing an app stops other processes.

If I am going to watch recorded or live OTA TV on my client laptop, I need to use some client software. I compared the resource usage of “Plex for Windows” to my Firefox browser. Both worked. It seemed like Firefox used less resources than “Plex for Windows” - but my PMS laptop had to work harder. If I used “Plex for Windows”, then the resources on Laptop #2 increased but my PMS laptop didn’t have to work as hard.

I haven’t tried Plex HTPC yet, but I will. When I use Plex at my cottage, I will either connect my laptop to the smart TV with a HDMI cable. Or I will install the plex client on my smart TV and use that. I haven’t decided which approach I will use yet. I will have to test both approaches.

What do people normally use for clients? Their smart TV app? A computer (laptop, mini PC, etc)? Something else?

I will replace my PMS Laptop with a high power machine - probably a mini-PC. I am able to overly tax my laptop if I record 2 shows simultaneously while watching a recorded show. My PMS laptop really didn’t like that - its resources were pegged.

I would like to thank everyone who responded to this post. As I said at the beginning of this post, I am totally new to Plex. But going through this exercise has helped me understand the underlying technology - with the help from all of you!! It seems like Plex is a great tool. I should have been using it a long time ago.

Regards,
Kevin

Lot’s of different choices available, and which one to pick depends on what you need - have a search around the forum for various dicussions.

The Nvidia Shield 2019 Pro typically comes out top if you need full the full works, like HD audio passthrough/direct play for a home cinema system with an AV receiver etc.

Also see:
https://support.plex.tv/articles/categories/player-apps-platforms/

https://support.plex.tv/articles/204080173-which-smart-tv-models-are-supported/

I agree with e10kstarfire in that the Nvidia Shield is VERY popular. It’s got great features as a player for Plex.
I suggest a few additional thoughts.

  1. playing in direct without using the transcoder will ease the load on your plex machine which makes sense of your comparison earlier. If Plex was playing Native it would be easier on the sending machine while if Firefox was having it transcode that would be easier on Firefox and harder on the Plex encoder.
  2. We use the smart TV app and usually have it direct play for most of our plays.
  3. If your replacing your server, I would seriously consider something that can hold some kind of graphics card. It doesn’t have to be big but plex pass members have the ability to use their GPU for transcoding which can make a huge difference. We’re not talking about spending thousands of bucks based on what you mentioned. You did not mention needing 16 simultaneous streams, etc. etc. A nice 4GB GDDR5 NVidia card is probably going on sale at the end of the year for $100? If your router in the house is AC or AX you should be good if your sending PC also streams with a newer wifi (just being a little “extra” possibly) but that again should not be a big cost factor. Newer home computers also have M.2 slots for their primary drive and if you spend the money there, you’ll really get the bang for your buck. You can always have a larger drive and copy things to your M.2 that your currently playing if you have a 1 or 2 TB etc M.2 drive.
    The M.2 (I just got a 4TB) plugs directly into the side of the motherboard that connects directly to the RAM and the CPU. A standard SSD or HDD plugs into the side that handles all the extra peripherals. Imagine plugging into yourself at the hand or foot compared to the base of the skull.
    Returning to one issue - we use smart TV’s so playing Plex did not work when our internet died a month ago and I think it was because of that. If you have a projector, make sure your device (like a Roku stick on ours) will work if offline on a local network as well.

I would like to thank everyone for their feedback. I found it very useful.

FYI, what I decided to do is take it slow - one step at a time. My first step will be to purchase the Nvidia Shield TV Pro to use as my Plex Media Server. Since I only want to record and stream OTA TV, I understand this device might be overkill for my needs - but I am good with that. I plan to use an external USB Seagate 4TB spinning drive for storage.

If that doesn’t work for me, I will then likely purchase a mini PC to use as my Plex Media Server. I will re-purpose the Nvidia Shield TV Pro as a client and use it at my cottage.

If the Nvidia Shield TV Pro doesn’t work for me as a client either, I can always re-purpose it again as a player for my old Plasma TV at home that doesn’t support any apps. I can use it to watch Netflix and YouTube on my Plasma TV.

Under any scenario, I don’t think purchasing the Nvidia Shield TV Pro will be a wasted investment.

Kevin