![]() > Constraints serve a different purpose in getDisplayMedia than they do in getUserMedia. > The user agent MUST let the end-user choose which display surface to share out of all available choices every time, and MUST NOT use constraints to limit that choice. That seems like it should be easy to do with constraints. I wanted to see if I could simplify the user interface by limiting the section options. In my case I really only care about recording my Jitsi Meet tab. displaySurface selection constraints are uselessĭisplaySurface option for choosing between desktopīrowser tab. You can see the UI differences below: Chrome Version: 84Ĭhrome and Edge display a blue highlight box around the inside of the window frame to indicate the tab is being shared. Safari has no picker and only lets you choose the current display. Chrome and Edge allow choosing among any full display, application window, or browser tab. There are big differences in the recording picker options. You can see that on GitHub here or run it on my site here. ![]() To help gather some data I wrote some code to help call I thought this would be an easy API to evaluate, but I should know better. Note: when I refer to Edge below, I am using the new Chromium-based Edge. The bad news is these implementations are all different, and it could have an impact on the user experience. ![]() The good news is all the major browsers implement GetDisplayMedia API for sharing Desktop media was introduced a while ago, which we covered here. I could have set up some canvas that would take the screen and save that too, but I found a much simpler way with This actually worked with Jitsi Meet’s multiple audio connections. I had previously made an audio recorder that overloads theĬreatePeerConnection API, grabs all the tracks across multiple connections, and saves all the audio to file. Nor is it something that will work universally for all users who join over the web. The lazy way to do this is to hack together some audio sources for Quicktime recording or just use one of the WebRTC-based recording API’s or browser extensions, but that wouldn’t make for much of a post. So I set out on a hack to add local screen recording. I need to record whatever I am looking at on the screen too. Jitsi actually has an option for this, but that only includes the audio. It is also less resource intensive since you are using your local computer to save media it is already receiving vs. Local recording is more secure by nature as you are not leaving unencrypted media on a server somewhere. Local RecordingĪnother approach is to just record locally. I really just wanted a quick way to record a session and share it afterwards and this was all getting very complex. On top of that, you also need to build a mechanism to transfer the files someplace after they are recorded or setup the Dropbox integration. If you want to record multiple sessions you can set it up to launch multiple Docker containers, which starts getting complex. It also only handles a single recording at time. This approach is fairly resource intensive, which forced me to upgrade my server from $5/mo to $20/mo. Jibri loads a headless browser that acts as a silent participant in the call, grabbing the audio and saving it to disk. The Jibri setup and configuration is more complicated to install than the base Jitsi Meet, but one can struggle through it in hours or less if you’re familiar with the underlying system. Jitsi has a module called Jibri used for recording. This sounds like a simple feature to add, but… Jitsi Cloud Recording Challenges On the surface, my requirements here are simple – record my audio and the audio and video of the Jitsi Meet session on demand and save the file locally. I often do demos and recording the session for others and future reference. However, one feature I really wanted to implement is recording. There are a billion posts/videos on how to set up Jitsi Meet, and I don’t have anything new or interesting to add to the technosphere there. I built a Jitsi Meet server a few months ago with the intention of updating my Build your own phone company with WebRTC and a weekend post. My result is located in this repo.Įditor’s note: see the comments section for some very relevant commentary and caveats from Jan-Ivar at Mozilla. Read on for plenty of details and some reference code. Adding your own HTML/JavaScript to Jitsi Meet is pretty simple.mediaRecorder for media recording has some of its own unexpected limitations, and.getDisplayMedia for screen capture has many quirks,.That lead me down the road to discovering that: ![]() The feature wasn’t built in the way I wanted, so I set out on a hack to build something simple. I wanted to add local recording to my own Jitsi Meet instance.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |