# Is it possible to Recording conference call?

**URL:** <https://mediasoup.discourse.group/t/is-it-possible-to-recording-conference-call/1505>\
**Category:** mediasoup libraries\
**Created:** [July 30, 2020, 9:39am UTC](https://mediasoup.discourse.group/t/is-it-possible-to-recording-conference-call/1505 "2020-07-30T09:39:10Z")\
**Posts on this page:** 19\
**Page:** 1

<div class="post-metadata">

**Author:** ![mahesh](https://avatars.discourse-cdn.com/v4/letter/m/9dc877/32.png) [@mahesh](https://mediasoup.discourse.group/u/mahesh)\
**Post date:** [July 30, 2020, 9:39am UTC](https://mediasoup.discourse.group/t/is-it-possible-to-recording-conference-call/1505/1 "2020-07-30T09:39:10Z")

</div>

I have been taking streams of all peers in room, showing them in div container. I tried many ways but not able to record conference call. Do help me with this!

---

<div class="post-metadata">

**Author:** ![jmillan](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/jmillan/32/9_2.png) [@jmillan](https://mediasoup.discourse.group/u/jmillan)\
**Post date:** [July 30, 2020, 12:04pm UTC](https://mediasoup.discourse.group/t/is-it-possible-to-recording-conference-call/1505/2 "2020-07-30T12:04:54Z")

</div>

Look for “recording” in this forum. There are already many entries that will help you.

---

<div class="post-metadata">

**Author:** ![mahesh](https://avatars.discourse-cdn.com/v4/letter/m/9dc877/32.png) [@mahesh](https://mediasoup.discourse.group/u/mahesh)\
**Post date:** [July 30, 2020, 12:15pm UTC](https://mediasoup.discourse.group/t/is-it-possible-to-recording-conference-call/1505/3 "2020-07-30T12:15:25Z")

</div>

Hey, first of all thanks for reply. There are entries for ‘recording’ but they are for single call record not for conference call recording. I have been trying to record conference call from weeks. Do help with this!

---

<div class="post-metadata">

**Author:** ![ibc](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/ibc/32/1540_2.png) [@ibc](https://mediasoup.discourse.group/u/ibc)\
**Post date:** [July 30, 2020, 12:20pm UTC](https://mediasoup.discourse.group/t/is-it-possible-to-recording-conference-call/1505/4 "2020-07-30T12:20:55Z")

</div>

> [@mahesh](#):
>
> Do help with this!

Believe me or not, but we are not mandated to help anyone. Read the docs and related external projects.

---

<div class="post-metadata">

**Author:** ![ethand91](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/ethand91/32/14_2.png) [@ethand91](https://mediasoup.discourse.group/u/ethand91)\
**Post date:** [July 31, 2020, 1:00am UTC](https://mediasoup.discourse.group/t/is-it-possible-to-recording-conference-call/1505/5 "2020-07-31T01:00:14Z")

</div>

Are you looking to record all the streams to the same file?  
If so you will probably need to record the streams separately, and then use ffmpeg to merge them all into one file, which can be a nightmare.

Easiest way would probably have one user screen capture the conference and record that stream.

---

<div class="post-metadata">

**Author:** ![friksa](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/friksa/32/869_2.png) [@friksa](https://mediasoup.discourse.group/u/friksa)\
**Post date:** [August 2, 2020, 5:32am UTC](https://mediasoup.discourse.group/t/is-it-possible-to-recording-conference-call/1505/6 "2020-08-02T05:32:01Z")

</div>

Recording and playback of a production-grade solution today is the single biggest weakness of MediaSoup IMO. Once that is solved it will be the best “complete” option by far.

You have to understand… as amazing as MediaSoup is, you will have to spend most of your effort and time on creating production quality recording and playback solutions. Wish it was different, but it is still way better than having to do it all.

Bottom line: There is no good solution yet, because it is so hard to do. We created a production quality solution for audio only and working on the video part next. Why don’t we share it? Well, we cannot support it in a public group and it is part of how we need to pay for all the effort to get it working in the first place 🙂

Best of luck,

---

<div class="post-metadata">

**Author:** ![ibc](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/ibc/32/1540_2.png) [@ibc](https://mediasoup.discourse.group/u/ibc)\
**Post date:** [August 3, 2020, 1:00pm UTC](https://mediasoup.discourse.group/t/is-it-possible-to-recording-conference-call/1505/7 "2020-08-03T13:00:34Z")

</div>

> [@friksa](#):
>
> Recording and playback of a production-grade solution today is the single biggest weakness of MediaSoup

mediasoup is a media router, not a media endpoint. Recording means decoding, integration with libav, etc etc. That’s not what mediasoup is intended for.

---

<div class="post-metadata">

**Author:** ![friksa](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/friksa/32/869_2.png) [@friksa](https://mediasoup.discourse.group/u/friksa)\
**Post date:** [August 3, 2020, 1:54pm UTC](https://mediasoup.discourse.group/t/is-it-possible-to-recording-conference-call/1505/8 "2020-08-03T13:54:47Z")

</div>

Completely Agree… Let me rephrase: “Recording and playback of a production-grade solution today is the single biggest weakness of MediaSoup Eco-System”

---

<div class="post-metadata">

**Author:** ![jnoring](https://avatars.discourse-cdn.com/v4/letter/j/34f0e0/32.png) [@jnoring](https://mediasoup.discourse.group/u/jnoring)\
**Post date:** [August 6, 2020, 3:39pm UTC](https://mediasoup.discourse.group/t/is-it-possible-to-recording-conference-call/1505/9 "2020-08-06T15:39:53Z")

</div>

In fairness, no–recording does not necessarily mean “decoding”. There are multiple ways to record streams, some of which do not involve decoding, but depacketization and reconstruction of compressed audio or video.

These are both of the methods used by gstreamer/ffmpeg code I’ve seen floating about–they work, although only marginally so.

---

<div class="post-metadata">

**Author:** ![ibc](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/ibc/32/1540_2.png) [@ibc](https://mediasoup.discourse.group/u/ibc)\
**Post date:** [August 6, 2020, 4:07pm UTC](https://mediasoup.discourse.group/t/is-it-possible-to-recording-conference-call/1505/10 "2020-08-06T16:07:28Z")

</div>

That’s why we may add a “encoded frame based API” in the future.

---

<div class="post-metadata">

**Author:** ![Dirvann](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/dirvann/32/419_2.png) [@Dirvann](https://mediasoup.discourse.group/u/Dirvann)\
**Post date:** [August 13, 2020, 5:46pm UTC](https://mediasoup.discourse.group/t/is-it-possible-to-recording-conference-call/1505/11 "2020-08-13T17:46:30Z")

</div>

Another thing you could do (haven’t tested yet), if you just need an active speaker, you could for example let ffmpeg record with rtp and let ffmpeg wait for a new connection when you just switch producer and reconnect to ffmpeg. ffmpeg has a parameter `-stimeout 1000` which lets you set the timeout before it closes the rtp stream.

* * *

Then just like @ethand91 said, you can combine all the files together. I’m currently working on a tool that uses ffmpeg. With as input only the `paths` to the video files (of the seperately recorded users) and their `start time`. It then outputs a single video just like a video conference where you see multiple people coming on and off.  
The layout is also customizable.

Now just adding some more support for when there is video-only, or audio-only mixed into it and also putting the most active speaker in front (based on audio or preset or something).

Still work in progress but I’ll probably release it soon.

---

<div class="post-metadata">

**Author:** ![Dirvann](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/dirvann/32/419_2.png) [@Dirvann](https://mediasoup.discourse.group/u/Dirvann)\
**Post date:** [February 3, 2021, 12:31am UTC](https://mediasoup.discourse.group/t/is-it-possible-to-recording-conference-call/1505/12 "2021-02-03T00:31:08Z")

</div>

I published a first version for the package to combine separately recorded videos into a single file with different video call layouts:

> **[Dirvann/video-conference-stitcher](https://github.com/Dirvann/video-conference-stitcher)**
>
> This package makes it possible to combine separately recorder media files from a video conference call into a single file.

> **[video-conference-stitcher](https://www.npmjs.com/package/video-conference-stitcher)**
>
> Combine separately recorded recordings from a video conference into a single video file.

Feel free to do some pull requests and create issues, there is still some improvement possible.

---

<div class="post-metadata">

**Author:** ![madabhaviamit](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/madabhaviamit/32/1418_2.png) [@madabhaviamit](https://mediasoup.discourse.group/u/madabhaviamit)\
**Post date:** [February 24, 2021, 3:02pm UTC](https://mediasoup.discourse.group/t/is-it-possible-to-recording-conference-call/1505/13 "2021-02-24T15:02:45Z")

</div>

Hi Dirk,

Thank you so much for providing the access to the project.

Can we use separate .webm as well to do the merged recording?  
and what if we give 0 has the starttime value for all the individual recorded files in new Media() object?

---

<div class="post-metadata">

**Author:** ![Dirvann](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/dirvann/32/419_2.png) [@Dirvann](https://mediasoup.discourse.group/u/Dirvann)\
**Post date:** [February 24, 2021, 3:14pm UTC](https://mediasoup.discourse.group/t/is-it-possible-to-recording-conference-call/1505/14 "2021-02-24T15:14:21Z")

</div>

Hi @madabhaviamit,

I haven’t tested with .webm files yet, but should normally not cause any problems as they will be reencoded.  
If the starttime is 0 for every file then they will all show up on the screen at the same time in the chosen layout.

---

<div class="post-metadata">

**Author:** ![madabhaviamit](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/madabhaviamit/32/1418_2.png) [@madabhaviamit](https://mediasoup.discourse.group/u/madabhaviamit)\
**Post date:** [February 24, 2021, 4:17pm UTC](https://mediasoup.discourse.group/t/is-it-possible-to-recording-conference-call/1505/15 "2021-02-24T16:17:14Z")

</div>

Hi Dirk,

I am getting error when running the example, Raised a git issue for the same. Please help

---

<div class="post-metadata">

**Author:** ![imtiyaz](https://avatars.discourse-cdn.com/v4/letter/i/9e8a1a/32.png) [@imtiyaz](https://mediasoup.discourse.group/u/imtiyaz)\
**Post date:** [July 10, 2021, 12:07pm UTC](https://mediasoup.discourse.group/t/is-it-possible-to-recording-conference-call/1505/16 "2021-07-10T12:07:54Z")

</div>

Yes, it is possible to recording conference call by keeping a system bot inside a meeting. I achieved the recording feature using puppeteer, ffmpeg, Mediarecorder api and some application customization.

1. Create a bot (Backend and frontend both) - To keep your meeting recording UI real, create a bot page like your meeting page in frontend.
2. On record press, start puppeteer in backend and load your bot URL. (Now your bot starts consuming media from all producers with similar layout in HTML CSS )
3. Checkout puppeteer screen recorder module and configure it on your puppeteer instance ( This records your bot screen video )
4. In Bot page, write some javascript. ( On each consumer received for Audio, keep recording the audio using MediaRecorder API and save it with the timestamp on some desired location so you can process that later )

Now you have 1 recorded video and several chunks of recorded audio according to timestamps

1. Write a FFMPEG command to merge video and audio chunks according to time stamps. (Hint: Use itsoffset option for audios)

Tips:

- Keep metadata of your audio recordings with timestamps to have a good sync while merging with video
- Before merging, change your recorded video speed to 1.08 (using setpts in ffmpeg) for better sync

---

<div class="post-metadata">

**Author:** ![Conrad6](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/conrad6/32/1556_2.png) [@Conrad6](https://mediasoup.discourse.group/u/Conrad6)\
**Post date:** [April 27, 2022, 9:04am UTC](https://mediasoup.discourse.group/t/is-it-possible-to-recording-conference-call/1505/17 "2022-04-27T09:04:33Z")

</div>

Thanks for this idea @imtiyaz👍👍

---

<div class="post-metadata">

**Author:** ![bagginstyrone](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/bagginstyrone/32/926_2.png) [@bagginstyrone](https://mediasoup.discourse.group/u/bagginstyrone)\
**Post date:** [May 17, 2022, 9:11am UTC](https://mediasoup.discourse.group/t/is-it-possible-to-recording-conference-call/1505/18 "2022-05-17T09:11:04Z")

</div>

Thanks, @imtiyaz for sharing such useful ideas.

---

<div class="post-metadata">

**Author:** ![abhinavsy](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/abhinavsy/32/1708_2.png) [@abhinavsy](https://mediasoup.discourse.group/u/abhinavsy)\
**Post date:** [August 25, 2022, 8:14am UTC](https://mediasoup.discourse.group/t/is-it-possible-to-recording-conference-call/1505/19 "2022-08-25T08:14:57Z")

</div>

How to separately record the videos streams in your mediasoup record-demo?
