Multiple External Custom Layout Recordings Per Session

We just finished replacing naked Kurento with OV and Mediasoup. It’s been mostly a good experience. One of the features we really needed were composed quick start custom layout recordings that have external URLs. What we noticed is that if you set default recording properties for a session, like setting composed quick start, then you also have to set the layout url in that moment, or else you’ll get the server wide defaults when you record, regardless of the parameters you pass to the recording API. It also means that you can’t kick off a second recording with a different layout URL.

Our use case is as follows. We need to be able to create short on demand recordings that can be instantly replayed within a given session. We’ve achieved this with OV as it is today. But in addition to that we’d also like to create a separate recording of the entire session that both has a different external URL for layout and, optimally, keeps each audio input in it’s own audio track for the purposes of high quality multi-party transcription. The later feature need could also potentially be handled by allowing us to make a second recording that both has a custom layout with a single audio stream, along with the individual track recordings that we can harvest the audio from.

Thanks in advance for your consideration. OV has been a huge leap forward from our old Kurento setup.

This can not be done as it is right now :frowning: , You can only record your session once with the same layout with OpenVidu as it is right now.

But I can suggest a way to do it by yourself without OpenVidu intervention. Take into account that our recordings system is basically a container recording a browser with a given URL so you can handle recordings on your own using our recording image.

You just need to run a command like this:

docker run --rm --name=recording-google \
    -e URL="https://google.com" \
    -e VIDEO_ID="google-test" \
    -v $(pwd)/recordings:/recordings \
    openvidu/openvidu-recording:2.19.0

To stop the recording you just need to execute

docker exec recording-google /bin/bash -c "echo 'q' > /stop"

This will generate to you a video in your like: <current directory>/recordings/google-test/video.mp4

Note: For each video you need to define a different VIDEO_ID env variable, because the file will not be overwritten if it exists.

So, if you are able to open your OpenVidu sessions with an special token in a URL, you can pass that URL to the container and record your session with any HTML content you want.

In this way you can have your own recording system, and OpenVidu recording system. AFAIK recordings lifecycle is designed to only record a session once and it is not in our roadmap to do such a feature at this moment.