I’m a Microsoft Engineer by trade. What I don’t do is program lol
I have a windows 10 machine dedicated to my theater with a Nvidia 3090.
For the past few months I have been using it with MadVR installed with Video Processor. The reason I switched back to JRiver was because I wanted the latest version of MadVR. When using VP I could only use version 113.
I do have a Plex server setup on my Unraid NAS and a Emby server setup as well. These are dockers in Unraid.
When I was using the PC as a Video Processor I ran everything through it with a capture card installed.
Okay rad. I'm more of a programmer now than I used to be but, I got this early stuff setup long before I was competent.
To get started like with the least amount of effort, you're gonna want to make a 'button' for the Emby / Plex web ui. You'll do this with a user script which injects a button and runs a function. I can see if I still have my code (haven't used emby or whatever for movies in a long time) but I'll explain what you do. You can in theory do this entirely in a browser, I found it easier to spin up a helper service (since I needed the focus / window control on the target playback systems anyways)
On a page for say a movie in Emby or Plex, you're gonna want to get the id of the media item, then you're gonna issue a request to the Emby/Plex api to get information about that id, from that response, you get the file path, so you can now transform that path as needed (since you may be accessing it over SMB or the docker may see different paths internally) to send to JRiver with an MCWS request. You find a place to inject your button (I just did it next to the other play / resume buttons) and then when you click it, it can run your function.
Since I often have multiple versions of a movie and every film has an IMDB id, when I would request the specific item by ID, i'd pull the IMDB from it, and query for THAT within my library, giving me all the versions of said movie, then id sort them (largest, and then if the top matches are relatively similar in size, I pick the newest).
That's the most simple way to handle it. For a full 'experience' you'll want an application on target systems that can handle spawning and destructing JRiver plus whatever UI you want to use and managing the focus between them.