mirotalk icon indicating copy to clipboard operation
mirotalk copied to clipboard

Record audio and video streams from other participants

Open adler-parobocz opened this issue 3 years ago • 10 comments

Excellent system, it meets the need for a meeting very well. One suggestion, when recording the conversation in the room with other participants, record their audio along with the video.

adler-parobocz avatar Dec 16 '21 19:12 adler-parobocz

Hello @adler-parobocz, thank you so much, I'm glad you like it!

miroslavpejic85 avatar Dec 17 '21 08:12 miroslavpejic85

check it out: https://github.com/muaz-khan/RecordRTC/wiki/Record-Multiple-Streams-Into-Single-File

miroslavpejic85 avatar Jan 12 '22 07:01 miroslavpejic85

I will check @miroslavpejic85 Thank you

adler-parobocz avatar Jan 13 '22 14:01 adler-parobocz

@miroslavpejic85, this project is absolutely amazing! Thank you for all your hard work and making this open source! In terms of recording both video and audio, I noticed that in the deployed version you are basically using getDisplayMedia to record the screen which is super creative.

One thing I wanted to suggest on this thread is what about a server side solution that uses puppeteer to record the screen? I actually wrote an article recently and mentioned mirotalk in my article.

Basically on the server you could use a library like puppeteer stream to record both audio and video. I have a very short demo and code snippet in the article.

Posting here in case it helps. Thanks so much.

toshvelaga avatar Jan 19 '22 00:01 toshvelaga

Hello @toshvelaga, Very interesting, I'll take a look at them. Thank you so much for mentioning me in your article and for the compliments, that motivates me to make it even better :)

miroslavpejic85 avatar Jan 19 '22 07:01 miroslavpejic85

Let's say that the idea of MiroTalk's recording functionality was not to depend on any external server.

If necessary, the participant starts his own registration, everything is saved in the Blob of his browser, and then downloaded to his device.

The idea of using getDisplayMedia seemed to be the most optimal as it allows you to select whether to record a specific screen, all screens, a window, and so on, including audio.

The only small problem with this task is that it only records its own audio and not that of the participants, and I had mentioned RecordRTC which probably (to try) could solve it.

Surely there will be a more optimal way to do this, but I don't know if possible without depending on an external server.

miroslavpejic85 avatar Jan 19 '22 09:01 miroslavpejic85

Ahhh I see that makes total sense. In that case RecordRTC would be the way to go, but also like are most people who use the service using the recording feature? If it's only a small fraction of people it might not be worth all the effort.

Personally I couldn't get recordRTC to work in my react based webRTC app, but that being sent I only spent a few hours on it.

I don't know if you guys came across this, but here's a list of like 30 demos w/ source code using RecordRTC: https://www.webrtc-experiment.com/RecordRTC/simple-demos/

toshvelaga avatar Jan 19 '22 21:01 toshvelaga

WebRTC all the way! Allow the other user to share their blob stream at the end of the call as well. Should sync up fine with both blobs being stitched as audio tracks into an MP4.

thetwosents avatar Apr 19 '22 14:04 thetwosents

Hello @thetwosents, Thanks for the idea, but the problem could be if the recording is long time, the blob could reach high size, which does not become feasible to sync. The streams (audio-video) of the participants I have them in the room, there will be sure a better way to do it locally without sync.. ;) Suggestions are always welcome.

miroslavpejic85 avatar May 13 '22 08:05 miroslavpejic85

Hello, how can we use RecordRTC or anything else when running application within the Docker? Is there some "Howto"?
For my use case also is requirement to record audio of all participants.

franko108 avatar Sep 18 '22 18:09 franko108

Useful links:

  • https://github.com/streamproc/Record-Entire-Meeting
  • https://github.com/streamproc/MediaStreamRecorder
  • https://www.webrtc-experiment.com/msr/MultiStreamRecorder.html
  • https://github.com/streamproc/MediaStreamRecorder/blob/master/demos/MultiStreamRecorder.html

miroslavpejic85 avatar Nov 05 '22 10:11 miroslavpejic85