What a shitstorm of a Tuesday 🌪💩🌪. In other news, OBS 26.1 now has virtual cam support for Mac & Linux! No more CamTwist!
seen from China

seen from Australia
seen from China
seen from United States
seen from United States
seen from United States
seen from China

seen from Singapore
seen from Brazil
seen from China
seen from Poland
seen from China
seen from United States
seen from Albania

seen from Morocco
seen from Morocco
seen from China
seen from Morocco

seen from France
seen from Germany
What a shitstorm of a Tuesday 🌪💩🌪. In other news, OBS 26.1 now has virtual cam support for Mac & Linux! No more CamTwist!
Fun and Games with CamTwist and OBS
In the wake of COVID-19 there are a lot of creative ways to use audio and video over the Internet. I came across an article to use green screens in any application by producing a virtual web camera that can be picked up by any application capable of using web cameras. The toolchain in the aforementioned blog post is based on Open Broadcasting Studio (OBS) + Syphon + CamTwistStudio. It turned out that Syphon is broken on newer versions of macOS. While experimenting with the different ways to input and output video sources I cam up with a combo that worked across Skype for Business, Camtasia and Zoom.
Since most folks have Zoom installed, I’m going to use Zoom as the example application. Zoom already have green screen support so I’m going to create a video source with an overlay of my FaceTime HD camera to present in Zoom. The only limitation is your imagination at this point.
Install OBS and CamTwist. This is straightforward by following the provided steps on the respective project.
Create your OBS scene
Start by creating the scene you want to use in OBS.
Add Video Capture Device and images
Since we’re producing a fairly low resolution output that is going to be broadcasted in Zoom, I set the output and canvas to 720p, which is the resolution of my FaceTime HD camera. Hit "Settings" and select video. Also make sure you set the frame rate to 30.
Change resolution and canvas
Once you’re happy with your scene, right click the scene and select “Windowed Projector (Preview)”. We’re done! Let’s move to CamTwist and leave OBS running.
Get trippy with CamTwist
CamTwist is a delight to play around with creating various realtime effects. Since my use case was business oriented, no room for fun at all, let’s get to it. The idea here is that we’re going to “grab” the OBS preview window using the “Desktop+” input.
First, go into "CamTwist -> Preferences". Set the “Frame rate” to 30 and “Video Size” to 1280x720. Close it.
Set the frame rate and output device resolution
Next, in the CamTwist window, double-click Desktop+ on the left, on the furthest right, select “Confine to Application Window”. Pick the OBS Windowed Preview.
Next, let's head over to Zoom. Leave CamTwist running.
Zoom, zoom, zoom!
Make sure Zoom is restarted, otherwise the camera device might not be picked up. Also ensure “Virtual Backround” is turned off, otherwise you’ll have some unrelated artifacts flimsying around in the output. Bring up the Zoom preferences.
Select the the source in Zoom
On your next Zoom call, enable video and you should be good to go!
Alternative OBS projector mode
If you like me have multiple displays connected to your Mac, you can simply direct the preview to a dedicated display and grab that entire screen into CamTwist to get rid of the fiddling with windows and selections in the window. A hot tip with this alternative method is that you need to uncheck “Displays have separate Spaces” in “System Preferences -> Mission Control” to get rid of the macOS top bar (requires logout). According to the CamTwist devs this has a slight performance advantage when broadcasting a desktop source.
Have fun!
DrippedOutFur.gif
A Thing I Found: CamTwist in Virtual Machines
While testing OpenBroadcaster in a VM I discovered that CamTwist from the host mac registers a video capture device.
I'm yet to find a practical use for this as Cocoasplit and FLME are viable native software, but perhaps this could be used for some creative trolling on Omegle or Skype.
Using your Canon EOS DSLR as a webcam/capture device without EOS Utility
Most of the articles I've seen on the subject of using a Canon DSLR as a webcam or for live streaming involves using EOS Utility in the Live View mode and then doing a screen capture over it.
This works okay but there are a few downsides, such as a white box on the live view display which you may have to crop out and thus end up with a smaller resolution image and there is generally a significant delay when doing screen capture which would cause your audio to be out of sync if it wasn't also delayed by the same amount. The real issue here is that the quality sucks.
I've always wanted a nicer way to do this without having the expense of a Blackmagic capture card or similar because it would be useful if I ever needed to do a one-off live stream with a low budget as I did for a fundraiser after the Japan tsunami in 2011.
I have managed to work out a much more direct way of doing this with much lower latency and higher quality (however it is OS X only). The Syphon framework allows full frame rate video to be shared between applications and the developers have made an application which will feed video from a Canon DSLR into Syphon.
They have also developed a Quartz Composer plugin and since CamTwist supports effects using Quartz another developer has created a module to feed Syphon streams into CamTwist. This is very useful for us because CamTwist creates a virtual webcam.
I've tested this on a 60D and the results were excellent, however I did find that if you record on the camera at the same time there is a huge drop in frame rate but of course you can just record locally on your machine if needed.
There are some prerequisites you need to download first:
CamTwist
Camera Live (GitHub)
Syphon For Quartz Composer (Google Code)
CamTwist Syphon (GitHub)
Note: If you are feeling brave you can download CamTwist 3.0 Beta which has native Syphon support and then skip straight to step 3. (For now though it's probably best to use the latest stable version)
Step 1:
Install the Syphon for Quartz Composer plugin by copying the Syphon.plugin bundle to:
/Library/Graphics/Quartz Composer Plug-Ins/
or just for the user:
~/Library/Graphics/Quartz Composer Plug-Ins/
(You can use the Go to Folder Finder shortcut of Command+Shift+G here)
Note: These directories may not exist if you don't have XCode and Graphics Tools for Xcode (Quartz Composer) installed, however if you create the directory using the following command it should still work.
sudo mkdir -p '/Library/Graphics/Quartz Composer Plug-Ins/'
Step 2:
Extract the CamTwist Syphon module and place the contents of the modules folder into:
~/Library/Application Support/CamTwist/Effects
(Command+Shift+G in Finder once again)
If that directory does not exist you can create it in the Terminal app with the following command:
mkdir -p ~/Library/Application\ Support/CamTwist/Effects
Step 3:
Connect your DSLR to your Mac with a USB cable and put it into video mode, open up Camera Live and select your camera.
Step 4:
Open up CamTwist, go to Preferences and under the General Tab set the video size to 1280x720 so CamTwist outputs HD at 720p. You will also want to make sure the frame rate is set suitably so the video appears smooth as it defaults to 15 FPS, I set it to 25 to match the frame rate of my camera.
Restart CamTwist after making this change.
Slight update: It seems that Canon DSLRs don't actually output 720P like I first thought, so it is stretched a little bit on the 60D anyway, there is a list of resolutions that different camera models output that can be viewed here.
Step 5:
In the CamTwist main window under Step 2 you should be able to find the syphon_in effect, double click it so it shows under Effects in use, press Save Setup and then name it whatever you would like.
Step 6:
Under Tools open up the Studio window.
Now you can control what CamTwist outputs via its virtual webcam what is currently being output is shown in the Program window. Select your button and press cut to put the camera live.
You can now use programs such as Adobe Media Live Encoder or Livestream Procaster to stream your camera's video.
A big thank you has to go to Anton Marini and Tom Butterworth who develop the Syphon framework and Camera Live over at v002.info, the developer of the CamTwist Syphon plugin GitHub user barrabinfc and also Steve Green the developer of CamTwist.
Feel free to leave a comment or Email me with any questions or feedback you may have.
Hide My Face - real-time face pixelation for your webcam
A quick little tool I knocked together (mostly amalgamating other tools) to preserve anonymity when using a webcam…yet another by-product of a different project idea.
Hide My Face has a simple, single slider interface, designed to control how much your face is concealed – or revealed – when looking at a webcam. Move the slider to the left and you’re out in the open, move it to the right and you’re heavily pixelated. The pixelation is incremental, so you can gradually reveal your face or, alternatively, snap one way or the other instantly.