jitsi / jitsi-meet

Jitsi Meet - Secure, Simple and Scalable Video Conferences that you use as a standalone app or embed in your web application.
https://jitsi.org/meet
Apache License 2.0
22.84k stars 6.68k forks source link

Feature: Local Recording With Jitsi-Meet #9155

Closed 0xvividmirage closed 2 years ago

0xvividmirage commented 3 years ago

I would like to see a local recording option at least for the desktop version of the app. Right now, recording is only possible with Dropbox which is pretty cringe.

We have existing browser extensions such as RecordRTC that can record the screen, but I think this approach has security concerns. Thank you for your consideration.

saghul commented 3 years ago

Why do you think there are security problems with it?

0xvividmirage commented 3 years ago

My security concerns are more generalized in that web browsers are so often targeted for malicious attacks. I think it is far more secure to avoid using browser extensions that could be used to gain sensitive information from an individuals computer.

Why do I need to use non-free Dropbox in order record my screen with Jitsi-Meet? Given that Jitsi-Meet for desktop is not a web browser application, i think it should use a screen recording feature that uses a local application. I understand it may be difficult to get this feature implemented. If youd like some suggestions, I can help look into options.

saghul commented 3 years ago

My security concerns are more generalized in that web browsers are so often targeted for malicious attacks. I think it is far more secure to avoid using browser extensions that could be used to gain sensitive information from an individuals computer.

By that logic you also wouldn't install uBlock or other extensions that actually improve your privacy. Anyway...

Why do I need to use non-free Dropbox in order record my screen with Jitsi-Meet?

Because that's currently the only cloud storage backend we integrate with. You are welcome to implement other backend and submit pull requests.

Given that Jitsi-Meet for desktop is not a web browser application

You seem to be misinformed. The Jitsi Meet for desktop application is built using Electron. So for all intents and purposes it's a browser.

0xvividmirage commented 3 years ago

I do think that web browsers should have uBlock and other features such as this built into their browsers. Relying on these extensions is not a viable long-term plan. I wasn't aware Jitsi-Meet is an electron app. Perhaps it should build in/ include the screen recorder extension I mentioned?

Why does Jitsi-Meet need cloud storage?

saghul commented 3 years ago

Cloud storage is needed for recording the meeting. Even if we add a way to record locally it requires for you to be there, it will have gaps is you drop from the meeting, etc. a could recorder does not have such issues.

0xvividmirage commented 3 years ago

I have no issue with needing to be present while recording a meeting I am part of. I never use cloud storage services and never want to unless it is absolutely necessary. Are you saying it is required for Jitsi-Meet to use cloud services? I would like to know what limitation in Jitsi-Meet creates this issue where recording is impossible without cloud services.

I am bringing this up because I am requesting a feature that doesnt yet exist in Jitsi-Meet, which is local recording of video/audio of meetings. Thank you for your responses.

damencho commented 3 years ago

Even if we add a way to record locally it requires for you to be there, it will have gaps is you drop from the meeting, etc. a could recorder does not have such issues.

The cloud storage is required from the recorder - Jibri, not really from jitsi-meet. As Saul already said, if your Internet cuts there is no way you can record. So using a cloud recorder you rely on the cloud Internet which is more reliable than clients Internet.

0xvividmirage commented 3 years ago

Thanks -- So, is this really a request I should make on Jibri? I have a very stable internet where I am from so I would definitely appreciate not using cloud services if possible. I do not want to depend on Non-Free Software to fully use Free Software. I understand I can just use a regular local screen recorder, but it would be nice if Jitsi-Meet supported this. I know trying to only use Free Software is more of a goal than a destination, but I think it would make a bunch of free software lovers very happy.

What is the best way to request this feature?

damencho commented 3 years ago

If you want a local recording, the correct place for it is in jitsi-meet, this is the client with the UI that should be doing it ... It is not only cuts of the Internet, it is also bandwidth. Both cannot be guaranteed, and also we cannot control the clients' machine specs, so all these cannot guarantee the recording quality on client side, so this is the reason this is not a priority for us. Any PRs are welcome.

0xvividmirage commented 3 years ago

Thank you for considering my request and taking note of its priority.

fippo commented 3 years ago

you might want to check out @chadwallacehart's post https://webrtchacks.com/jitsi-recording-getdisplaymedia-audio/

monnier commented 3 years ago

Instead of a "local recording" option added to the normal Jitsi Meet UI, I think I'd even prefer a "recording-only mode". So in order to record a meeting in which I participate, I'd need two Jitsi connections (and "I" would appear in the meeting as 2 participants, one of which is completely passive and would have a suggestive name like "Jitsi recorder").

The advantage of such a mode would be that it would not need to decode the audio&video to (dis)play it (nor re-encode it to save it in a webm format)., so it should be significantly less CPU intensive. Ideally it could run on a headless machine.

saghul commented 3 years ago

That's easier said than done I'm afraid :-) It just became possible to get access to raw media with raw insertable streams in the WebCodecs origin trial in Chrome, but I'm not sure you can avoid all decoding.

Even then, that would mean you wouldn't record the entire meeting experience so you'd need to recreate it.

monnier commented 3 years ago

That's easier said than done I'm afraid :-) It just became possible to get access to raw media with raw insertable streams in the WebCodecs origin trial in Chrome, but I'm not sure you can avoid all decoding.

Avoiding decoding would be great, but even if we have to perform some decoding, avoiding the re-encoding (or even just most of it) would already be a major step up ;-)

Even then, that would mean you wouldn't record the entire meeting experience so you'd need to recreate it.

The end product I'm envisioning is a video that only shows one of the participants at a time (no tiled display, no "small camera view in the corner" while displaying a "shared screen", and no little thumbnail videos of the other participants on the side), so the "recreation" should be fairly straightforward.

Of course, there's room for more fanciful processing, but this would be a good start. The most important next feature for my use case would be to add/include chat messages.

ei8fdb commented 3 years ago

The cloud storage is required from the recorder - Jibri, not really from jitsi-meet.

Thanks for explaining this more clearly. Could the cloud storage be a Nextcloud or Owncloud instance?

stale[bot] commented 2 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

monnier commented 2 years ago

@ei8fdb : I definitely don't want any cloud storage in the equation.

saghul commented 2 years ago

Please see: https://github.com/jitsi/jitsi-meet/pull/10622