My Video Conferencing Setup
Video conferencing with eye contact makes things much more personal. But I don't want to stare at the camera hole of my webcam, I want to look at the picture of my counterpart in the conference. So I use a teleprompter-style setup to have the video of the other side in the same place as the camera, so when I look at the video I also look into the camera.
This is mostly a dump of my Amazon buy history. There aren't even affiliate links on it, as I'm too lazy to do proper affiliate marketing.
Hardware
Canon 5D2
... vast overkill, but it's what I had at hand. Any camera supported by the gphoto2 "Liveview" feature (Debian) or USB driver/HDMI capture (Windows or Debian) works. I recommend finding a used "old" camera. As a secondary setup, I have a Canon EOS 450D with the kit lens, found on Amazon for EUR 135. The kit lens (18-55mm) is good enough for all your videoconferencing needs.
List of cameras supported by gphoto2
Alternatives are the Sony Alpha 5100 or Sony Alpha 6000, with an HDMI-to-USB adapter (see below). In any case, the camera should have a 1/4" screw hole (or a 3/8" hole), but that is the default.
Camera power supply
For the Canon cameras you want an external power supply, like these "tethered battery" adapters":
Canon DR-E5 for Canon EOS 450D, Amazon
Canon DR-E6 for Canon EOS 5D2, Amazon
Tripod
If you have a DSLR, you likely already have a tripod. Any tripod will do, for example this cheapo tripod:
It should be sturdy enough to hold your camera and the teleprompter rig. You want a tripod with 1/4" screw plates for your camera, but that is the default.
Face light
A face light to ensure that your face is visible no matter what background lighting you have. This light can fit on the flash shoe of your camera or fit using the standard 1/4" screws.
My face when lit with the light:
My face without the light and insufficient ambient light:
Note the faint lighting from below, by another monitor.
HDMI-to-USB adapter
If you need to capture the HDMI output of your camera because the USB connection does not work on your computer, you want some cheap no-name adapter like:
Depending on your camera, you will also need a mini-HDMI to HDMI adapter:
Teleprompter rig
The teleprompter rig consists mainly of a translucent mirror angled at 45°. The mirror reflects the image of the monitor but lets the camera behind the mirror capture your image. The result is that when you look at (the mirror image of) your monitor, you're also looking right into the camera.
The rig I bought is an overpriced rig from Amazon. It works well enough, but the second rig would be something I glue together from wood and cardboard and a one-way mirror. The one deciding factor is the screen size. You really want at least a 10" mirror (and screen, see below) because the setup will be about 150cm away from your eyes and you won't be able to read much on a smaller screen.
You (or at least, I) don't want a setup that you screw on the front of the camera, because that will be a far too heavy load on the camera joints.
This one looks cheaper and will likely work just as well:
This one is a flimsy setup that puts far too much stress on the lens and camera joints:
10" HDMI monitor
Any cheap/light HDMI monitor will do. In theory an iPad should also work, if you are using an OSX Mac, but I have no experience with using the "Sidecar" feature.
I use a 2560x1600 10" display, but the resolution is overkill and a drag on CPU performance as it is hooked up to the Intel HDMI port on my setup.
Alternatives should be stuff like this portable 10" display
Headset
Any kind of headset will do. Just for convenience and to avoid feedback, I prefer earphones.
Graphics card
If you are Windows, you will need to have an Nvidia graphics card (driver) that can flip the video output of a display on the Y-axis, if you aim for a general purpose usage.
Software
The setup(s) below make the camera appear as a webcam to your browser and whatever other camera setup you use. You will need to set the 10" HDMI output to "flipped Y-axis". There is much confusion on the internet, because people tend to use the word "mirror" to mean rotation by 180°, or to copy display contents to a secondary display. But we need to display an image in a way that it is only flipped on the Y-axis, not rotated, as we will be looking at that image through a mirror.
Debian Buster
Installed packages
Image capture
ffmpeg
gphoto2
obsstudio
xrandr
Monitor flipping
xrandr --output HDMI-1-1 --mode 2560x1600_30.00 --reflect y
Canon 5D2 USB capture (V4L2)
Gphoto2 just works after
gphoto2 --stdout --capture-movie | ffmpeg -i - -vcodec rawvideo -pix_fmt yuv420p -threads 0 -f v4l2 /dev/video1
Microsoft Windows 10
Windows 10 doesn't have a built-in way for flipping/inverting a screen on the Y-axis. On the upside, it doesn't need gymnastics to make the camera available as a device, provided you have the USB driver installed.
Monitor flipping
You will need a graphics card driver that can flip the output on the Y-axis, like the graphics drivers from Nvidia. My built-in Intel driver in my laptop does not support flipping the image on the Y-axis. Switch the 10" HDMI output to "flipped Y-axis".
Camera USB driver
Your camera vendor hopefully supplies an USB driver for using your DSLR camera as webcam. Alternatively, the HDMI-to-USB dongle should make the HDMI output of your camera available as an USB camera.
Browser-only setup
If you only ever use the conferencing setup in a browser, you can flip the browser display using some clever CSS rendering tricks in a Javascript bookmark:
// flip
document.body.style.transform = "scaleX(-1)";
// restore
document.body.style.transform = "scaleX(1)";
Here is a link you can bookmark to flip any web page into its mirror image:
And here is the link to restore the page to its proper layout:
This way you can avoid the need to configure the complete monitor output in a mirrored fashion.