Hi,
I am trying to add Room recording feature to KRS.
I am doing that using composite.
When a new Room is created, I create the setup for Room recording.
1. Create composite:
this.composite = new Composite.Builder(pipeline).build();
2. Create Room Hubport:
this.dummyHubPort = new HubPort.Builder(this.composite).build();
3.Create RecorderEndpoint for Room:
MediaProfileSpecType type = MediaProfileSpecType.WEBM;
this.recorder = new RecorderEndpoint.Builder(composite.getMediaPipeline(), RECORDER_FILE_PATH)
.withMediaProfile(type).build();
this.dummyHubPort.connect(recorder);
4. And then start Room recording:
this.recorder.record();
This happens in Room() constructor.
Then when a Participant joins Room, I create a Participant HubPort using Room's Composite in the constructor for Participant() and connect it to Participant's PublisherEndpoint
this.hubPort = new HubPort.Builder(room.getComposite()).build();
publisher.connect(hubPort);
This gives me and empty, 0 bytes WEBM file.
Whereas, if I change the MediaProfileSpecType for the RecorderEndpoint to
MediaProfileSpecType type = MediaProfileSpecType.WEBM_AUDIO_ONLY;
Then I get a WEBM file with Room audio recorded correctly (tested with 2 Participants in a Room)
The client I am using to test my code changes is the KRS client web app.
Please suggest what needs to be done for recording Participant audio AND Video in Composite for a Room.
Thanking in anticipation of a helpful response.
Regards.