Is there any way to separate temp recording storage from library

I am pretty new to PMS, so I apologize for the newbie questions in advance…

Is there a way to separate the temp storage for recording TV from the final library storage? As I understand the temp storage is .grab a subdir of the final library location… e.g. when recording Vikings – \NAS\RecordedTV.grab when recording is complete file is moved to \NAS\RecordedTV\Vikings

Maybe I am making too many assumptions since don’t know Plex very well. My setup is a dedicated headless Win10 PlexServer, Synology NAS for storage, 2 HDHR Primes, and a bunch of various clients. The PMS server has a Rysen 5 1600, 16gb RAM, 250gb M.2 SSD, 2 gigabit ethernet cards. One gigabit network is 192.xxx.xxx.xxx has all internal clients, NAS, HDHRs, PMS, and internet connection on it. There is also a large frame, gigabit network directly connecting PMS to the NAS on 169.xxx.xxx.xxx. I have set up a 8gb RAM disk for transcoding.
There are two issues:

  1. When I enable the 169 network so PMS can access the NAS directly – all content serving is fine, but recordings fail due to permission write failures on the NAS (it records to .grab fine, but cannot save to the final library; I have checked permissions and tested many different ways, the NAS permissions are correct). When I “turn off” the 169 net, only use 192, all recordings work perfectly. I’m probably wrong, but I chalk this up to the “recording TV code” is still maturing.
  2. Traffic overload on 192. When PMS requests a stream to record from the HDHR, that stream comes to the PMS server, back onto 192 to the NAS, then once recording is complete comskip reads/writes the file, then the final recording is stored to the library – lots of 192 traffic. If I activate 169, the traffic pattern is HDHR to PMS stream on 192, then all remaining traffic is offloaded to 169. Leaving 192 for other non AV traffic and AV streaming only.

Back to my original question, I am assuming if I could record to my PMS local M.2 SSD, comskip the file, then have PMS final-write the file to the NAS-based library (ideally over 169). This would dramatically reduce all network traffic and processing latency – recording writes, comskip reads/writes.

All comments and help welcome.

Could setup recordings to local drive as you mentioned then have a script move recordings to final location you desire. I do something similar, record to SSD then move recording when done. Script runs every 5 minutes to pickup any recordings recently added. Shows can be done with commercial removal at various times when you have multiple recordings all finishing at the same time. Since you mentioned Windows here is what I use:

robocopy /MOVE /S “G:\TV_DVR” “F:\Recorded TV” /XD “G:\TV_DVR.grab”

Moves all files from “G:\TV_DVR” to :F:\Recorded TV" ignoring the grab folder.

i do something similar to what johnm_ColaSC mentioned. I record everything on a local drive (D:\Plex) and have MCEBuddy moving everything recorded to G:\Plex (which is a network drive). The remaining folder structure is identical. MCEBuddy also deletes the file on D:\Plex when the copy is complete. In plex I have both D and G as part of my library folders. After the move happens, MCEBuddy also transcodes the recording into MKV H264 (from TS MPEG2). I have this scheduled to happen at night. This way I can do all the heavy writing on the local internal drive and then just reads from the network drive during playback.

I have actually recently changed in the last 10 days my configuration for mcebuddy. I now let mcebuddy place the modified recording in same grab folder as original Plex recording and delete the original ts file. Plex then moves modified file out of grab folder to folder on recording drive. The one line above in my script then moves recording off the recording drive (SSD) to my permanent storage drive. This allows Plex to show the recordings in the recording schedule with the play icon. My old method removed the recording schedule entry because Plex no longer saw the recording that mcebuddy removed.

Prior to the change my recording schedule looked like below most days:

After the change I now see shows with the play button in the Recording Schedule:

johnm_ColaSC, would you mind sharing your script? I need a little further clarity - you are using the POSTPROCESSING SCRIPT feature to call an MCEBuddy script? If yes, does it work like this? Recording ends, script gets called, returns to Plex, Plex does it final processing by moving the file to the library and updating internal info about the recording…

With your level of Plex experience… Any thoughts on using a dedicated net for server to plex traffic and separate main net for serving. Any thoughts on the error I am getting when I use it?

@MalibuDave42 I can’t share the actual mcebuddy script. It is one I found on a reddit article when I first started with Plex: https://www.reddit.com/r/PleX/comments/52v7vd/guide_commercialfree_experience_with_plex_dvr/. Part 3 discusses the post processing option, script is linked in article. Another Plex user created the script and is pretty territorial about it being posted, wants everyone to use link to site he posted it on so he can see how many downloads it gets. Be careful if you go to download from the site. It is a plain text file but the site was at one point littered with malware downloads. I used an In-Private mode browser session when I downloaded.

Yes, after the recording finishes, Plex does it transcode process to reassemble the entire recording, and then calls the script passing it the path/filename of where the recording is located in the grab folder, the script processes the recording through mcebuddy, mcebuddy moves the mp4 file it creates to the grab folder and removes the ts file Plex created and exits the script, Plex then moves the mp4 file from the grab folder into the library on the recording SSD. My one line script (line in post above) runs every 5 minutes and moves any recordings found from my SSD to a HDD in the same library. Plex never complains because the file about the file being moved because it is still in the same library. I even at a later time use Handbrake to convert video to h265 for permanent storage. I like the significantly smaller size of files and my clients that all run locally seem to handle direct play of the files just fine. I do have a couple of other remote users/friends that watch some recordings that I see Plex transcoding from HEVC to H264 when they are watching.

As far as a separate network I am not sure if that would really be required. I can have up to 6 recordings happening at the same time on my production Plex server and never see any issues with watching content or even working on the same machine at the same time. If you do the math 6 recordings assuming all are 1080 so a max of roughly 12 mbps would be 72 mbps. I do have wired gig connections to all of my devices. I also have a gig switch that connects my Plex server to my local network and all 3 of the tuners connected to the Plex server are connected to the same switch, so recording traffic never leaves that switch. I do have 2 other tuner devices I could configure on this same server that are located in other locations in the house but at this time I have not needed more than 6 tuners at the same time.