This does unfortunatly require a windows system to be done due to FRIMDecode being for windows, you can try using wine but it is not something I have tried.
You'll need any USB bluray player, it does not have to be capable of playing 3D bluray.
1st you'll need to use MakeMKV to rip the full bluray, when you open the disk within MakeMKV you'll want to find any tracks with MVC as a channel and make sure it is checked, without this you wont be able to create the SBS or HFSBS.
You can use MKVIinfo to check for Block addition ID type: 1836475203 (mvcC) in your MKV output to make sure the file you are about to processes has the MVC to create the SBS.
Next we need to extract the H264 stream, we'll use MKVExtract for this.
MKVExtract -f tracks $InputFile 0:$H264File --fullraw
Next we create a pipe for frimdecode.
$frimPipe = "\\.\pipe\frimdata"
Start-Process -FilePath "FRIM_x64_version_1.31\x64\FRIMDecode64.exe" -ArgumentList "-i:mvc", "`"$H264File`"", "-sbs", "-o", $frimPipe -PassThru -NoNewWindow
Now we open a new terminal window and start ffmpeg and pipe the data in from frimdecode.
$ffmpegArgs = @("-y", "-f", "rawvideo", "-vcodec", "rawvideo", "-s", "3840x1080", "-pix_fmt", "yuv420p", "-thread_queue_size", "128", "-r", "24000/1001", "-i", "`"$frimPipe`"", "-i", "`"$InputFile`"", "-c:v", "prores_ks", "-profile:v", "3", "-vendor", "apl0", "-pix_fmt", "yuv422p10le", "-c:a", "copy", "-sn", "-map", "0:v:0", "-map", "1", "-map", "-1:v", "`"$SbsFile`"")
ffmpeg $ffmpegArgs
Now we have the SBS but the output of the file will be big, if you want to compress this futher you can run the below
$compressArgs = @("-i", "`"$SbsFile`"", "-c:v", "libx264", "-preset", "slow", "-crf", "18", "-c:a", "aac", "-b:a", "320k", "-movflags", "+faststart", "`"$CompressedSbsFile`"")
ffmpeg $compressArgs
Once complete we now have a compressed (or not) SBS file we can load into a VR headset for 3D playback, you're done now if thats all you want to do.
If you are tyring to play the video back on a 3D TV we need to create a half-frame side by side, to do this we run the bellow.
halfFrameArgs = @("-i", "`"$SbsFile`"", "-vsync", "vfr", "-vf", "`"scale=iw/2:ih`"", "-c:v", "libx264", "-profile:v", "main", "-level", "4.1", "-pix_fmt", "yuv420p", "-crf", "23", "-refs", "3", "-bf", "2", "-g", "30", "-keyint_min", "23", "-sc_threshold", "40", "-c:a", "aac", "-b:a", "192k", "-ar", "48000", "-ac", "2", "`"$OutputFile`"")
ffmpeg $halfFrameArgs
Now you should have a large HFSBS file you can load onto your 3D TV.
If you want a way to automate this to batch process multaple files you can check out my script here https://git.dulieu.uk/3d-bluray-processing/