Multiple camera simultaneous recording

Hello!
I’m using Unity 2021.3.20f1 as a simulation environment for my university master’s thesis.

I need to record videos from 3 different cameras during the same simulation run (simultaneously). Unfortunately, this isn’t possible using Unity’s built-in recorder plugin. How can I achieve this? Would it be possible to attach a script to the camera objects to save the video?

It’s crucial that the video recordings happen in parallel. Viewing the camera feed during the run is not important, as my work is focused on the video material.

Any kind of help or suggestions would be appreciated. Thank you.

UPDATE: I’ve wrote this script which should do what I meant, and although there is a warning that says that multiple video recorders can produce a crash, it’s working.
The only big problem is that the videos saved are all black. Someone knows why?

public class MultipleCameraRecorder : MonoBehaviour
    {
        RecorderController m_RecorderController;

        void OnEnable()
        {
            var mediaOutputFolder = Path.Combine(Application.dataPath, "..", "SampleRecordings");

            var controllerSettings = ScriptableObject.CreateInstance<RecorderControllerSettings>();
            m_RecorderController = new RecorderController(controllerSettings);

            // Video Recorder 1
            var videoRecorder1 = CreateVideoRecorder("My Video Recorder 1", "video1_v", "Camera1", mediaOutputFolder);

            // Video Recorder 2
            var videoRecorder2 = CreateVideoRecorder("My Video Recorder 2", "video2_v", "Camera2", mediaOutputFolder);

            // Video Recorder 3
            var videoRecorder3 = CreateVideoRecorder("My Video Recorder 3", "video3_v", "Camera3", mediaOutputFolder);

            // Setup Recording
            controllerSettings.AddRecorderSettings(videoRecorder1);
            //controllerSettings.AddRecorderSettings(videoRecorder2);
            //controllerSettings.AddRecorderSettings(videoRecorder3);

            controllerSettings.SetRecordModeToManual();
            controllerSettings.FrameRate = 60.0f;

            RecorderOptions.VerboseMode = false;
            m_RecorderController.PrepareRecording();
            m_RecorderController.StartRecording();
        }

        void OnDisable()
        {
            m_RecorderController.StopRecording();
        }

        private MovieRecorderSettings CreateVideoRecorder(string name, string outputFile, string cameraTag, string outputFolder)
        {
            var videoRecorder = ScriptableObject.CreateInstance<MovieRecorderSettings>();
            videoRecorder.name = name;
            videoRecorder.Enabled = true;

            videoRecorder.OutputFormat = MovieRecorderSettings.VideoRecorderOutputFormat.MP4;
            videoRecorder.VideoBitRateMode = VideoBitrateMode.Low;

            videoRecorder.ImageInputSettings = new CameraInputSettings
            {
                Source = ImageSource.TaggedCamera,
                CameraTag = cameraTag,
                OutputWidth = 1920,
                OutputHeight = 1080
            };

            videoRecorder.AudioInputSettings.PreserveAudio = true;
            videoRecorder.OutputFile = Path.Combine(outputFolder, outputFile) + DefaultWildcard.Take;

            return videoRecorder;
        }
    }