Hi HN, author here! As students facing online instruction, we built ZoomerBackgrounds to solve firsthand the everyday problems of having subpar backgrounds and spoke with several friends working in industry about their background needs. The result is a product we really think you're really going to love. We had a lot of fun making this over the weekend and hope you all enjoy :)
For the tech stack we used react on the front end with a Node.js server + Firebase for persistent storage. This was my first time writing Javascript in about 5-6 years and it's really neat to see how the ecosystem has matured - there are even real classes now! We also used the Google Cloud Vision API for detecting inappropriate images.
On the database side, we found that Firebase Store works really well until it doesn't -- when you want to do anything that isn't basic reads/writes (e.g. SQL-like IN queries, query pagination, programmatic queries like sorting by the HN ranking algorithm ~ points/(time since post)^(1.5)) the workarounds can get complex and a little weird.
One question we had is around AdSense approval! The Google Adsense approval team rejected our website for not having enough meaningful content / not having "valuable inventory" - it would be great to hear some insight about how to show Google we are a real website.
Happy to answer any questions here or at logan@mit.edu!
I see that you have an option to not include a watermark on downloaded images, but having watermarks turned on by default (especially since these look like user uploaded images which I'm assuming you don't actually own) is quite off-putting.
I was going to say that the watermark is too obtrusive ... I don't have a problem with you getting a bit of attention in exchange for the time it takes to curate the collection but it's too big and in a bad spot.
I’m confused why some of these backgrounds are mirrored. You know that when you see your background in Zoom it’s only flipped for your benefit, right? It’s sent to others the normal way round...
I wonder: does anyone know of a solution which does something similar in a more software agnostic way? I imagine a software that takes a webcam manipulates the image and emulates another webcam which one could select then in every software that supports webcams.
On Linux ffmpeg can output to a /dev/videoX device using v4l2loopback in order to spoof a webcam, I was able to play a looped video as a webcam and connect to websites that require a webcam.
On kubuntu I had to mknod (I think) the video device, then apt install v4l2loopback, then modprobe videodev and the v4l2loopback module, then use ffmpeg.
ffmpeg can capture from any video source including your running Xsession (eg a desktop area). So in theory you could output a pythonCV window or something this way.
Yes, you can do this with OBS.
The virtual webcam feature can be added as a plugin. And chroma-keying is a built-in feature. I use a Mac, and I've been toying with this a bit over the last weeks (e.g. https://davidbieber.com/snippets/2020-04-09-exploring-obs/)
It's super easy...if you have a suitable chromakey backdrop and decent lighting on it. What I'd love is a plugin that replicates (or at least approximates) some of the "virtual chromakey" features of Zoom et al.
I don't currently have access to a good chromakey backdrop and it really is much easier to do it well with a bright green matte screen behind you.
There are green screen plugins for that. You could chain Snapcamera's virtual cam output into OBS and use OBS 's chromakey filter to underlay whatever other content you like. Y I u can then output OBS to another virtual cam output for use in Zoom or wherever else via the Virtualcam plugin for OBS.
It'd be really nice if someone would make a nice OpenCV virtualcam output so one could drive all this from a (relatively) simple Python script.
Oh hey, this worked fairly well. I used one of the Snap fake-greenscreen filters and fed it to OBS as you suggested. It really does highlight the limitations of fake-chromakey (edges are fuzzy/flickery) but that's to be expected without a real, properly lit backdrop.
I won't be using this in any work meetings but it could be fun for calls with friends.
Snap Camera, CamTwist, and OBS are all options for that. Zoom recently had issues with using these virtual webcams on macOS, don't know if it's been fixed.
Kirin J Callinan and Alex Cameron both like to invent characters and then write songs from the character's perspective as sincerely as possible. Sometimes the characters they are playing are just exaggerated version of themselves. They write 'serious' songs with elements irony and sometimes this means the songs fall closer to the 'parody' end of the spectrum.
I think their best attempt at this was Alex Cameron's album 'Forced Witness'[0]. Alex imagines what a Marlon Brando obsessed, porn addicted loner from the 80s would look like in 2017 with access to the internet. It manages to achieve biting satire and great song writing without devolving into simple parody.
(Author here) That's certainly something we took into account--we're using some AI methods to largely automate content moderation (Google Cloud Vision, in particular), and we also have to capability to turn on a moderation queue if it becomes necessary. Aside from that, if you spot something inappropriate before we do let us know at hello@zoomerbackgrounds.com!
If folks want to use video backgrounds, there is a simple way, if your source is on youtube.
youtube-dl <video>
In many cases these days, it will yield a mp4 file that you can plug directly into Zoom. Sometimes it will download in other formats, you might need to convert.
I'm looking for a subtle way to give my coworkers a chuckle without being too distracting, I think it'd be funny to take a picture of my current background and then change it every day but I can't think of a decent way to do it without looking like a nut job.
Someone I know recorded a video of the normal view from their camera, and at some point they walk in, pretend to notice that they are walking in on a video conference, and slink out.
My company of approx 200 mostly use face cameras, too. It's one of the steps in place to help increase connectivity during this time when we can't physically interact.
For the tech stack we used react on the front end with a Node.js server + Firebase for persistent storage. This was my first time writing Javascript in about 5-6 years and it's really neat to see how the ecosystem has matured - there are even real classes now! We also used the Google Cloud Vision API for detecting inappropriate images.
On the database side, we found that Firebase Store works really well until it doesn't -- when you want to do anything that isn't basic reads/writes (e.g. SQL-like IN queries, query pagination, programmatic queries like sorting by the HN ranking algorithm ~ points/(time since post)^(1.5)) the workarounds can get complex and a little weird.
One question we had is around AdSense approval! The Google Adsense approval team rejected our website for not having enough meaningful content / not having "valuable inventory" - it would be great to hear some insight about how to show Google we are a real website.
Happy to answer any questions here or at logan@mit.edu!